密钥哈希函数的构造与应用
1. 碰撞问题与敌手构造
在处理密钥哈希函数时,对于某些消息块 (m^ ),不能简单从 (F_f^{\text{pad}}(k, m) = F_f^{\text{pad}}(k, m’)) 推出 (F_f^{\text{pad}}(k, m\parallel m^ ) = F_f^{\text{pad}}(k, m’\parallel m^ )) 或 (F_f^{\text{pad}}(k, \text{pad}(m)\parallel m^ ) = F_f^{\text{pad}}(k, \text{pad}(m’)\parallel m^ ))。这是因为 (m\parallel m^ ) 和 (m’\parallel m^*) 的填充已移至扩充消息的末尾,特别是当 (|m| \neq |m’|) 时,最终填充块会不同。
我们的应对策略是在敌手之间增加一个环节。若敌手 (D_{na}) 以概率 (\epsilon(\lambda)) 找到 (F_f^{\text{pad}}) 的碰撞,那么可以构造一个敌手 (D_{na}^ ),它能以同样概率 (\epsilon(\lambda)) 找到 (F_f) 的碰撞。这里 (F_f) 是证明中假设的 SecIV 构造,无需填充,仅定义在块长度倍数的输入上。敌手 (D_{na}^ ) 运行 (D_{na}),对任何查询先进行填充,再转发给自身的预言机。从 (D_{na}^ ) 出发,可继续构造无前缀敌手 (D_{pf}),并且有:
[
\Pr\left[\text{collision} {D {
超级会员免费看
订阅专栏 解锁全文
51

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



