MD5和SHA-1加密算法被我国密码学家王小云破解
MD5和SHA-1加密算法被我国密码学家王小云破解
如果说MD5和SHA-1是当今各种信息安全体系所依赖的大厦基石,那么现在,这些大厦的基础已经出现了很大的裂缝,甚至,有崩塌的危险。
全球学界震惊,美国军方网络在内的重大安全体系人人自危……
在8个月以前,人们还以为在全球广泛应用的MD5和SHA-1都是值得信任的安全的数字签名算法;8个月后的今天,曾经值得信赖的数字签名体系,令人震惊的两次“碰撞”将这两种应用最广的签名加密算法都逼上了绝路。
MD5和SHA-1这两种应用最为广泛的数字签名加密算法都被山东大学的数学教授王小云破解,业界感到震惊的同时,也开始对今天广泛应用的数字签名算法体系进行反思,我国于2005年4月1日开始实施的《电子签名法》也开始承受各种压力。
两次“碰撞”惊世界
在参加过2004年国际密码学会议(Crypto’2004)的专家们看来,“一觉醒来,一切都变了”。来自中国山东大学的王小云教授在Crypto’2004上做的破译MD5、HAVAL-128、MD4和RIPEMD算法的报告,令在场的国际顶尖密码学专家都为之震惊。该次会议的总结报告中这样写道:“我们该怎么办?MD5被重创了,它即将从应用中淘汰。SHA-1仍然活着,但也见到了它的末日。现在就得开始更换SHA-1了。”
MD5算法是1991年发布的一项数字签名加密算法,它当时解决了MD4算法的安全性缺陷,成为应用非常广泛的一种算法。作为Hash函数的一个应用实例,MD5本身也存在漏洞,但在十多年的研究及应用过程中,人们一直没有找到能够在可接受的时间及计算能力范围内迅速破解该算法的技术,因而这种理论上的瑕疵并没有影响MD5的应用。事实上,以MD5为应用代表的Hash函数的研究在国际密码学界早已不是热门,因而,王小云在“Crypto’2004”上发布的报告令整个密码学界醍醐灌顶,国际同行们开始研究王小云的理论,希望能沿着这条新路找到更多宝藏。
在MD5被王小云踩在脚下之后,世界密码学界仍然认为SHA-1是安全的算法。2005年2月7日,美国国家标准技术研究院(NIST)对外宣称,SHA-1还没有被攻破,并且也没有足够的理由怀疑它会很快被攻破。仅在一周之后,王小云教授再度令世界密码学界大跌眼镜——SHA-1也被她“碰撞”了。
SHA-1的应用范围或许比MD5更加广泛,其安全性较MD5要高出很多。SHA-1是美国国家标准技术研究院(NIST)与美国国家安全局(NSA)共同设计的,一些重要的场合都选择SHA-1来做数字签名。美国政府更是早在1994年就开始采用了SHA-1算法。因此,SHA-1被破的消息一经传出,在国际社会的反响甚至超出半年前MD5被破时的情景。NIST表示,为配合先进的计算机技术,美国政府5年内将不再使用SHA-1,并计划在2010年前改用先进的SHA-224、SHA-256、SHA-384及SHA-512的数字签名加密算法。
在我国,MD5和SHA-1也是在实际应用中最广泛的两种数字签名算法,包括网上银行等金融业务在内的很多数字签名都采用SHA-1或MD5算法。在《电子签名法》实施后,数字签名算法的可靠性将提升到可影响司法取证结果的高度。
王小云教授取得的成果之所以能引起全球密码学界的广泛关注,一方面是由于在实用密码体系中MD5和SHA-1确实是应用最为广泛的极为重要的两个算法,因而这个成果具有难以估量的实际意义;另一方面则是因为她发明了一种可以迅速而有效地验证一系列Hash函数算法健壮性的工具,从而令Hash函数的一些隐含弱点更快地暴露在人们眼前,这在学术研究上具有更大的理论价值。
Hash函数遇窘境
Hash函数又称杂凑函数,用于摘要算法,它是将不定长的明文信息经过复杂的运算得到一个定长的数值,这就是“签名”。摘要算法与一般的对称或非对称加密算法不同,它并不用于防止信息被窃取,而是用于证明原文的完整性和准确性,也就是说,数字签名主要是用于防止信息被篡改。
由于Hash函数产生定长的数字签名,其结果是个有限的集合,而待签名的明文信息可以是计算机网络上传输的任意信息,也就是说,明文信息是一个无限集合,两个集合之间其实无法构成一一对应的关系,总会有多个明文信息产生相同的数字签名的情况发生,这就是所谓的“碰撞”。不过Hash函数的可靠性在概率上仍可以算法的健壮性来保证,数字签名类似指纹,只要选择足够安全的算法,产生碰撞的概率就会足够小,可令现代最先进的计算设备也找不出“碰撞”,这样算法就不会被破解了。
MD5和SHA-1就曾经被认为是足够安全的Hash算法。虽然早在1994年就有研究报告指出,如果用运算能力最强的机器,平均用24天就可能找到一个MD5的碰撞,但这个方法的效率和成本在现实中并不具备实际的意义。王小云在接受本报记者独家采访时透露,她独创的“模差分”算法可以用一般性能的计算机在两个小时内就找到MD5的碰撞,已经为实际应用提供了可能。
记者与一位曾经是国内顶级黑客的信息安全界的朋友探讨过王小云教授取得的这两项成果,这位朋友私下告诉记者,其实国内的黑客们很早就注意到王小云教授的研究成果了,他们认为,王小云的工作更重要的意义在于证明了MD5和SHA-1等一系列Hash值的分布是有明显规律的,这就从理论上将以往常用的穷举式试验攻击的难度降低到难以想像的地步,“现在是两个小时,我相信肯定有高手已经在研究如何优化利用王小云的成果了,实际应用中的破解是迟早的事儿”。
事实上,最近已有外电报道称国际密码专家Lenstra利用王小云教授的方法,伪造了符合X.509标准的数字证书,这说明MD5的破解已经不只是理论上的成果。同时,王小云教授对本报记者表示,现在媒体报道中提及的SHA-1碰撞在理论上虽然被破译,但“离实际应用还有一段距离,这个具体的时间还不好说,虽然MD5的碰撞从理论到实际应用只用了半年时间,可是SHA-1的算法要比MD5复杂很多,没有发生的事情谁也不好讲,我只能说我们已经掌握了比以往更强大的研究工具,因而研究的进展会加快很多。”
王小云教授在接受采访时还表示,其实对于HAVAL-128、MD4和RIPEMD等算法的破解也是非常重要的成果,只是媒体在炒作中往往忽略了这些细节,“如果没有MD5和SHA-1的破解,像HAVAL-128、RIPEMD这些算法的研究结果也是非常重要的,虽然MD4很早就被MD5替换了,但是今天我们掌握的方法可以比以往更迅速地找到‘碰撞’,这套方法是最重要的,这比找到某一两个算法的碰撞更为重要。”
在王小云教授看来,Hash函数遇到这样的“裂缝”事件倒也未必是坏事,“现在最重要的工作是应该尽快设计出更安全的算法,而这项工作在很大程度上也取决于我们掌握的评估工具”,王小云告诉记者,“模差分”方法正是这样一套完备的算法研究与评估的工具。
数字签名待拷问
对于王小云教授来说,无论破解现有的算法还是设计新的算法,都只是理论上的一种研究;但是对其他人来讲,王小云教授给出的“碰撞”早已超出了两篇论文的冲击。
2005年4月1日,也就是记者截稿的这一天,《电子签名法》在我国开始正式实施,这部法律规定,可靠的电子签名与手写签名或盖章具有同等的法律效力,而面对这种关键的数字签名算法产生的新问题,电子签名法的实施将面临一次考验。
早在去年8月王小云教授公布MD5碰撞的研究成果时,中国金融认证中心(CFCA)就在其网站上发布了一份声明,该声明称:“CFCA在建立之初,已经对MD5以及其他算法进行了安全性评估。因此,在CFCA提供的应用产品和服务中,并没有采用MD5等不安全的算法,而是采用了安全的SHA-1算法,用户可以放心地使用;CFCA提供的安全应用工具包默认使用的哈希算法也是SHA-1算法,考虑到工具包对其他应用的互操作性要求,工具包也提供了MD5算法,如果用户在使用工具包进行开发时,不使用默认的算法而采用了MD5算法,请立即修改自己的程序,采用默认的SHA-1算法,以避免MD5的缺陷产生的影响。”这份声明至今还挂在CFCA的网站上,但声明中提到的“安全的SHA-1算法”显然已被王小云教授的最新研究成果证明是和“曾经安全的MD5”一样不再值得人们信赖了。
不过,王小云教授也表示,现在对SHA-1的研究仍是理论破解,并未像MD5那样已经有实际应用的例子,所以人们还没有必要对银行存款之类的安全问题产生太多的担心。但没有立即的威胁出现并不表示会一直太平无事,对于有关部门来说,确实该考虑提前将SHA-1换成更安全的算法了。
对于SHA-1碰撞的实际意义,王小云教授的合作者,参与过SHA-1算法研究的尹依群博士曾在美国接受媒体采访时透露,现在使用王小云教授的方法,要找到SHA-1的一个碰撞,需要的计算能力大约相当于用5万台超级计算机工作100年,这已经超出了现有计算资源的能力范围。同时,尹博士也指出,这并不能排除近期内SHA-1快速找到实际碰撞的可能性,她也认为尽快将SHA-1更换到更安全的算法是很有必要的。
随着王小云教授的研究成果被越来越多的人所了解,业界对于MD5和SHA-1在数字签名中的应用开始逐渐分化成两种态度。
来自学术界的研究人员多认为MD5和SHA-1的安全性既然已经无法在技术上绝对保证,那么在实际的应用中就应该尽可能地考虑到算法漏洞的影响,至少在法律上,这些已经被证明不够安全的算法不应该再作为数字签名的法律依据。
而企业面对的问题就没有那么单纯,如果这些算法必须更换,那就意味着对部分产品的前期投入成为浪费,尤其是芯片级的固件,加密算法一经写入就很难更改,产品的生命周期随着所采用的加密算法的失效将走到尽头。所以对于这些企业来说,更换算法就意味着更换产品,随之而来的就是成本的增加;不更换算法,产品就要在未来承受未知的安全风险,一旦出现问题,后果更为严重。
某信息安全企业的技术总监告诉记者,既然王小云教授的研究成果从理论到实际上都撼动了Hash函数这个数字签名算法的根基,现在留给业界的将是看起来矛盾重重的混乱局面,“包括我们在内的很多厂商都要尽快考虑更换算法的问题,尤其是在数字签名中应用了MD5算法的产品,升级已势在必行。虽然没有哪家企业愿意对外公开这种影响,但这个工作大家都必须尽快着手去做了。”
国际顶尖密码学专家对王小云研究成果的评价 :
Ronald L.Rivest(2002年图灵奖获得者,RSA密码发明人之一,MD5的创造者,世界最权威的密码学专家之一):
我的研究方向之一是“Hash函数”,这种函数是目前许多密码系统应用的核心。我曾经设计过一些Hash函数,其中的MD5由于拥有优越的高效及安全性能,得到了普遍的认可和广泛的应用。尽管有人曾发现MD5函数的某些方面存在着安全隐患,但一直以来,MD5都无法被破解。此外,还有许多其他的密码Hash函数(如SHA-1,RIPEMD等)情况也类似。
然而令人惊异的是,在王小云教授的带领下,MD5函数和其他一些Hash函数在近期都被破解了。MD5函数十几年来经受住了众多密码学专家的攻击,而王小云教授却成功地破解了它,这实在是一种令人印象极深的卓越成就,是高水平的世界级研究成果。这些结果无疑给人非常深刻的印象,她应当得到我最热烈的祝贺。当然,我并不希望看到MD5就这样倒下,但人必须尊重真理。
Adi Shamir(2002年图灵奖获得者,RSA密码发明人之一,SSSS的创造者):
关于王小云教授所做的工作,我想强调的是她所研究的Hash函数是近15年来密码研究学中最不活跃的领域。所有主要的Hash函数早在1980年代末或1990年代初就已经被发展和定型,并且后来几乎也没有再出现有过关其安全性的研究成果。而王教授的研究以独特的方式打破了这种沉闷的局面,并对该领域的理论研究和实际应用产生了极大的影响。特别是一些被广泛应用的Hash函数,如MD5,将不会再被使用。而未来的Hash函数将会以新的设计原则来发展。
MD5和SHA-1算法
MD5和SHA-1都属于散列(Hash)算法,其作用是可以将不定长的信息(原文)经过处理后得到一个定长的摘要信息串,对同样的原文用同样的散列算法进行处理,每次得到的信息摘要串相同。Hash算法是单向的,一旦数据被转换,就无法再以确定的方法获得其原始值。事实上,在绝大多数情况下,原文的长度都超过摘要信息串的长度,因此,在散列计算过程中,原文的信息被部分丢失,这使得原文无法从摘要信息重构。散列算法的这种不可逆特征使其很适合被用来确认原文(例如公文)的完整性,因而被广泛用于数字签名的场合。
如果除了原文之外,对于另外一段不同的信息进行相同散列算法,得到的摘要信息与原文的摘要信息相同,则称之为碰撞,散列算法通常可以保证碰撞也很难根据摘要被求出。
MD5(RFC1321)诞生于1991年,全称是“Message-Digest Algorithm(信息摘要算法)5”,由MIT的计算机安全实验室和RSA安全公司共同提出,之前已经有MD2、MD3和MD4几种算法。MD5克服了MD4的缺陷,生成128bit的摘要信息串,出现之后迅速成为主流算法,并在1992年被收录到RFC中。
SHA诞生于1993年,全称是安全散列算法(Secure Hash Algorithm),由美国国家安全局(NSA)设计,之后被美国标准与技术研究院(NIST)收录到美国的联邦信息处理标准(FIPS)中,成为美国国家标准,SHA(后来被称做SHA-0)于1995被SHA-1(RFC3174)替代。SHA-1生成长度为160bit的摘要信息串,虽然之后又出现了SHA-224、SHA-256、SHA-384和SHA-512等被统称为“SHA-2”的系列算法,但仍以SHA-1为主流。
MD5和SHA-1是当前应用最为广泛的两种散列算法。常见的Unix系统口令以及多数论坛/社区系统的口令都是经MD5处理后保存其摘要信息串,在互联网上,很多文件在开放下载的同时都提供一个MD5的信息摘要,使下载方(通过MD5摘要计算)能够确认所下载的文件与原文件一致,以此来防止文件被篡改。
MD5和SHA-1还常被用来与公钥技术结合来创建数字签名。当前几乎所有主要的信息安全协议中都使用了SHA-1或MD5,包括SSL(HTTPS就是SSL的一种应用)、TLS、PGP、SSH、S/MIME和IPSec,因此可以说SHA-1和MD5是当前信息安全的重要基础之一。
不过,从技术上讲,MD5和SHA-1的碰撞可在短时间内被求解出并不意味着两种算法完全失效。例如,对于公文的数字签名来说,寻找到碰撞与寻找到有特定含义的碰撞之间仍有很大的差距,而后者才会使伪造数字公文成为现实。但无论如何,王小云教授所掌握的方法已经为短时间内寻找到MD5或SHA-1的碰撞成为可能,这足以使经过MD5或SHA-1处理的数字签名再也难以成为法律认可的依据。
注:为啥发这个文章呢,因为CSDN把这个文章搞成VIP才能看。可恨。