哈希函数的碰撞与高阶差分特性研究
1. BMW压缩函数的实际近碰撞
在对BMW压缩函数的研究中,发现可以在搜索XH中的碰撞之前找到(近)碰撞。由于复杂度仍低于2^32,所以整个攻击成本约为2^32。不过,由于进位的存在,除非引入一些额外的比特条件(这会略微增加复杂度),否则无法事先确定会有多少比特发生碰撞。在XH中搜索碰撞是利用M9的自由度来完成的。
示例信息 | 详情 |
---|---|
输入对示例 | 输出在300个预指定比特上发生碰撞 |
搜索复杂度 | 搜索Q0, …, Q28中的(近)碰撞大约需要相当于2^29.5次压缩函数评估 |
近碰撞情况 | 可视为具有122个活跃比特的近碰撞 |
1.1 攻击结果总结
- 成功构建了在300个预指定比特上发生碰撞的输入对,复杂度为2^32。虽然这并不削弱迭代哈希函数的安全性,但它是压缩函数的一个强区分器。
- 如果像BMW的最终变换那样对压缩函数进行截断,仍可以构建复杂度为2^32、在超过110比特上发生碰撞的消息对,这是对截断后的BMW压缩函数的首个区分器。
- 类似的攻击可以应用于BMW - 512,复杂度为2^64,将得到压缩函数的输入对,其输出约有600个碰撞比特,其