转自:Dablelv

原文链接:https://blog.csdn.net/K346K346/article/details/87938911

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。

MD5(M)=Hash
1
其中M指的是密码的明文,Hash表示密码散列后的密文。

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

MD5(M1)=MD5(M2)
1
即给定消息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].华南理工大学
--------------------- 
作者:Dablelv 
来源:CSDN 
原文:https://blog.csdn.net/k346k346/article/details/87938911 
版权声明:本文为博主原创文章,转载请附上博文链接!

王小云院士真地破解了MD5吗相关推荐

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

    文章目录 1.MD5 简介 2.MD5 应用场景 3.MD5 生成的 Hash 值为什么不可逆 4.王小云院士真地破解了 MD5 吗 5.结论 参考文献 1.MD5 简介 MD5(Message-Di ...

  2. 祝贺!王小云院士连获两项国际大奖

    开年以来,山东大学网络空间安全学院(研究院)院长,双聘院士.讲席教授王小云先后获得"最具时间价值奖"和"真实世界密码学奖"两个国际奖项. 王小云,出生于山东诸城 ...

  3. [区块链与密码学][王小云院士][部分PPT][20200507]

  4. 破解密码高手王小云教授简介

    王小云教授,1966年生于山东诸城,1983年至1993年就读于山东大学数学系,先后获得学士.硕士和博士学位,导师潘承洞.1993年毕业后留校任教.2005年获国家自然科学基金杰出青年基金资助,同年入 ...

  5. 王小云破解了美国密码吗?

    王小云院士破译美国密码的消息曾经被传播得铺天盖地,这事是真的吗? 王小云确实是很了不起,她的科研成果也绝对是世界级的重大成就.但是,与破译美国密码毫不沾边. 王小云的工作成果是实现了MD5和SHA1两 ...

  6. 密码学领域重大发现:山东大学王小云教授成功破解MD5

    密码学领域重大发现:山东大学王小云教授成功破解MD5 [日期:2004-09-05] 来源:山东大学 作者: [字体:大中小] 转自山东大学 [本站讯]2004年8月17日的美国加州圣巴巴拉,正在召开 ...

  7. 女解码高手王小云 十年破译五部顶级密码 图

    女解码高手王小云:十年破译五部顶级密码(图) http://www.sina.com.cn 2006年12月22日 07:57 竞报   清华大学和山东大学的双聘教授王小云 她十年内破译 五部顶级密码 ...

  8. 王小云:十年破译五部顶级密码

    <!--正文内容开始--> <!-- 正文内部文字导航 : begin --> 她十年内破译 五部顶级密码 -她,比<暗算>里的"黄依依"还要聪 ...

  9. 王小云:连破两套美国顶级密码,获得711万奖励,美国不淡定了

    说起关乎国家安危的技术,军事迷们一定能在第一时间联想到核技术和航天技术.可是作为同为国家安全三大支撑技术之一的信息安全密码技术却鲜有人知. >>>> 密码技术到底有多重要和可怕 ...

最新文章

  1. 华为鸿蒙系统概念图,华为P50Pro概念图:没有麒麟芯片,鸿蒙系统和7镜头也可以很豪横...
  2. pyqt designer connect无响应_如何用PyQt编写桌面程序,创建并打开播放列表?
  3. python和c语言有什么关系-Python与C语言有什么区别?
  4. CentOS7安装mysql数据库
  5. 满屏的if-else,看我怎么消灭你!
  6. 为新研究准备好一块用武之地:最全任务型对话数据调研
  7. uva10160(dfs+状态压缩)
  8. java将数据生成csv文件
  9. rhel5 给grub 加密,亲测!
  10. java Runtime
  11. LaTeX 长表格处理方法
  12. 【理论】浅解硬件网络通信+交换机芯片+通信系统设计
  13. pygame详细安装教程
  14. 【软件】如何批量手机号码归属地查询并且快速分类?批量号码归属地告诉查询分类系统怎么使用?全部教会你
  15. 关于下载的wide形式的数据(横轴为地区,纵轴为年份)批量转换为long形式的代码(stata版)
  16. 【elasticsearch报错】 blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];
  17. flex子项常见属性 跟携程网首页案例制作。
  18. 【源码部署】Kettle IDEA 源码部署
  19. 火狐浏览器打开后是搜狗浏览器_搜狗浏览器和Firefox浏览器哪个好
  20. 联想小新锐7000安装win10和ubuntu18.04双系统踩坑

热门文章

  1. 为什么程序员适合做自由职业者
  2. leek()函数使用
  3. 汇编学习之nasm编译器下载使用
  4. stm32 HardFault_Handler调试及问题查找方法——飞思卡尔
  5. 2019年总结和展望
  6. 基于asp.net网上选课系统设计
  7. 智慧图书馆,RFID技术在图书借还,图书防盗中的应用优势
  8. 华为设备Telnet配置命令及注释
  9. Leetcode学习之贪心算法
  10. 开心消消乐java下载_开心消消乐原版下载安装