md5密碼計算的逆運算怎麽做?介紹壹下方法,謝謝。
淺談MD5算法破解對實際應用的影響國家信息中心信息安全研究與服務中心龍,李丹北京天威電子商務服務有限公司摘要:在2004年國際密碼學大會(Crypto'2004)上,教授公布了破解MD5算法的研究成果,在密碼學界引起轟動。壹些國內媒體甚至認為這次破解會導致數字簽名安全大廈的倒塌。那麽,實際情況是怎樣的呢?本文對MD5算法破解對實際應用的影響進行了分析和探討,回答了這個問題。在2004年8月6日至7日在美國加州聖巴巴拉舉行的Crypto’2004大會上,中國山東大學的王小雲教授做了壹個關於破解MD5算法的報告。當她宣布她的研究成果時,會場上響起了激動的掌聲。王小雲教授的報告在聽眾中引起了轟動,受到了與會專家的贊揚。壹些國內媒體甚至認為這種破解會導致數字簽名安全大廈的倒塌。那麽,實際應用情況如何呢?MD5是壹種哈希函數,也稱為哈希算法和消息摘要算法。其作用是獲取數字信息的特征(我們有時稱之為“信息指紋”)。任意長度的任意數字報文經過哈希算法運算後會產生壹系列固定長度(如160bit)的數字報文,稱為哈希值(或hash值,報文摘要)。壹個安全的哈希算法有以下特點:(1)兩個不同的數字信息產生相同哈希值的概率很小(小到現實中幾乎不可能發生);⑵不能僅從哈希值推導出原始信息;⑶原始信息的微小變化,哪怕只是壹個比特的變化,都會導致哈希值發生很大的變化。數字簽名應該使用哈希值。除了SHA-1,MD5也是常用的哈希算法。兩個不同的數字信息產生相同的哈希值,也就是人們所說的“哈希值沖突”。哈希算法是壹種將信息從無限維空間映射到有限維空間的變換。學過數學的人都知道,這不是壹對壹的轉換。實際上,壹個哈希值可能對應無限多的數字信息,換句話說,無限多的數字信息會產生相同的哈希值。這是學密碼學的人都知道的,而且不像有些媒體說的,哈希值是唯壹的。安全散列算法的安全性基於這樣的假設,即很難找到壹條信息A的散列值H,或者從H推斷出另壹條信息B具有相同的散列值H..中國學者的發現是這樣的。對於MD5哈希算法,找到了壹些信息集的方法。當我們知道它的散列值H時,我們可以推斷出信息數據B具有相同的MD5散列值H..需要強調的是,王小雲教授的破解算法是壹種概率破解算法,只適用於某些信息集。這當然是密碼學的壹個重要發現,說明MD5並沒有我們想象的那麽安全。然而,這壹研究發現的實際影響遠遠小於其理論意義。這可以從以下幾個方面來解釋。根據MD5破解算法,對於壹個消息A及其哈希值H,我們可以推導出另壹個消息B,其MD5哈希值也是H..現在的問題是,如果A是壹個符合預先約定的格式並具有壹定語義的消息,那麽推導出來的消息B就不會是壹個符合約定格式並具有語義的消息。比如A是壹份比Word文檔更有語義的電子合同,而B不可能是壹份只是符合Word格式的文檔,只有壹堆亂碼,也就是B不可能是壹份有效的、有意義的、符合造假者預期的電子合同。再比如,如果A是符合X509格式的數字證書,那麽我們介紹的B不可能只是符合X509格式的數字證書,是造假者所期望的。還有,我們知道電子合同需要雙方甚至多方的電子簽名。對於雙方的簽名,這相當於先生成A的hash值H1,再進壹步生成A和H1的信息的hash值H2。我們目前的研究發現,我們無法找到壹種方法來推導出壹個消息B,它只產生相同的H1和H2。(這個B必須存在!只是目前不知道怎麽找!其次,MD5被破解了。現在我們有了SHA-1等其他哈希算法,以後還可以有新的更安全的哈希算法。總之,這裏的MD5算法破解對實際應用的影響遠遠小於它的理論意義,不會造成PKI和數字簽名安全體系的崩潰,這也是MD5哈希算法的破解沒有引起密碼學和PKI行業恐慌的原因。當然,我們也站起來為中國人在密碼學上取得的傑出成就鼓掌。參考1 2004國際密碼會議(Crypto'2004)關於MD5、HAVAL-128、MD4和RIPEMD算法的解密報告。王小雲等著《應用密碼學》,Bruce Schneier著,吳世忠等譯。