Skip to content

密码哈希函数

Cryptographic hash function

把任意长输入压缩到固定长度并要求原像、第二原像或碰撞难求的函数族。

形式陈述

密码哈希函数族把任意长度输入映为固定长度摘要,通常要求抗原像、抗第二原像和抗碰撞等不同性质。它应高效计算,但这些安全性是渐近或具体复杂度声明,不由“输出看似随机”自动推出。无密钥哈希不能提供来源认证;长度扩展、域分离和编码歧义也与具体构造相关。

直觉

摘要像内容的短指纹:容易从文件算出,却希望难以反向恢复、替换成同指纹内容或找到任意碰撞。

例子与边界

理想 n 位哈希的碰撞搜索约需 2n/2 次、原像约需 2n 次。SHA-256 常用于完整性组件,但单独附加公开哈希不能阻止攻击者同时修改消息和哈希。普通程序哈希表只追求速度和均匀分布,不必满足密码安全。

推论与应用

密码哈希用于签名、承诺、口令派生、Merkle 树、内容寻址和消息认证构造。

参考资料
  • Jonathan Katz and Yehuda Lindell, Introduction to Modern Cryptography, 3rd ed., CRC Press, 2020,Chs. 2–12。
  • Oded Goldreich, Foundations of Cryptography, Vol. 1, Cambridge University Press, 2001,Chs. 1–4。