MD5是一种HASH函数,又称杂凑函数,由32位16进制组成,在信息安全范畴有广泛和首要运用的暗码算法,它有类似于指纹的运用。在网络安全协议中, 杂凑函数用来处理电子签名,将冗长的签名文件紧缩为一段一起的数字信息,像指纹辨别身份相同保证正本数字签名文件的合法性和安全性。在前面提到的SHA- 1和MD5都是现在最常用的杂凑函数。经过这些算法的处理,初始信息即使只更动一个字母,对应的紧缩信息也会变为大相径庭的“指纹”,这就保证了经过处理 信息的唯一性。为电子商务等提供了数字认证的可能性。

  安全的杂凑函数在设计时有必要满意两个请求:其一是寻找两个输入得到相同的输出值在计算上是不可行的,这便是我们一般所说的抗磕碰的;其二是找一个输 入,能得到给定的输出在计算上是不可行的,即不可从效果推导出它的初始状况。现在运用的首要计算机安全协议,如SSL,PGP都用杂凑函数来进行签名,一 旦找到两个文件可以发作相同的紧缩值,就可以假造签名,给网络安全范畴带来无量危险。

  MD5便是这样一个在国内外有着广泛的运用的杂凑函数算法,它曾一度被认为是非常安全的。但是MD5也不会完全不重复,从概率来说16的32次
方遍历后至少出现两个相同的MD5值,但是16的32次方有多大?3402823669209384634633746074317.7亿,就算全世界最
快的超级计算机也要跑几十亿年才能跑完。可是,王小云教授发现,可以很快的找到MD5的“磕碰”,便是两个文件可以产生相同的“指纹”。这意味着,当你在
网络上运用电子签名签署一份合同后,还可能找到其他一份具有相同签名但内容悬殊的合同,这么两份合同的真伪性便无从辨别。王小云教授的研究效果证明了利用
MD5算法的磕碰可以严重威胁信息体系安全,这一发现使现在电子签名的法律效力和技能体系受到应战。因此,业界专家普林斯顿计算机教授Edward
Felten等强烈呼吁信息体系的设计者赶快更换签名算法,而且他们侧重这是一个需要当即处理的疑问。

一石击起千层浪,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小时内完毕”。
  对此, Readyresponse主页专门转发了该报导,几个其它网站也进行了报导。
  威望网站相继宣布谈论或许报告这一重大研究效果
  经过计算,在论文发布两周之内,已经有近400个网站发布、引证和谈论了这一效果。国内的很多新闻网站也以“演算法安全加密功用露出破绽 暗码学界一片哗然”为题报导了这一暗码学界的重大事件,该音讯在各新闻网站上屡次转发。

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”的争辩中宣布了具有价值的定见。这次世界暗码学会议的总主席Jimes
Hughes宣布谈论说“我信任这(破解MD5)是真的,而且假如碰撞存在,HMAC也就不再是安全的了,…… 我以为咱们应当抛开MD5了。”
Hughes主张,程序设计人员最佳开始放弃MD5。他说:“已然如今这种算法的缺点已露出出来,在有用的进犯发动之前,如今是撤离的时机。”
 同样,在普林斯顿大学教授Edwards
Felton的自己网站上,也有相似的谈论。他说:“留给咱们的是什么呢?MD5现已受了重伤;它的应用就要筛选。SHA-1依然活着,但也不会很长,必
须立即替换SHA-1,可是选用什么样的算法,这需要在暗码研究人员到达一致。”
  暗码学家Markku-Juhani称“这是HASH函数剖析范畴激动人心的时间。”
       而闻名计算机公司SUN的LINUX专家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)来代替。”

这是几位暗码学家运用的是“结构前缀磕碰法”(chosen-prefix collisions)来进行这次攻击(是王小云所运用的攻击办法的改进版本)。

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

他们的定论:MD5 算法不该再被用于任何软件完整性查看或代码签名的用处!

那是不是MD5就此没有用处了呢?非也,对于文件来说碰撞可能容易,但是对于限定长度的密码或者密文来说,MD5作为一种高性能高安全的数字签名算法来说,还是非常实用的。

文章转载自: http://www.ttmd5.com/article.php?id=12

