哈希链()是在计算机安全中,一种由单个密钥或密码生成多个一次性密钥或密码的一种方法。
定义
哈希链 是将密码学中的哈希函数h(x)循环地用于一个字符串。(即将所得哈希值再次传递给哈希函数得至其哈希值)
例:
h(h(h(h(x))))
一个长度为4哈希链,通常记h^{4}(x)
应用
兰波特 建议将其作为一种在非安全环境中的密码保护方案。相比较而言,一个提供身份验证的服务器储存哈希字符串,比储存纯文本密码,更能防止密码在传输或储存时被泄露。举例来说,一个服务器一开始存储了一个由用户提供的哈希值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次之多。每次哈希值是不同的,因此不能被攻击者再次使用。
参见
*问答认证
*哈希表-与递归哈希链结构恰恰相反,每个哈希表的元素是相互独立的。
*一次性密码
参考文献:
外部链接
*[http://www.cs.pitt.edu/~kirk/cs1501/animations/CHashing.html 链式哈希动画演示]
评论 (0)