现代密码学中的哈希函数及其应用
1. 哈希函数的安全性概念
在实际应用中,无密钥的密码哈希函数在实际用途上具有抗碰撞性。尽管碰撞对必然存在,但由于它们未知且在计算上难以找到,所以基于抗碰撞哈希函数的方案的安全性证明仍然是有意义的。在正式证明依赖于抗碰撞性的结果时,通常会考虑带密钥的哈希函数,而在其他情况下,一般假设使用无密钥的哈希函数。
除了抗碰撞性,还有一些较弱的安全性概念:
- 第二原像抗性 :给定 (s) 和一个均匀的 (x),一个概率多项式时间(ppt)对手很难找到一个 (x’ \neq x),使得 (H_s(x’) = H_s(x))。
- 原像抗性 :给定 (s) 和 (y = H_s(x))(其中 (x) 是均匀的),一个 ppt 对手很难找到一个值 (x’)(无论是否等于 (x)),使得 (H_s(x’) = y)。
可以直观地看出,任何抗碰撞的哈希函数也具有第二原像抗性,而具有第二原像抗性的哈希函数也具有原像抗性。
2. Merkle–Damgård 变换
许多应用需要能够处理非常长甚至任意长度输入的“成熟”抗碰撞哈希函数。然而,构造只接受“短”输入的固定长度哈希函数(即压缩函数)要容易得多。Merkle–Damgård 变换可以将固定长度的哈希函数转换为处理任意长度输入的哈希函数。这种方法在实践中经常被使用,例如 MD5 和 SHA 哈希家族。
假设压缩函数 ((Gen, h)) 接受长度为 (n + n’\geq 2n) 的输入,并生成长度为 (n) 的输出。通过以下步骤构造哈希函数 ((Gen, H
超级会员免费看
订阅专栏 解锁全文
2218

被折叠的 条评论
为什么被折叠?



