如何面对最强算法MD5被破译
程序员文章站
2022-03-19 11:11:25
一、MD5是何方神圣?
所谓MD5,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2、MD3、MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公... 08-10-08...
一、md5是何方神圣?
所谓md5,即"message-digest algorithm 5(信息-摘要算法)",它由md2、md3、md4发展而来的一种单向函数算法(也就是hash算法),它是国际著名的公钥加密算法标准rsa的第一设计者r.rivest于上个世纪90年代初开发出来的。md5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一种保密的格式,关键之处在于——这种"压缩"是不可逆的。
为了让读者朋友对md5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:
大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为*机关鉴别罪犯身份最值得信赖的方法;与之类似,md5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的"数字指纹",如果任何人对文件做了任何改动,其md5值也就是对应的"数字指纹"都会发生变化。
我们常常在某些软件下载站点的某软件信息中看到其md5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如windows md5 check等)做一次md5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用md5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。 笔者上面提到的例子只是md5的一个基本应用,实际上md5还被用于加密解密技术上,如unix、各类bsd系统登录密码(在md5诞生前采用的是des加密算法,后因md5安全性更高,des被淘汰)、通信信息加密(如大家熟悉的即时通信软件myim)、数字签名等诸多方面。
二、md5的消亡之路
实际上,从md5诞生之日起,来自美国名为van oorschot和wiener的两位密码学专家就发现了一个暴力搜寻冲突的函数,并预算出"使用一个专门用来搜索md5冲突的机器可以平均每24天就找到一个冲突"。不过由于该方案仅仅从理论上证明了md5的不安全性,且实现的代价及其夸张(当时要制造这种专门的计算机,成本需要100万美元),于是md5自其诞生十多年来一直未有新版本或者被其它算法彻底取代。
在接下来的日子里,有关md5的破译又诞生了"野蛮攻击",也就是用"穷举法"从所有可能产生的结果中找到被md5加密的原始明文,不过由于md5采用128位加密方法,即使一台机器每秒尝试10亿条明文,那么要破译出原始明文大概需要10的22次方年,而一款名为"md5爆破工具"的软件,每秒进行的运算仅仅为2万次!
经过无数md5算法研究专家的努力,先后又诞生了"生日攻击"、"微分攻击"等多种破译方法(相关信息大家可以参考研究成果,大大推进了md5算法消亡的进程。尽管在研究报告中并没有提及具体的实现方法,我们可以认为,md5被彻底攻破已经扫除了技术上的障碍,剩下的仅仅是时间和精力上的问题。/" target=_blank>http://www.md5crk.com)。此次山东大学几位教授的最新研究成果,大大推进了md5算法消亡的进程。尽管在研究报告中并没有提及具体的实现方法,我们可以认为,md5被彻底攻破已经扫除了技术上的障碍,剩下的仅仅是时间和精力上的问题。
三、md5完蛋了,放在银行的存款还安全吗?
由于md5应用极其广泛,即使是在银行数字签名证书中,它依然占据着比较重要的地位,此次md5被成ζ埔氲男挛湃貌簧俨幻魉缘娜烁械?恐惧",认为这是对整个密码界的彻底颠覆,甚至有人开始担心"自己放在银行或者网络银行账户中的存款也有被盗取的可能"。
其实这种忧虑完全是杞人忧天,以目前主流的网络银行的加密技术为例,它们都构建于pki(pubic key infrastructure,公钥加密技术)平台之上,与公钥成对的私钥只掌握在与之通信的另一方,这一"信任关系"是通过公钥证书来实现的。pki的整个安全体系由加密、数字签名、数据完整性机制等技术来共同保障,其密码算法包括对称密码算法(如des、3des)、公开密钥密码算法(如ecc、rsa),即使在同样有应用的hash算法方面,目前网络银行所采用的大多是sha-1算法,该算法与md5的128位加密相比,使用了160位加密方式,比md5安全性高不少。
其实,就目前网络银行的安全隐患来看,更多的是来自客户接入端(如web入口),而非银行的加密技术本身。
四、md5的继承者们
"天下没有不透风的墙",实际上任何一种算法都会有其漏洞,即使是目前大行其道的md5和sha-1,当对漏洞的研究发展到其能够被有效利用时,则标志着该算法灭亡的时候到了。所谓"天下无不散之筵席",md5逐渐退出历史舞台后,下一个接任者又会是谁呢?
实际上,长期以来,密码界一直在致力于对新加密算法的研究,而且在高度机密的安全领域,所采用的加密算法也绝非md5,各国*、各大公司都在研究拥有独立技术的加密算法,其中比较出色的代表有sha-1、sha-224等。此次md5破译报告发表后,美国国家技术与标准局(nist)表示,鉴于md5被破译以及sha-1漏洞被发现,他们将逐渐放弃目前使用的sha-1,于2010年前逐步推广更安全的sha-224、sha-256、sha-384和sha-512。这些算法与md5的128位加密相比,加密位数和安全性能都提高了很多倍。
尽管md5被淘汰已经成为必然,不过鉴于它开源以及免费的特性,而且目前还没有真正有效的快速破解方法,因此它还将继续在历史舞台活跃一段时间。
所谓md5,即"message-digest algorithm 5(信息-摘要算法)",它由md2、md3、md4发展而来的一种单向函数算法(也就是hash算法),它是国际著名的公钥加密算法标准rsa的第一设计者r.rivest于上个世纪90年代初开发出来的。md5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一种保密的格式,关键之处在于——这种"压缩"是不可逆的。
为了让读者朋友对md5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:
大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为*机关鉴别罪犯身份最值得信赖的方法;与之类似,md5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的"数字指纹",如果任何人对文件做了任何改动,其md5值也就是对应的"数字指纹"都会发生变化。
我们常常在某些软件下载站点的某软件信息中看到其md5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如windows md5 check等)做一次md5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用md5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。 笔者上面提到的例子只是md5的一个基本应用,实际上md5还被用于加密解密技术上,如unix、各类bsd系统登录密码(在md5诞生前采用的是des加密算法,后因md5安全性更高,des被淘汰)、通信信息加密(如大家熟悉的即时通信软件myim)、数字签名等诸多方面。
二、md5的消亡之路
实际上,从md5诞生之日起,来自美国名为van oorschot和wiener的两位密码学专家就发现了一个暴力搜寻冲突的函数,并预算出"使用一个专门用来搜索md5冲突的机器可以平均每24天就找到一个冲突"。不过由于该方案仅仅从理论上证明了md5的不安全性,且实现的代价及其夸张(当时要制造这种专门的计算机,成本需要100万美元),于是md5自其诞生十多年来一直未有新版本或者被其它算法彻底取代。
在接下来的日子里,有关md5的破译又诞生了"野蛮攻击",也就是用"穷举法"从所有可能产生的结果中找到被md5加密的原始明文,不过由于md5采用128位加密方法,即使一台机器每秒尝试10亿条明文,那么要破译出原始明文大概需要10的22次方年,而一款名为"md5爆破工具"的软件,每秒进行的运算仅仅为2万次!
经过无数md5算法研究专家的努力,先后又诞生了"生日攻击"、"微分攻击"等多种破译方法(相关信息大家可以参考研究成果,大大推进了md5算法消亡的进程。尽管在研究报告中并没有提及具体的实现方法,我们可以认为,md5被彻底攻破已经扫除了技术上的障碍,剩下的仅仅是时间和精力上的问题。/" target=_blank>http://www.md5crk.com)。此次山东大学几位教授的最新研究成果,大大推进了md5算法消亡的进程。尽管在研究报告中并没有提及具体的实现方法,我们可以认为,md5被彻底攻破已经扫除了技术上的障碍,剩下的仅仅是时间和精力上的问题。
三、md5完蛋了,放在银行的存款还安全吗?
由于md5应用极其广泛,即使是在银行数字签名证书中,它依然占据着比较重要的地位,此次md5被成ζ埔氲男挛湃貌簧俨幻魉缘娜烁械?恐惧",认为这是对整个密码界的彻底颠覆,甚至有人开始担心"自己放在银行或者网络银行账户中的存款也有被盗取的可能"。
其实这种忧虑完全是杞人忧天,以目前主流的网络银行的加密技术为例,它们都构建于pki(pubic key infrastructure,公钥加密技术)平台之上,与公钥成对的私钥只掌握在与之通信的另一方,这一"信任关系"是通过公钥证书来实现的。pki的整个安全体系由加密、数字签名、数据完整性机制等技术来共同保障,其密码算法包括对称密码算法(如des、3des)、公开密钥密码算法(如ecc、rsa),即使在同样有应用的hash算法方面,目前网络银行所采用的大多是sha-1算法,该算法与md5的128位加密相比,使用了160位加密方式,比md5安全性高不少。
其实,就目前网络银行的安全隐患来看,更多的是来自客户接入端(如web入口),而非银行的加密技术本身。
四、md5的继承者们
"天下没有不透风的墙",实际上任何一种算法都会有其漏洞,即使是目前大行其道的md5和sha-1,当对漏洞的研究发展到其能够被有效利用时,则标志着该算法灭亡的时候到了。所谓"天下无不散之筵席",md5逐渐退出历史舞台后,下一个接任者又会是谁呢?
实际上,长期以来,密码界一直在致力于对新加密算法的研究,而且在高度机密的安全领域,所采用的加密算法也绝非md5,各国*、各大公司都在研究拥有独立技术的加密算法,其中比较出色的代表有sha-1、sha-224等。此次md5破译报告发表后,美国国家技术与标准局(nist)表示,鉴于md5被破译以及sha-1漏洞被发现,他们将逐渐放弃目前使用的sha-1,于2010年前逐步推广更安全的sha-224、sha-256、sha-384和sha-512。这些算法与md5的128位加密相比,加密位数和安全性能都提高了很多倍。
尽管md5被淘汰已经成为必然,不过鉴于它开源以及免费的特性,而且目前还没有真正有效的快速破解方法,因此它还将继续在历史舞台活跃一段时间。
上一篇: 简单的MD5密码加密和解密方法
下一篇: 该屏蔽哪些adsense 广告的说明