MD5碰撞后时代,MD5还有存在的意义吗?的更多相关文章

  1. C#中简单调用MD5方法以及MD5简介

    MD5简介:          MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2.M ...

  2. md5.digest()与md5.hexdigest()之间的区别及转换

    举给例子 md5 = hashlib.md5('adsf') md5.digest() //返回: '\x05\xc1*(s48l\x94\x13\x1a\xb8\xaa\x00\xd0\x8a' # ...

  3. md5加密,md5加盐加密和解密

    package com.java.test; import java.security.MessageDigest; import java.security.SecureRandom; import ...

  4. 解决Javascript md5 和 Java md5 中文加密后不同问题

    Javascript md5 和 Java md5 带中文字符加密结果不一致,可以通过编码进行转化. javascript可以使用encodeURLComponent将中文先转化一次再进行MD5加密. ...

  5. python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为

    python接口自动化测试二十七:密码MD5加密   ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...

  6. [CTF]CTF中if (md5(md5($_GET[‘a’])) == md5($_GET[‘b’])) 的绕过

    原作者:KTWO 出处:https://www.k2zone.cn/?p=2019 0X00 摘要 CTF中md5判等可使用0e绕过,但是如果是双md5该如何绕过呢?本文将教你如何绕过md5(md5( ...

  7. md5 collision(md5碰撞)之记录一些MD5值

    md5 collision之记录一些MD5值   “Magic Hash”的PHP漏洞可以使得攻击者非法获取用户的账号信息.   漏洞原因: PHP以一种特定的方式处理被哈希的字符串,攻击者可以利用其 ...

  8. MySql md5加密 sqlserver md5加密 C# md5加密 java md5加密

    便民md5加密: 百度md5加密: MySQL 加密语法: MD5(加密字符串) -- 中文加密 SELECT MD5('你好') -- 中文加密匹配查询 SELECT * FROM 表名 WHERE ...

  9. 【MD5加密】MD5加密编码的坑

    MD5 MD5即Message-Digest Algorithm (信息-摘要算法5),用于确保信息传输完整一致. 是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5 ...

随机推荐

  1. iOS之UIColloctionView

    iOS--UICollectionView(滚动视图)入门 UICollectionView @interface UICollectionView : UIScrollView UICollecti ...

  2. HTML5 Canvas | w3cschool菜鸟教程

    HTML5 Canvas <canvas> 标签定义图形,比如图表和其他图像,您必须使用脚本来绘制图形.. 在画布上(Canvas)画一个红色矩形,梯度矩形,彩色矩形,和一些彩色的文字. ...

  3. openstack controller ha测试环境搭建记录(一)——操作系统准备

    为了初步了解openstack controller ha的工作原理,搭建测试环境进行学习. 在学习该方面知识时,当前采用的操作系统版本是centos 7.1 x64.首先在ESXi中建立2台用于测试 ...

  4. 51nod1119(除法取模)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1119 题意:中文题诶- 思路:这题数据比较大直接暴力肯定是不 ...

  5. ubuntu升级php版本

    如果安装的 PHP 版本过低的话,可以通过下面的指令来升级: sudo add-apt-repository ppa:ondrej/php5   sudo apt-get update   sudo  ...

  6. JQuery checkbox全选多次点击后无效解决方法

    1. jquery设置checkbox时: <input type="checkbox" id="ckAll"/> $(function(){ va ...

  7. Json填充到Form中

    很多框架都支持将json解释到grid的或者form中,个人手痒,自己写了一个.所用到的内容主要是javascript对json的遍历.如: for (var key in json) { alert ...

  8. BZOJ1119[POI2009]SLO && BZOJ1697[Usaco2007 Feb]Cow Sorting牛排序

    Problem J: [POI2009]SLO Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 622  Solved: 302[Submit][Sta ...

  9. c++初学(电梯实验)

    模拟电梯载人实验 Elevator.h class Elevator{public:    Elevator();    ~Elevator();    void getNowNum();       ...

  10. Chrome Timeline的指标说明:Blocked、Connect、Send、Wait、Receive

    Blocked time includes any pre-processing time (such as cache lookup) and the time spent waiting for ...