快速MD5碰撞生成器,MD5真的不可靠了.MD5用来去重和校验文件完整性已经不可靠了

【本文系外部转载,原文地址:http://ywpc120.5d6d.com/thread-796-1-1.html



快速MD5碰撞生成器,MD5真的不可靠了.
早就有说法说MD5不可靠,可是一直没有可以快速的程序证明(一个运行N年的程序是没有实际意义的),现在有了.
快速MD5碰撞生成器

两个不同文件,MD5一样的例子:
http://www.win.tue.nl/hashclash/SoftIntCodeSign/HelloWorld-colliding.exe
http://www.win.tue.nl/hashclash/SoftIntCodeSign/GoodbyeWorld-colliding.exe

这几位密码学家编写的“快速 MD5 碰撞生成器”:
http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5.exe.zip
代码
http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5_source.zip

虽然这个生成器仅仅用于构造两个文件, MD5相同但内容不同,不是从MD5值逆推出的,但是说明MD5不可靠已经足以了.
至少MD5的应用领域要大打折扣了.

MD5真的已靠不住?同样校验,不同文件!  
  MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程: 

  大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。 

  我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如 HashX 等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。 

  大家可以尽管试一下:比如建立一个TXT文件,随便打些什么进去。检验一遍MD5之后记录下来。然后对TXT稍作改动,再检验一遍。就可以发现,原来只要稍微不同,出来的MD5就已经是完全不一样的了。 

  这就是说,MD5校验的作用在于:可以知道自己从网络下载的文件,是否就是原发布者所提供的文件。很多人常抱怨使用迅雷下载的文件有问题,说到这里,相信大家已经明白,那是文件来源不一样了。以及有时候,发布者的网站可能被黑客入侵篡改,那么校验一番MD5,就可以知道是否曾被恶意植入病毒或木马了(如果网站服务器被入侵,通常发布者也不知情的)。 

  但是!从今天起,上述一切,已变得不可靠了! 

  原因在于两年前,王小云教授发布的破解算法开始,后来已经发展至可进行所谓的“MD5攻击”。 

相关阅读:如何面对最强算法MD5被破译 

老生常谈:从王小云教授成功破解MD5说起 

  下面要说的“MD5碰撞”,简而言之就是:先得出一个字符串的MD5值,再根据这个值,逆算出另外一个不同的字符串——但是它们的MD5检验值是完全一致的! 

  或许你会觉得,不同的字符串可以得出相同的MD5,也不算什么了不起的事情吧。这只不过是世上万千奇怪的数学题的一种而已。 

  但是!你可曾想过,有没有可能,让两个程序文件的MD5一致,却又都能正常运行,并且可以做完全不同的事情么? 

  答案是:还真的可以! 

http://www.win.tue.nl/hashclash/SoftIntCodeSign/HelloWorld-colliding.exe
http://www.win.tue.nl/hashclash/SoftIntCodeSign/GoodbyeWorld-colliding.exe

  这两个程序会在屏幕上打印出不同的字符,但是它们的MD5都是一致的。 

  通读其论文后摘要如下: 

  这几位密码学家使用的是“构造前缀碰撞法”(chosen-prefix collisions)来进行此次攻击(是王小云所使用的攻击方法的改进版本)。 

  他们所使用的计算机是一台 Sony PS3,且仅用了不到两天。 

  他们的结论:MD5 算法不应再被用于任何软件完整性检查或代码签名的用途。 

  另:现在,如果仅仅是想要生成 MD5 相同而内容不同的文件的话,在任何主流配置的电脑上用几秒钟就可以完成了。 

  这几位密码学家编写的“快速 MD5 碰撞生成器”: 
  http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5.exe.zip 
  源代码:http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5_source.zip 

  思考题: 

  为什么微软发布补丁程序的时候,所使用的校验方法,不是MD5,而是SHA-1呢?
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值