哈希链

维基百科,自由的百科全书
跳转至: 导航搜索

在计算机安全中 哈希链 是一种由单个密钥或密码生成多个一次性密钥或密码的一种方法。

定义[编辑]

哈希链 是将密码学中的哈希函数h(x)循环地用于一个字符串。(即将所得哈希值再次传递给哈希函数得至其哈希值)

例:

h(h(h(h(x))))

一个长度为4哈希链,通常记h^{4}(x)

应用[编辑]

兰波特 [1]建议将其作为一种在非安全环境中的密码保护方案。相比较而言,一个提供身份验证的服务器储存哈希字符串,比储存纯文本密码,更能防止密码在传输或储存时被泄露。举例来说,一个服务器一开始存储了一个由用户提供的哈希值h^{1000}(password)。进行身份验证时,用户提供给服务器h^{999}(password)。服务器计算h(h^{999}(password)) = h^{1000}(password) ,并与已储存的哈希值h^{1000}(password)进行比较。然后服务器将存储h^{999}(password)以用来对用户进行下次验证。

窃听者即使嗅探到h^{999}(password)送交服务器,也无法将h^{999}(password)用来认证,因为现在服务器验证的哈希值是h^{998}(password)。由于安全的哈希函数有一种单向的加密属性,对于想要算出前一次哈希值的窃听者来说它的值是不可逆的。在本例中,用户在整个哈希链用完前可以验证1000次之多。每次哈希值是不同的,因此不能被攻击者再次使用。

参见[编辑]

  • 问答认证
  • 哈希表-与递归哈希链结构恰恰相反,每个哈希表的元素是相互独立的。
  • 一次性密码

参考文献:[编辑]

  1. ^ L. Lamport, “Password Authentication with Insecure Communication”, Communications of the ACM 24.11 (November 1981), pp 770-772.[1] [2]

外部链接[编辑]