MD五
MD 五訊息挽欲搬算法(英語:MD 五 Message-Digest Algorithm), 一種被廣泛使用的密碼雜鬥函式,會當產生出一个百二八个元(十六字元 ( BYTES ))的雜鬥值(hash value), 用佇確保資訊傳輸完整一致。MD 五由美國密碼學家羅納德 ・ 李維斯特(Ronald Linn Rivest)設計的,佇一九九二年公開,用取代的 MD 四演算法。這套演算法的程式佇 RFC 一千三百二十一中被加以規範。
將資料(如一段文字)運算變做另外一固定長度價值,是雜鬥演算法的基礎原理。
一九九六年後被證實存在較弱點,會當予人加以破解,對需要懸度安全性的資料,專家一般建議改用其他演算法,如 SHA 鋪二。二空空四年,證實 MD 五演算法無法度防止相挵攻擊,所以無適用佇安全性認證,如 SSL 公開金鎖任證抑是數位簽章等等的用途。
歷史佮密碼學
一九九二年八月,羅納德 ・ 李維斯特向網際網路工程任務組(IETF)提交一份重要的檔案,就描述這款算法的原理。因為這種演算法的公開性佮安全性,佇九空年代被廣泛使用佇各種程式語言內底,用確保資料遞移無誤等等。
MD 五由 MD 四、MD 三、MD 兩改進落來,主要增強演算法複雜度佮袂當逆性。
應用
MD 五捌予人用於檔案校驗、SSL / TLS、IPsec、SSH,猶毋過 MD 五早就予人發現有明顯的缺陷。
演算法
MD 五是輸入不定長度資訊,輸出固定長度百二八-bits 的演算法。經過程式流程,生做四个三十二位元資料,尾仔聯合起來成做一个一百二十八-bits 雜鬥。基本的方式為,揣頭路、取餘、調整長度、佮連結變數進行迴圈運算。會得出結果。
- $ F ( X , Y , Z )=( X \ wedge { Y } ) \ vee ( \ neg { X } \ wedge { Z } ) $
- $ G ( X , Y , Z )=( X \ wedge { Z } ) \ vee ( Y \ wedge \ neg { Z } ) $
- $ H ( X , Y , Z )=X \ oplus Y \ oplus Z $
- $ I ( X , Y , Z )=Y \ oplus ( X \ vee \ neg { Z } ) $
$ \ oplus , \ wedge , \ vee , \ neg $ 是 _ XOR _ , _ AND _ , _ OR _ , _ NOT _ 的符號。
虛擬碼
MD 五雜鬥
一般一百二十八位元的 MD 五雜鬥被表示為三十二位元十六進位數字。以下是一个四十三位長的干焦 ASCII 字母列的 MD 五雜鬥:
` ` ` MD 五 ( " The quick brown fox jumps over the lazy dog " ) =九 e 一百空七 d 九 d 三百七十二 bb 六千八百二十六 bd 八十一 d 三千五百四十二 a 四百十九 d 六 ` ` `
就算佇原文中作一个小變化(比如講用 c 取代 d)其雜鬥嘛會發生誠大的變化:
` ` ` MD 五 ( " The quick brown fox jumps over the lazycog " ) =一千空五十五 d 三 e 六百九十八 d 兩百八十九 f 二 af 八十六抹六千三百七十二鋪五千一百二十七 bd 四 b ` ` `
空文的雜鬥做:
` ` ` MD 五 ( " " ) =d 四十一 d 八 cd 九十八 f 零 b 兩百空四 e 九百八十二空九百九十八 ecf 八千四百二十七 e ` ` `
缺陷
二空空四年的國際密碼討論年會(CRYPTO)尾聲,王小雲佮其研究同事來展示走揣 MD 五、SHA 鋪零佮其他相關雜鬥函式的雜鬥衝傱的新方法。人講雜鬥衝碰指兩个完全無仝的訊息經雜鬥函式計算會出完全仝款的雜鬥值。根據粉鳥岫原理,才有長度限制的雜鬥函式計算無長度限制的訊息是必然會有衝挵狀狀況出現的。佇咧這進前,研究者佇有約束的條件之下揣著偌對雜配挵。
二空空九年,中國科學院的謝濤佮馮登國干焦用兩百二十被九六的相挵演算法複雜度,解破矣 MD 五的相挵抵抗,該攻擊佇普通電腦執行只需要數秒鐘。二空一一年,RFC 六千一百五十一禁止 MD 五用作金鎖雜鬥訊息鑑別碼。
參見
- MD 四
- SHA
- AES
參考文獻
外部連結
- W 三 C 關於著 MD 五的建議
- MD 足雜配生成物件
- MD 五線頂加密
- MD 五免費解密
- MD 五付費解密