2004年8月,在美国加州圣芭芭拉召开的国际密码大会(Crypto’2004)上,我国密码学者王小云教授等人在他们所做的Hash函数研究报告中指出,他们已成功破译了MD4、MD5、HAVAL-128、RIPEMD-128等Hash算法。在MD5被王小云为代表的中国专家攻破之后,世界密码学界仍然认为SHA-1是安全的。而仅仅在一周之后,王小云就宣布了攻破SHA-1的消息。由于SHA-1在美国等国家有更加广泛的应用,该算法被攻破的消息一出,在国际社会的反响可谓石破天惊。
值得说明的是,在2004年密码会议之前,对Hash函数的所有攻击都只是找到了仅有一次迭代的碰撞;在2004年密码会议上,王小云提出了MD5两次迭代的碰撞,A.Joux也提出了一种有4次迭代的碰撞。后来,国际密码学家Lenstra利用王小云等提供的MD5碰撞,伪造了符合X.509标准的数字证书。这就说明了MD5的破译已经不仅仅是理论破译结果,而是可以导致实际的攻击。
有人称“破解MD5和SHA-1意味着现在全世界所有正在使用的数字签名方法都是不安全的”。著名国际密码学专家、上海交通大学教授来学嘉宣称“这太夸张了,破解MD5不会产生那么大的影响”。这是因为:一般来说,对于给定的一个消息通过变换,计算它的Hash值很容易,但要从Hash值找出相应的原始消息很困难。Hash函数最根本的特点是这种变换具有单向性,一旦数据被转换,就无法再以确定的方法获得其原始值,从而无法控制变换得到的结果,达到防止信息被篡改的目的。Hash函数的这种不可逆特性,使其非常适合被用来确定原消息的完整性,从而被广泛用于数字签名。
通常来说,数字签名有两个步骤,一是计算出一个文件的Hash值;二是对这个Hash值作签名运算。所以说,如果有两个不同的文件,它们生成的Hash值是一样的,如果有一个碰撞的话,这两个文件的数字签名就有可能也是一样的,从而有可能伪造文件。MD5与SHA-1被破解使这种可能性变大。但是在实际应用中,由于文件都有各自不同的内容,现在找到这种破解都是随机的,或者是非常怪的文件,因此它没有什么实际的意义。(www.xing528.com)
在实际应用中,又有两种情况,一种就是针对一个现有的文件再伪造一个,这是攻击Hash函数的一种常见的攻击方法,但这种攻击目前来说还相当困难,还不能做到;另一种就是做两个不同的文件,它们有相同的签名,然后拿一个文件来骗一个签名,再拿另外一个文件作为证据,这种情况就是所谓的碰撞。但出于现有的文件都有一个固定的格式,如一个银行的交易表单,就具有其特殊的格式和尺寸,而破解的文件又是另外的、完全不同的格式,所以要把这两类文件掺到一块是很难的,要以现在的破解方法实现这种攻击,目标还离得很远。当然,不管怎么说,这种破解方法至少开了一个头,表明这种事情我们中国人能做了,而且有可能做到,这在过去根本无法想象,所以说它是一个重要的进步。
就目前来说,这种所谓“破解”对我国的实际应用,如军事、金融和电子商务、电子政务系统的实际应用不会带来实质性的冲击。所以,从这个意义上讲,将其称为“破解”是非常不恰当的,它的实质只是找到了一个碰撞,找到了这种算法的一个弱点。就像一把锁,并不像制锁商说得那么好,只是这个意思,但距离用一种方法打开这个锁,还差得很远。
不过,这种碰撞确实给密码学家将来设计和选择算法时提供了一种参考,如SHA-2算法的设计等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。