詞語解釋 | 本詞語解釋貢獻(xiàn)者:wx_10274510
[onclick="userLogin(''http://baike.baidu.com/edit/id=7636&dl=1'');return false;">編輯本段]MD5的全稱是Message-digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald.L.Rivest開發(fā)出來,經(jīng)MD2、MD3和MD4發(fā)展而來。它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個(gè)任意長度的字節(jié)串變換成一定長的大整數(shù))。不管是MD2、MD4還是MD5,它們都需要獲得一個(gè)隨機(jī)長度的信息并產(chǎn)生一個(gè)128位的信息摘要。雖然這些算法的結(jié)構(gòu)或多或少有些相似,但MD2的設(shè)計(jì)與MD4和MD5完全不同,那是因?yàn)镸D2是為8位機(jī)器做過設(shè)計(jì)優(yōu)化的,而MD4和MD5卻是面向32位的電腦。這三個(gè)算法的描述和c語言源代碼在Internet RFC 1321中有詳細(xì)的描述(http://www.ietf.org/rfc/rfc1321.txt),這是一份最權(quán)威的文檔,由Ronald.L.Rivest在1992年8月向IETF提交。
Rivest在1989年開發(fā)出MD2算法。在這個(gè)算法中,首先對(duì)信息進(jìn)行數(shù)據(jù)補(bǔ)位,使信息的字節(jié)長度是16的倍數(shù)。然后,以一個(gè)16位的檢驗(yàn)和追加到信息末尾。并且根據(jù)這個(gè)新產(chǎn)生的信息計(jì)算出散列值。后來,Rogier和Chauvaud發(fā)現(xiàn)如果忽略了檢驗(yàn)和將產(chǎn)生MD2沖突。MD2算法的加密后結(jié)果是唯一的--即沒有重復(fù)。
為了加強(qiáng)算法的安全性,Rivest在1990年又開發(fā)出MD4算法。MD4算法同樣需要填補(bǔ)信息以確保信息的字節(jié)長度加上448后能被512整除(信息字節(jié)長度mod 512 = 448)。然后,一個(gè)以64位二進(jìn)制表示的信息的最初長度被添加進(jìn)來。信息被處理成512位damg?rd/merkle迭代結(jié)構(gòu)的區(qū)塊,而且每個(gè)區(qū)塊要通過三個(gè)不同步驟的處理。Den boer和Bosselaers以及其他人很快的發(fā)現(xiàn)了攻擊MD4版本中第一步和第三步的漏洞。Dobbertin向大家演示了如何利用一部普通的個(gè)人電腦在幾分鐘內(nèi)找到MD4完整版本中的沖突(這個(gè)沖突實(shí)際上是一種漏洞,它將導(dǎo)致對(duì)不同的內(nèi)容進(jìn)行加密卻可能得到相同的加密后結(jié)果)。毫無疑問,MD4就此被淘汰掉了。
盡管MD4算法在安全上有個(gè)這么大的漏洞,但它對(duì)在其后才被開發(fā)出來的好幾種信息安全加密算法的出現(xiàn)卻有著不可忽視的引導(dǎo)作用。除了MD5以外,其中比較有名的還有sha-1、RIPEMD以及Haval等。
一年以后,即1991年,Rivest開發(fā)出技術(shù)上更為趨近成熟的md5算法。它在MD4的基礎(chǔ)上增加了"安全-帶子"(safety-belts)的概念。雖然MD5比MD4稍微慢一些,但卻更為安全。這個(gè)算法很明顯的由四個(gè)和MD4設(shè)計(jì)有少許不同的步驟組成。在MD5算法中,信息-摘要的大小和填充的必要條件與MD5完全相同。Den boer和Bosselaers曾發(fā)現(xiàn)MD5算法中的假?zèng)_突(pseudo-collisions),但除此之外就沒有其他被發(fā)現(xiàn)的加密后結(jié)果了。
Van oorschot和Wiener曾經(jīng)考慮過一個(gè)在散列中暴力搜尋沖突的函數(shù)(brute-force hash function),而且他們猜測一個(gè)被設(shè)計(jì)專門用來搜索MD5沖突的機(jī)器(這臺(tái)機(jī)器在1994年的制造成本大約是一百萬美元)可以平均每24天就找到一個(gè)沖突。但單從1991年到2001年這10年間,竟沒有出現(xiàn)替代MD5算法的MD6或被叫做其他什么名字的新算法這一點(diǎn),我們就可以看出這個(gè)瑕疵并沒有太多的影響MD5的安全性。上面所有這些都不足以成為MD5的在實(shí)際應(yīng)用中的問題。并且,由于MD5算法的使用不需要支付任何版權(quán)費(fèi)用的,所以在一般的情況下(非絕密應(yīng)用領(lǐng)域。但即便是應(yīng)用在絕密領(lǐng)域內(nèi),MD5也不失為一種非常優(yōu)秀的中間技術(shù)),MD5怎么都應(yīng)該算得上是非常安全的了。
2004年8月17日的美國加州圣巴巴拉的國際密碼學(xué)會(huì)議(Crypto’2004)上,來自中國山東大學(xué)的王小云教授做了破譯MD5、HAVAL-128、 MD4和RIPEMD算法的報(bào)告,公布了MD系列算法的破解結(jié)果。宣告了固若金湯的世界通行密碼標(biāo)準(zhǔn)MD5的堡壘轟然倒塌,引發(fā)了密碼學(xué)界的軒然大波。
MD5破解工程權(quán)威網(wǎng)站http://www.md5crk.com/ 是為了公開征集專門針對(duì)MD5的攻擊而設(shè)立的,網(wǎng)站于2004年8月17日宣布:“中國研究人員發(fā)現(xiàn)了完整MD5算法的碰撞;Wang, Feng, Lai與Yu公布了MD5、MD4、HAVAL-128、RIPEMD-128幾個(gè) Hash函數(shù)的碰撞。這是近年來密碼學(xué)領(lǐng)域最具實(shí)質(zhì)性的研究進(jìn)展。使用他們的技術(shù),在數(shù)個(gè)小時(shí)內(nèi)就可以找到MD5碰撞!捎谶@個(gè)里程碑式的發(fā)現(xiàn),MD5CRK項(xiàng)目將在隨后48小時(shí)內(nèi)結(jié)束”。
MD5用的是哈希函數(shù),在計(jì)算機(jī)網(wǎng)絡(luò)中應(yīng)用較多的不可逆加密算法有RSA公司發(fā)明的MD5算法和由美國國家技術(shù)標(biāo)準(zhǔn)研究所建議的安全散列算法SHA.
Message Digest algorithm 5,消息摘要算法第五版。 計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保 護(hù)。MD5 以 512 位分組來處理輸入的信息,且每一分組又被劃分為 16 個(gè) 32 位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個(gè) 32 位分組 組成,將這四個(gè) 32 位分組級(jí)聯(lián)后將生成一個(gè) 128 位散列值。
掃碼付費(fèi)即可復(fù)制
X