前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >王小云院士真地破解了MD5吗

王小云院士真地破解了MD5吗

作者头像
恋喵大鲤鱼
发布2019-03-11 10:47:49
11.6K0
发布2019-03-11 10:47:49
举报
文章被收录于专栏:C/C++基础C/C++基础

1.MD5简介

MD5(Message-Digest Algorithm 5)是一种被广泛使用的消息摘要算法,也称为哈希算法、散列算法或杂凑算法,可以产生出一个定长的128位(16字节)的散列值(Hash Value),一般用于数字签名以确保信息传输完整性与密码的加密存储。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。

2.MD5的应用场景

一个安全的散列算法需要满足如下两个条件,也是散列算法的两个特性。 (1)抗碰撞性。根据一个输入,找到一个其它输入得到相同的输出,在计算上是不可行的; (2)不可逆性。根据一个输出,找到一个输入其散列值等于输出,在计算上是不可行的,即不可能从结果逆向推导初始值。

注意,抗碰撞性并不是说散列算法无碰撞,无碰撞的算法不可能是一个散列算法,而只能是一个无损压缩算法,因为散列算法在计算过程中必然会丢失原文部分信息。

MD5作为一个应用广泛散列算法,满足上述两个特点。根据第一个特点,MD5可用于信息的数字签名用来验证信息传输的完整性和发送者的身份认证。根据第二个特点,MD5可用于用户密码的散列存储。

(1)信息的数字签名。 对重要信息进行MD5计算生成散列值,作为信息的数字签名,用于确定信息在传输过程中是否被篡改以及发送者的身份认证。

(2)用户密码的散列存储。 常见用途就是网站敏感信息加密,比如用户名密码。将用户密码进行散列计算后落地存储,即使被拖库,用户的密码仍是安全的,因为MD5算法的不可逆性决定无法通过散列值逆向推算出密码。当然,密码破解有很多方法,比如暴力破解、彩虹表等,还是有可能从正向破解密码散列值的。

3.MD5生成的Hash值为什么不可逆

因为MD5算法里面有很多不可逆的运算,会丢失很多原文的信息,无法找回,所以是不可逆的。比如移位,假设:10010001 左移两位后是01000100,你没有什么办法把它移回来。

4.王小云院士真地破解了MD5吗

所谓的“破解”其实误导了很多人,并不是说扔给王小云一个MD5散列值,然后她马上就能算出一个原文来。从密文推算出明文理论上是不可能的,所以王小云的研究成果并不能通过MD5的散列值逆向推算出明文。即给定Hash值,王小云不能逆向计算出M。

代码语言:javascript
复制
MD5(M)=Hash

其中M指的是密码的明文,Hash表示密码散列后的密文。

实际上,王小云的研究成果如下:

代码语言:javascript
复制
MD5(M1)=MD5(M2)

即给定消息M1,能够计算获取M2,使得M2产生的散列值与M1产生的散列值相同。如此,MD5的抗碰撞性就已经不满足了,使得MD5不再是安全的散列算法。这样一来,MD5用于数字签名将存在严重问题,因为可以篡改原始消息,而生成相同的Hash值。

这里,简单地用王教授的碰撞法给大家举个简单的例子。假如用户A给B写了个Email内容为Hello,然后通过王教授的碰撞法,可能得到Fuck这个字符串的摘要信息和Hello这个这个字符串产生的摘要信息是一样的。如果B收到的Email内容为Fuck,经过MD5计算后的,B也将认为是A发来的Email,并且没有被修改过!但是事实并非如此。

王小云院士的研究报告表明,MD4, MD5, HAVAL-128、RIPEMD和SHA-1均已被证实存在上面的漏洞,即给定消息M1,能够找到不同消息M2产生相同的散列值,即产生Hash碰撞。

5.结论

虽然MD5、SHA1已经被证实在数字签名存在安全问题,但是MD5、SHA1在密码的散列存储方面还是很安全的算法,只要密码足够复杂,加盐且迭代次数足够多,基本能够抗得住主流的口令破解方法,比如暴力穷举、彩虹表、字典攻击、词表重整攻击、概率上下文无关文法等。


参考文献

[1]王小云的报告 [2]关于王小云破解MD5之我见 [3]关于HASH和MD5,王小云教授的“解密” [4]吕吕.基于DCR系统的多功能口令恢复平台[D].华南理工大学

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年02月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.MD5简介
  • 2.MD5的应用场景
  • 3.MD5生成的Hash值为什么不可逆
  • 4.王小云院士真地破解了MD5吗
  • 5.结论
  • 参考文献
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档