迭代哈希函数的通用攻击解析
一、固定点与可扩展消息
在哈希函数的攻击中,固定点是一个重要的概念。对于函数 (f),固定点 (x) 满足 (f(x) = x)。在压缩函数 (h) 中,我们考虑的固定点形式为 (h(m, y) = y),即输入使得链值得以恢复。
在 Merkle–Damgård 哈希构造中,这样的固定点允许我们在不改变哈希值的情况下增加消息的长度。例如,若存在固定点 ((m_{fp}, y_{fp})) 使得 (h(m_{fp}, y_{fp}) = y_{fp}),并且有碰撞消息块 (m_c) 满足 (h(m_c, IV) = y_{fp}),那么我们可以通过重复添加消息块 (m_{fp}) 来构造任意长的具有哈希值 (y_{fp}) 的消息,这种消息被称为可扩展消息。
二、利用固定点攻击 MD 强化
我们可以使用固定点和可扩展消息来扩展之前针对长消息的第二原像攻击,使其在使用填充和 Merkle–Damgård 强化的情况下也适用。攻击步骤如下:
1. 搜索可扩展消息 :寻找如图 13.7 所示的包含固定点 ((m_{fp}, y_{fp})) 且可从初始化向量 (IV) 到达的可扩展消息。
2. 运行修改后的攻击 :在找到可扩展消息后,运行原始攻击,但将搜索压缩函数以初始化值 (IV) 进行碰撞改为搜索包含可扩展消息中固定点 (y_{fp}) 的碰撞。
攻击复杂度分析如下:
假设消息由 (2^n) 个消息块组成,在不考虑填充的情况下,攻击者找到第二原像的时间为 (O(2^{\lambda - n}))。现在还需要
超级会员免费看
订阅专栏 解锁全文
13

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



