“任一失败都返回无效签名。编码使用密码哈希的具体SHA 256算法,但编码正确性与计算不可伪造性是不同结论;PSS的安全分析还需要RSA反演及相应随机预言机模型。”
形式陈述
公开参数化的密码哈希函数族由两个统一的高效算法给出:概率多项式时间生成算法产生公开索引,确定性多项式时间求值算法在合法消息上计算摘要,
这里
三类安全性质必须分别指定攻击实验。碰撞实验给攻击者
直觉
密码哈希把消息压成固定长度的短“指纹”:摘要容易从文件算出,却应难以反向恢复原像、替换成同指纹内容或找到任意碰撞。三种困难来自不同挑战接口,不能不加条件地互相替换。抗碰撞能排除相应高效可采样挑战分布下的第二原像攻击,因为先采样消息再调用攻击者即可制造碰撞;但抗原像性还取决于消息分布及压缩程度,不能只凭性质名称推出。它是公开、无密钥的确定函数,所以不能单独提供消息来源认证;实际构造还要求域分离、无歧义编码和适当输出长度。
例子与边界
对理想随机函数做经典查询,取
SHA-256 输出
消息分布也会压倒输出长度:若原像挑战从公开的十条固定消息中均匀抽取,攻击者枚举这十条并比较摘要即可获胜,即便摘要有
密码哈希不是密码存储的直接方案:快速哈希会帮助攻击者大规模猜测,应使用带盐、内存困难的专用 KDF。长度扩展等性质也使直接写
固定输入长度的压缩函数
哈希到曲线将输出对象换为合法曲线点:先扩展为域元素,再经确定映射与点加法完成P256编码。它与点反序列化的输入域不同;输出满足曲线方程也不足以证明适用于理想群随机预言机,还须检查域分离、映射分布及上层所需性质。
推论与应用
密码哈希用于签名、承诺、口令派生、Merkle 树、内容寻址和消息认证构造。抗碰撞性是其核心性质,消息认证码在哈希上加入密钥实现认证;数字签名常采用 hash-then-sign,Merkle 树、内容寻址和承诺则依赖摘要绑定长数据。通用哈希控制随机函数族对预先固定输入对的碰撞概率,可用于信息论 MAC 与提取器;它既不等于现实哈希的抗碰撞性,也不等于 ROM。
参考资料
- 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。
- Dan Boneh and Victor Shoup, A Graduate Course in Applied Cryptography, version 0.6, 2023,作者公开教材,§8.1,抗碰撞实验及参数化函数族。