密碼學中MD5算法
2018-03-20 16:37:01 | 來源:中培企業IT培訓網
2) MD5算法
MD5消息摘要算法(RFC1321)由Ron Rivest提出。該算法以一個任意長的消息作為輸入,輸出128hit的消息摘要。輸入按512bit的分組進行處理。MD5處理操作包括以下幾步:
1、附加填充位
對消息進行填充使消息的長度與448模512同余(長度-44-8 mod512),即填充長度為5 12的整數倍再減去64。
2、附加長度值
將填充前的初始消息的長度(用64bit表示)按低位字節優先附加在步驟l的結果后。如果初始長度大于264,僅使用該長度的低64bit…這樣,該域所包含的長度值為初始消息長度模26硨的值。前兩步的結果產生一個長度為512整數倍比特的消息。
3、初始化MD緩存
使用一個128bit的緩存來存放該散列函數的中間及最終結果。該緩存可表示為4個32bit的寄存器(A,B,C,D)。
4、處理512bit(16字節)消息分組序列
算法的核心是一個包含4輪處理的壓縮函數。4輪處理具有相似的結構,但每次使用不同的基本邏輯函數,每一輪以當前的512位數據塊( Yq)和128位緩沖值ABCD作為輸入,并修改緩沖值的內容。
5、輸出
所有L個512bit的分組處理完成后,第L階段產生的輸出便是128bit的消息摘要。
隨著處理器速度的提升,128bit散列值的安全性已經成為問題。可以看出,具有相同消息摘要的兩個消息的處理需要264次操作,而給定摘要尋找消息需要2128次操作。前一個數字太小了,不能夠保證安全性。眾多密碼分析攻擊的出現正說明了MD5在密碼分析方面的弱點。
標簽:
- 上一篇:密碼學中啥希函數基本特點
- 下一篇:密碼學中SHA-1算法