MD5快速碰撞算法之研究
【摘要】:MD5是一种散列算法,该算法与数字签名密切相关。研究MD5算法在信息安全领域有着十分重要的意义。
搜索MD5碰撞是指找出一对报文M0和M1使得MD5(Mo)=MD5(M1).
王小云等提出的报文修改法实现了MD5碰撞研究的突破,但是该方法的搜索效率很低,用个人计算机无法在短时间内得到搜索结果。
单报文修改法通过修改m[0]至m[15]使得M0满足第一条差分路径中P[1]至P[16]这16个点的条件。而多报文修改法通过修改报文最远可以到达P[24]这个点。到达P[24]点后,m[0]至m[15]已全部确定,接下去我们只能通过验证M0来判断它是否满足P[25]至P[64]各点的条件。如果发现M0不满足P[25]至P[64]中任何一点的条件,则需要重新随机产生一个新的M0,再重复前面做过的报文修改步骤到达P[24]点。很明显,要使得P[25]至P[64]各点条件全部满足的概率达到1,则要求到达P[24]点的M0有237个。
由于报文修改法不能重复利用已满足P[1]到P[24]点条件的M0,从而造成计算复杂度过高,因此我们以Klima的“隧道法”为基础,提出了一种称为自由位跨步验证法的MD5碰撞搜索方法。
所谓自由点是指在P[1]至P[24]中的某几个点,当我们改变这些点的某些位时,并不会造成这些点条件的改变。自由点中可以改变的位则称为自由位。
对于某个已经到达P[24]点的M0来说,如果它不满足P[24]点后面某一点的条件,则我们不必放弃整个M0,而可以以该M0为基础,通过变化自由点的自由位来得到新的M0。只要自由位足够多,则我们可以从一个M0变化出多个M0,从而大大提高M0满足后面各点条件的概率。同时,对自由位变化的验证不需要逐点进行,而是可以跨步到达到验证点。因此,自由位跨步验证法不仅使得差分路径到达验证点之前有足够多的报文变化从而提高MD5碰撞的概率,而且还大大加快了MD5碰撞的搜索速度。
|
|
|
|
1 |
刘凡保;谢涛;;MD5碰撞攻击的差分路径构建[A];第八届全国信息隐藏与多媒体安全学术大会湖南省计算机学会第十一届学术年会论文集[C];2009年 |
|