CRUSH哈希函数的密码分析
1. 引言
在哈希函数设计中,Merkle - Damgård(MD)构造曾被广泛使用,但后来受到了攻击,如Wang等人对MD4、MD5、SHA - 1等的多块碰撞攻击。因此,Iterated Halving作为一种新的哈希函数设计范式被提出,CRUSH哈希函数就是Iterated Halving的一个具体实例。不过,目前CRUSH还未得到充分分析。本文将揭示Iterated Halving技术以及CRUSH哈希函数实例存在的严重安全和实现问题。
好的哈希函数应具备碰撞抗性、原像抗性和第二原像抗性这三个主要安全属性。碰撞抗性指的是很难找到两个不同的消息x和y,使得哈希函数H满足H(x) = H(y);第二原像抗性则是指在已知消息x及其哈希值H(x)的情况下,很难找到另一个消息y使得H(y) = H(x)。如果一个哈希函数不具备碰撞抗性和第二原像抗性,其应用将受到限制。本文将展示在CRUSH中可以通过十次操作找到碰撞和第二原像,即使将CRUSH中的块密码替换为192位或256位密钥的高级加密标准(AES),同样的攻击依然有效。
2. CRUSH哈希函数
CRUSH由数据缓冲区、双射选择组件(BSC)、布尔函数$f_i$($1 \leq i \leq 3$)和双射函数B组成。B实际上是一个块密码,其明文来自数据缓冲区,密钥材料来自布尔函数。B函数包含一个重复的子函数F,但F的具体细节不影响本文的攻击。
CRUSH的作者建议可以通过用另一个块密码替换B来构造Iterated Halving范式下的另一个哈希函数,例如使用192位或256位密钥的AES。
超级会员免费看
订阅专栏 解锁全文

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



