利用Merkle–Damgård迭代伪随机函数的安全性分析
1. 伪随机函数输出长度的重要性
在考虑伪随机函数(PRF)时,函数的输出长度需要随着安全参数的增长而充分增加。对于消息认证码(MAC)来说,这也是必要的,因为短的令牌容易被猜测。而伪随机函数本身没有这样的限制,理论上存在输出长度仅为一位的伪随机函数。
若一个伪随机函数仅输出一位,那么任意两个随机选择的消息发生碰撞的概率至少为 1/2,因为该函数只有两个可能的输出值(0 和 1)。但如果输出长度足够长,随机消息发生碰撞的概率就会变得可以忽略不计。对于输出足够长的随机函数,碰撞查找器找到碰撞的最佳策略是向其预言机查询 q(λ) 次,成功的概率最多为 ( \frac{q(λ) \cdot (q(λ) - 1)}{2} \cdot 2^{-F.ol(λ)} ),当 ( F.ol(λ) ) 是超对数时,这个概率是可忽略的。
如果一个碰撞查找器对于伪随机函数的表现明显更好,那么这个算法可以转化为一个 PRF 区分器。另外,根据相关命题,输出长度为超对数的伪随机函数是一个安全的(确定性)消息认证码,而 MAC 具有弱抗碰撞性。
2. 弱抗碰撞性与Merkle–Damgård
有人可能会认为,由于 Merkle–Damgård 能保持抗碰撞性,且弱抗碰撞性比抗碰撞性“弱”,所以 Merkle–Damgård 也一定能保持弱抗碰撞性。但实际上并非如此,这取决于引入密钥的方式。
命题 16.7 :假设存在弱抗碰撞但不抗碰撞的压缩函数,对于 Merkle–Damgård 和弱抗碰撞性,有以下结论:
- 构造 16.1(SecIV)
超级会员免费看
订阅专栏 解锁全文
39

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



