密码学海绵函数与消息填充机制解析
1. 引言
在密码学领域,哈希函数的构造和应用至关重要。此前我们了解了Merkle–Damgård构造的哈希函数域扩展方法,而现在我们将探讨另一种近年来广受欢迎的构造方式——密码学海绵函数(Cryptographic Sponges),它是SHA - 3哈希函数的基础。
2. 选择前缀攻击与哈希碰撞
首先介绍一种选择前缀攻击的方法,通过这种攻击可以构造出多个具有相同哈希值的消息。具体步骤如下:
- 假设有多个前缀 (p_i),计算 (H_h(p_i)) 的最终链值 (y_i),记为 ((p_i \to y_i))。
- 对每两个相邻的前缀进行选择前缀攻击,例如对于 (p_1) 和 (p_2),找到后缀 (s_1) 和 (s_2),使得消息 (p_1 \parallel s_1) 和 (p_2 \parallel s_2) 发生碰撞,碰撞的链值为 (y_{31})。
- 对八个原始前缀完成碰撞构造后,得到四个新消息,如 (p_1 \parallel s_1)、(p_3 \parallel s_3)、(p_5 \parallel s_5)、(p_7 \parallel s_7)。
- 再次使用选择前缀攻击,对 (p_1 \parallel s_1) 和 (p_3 \parallel s_3) 以及 (p_5 \parallel s_5) 和 (p_7 \parallel s_7) 进行操作,分别得到后缀 (m_{31})、(m_{32}) 和 (m_{33})、(m_{34}),对应的哈希值分别为 (y_{21}) 和 (y_{22})。
- 重复上述策略,最终为八个原始前缀创建八个后缀,使得所有
超级会员免费看
订阅专栏 解锁全文
2699

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



