lfcui
驱动牛犊
驱动牛犊
  • 注册日期2002-02-05
  • 最后登录2008-06-20
  • 粉丝0
  • 关注0
  • 积分51分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1087回复:2

山东大学王小云教授成功破解MD5

楼主#
更多 发布于:2005-03-25 16:29
作者:YeahTech 来源:Yeah!!网络学院
2004年8月17日的美国加州圣巴巴拉,正在召开的国际密码学会议(Crypto’2004)安排了三场关于杂凑函数的特别报告。在国际著名密码学家Eli Biham和Antoine Joux相继做了对SHA-1的分析与给出SHA-0的一个碰撞之后,来自山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告。在会场上,当她公布了MD系列算法的破解结果之后,报告被激动的掌声打断。王小云教授的报告轰动了全场,得到了与会专家的赞叹。报告结束时,与会者长时间热烈鼓掌,部分学者起立鼓掌致敬,这在密码学会议上是少见的盛况。王小云教授的报告缘何引起如此大的反响?因为她的研究成果作为密码学领域的重大发现宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。会议总结报告这样写道:“我们该怎么办?MD5被重创了;它即将从应用中淘汰。SHA-1仍然活着,但也见到了它的末日。现在就得开始更换SHA-1了。”
    
     关键词:碰撞=漏洞=别人可以伪造和冒用数字签名。
     Hash函数与数字签名(数字手印)
     HASH函数,又称杂凑函数,是在信息安全领域有广泛和重要应用的密码算法,它有一种类似于指纹的应用。在网络安全协议中,杂凑函数用来处理电子签名,将冗长的签名文件压缩为一段独特的数字信息,像指纹鉴别身份一样保证原来数字签名文件的合法性和安全性。在前面提到的SHA-1和MD5都是目前最常用的杂凑函数。经过这些算法的处理,原始信息即使只更动一个字母,对应的压缩信息也会变为截然不同的“指纹”,这就保证了经过处理信息的唯一性。为电子商务等提供了数字认证的可能性。
     安全的杂凑函数在设计时必须满足两个要求:其一是寻找两个输入得到相同的输出值在计算上是不可行的,这就是我们通常所说的抗碰撞的;其二是找一个输入,能得到给定的输出在计算上是不可行的,即不可从结果推导出它的初始状态。现在使用的重要计算机安全协议,如SSL,PGP都用杂凑函数来进行签名,一旦找到两个文件可以产生相同的压缩值,就可以伪造签名,给网络安全领域带来巨大隐患。
     MD5就是这样一个在国内外有着广泛的应用的杂凑函数算法,它曾一度被认为是非常安全的。然而,王小云教授发现,可以很快的找到MD5的“碰撞”,就是两个文件可以产生相同的“指纹”。这意味着,当你在网络上使用电子签名签署一份合同后,还可能找到另外一份具有相同签名但内容迥异的合同,这样两份合同的真伪性便无从辨别。王小云教授的研究成果证实了利用MD5算法的碰撞可以严重威胁信息系统安全,这一发现使目前电子签名的法律效力和技术体系受到挑战。因此,业界专家普林斯顿计算机教授Edward Felten等强烈呼吁信息系统的设计者尽快更换签名算法,而且他们强调这是一个需要立即解决的问题。
    
     国际讲坛王氏发现艳惊四座
     面对Hash函数领域取得的重大研究进展,Crypto 2004 会议总主席StorageTek高级研究员Jim Hughes 17 日早晨表示,此消息太重要了,因此他已筹办该会成立24年来的首次网络广播(Webcast )。Hughes在会议上宣布:“会中将提出三份探讨杂凑碰撞(hash collisions )重要的研究报告。”其中一份是王小云等几位中国研究人员的研究发现。17日晚,王小云教授在会上把他们的研究成果做了宣读。这篇由王小云、冯登国、来学嘉、于红波四人共同完成的文章,囊括了对MD5、HAVAL-128、 MD4和RIPEMD四个著名HASH算法的破译结果。在王小云教授仅公布到他们的第三个惊人成果的时候,会场上已经是掌声四起,报告不得不一度中断。报告结束后,所有与会专家对他们的突出工作报以长时的热烈掌声,有些学者甚至起立鼓掌以示他们的祝贺和敬佩。当人们掌声渐息,来学嘉教授又对文章进行了一点颇有趣味的补充说明。由于版本问题,作者在提交会议论文时使用的一组常数和先行标准不同;在会议发现这一问题之后,王小云教授立即改变了那个常数,在很短的时间内就完成了新的数据分析,这段有惊无险的小插曲倒更加证明了他们论文的信服力,攻击方法的有效性,反而凸显了研究工作的成功。
     会议结束时,很多专家围拢到王小云教授身边,既有简短的探讨,又有由衷的祝贺,褒誉之词不绝。包含公钥密码的主要创始人R. L. Rivest和A. Shamir在内的世界顶级的密码学专家也上前表示他们的欣喜和祝贺。
     国际密码学专家对王小云教授等人的论文给予高度评价。
     MD5的设计者,同时也是国际著名的公钥加密算法标准RSA的第一设计者R.Rivest在邮件中写道:“这些结果无疑给人非常深刻的印象,她应当得到我最热烈的祝贺,当然,我并不希望看到MD5就这样倒下,但人必须尊崇真理。”
     Francois Grieu这样说:“王小云、冯登国、来学嘉和于红波的最新成果表明他们已经成功破译了MD4、MD5、HAVAL-128、RIPEMD-128。并且有望以更低的复杂度完成对SHA-0的攻击。一些初步的问题已经解决。他们赢得了非常热烈的掌声。”
     另一位专家Greg Rose如此评价:“我刚刚听了Joux和王小云的报告,王所使用的技术能在任何初始值下用2^40次hash运算找出SHA-0的碰撞。她在报告中对四种HASH函数都给出了碰撞,她赢得了长时间的起立喝彩,(这在我印象中还是第一次)。…… 她是当今密码学界的巾帼英雄。……(王小云教授的工作)技术虽然没有公开,但结果是无庸质疑的,这种技术确实存在。…… 我坐在Ron Rivest前面,我听到他评论道:‘我们不得不做很多的重新思考了。’”
    
     石破惊天MD5堡垒轰然倒塌
     一石击起千层浪,MD5的破译引起了密码学界的激烈反响。专家称这是密码学界近年来“最具实质性的研究进展”,各个密码学相关网站竞相报导这一惊人突破。
     MD5破解专项网站关闭
     MD5破解工程权威网站http://www.md5crk.com/ 是为了公开征集专门针对MD5的攻击而设立的,网站于2004年8月17日宣布:“中国研究人员发现了完整MD5算法的碰撞;Wang, Feng, Lai与Yu公布了MD5、MD4、HAVAL-128、RIPEMD-128几个 Hash函数的碰撞。这是近年来密码学领域最具实质性的研究进展。使用他们的技术,在数个小时内就可以找到MD5碰撞。……由于这个里程碑式的发现,MD5CRK项目将在随后48小时内结束”。
     对此,http://www.readyresponse.org主页专门转载了该报道http://www.aspenleaf.com/distributed/distrib-recent.html和几个其它网站也进行了报道。
     权威网站相继发表评论或者报告这一重大研究成果
     经过统计,在论文发布两周之内,已经有近400个网站发布、引用和评论了这一成果。国内的许多新闻网站也以“演算法安全加密功能露出破绽 密码学界一片哗然”为题报道了这一密码学界的重大事件。(报导见http://www.technewsworld.com/per ... nded&mview=flat,该消息在各新闻网站上多次转载。)
    
     东方神韵 MD5终结者来自中国
     MD5破解工作的主要成员王小云教授是一个瘦弱、矜持的女子,厚厚的镜片透射出双眸中数学的灵光。她于1990年在山东大学师从著名数学家潘承洞教授攻读数论与密码学专业博士,在潘先生、于秀源、展涛等多位著名教授的悉心指导下,她成功将数论知识应用到密码学中,取得了很多突出成果,先后获得863项目资助和国家自然科学基金项目资助,并且获得部级科技进步奖一项,撰写论文二十多篇。王小云教授从上世纪90年代末开始进行HASH函数的研究,她所带领的于红波、王美琴、孙秋梅、冯骐等组成的密码研究小组,同中科院冯登国教授,上海交大来学嘉等知名学者密切协作,经过长期坚持不懈的努力,找到了破解HASH函数的关键技术,成功的破解了MD5和其它几个HASH函数。
     近年来她的工作得到了山东大学和数学院领导的大力支持,特别投资建设了信息安全实验室。山东大学校长展涛教授高度重视王小云教授突出的科研成果。 2004年6月山东大学领导听取王小云教授的工作介绍后,展涛校长亲自签发邀请函邀请国内知名信息安全专家参加2004年7月在威海举办的“山东大学信息安全研究学术研讨会”,数学院院长刘建亚教授组织和主持了会议,会上王小云教授公布了MD5等算法的一系列研究成果,专家们对她的研究成果给予了充分的肯定,对其坚持不懈的科研态度大加赞扬。一位院士说,她的研究水平绝对不比国际上的差。这位院士的结论在时隔一个月之后的国际密码会上得到了验证,国外专家如此强烈的反响表明,我们的工作可以说不但不比国际上的差,而且是在破解HASH函数方面已领先一步。加拿大CertainKey公司早前宣布将给予发现MD5算法第一个碰撞人员一定的奖励,CertainKey的初衷是利用并行计算机通过生日攻击来寻找碰撞,而王小云教授等的攻击相对生日攻击需要更少的计算时间。
    
     数字认证你的未来不是梦
     由于MD5的破译,引发了关于MD5产品是否还能够使用的大辩论。在麻省理工大学Jeffrey I. Schiller教授主持的个人论坛上,许多密码学家在标题为“Bad day at the hash function factory”的辩论中发表了具有价值的意见(http://jis.mit.edu/pipermail/saag/2004q3/000913.html)。这次国际密码学会议的总主席Jimes Hughes发表评论说“我相信这(破解MD5)是真的,并且如果碰撞存在,HMAC也就不再是安全的了,…… 我认为我们应该抛开MD5了。” Hughes建议,程序设计人员最好开始舍弃MD5。他说:“既然现在这种算法的弱点已暴露出来,在有效的攻击发动之前,现在是撤离的时机。”
     同样,在普林斯顿大学教授Edwards Felton的个人网站(http://www.freedom-to-tinker.com/archives/000664.html)上,也有类似的评论。他说:“留给我们的是什么呢?MD5已经受了重伤;它的应用就要淘汰。SHA-1仍然活着,但也不会很长,必须立即更换SHA-1,但是选用什么样的算法,这需要在密码研究人员达到共识。”
     密码学家Markku-Juhani称“这是HASH函数分析领域激动人心的时刻。(http://www.tcs.hut.fi/~mjos/md5/)”
     而著名计算机公司SUN的LINUIX专家Val Henson则说:“以前我们说\"SHA-1可以放心用,其他的不是不安全就是未知\", 现在我们只能这么总结了:\"SHA-1不安全,其他的都完了\"。
     针对王小云教授等破译的以MD5为代表的Hash函数算法的报告,美国国家技术与标准局(NIST)于2004年8月24日发表专门评论,评论的主要内容为:“在最近的国际密码学会议(Crypto 2004)上,研究人员宣布他们发现了破解数种HASH算法的方法,其中包括MD4,MD5,HAVAL-128,RIPEMD还有 SHA-0。分析表明,于1994年替代SHA-0成为联邦信息处理标准的SHA-1的减弱条件的变种算法能够被破解;但完整的SHA-1并没有被破解,也没有找到SHA-1的碰撞。研究结果说明SHA-1的安全性暂时没有问题,但随着技术的发展,技术与标准局计划在2010年之前逐步淘汰SHA-1,换用其他更长更安全的算法(如SHA-224、SHA-256、SHA-384和SHA-512)来替代。”
     详细评论见:http://csrc.nist.gov/hash_standards_comments.pdf
     2004年8月28日,十届全国人大常委会第十一次会议表决通过了电子签名法。这部法律规定,可靠的电子签名与手写签名或者盖章具有同等的法律效力。电子签名法的通过,标志着我国首部“真正意义上的信息化法律”已正式诞生,将于2005年4月1日起施行。专家认为,这部法律将对我国电子商务、电子政务的发展起到极其重要的促进作用。王小云教授的发现无异于发现了信息化天空的一个惊人黑洞。我们期待着王小云教授和她的团队能够成就“女娲补天”的壮举,为人类的信息化之路保驾护航。
人生是黑白的!
lfcui
驱动牛犊
驱动牛犊
  • 注册日期2002-02-05
  • 最后登录2008-06-20
  • 粉丝0
  • 关注0
  • 积分51分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-25 16:31
CSDN一篇报道说中国数学家王小云等在Crypto 2004上提出一种能成功攻破MD5的算法,GIGIX和王兄都在BLOG里引用了相关的报道。

MD5是一种摘要算法,所以理论上是不可能从签名取得原文(见下面说明)。认为要从MD5的结果中取得原文才算破解,本身就是对摘要算法的误解。它通常应用于数字签名中,用于标识原文的原始性--即在签名后未作任何的修改。如果可以用不同的原文可以产生相同的签名,这也就意味着签名可能失效,就已经可以证明这种摘要算法的不安全。

RL提供的王小云的报告我看了一下,因为我不是做这方面的,所以对MD5算法本身的实现,以及文中所引用的之前别人的理论都并不了解,所以不是很明白。在这份报告中,介绍MD5破解的部分只有一页半,并未细说具体的算法,但在末尾附了两对1024位原文的碰撞例子,较之96年别人提出的512位碰撞有了很大的进步,并且计算量据说在一个小时左右。

这些都是进步,如果把这说成是吹嘘就未免有点妄自菲薄了。

王小云的发现证明了有方法可以产生碰撞,但正如GIGIX那边一位匿名兄所说,这只是非特定碰撞,而要伪造签名则必须能产生特定碰撞。所以说MD5并未被完全攻破,但也已经是一个重大的突破了。

因为我手头没有像《应用密码学》这样的介绍具体密码算法的书,只有一本卢开澄的《计算机密码学》,主要是从数学的角度介绍了几类密码算法的原理及其适用领域。不过因为密码学是基于较为高深的数学理论,比如数论、群论、有限域等,但俺的数学不行,所以具体理论也说不出个一二三四来,只能泛泛地说个五六七八。^O^

首先要说的是为什么需要使用密码?因为我们通常的通信环境是不安全的。

那什么是不安全的通信环境呢?不安全至少表现在两个方面:一是通信的内容可能被窃取;二是通信的内容可能被篡改。

通常的密码使用就是为这解决这两方面的问题。

而如果有方法使某种密码的作用失效,就可以说这种密码被破解了。

当然不安全还有一些其它的方面,那些问题通常除了需要密码以外,还需要用一些特别的协议,很少碰到,这里就不提了。

常用的密码有很多种类,其中最常用的是这三种:
1、对称密码
2、非对称密码
3、摘要

对称密码的特点是:加密与解密用相同的密钥,甚至可能用相同的算法。比如从最简单的异或,到常用的DES、BLOWFISH、IDEA等。它们通常的用途是这样的:

发送方将源文(M)用密钥(K)加密:E=ENC(M,K)
然后将E通过不安全网络传给接收方,接收方用相同的密钥(K)解密:M=DEC(E,K)

只要算法足够好,并且保管好密钥(K),就可以保证这种通信是安全的,因为别人即使知道了密文(E)和算法ENC/DEC,也无法知道明文(M)。

对于这种密码来说,如果有方法可以从密文(E)和算法ENC/DEC中导到密钥(K)或明文(M),则意味这种密码被破解。比如简单异或算法就可以用统计分析法简单地破解掉。但即使是现在被认为不够安全的DES算法(已经有近三十年历史了),也需要有大量的明文/密文对(2的数十次方对),并需要大量的计算时间才能求得其密钥(K)。

非对称密码是因为这样的原因:因为在对称密码中,通信双方需要约定一个共同的密钥(K),如果这个约定过程也不安全,就可能出现密钥的泄露,而对于对称算法来说,密钥一旦泄露,之后的通信过程也就不攻自破了。

通常的非对称密码就是所谓的公钥密码算法,比如现在最常用的RSA(由R. L. Rivest和A. Shamir等人基于大数的因数分解极为困难的原理而创建),或是最近更为时髦的“椭圆曲线”,因为我的数学水平太差,具体算法也说不清楚,只知道大致是这样的:

顾名思义,它所用的算法特点在于加密与解密用的密钥是不一样的。做法大致如下:

发送方自己生成一对密钥:私钥(KA)和公钥(KPA)
接收方也生成一对密钥:(KB)和(KPB)
其中(KPA)和(KPB)是公开的
发送方用算法:E=ENC(ENC(M,KA),KPB)
进行两次加密,接收方用算法:M=DEC(DEC(E,KB),KPA)
进行两次解密,即可得到原文。
而其中双方都不需要知道对方的私钥,这就避免了约定密钥导致的不安全。
非对称密码的算法本身又决定了用私钥加密的内容必须用公钥才能解,反之亦然,并且算法还保证仅知道公钥和密文无法导出私钥,由此决定了通信的安全。

当然,如果有方法可以从公钥导出私钥来,则这种算法即告被破解。但至少目前RSA还是安全的,因为从现在的数学理论上可以证明RSA的算法是一类NPC(NP完备)类问题,只要密钥足够长(RSA要求至少是10的100次方以上,实际使用时更要大得多),以现在最先进的计算机来算,其时间成本也是不可能达到的。

摘要算法则与上面两种完全不同,前面两种密码是用于防止信息被窃取,而摘要算法的目标是用于证明原文的完整性,也就是说用于防止信息被篡改。通常也被称为:HASH算法、杂凑算法、签名算法。它的特点是:从不定长的原文中产生一个固定长度(如MD5是128位)的结果,称为“签名”(S),这个签名必须对原文非常敏感,即原文即使是有少量的变化,也会导致这个签名面目全非。比如传统的CRC或是现在要说的MD5、SHA等都是这类算法。

摘要算法的用途通常是这样的:

比如用户密码验证:如Linux或一些论坛用的方法,用户设置密码时,服务端只记录这个密码的MD5,而不记录密码本身,以后验证用户身份时,只需要将用户输入的密码再次做一下MD5后,与记录的MD5作一个比较即可验证其密码的合法性。

比如发布文件的完整性验证:比如发布一个程序,为了防止别人在你的程序里插入病毒或木马,你可以在发布这个程序的同时,公开这个程序文件的MD5码,这样别人只需要在任何地方下载这个程序后做一次MD5,然后跟公开的这个MD5作一个比较就知道这个程序是否被第三方修改过。

一个安全的摘要算法在设计时必须满足两个要求:其一是寻找两个输入得到相同的输出值在计算上是不可行的,这就是我们通常所说的抗碰撞的;其二是找一个输出,能得到给定的输入在计算上是不可行的,即不可从结果推导出它的初始状态。

反之,如果某种摘要算法不能同时满足上面两个条件,则它就是不安全的。其实主要还是前一个条件,因为从理论上很容易证明后面一个条件基本上都是可以满足的:

摘要算法对任意长的原文产生定长的签名,按照香农的信息论,当原文的长度超过一定的程度的时候,签名中就无法记录原文中的所有信息,这意味着存在着信息的丢失,所以我说理论上不可能从签名中恢复原文。

为什么说理论上呢?就是说当这种摘要算法被完全攻破时,也就是说可以从签名恢复出任意原文,注意:是任意原文,因为所有的摘要算法的特点就是存在着一个无穷大的碰撞原文的集合。而真正的原文只是其中一份。对应这个无穷大的集合来说,这就是一个无穷小,便是我曾经说过的:

可能性为零,不表示不可能。

解释得具体一点是这样:假设原文含有信息量(I),而签名的长度有限(如MD5的128位),则它的信息量只有(i),因为通常 i < I (除非原文非常短),所以可以这么说:I=i+i\'。因为I没有限制,而i有限制,则 i\' 也是一个没有限制的量。当进行摘要算法后,i\' 信息就丢失了。

反过来,如果现在这种摘要算法被攻破了,可以从 i 反推回去,但因为 i\' 信息已经丢失,意味着 i + I\' (其中 I\' 为任意信息)都可能是 I (碰撞)。但 I\' 是一个无穷集合,并且 i\' 属于 I\'。这说明:理论上可以从 I\' 中找到 i\' 从而恢复出原文 I ,但是可能性为零(1/∞=0)。

但要做到前面一点就不容易了。因为绝对无碰撞的算法不可能是一个摘要算法,而只能是一个无损压缩算法。它必须包含原文的所有信息,也就意味着它一但被攻破,可以唯一地恢复出原文。并且它的结果肯定是不定长的,因为它需要包含原文的所有信息,当然会根据原文的长度而变。仅这两点就决定了,它不可能是一个好的签名算法。

最主要的一点是:摘要算法的用途决定了,它只要能找到碰撞就足以让它失效,并不需要找到原文。

以前面的两个例子来说:

比如Linux的用户安全机制,只要得到用户密码文件(其中记录了密码的MD5),然后随便生成一个碰撞的原文(不一定要跟原密码相同),就可以用这个密码登录了。

但后面的程序发布的例子就要难得多,因为它必须能生成特定的碰撞,即在程序中插入病毒或木马后再填充一些数据使之生成与原来相同的MD5。

不过我昨天仔细想了一下,以MD5为例,要产生特定的碰撞应该还是不太可能的,因为MD5的128位信息量已经有点大了,如果要产生特定碰撞,需要填充的数据可能非常之大,导致伪造的原文比真实的原文大得多,可能达到若干个数量级的差别,这样的伪造就已经失去意义了。

王小云的成果已经完全使Linux用的那种基于MD5的身份验证技术失效了,虽然从技术上说它被完全攻破,还为时尚早,但从法律角度上说,已经“动摇了差不多整个数字签名界的根基”(令狐语,全文如下)。

我所谓的“动摇根基”云云,是从法律失效的角度说的,而不是从纯技术角度说的。
举个昨天我举的例子来说明一下。比如昨天我说的,假如有两个人的指纹完全相同,而且我可以很快的找出这两个人,那么,在法律角度来说,我们就不能把指纹作为一个有效证据。虽然这两个同指纹的人并没有互相冒充的意思。

同样的,现在刻意去伪造文件并产生相同的MD5码还做不到,但是,现在可以在短时间内找到两份相同的档案,他们的MD5码相同,那么,MD5作为数字签名的“法律意义”便失去了。而数字签名是用来干吗的?就是让一个电子文档具有法律意义的。所以,我说,这个发现是动摇了数字签名的根基。


--------------------------------------------------------------------------------

补充:

其实我们更应该从积极的角度来看待这个事件。

大家都学过马哲,矛盾从来都是在对立中发展的,并且将呈现出螺旋上升的态势。比如Shamir等人攻破了MH的背包公钥,但他也和别人一起提出了更好的RSA公钥。比如DES开始不安全以后,更多更强的加密手段也一一涌现。

所以说,王小云等人发现了当前所用的HASH算法存在的问题,同时也必将帮助未来的新的HASH算法设计者考虑到这方面的问题,使得新的HASH算法具有更好的安全性。

所以说,MD5被破解也未必就是坏事。

还是老子说得对:福兮祸所依,祸兮福所伏


--------------------------------------------------------------------------------

BTW:毕竟不是专业干这个的,可能有些地方不对,还请大家斧正一下。^O^

 
人生是黑白的!
green_pine
驱动太牛
驱动太牛
  • 注册日期2002-10-22
  • 最后登录2019-06-10
  • 粉丝3
  • 关注0
  • 积分48分
  • 威望599点
  • 贡献值1点
  • 好评度144点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-03-25 19:28
都是多少年的事了
游客

返回顶部