单块 MD4、63 步 MD5 等的原像攻击
1. MD5 和 MD4 概述
1.1 MD5 规范及其特性
MD5 是 Merkle - Damgård 哈希函数之一,其哈希值的计算方式如下:
- (H_0 \leftarrow IV)
- (H_{i + 1} \leftarrow md5(H_i, M_i)),其中 (i = 0, 1, \cdots, n - 1)
这里,(IV) 是规范中定义的初始值,(md5: {0, 1}^{128} \times {0, 1}^{512} \to {0, 1}^{128}) 是 MD5 的压缩函数,哈希函数的输出为 (H_n)。在应用上述公式之前,消息字符串 (M) 需要进行如下处理:
- 消息被填充为 512 位的倍数。
- 填充后的字符串包含消息的长度,该长度用 64 位表示,且长度字符串位于填充的末尾。
处理后,消息字符串被划分为 512 位的块 (M_i)((i = 0, 1, \cdots, n - 1))。压缩函数 (H_{i + 1} \leftarrow md5(H_i, M_i)) 的计算步骤如下:
1. 将 (M_i) 划分为 32 位的消息字 (m_j)((j = 0, 1, \cdots, 15))。
2. 进行如下递归计算:
- (p_0 \leftarrow H_i)
- (p_{j + 1} \leftarrow R_{MD5}^j(p_j, m_{\pi_{MD5}(j)})),其中 (j = 0, 1, \cdots, 63)
3. 输出 (H_{i + 1} (= p_{64} + H_
超级会员免费看
订阅专栏 解锁全文
4437

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



