導航:首頁 > 源碼編譯 > md5演算法研究

md5演算法研究

發布時間:2022-09-26 11:57:03

❶ 山東大學的王小雲真的研究出了MD5的逆向演算法

1、山東大學:山東大學(Shandong University),簡稱山大(SDU),由中華人民共和國教育部直屬,中央直管副部級建制,位列「211工程」、「985工程」,入選「2011計劃」、「珠峰計劃」、「111計劃」、「卓越計劃」,是一所綜合性全國重點大學。

2、王小雲:女,1966年生於山東諸城,1983年至1993年就讀於山東大學數學系,先後獲得學士、碩士和博士學位,導師潘承洞。1993年畢業後留校任教。王小雲教授帶領的研究小組於2004年、2005年先後破解了被廣泛應用於計算機安全系統的MD5和SHA-1兩大密碼演算法。

3、MD5:Message Digest Algorithm MD5(中文名為消息摘要演算法第五版)為計算機安全領域廣泛使用的一種散列函數,用以提供消息的完整性保護。MD5演算法具有以下特點:

4、王小雲教授的工作:已知A,可以構造信息B,使得MD5(A)=MD5(B),過去的構造B的過程認為需要【野蠻碰撞】(逐個碰撞)。王小雲教授提出的想法,可以加速了雜湊碰撞(並非是真正的破解)。

5、結論:打開一把鎖的方法有2種,第一使用鑰匙(研究出逆向演算法),第二使用鋸子(破解)。在王小雲之前,使用鋸子需要幾天才能打開,而王小雲的【鋸子】可以在幾個小時內打開這把鎖。王小雲並沒有找到鑰匙,因此不能說研究出了MD5的逆向演算法。

❷ 什麼是MD5

咨詢記錄 · 回答於2021-05-05

❸ MD5的演算法原理

MD5簡介:
MD5是Message-digestAlgorithm5(信息-摘要演算法)的縮寫,經MD2、MD3和MD4發展而來。它是把一個任意長度的位元組串變換成一定長的大整數。MD5演算法是在MD4的基礎上增加了「安全-帶子」(safety-belts)的概念。雖然MD5比MD4稍微慢一些,但卻更為安全。這個演算法很明顯的由四個和MD4設計有少許不同的步驟組成。在MD5演算法中,信息摘要的大小和填充的必要條件與MD4完全相同。由於MD5演算法的使用不需要支付任何版權費用,所以在一般的情況下MD5不失為一種非常優秀的中間技術。
MD5原理:
MD 5演算法是對輸入信息進行初始化處理後,以512位分組來處理輸入的信息,每一分組又被劃分
成為16個32位子分組,經過了一系列的變換處理後,輸出由四個32位分組,再將這四個32位分組級
聯後生成一個128位散列值[5- 6]。具體過程如下:
(1)首先對信息進行填充,即在信息的後面填充一個1和若干個0使其位元組長度對512求余的結
果等於448。
(2)對MD 5進行初始化,即MD 5中用四個32位被稱作鏈接變數的整數參數,它們分別為:A =
0x01234567,B = 0x89abcdef,C = 0xfedcba98,D =0x76543210。
(3)開始進入演算法的四輪循環運算。循環的次數是信息中512位信息分組的數目。將上面四個鏈
接變數復制到另外四個變數中:A到a,B到b,C到c,D到d。主循環有四輪,第一輪進行16次操作。
每次操作對a、b、c和d中的其中三個做一次非線性函數運算,然後將所得結果加上第四個變數,再將所得結果向右位移一個不定的數,並加上a、b、c或d中之一。最後用該結果取代a、b、c或d中之一。
以下是每次操作中用到的四個非線性函數(每輪一個)。
f(x,y,z)=(x&y) ((~x)&z)
g(x,y,z)=(xz) (y&(~z))
h(x,y,z)=x y z
i(x,y,z)=y (x (~z))
(其中:「&」是與運算,「 」是或運算,「~」是非運算,「 」是異或運算,它們都是位運算符。)
這四個函數的說明:如果x、y和z的對應位是獨立和均勻的,那麼結果的每一位也應是獨立和均
勻的。f是一個逐位運算的函數。即,如果x,那麼y,否則z。函數h是逐位奇偶操作符。假設mj表示
消息的第j個子分組(從0到15),ti為第I步中的常數,< < <s表示循環左移s位,
則四種操作為:ff(a,b,c,d,mj,s,ti)表示a=b+((a+(f(b,c,d)+mj+ti)< < <s)
gg(a,b,c,d,mj,s,ti)表示a=b+((a+(g(b,c,d)+mj+ti)< < <s)
hh(a,b,c,d,mj,s,ti)表示a=b+((a+(h(b,c,d)+mj+ti)< < <s)
ii(a,b,c,d,mj,s,ti)表示a=b+((a+(i(b,c,d)+mj+ti)< < <s)
常數ti表示在第i步中,ti是4294967296*abs(sin(i))的整數部分,4294967296等於2的32次
方,i的單位是弧度。所有這些完成之後,將A、B、C、D分別加上a、b、c、d。然後用下一分組
數據繼續運行演算法,最後的輸出是A、B、C和D的級聯。

❹ MD5加密演算法是什麼呢

C.報文摘要
MD5即Message-Digest Algorithm 5(信息-摘要演算法5),用於確保信息傳輸完整一致。是計算機廣泛使用的雜湊演算法之一(又譯摘要演算法、哈希演算法),主流編程語言普遍已有MD5實現。將數據(如漢字)運算為另一固定長度值,是雜湊演算法的基礎原理,MD5的前身有MD2、MD3和MD4。

❺ md5是什麼 如何計算MD5

MD5即Message-Digest Algorithm 5(信息-摘要演算法5),用於確保信息傳輸完整一致。是計算機廣泛使用的雜湊演算法之一(又譯摘要演算法、哈希演算法),主流編程語言普遍已有MD5實現。

MD5演算法具有以下特點:

1、壓縮性:任意長度的數據,算出的MD5值長度都是固定的。

2、容易計算:從原數據計算出MD5值很容易。

3、抗修改性:對原數據進行任何改動,哪怕只修改1個位元組,所得到的MD5值都有很大區別。

4、強抗碰撞:已知原數據和其MD5值,想找到一個具有相同MD5值的數據(即偽造數據)是非常困難的。

MD5的作用是讓大容量信息在用數字簽名軟體簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個任意長度的位元組串變換成一定長的16進制數字串)。

大家都知道,地球上任何人都有自己獨一無二的指紋,這常常成為司法機關鑒別罪犯身份最值得信賴的方法;與之類似,MD5就可以為任何文件(不管其大小、格式、數量)產生一個同樣獨一無二的MD5「數字指紋」,如果任何人對文件做了任何改動,其MD5也就是對應的「數字指紋」都會發生變化。

❻ 誰能通俗易懂地講講MD5加密原理

MD5演算法的原理可簡要的敘述為:MD5碼以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。

在MD5演算法中,首先需要對信息進行填充,這個數據按位(bit)補充,要求最終的位數對512求模的結果為448。也就是說數據補位後,其位數長度只差64位(bit)就是512的整數倍。

即便是這個數據的位數對512求模的結果正好是448也必須進行補位。

補位的實現過程:首先在數據後補一個1 bit; 接著在後面補上一堆0 bit, 直到整個數據的位數對512求模的結果正好為448。總之,至少補1位,而最多可能補512位。

(6)md5演算法研究擴展閱讀

當需要保存某些密碼信息以用於身份確認時,如果直接將密碼信息以明碼方式保存在資料庫中,不使用任何保密措施,系統管理員就很容易能得到原來的密碼信息,這些信息一旦泄露, 密碼也很容易被破譯。為了增加安全性,有必要對資料庫中需要保密的信息進行加密,這樣,即使有人得到了整個資料庫,如果沒有解密演算法,也不能得到原來的密碼信息。

MD5演算法可以很好地解決這個問題,因為它可以將任意長度的輸入串經過計算得到固定長度的輸出,而且只有在明文相同的情況下,才能等到相同的密文,並且這個演算法是不可逆的,即便得到了加密以後的密文,也不可能通過解密演算法反算出明文。

這樣就可以把用戶的密碼以MD5值(或類似的其它演算法)的方式保存起來,用戶注冊的時候,系統是把用戶輸入的密碼計算成 MD5 值,然後再去和系統中保存的 MD5 值進行比較,如果密文相同,就可以認定密碼是正確的,否則密碼錯誤。

通過這樣的步驟,系統在並不知道用戶密碼明碼的情況下就可以確定用戶登錄系統的合法性。這樣不但可以避免用戶的密碼被具有系統管理員許可權的用戶知道,而且還在一定程度上增加了密碼被破解的難度。

MD5 演算法還可以作為一種電子簽名的方法來使用,使用 MD5演算法就可以為任何文件(不管其大小、格式、數量)產生一個獨一無二的「數字指紋」,藉助這個「數字指紋」,通過檢查文件前後 MD5 值是否發生了改變,就可以知道源文件是否被改動。

❼ 在FPGA上快速實現MD5演算法的新方法論文

在FPGA上快速實現MD5演算法的新方法論文

摘 要 文章介紹了一種在FPGA上快速實現MD5演算法的新方法,給出了優化設計的原理、實現的具體方法及其重要模塊的設計實現方案。

關鍵詞 MD5;FPGA;Verilog語言;集成電路;關鍵路徑

1 引言

隨著電子商務和網路通信的發展,網路信息安全的重要性越來越顯著,信息加密、數字簽名、數據的完整性認證、身份驗證等成為信息安全領域的重要內容。MD5演算法本身是為數字簽名應用而設計的,隨後也應用在信息驗證技術當中。作為應用最廣泛的安全散列演算法,MD5演算法的高效實現就成為研究的需要,MD5演算法本身可以採用軟體實現,但其性能受到處理器件性能的制約不能滿足網路通信帶寬日益增長的要求,因而通過硬體實現高速MD5 運算就成為需要。

2 MD5演算法介紹

MD5 演算法可以對任何長度不超過 264二進制位的消息產生128 位的單向散列消息摘要輸出, RFC1321 標准中的MD5 演算法主要步驟如下:

在一些初始化處理後,MD5以512位分組來處理輸入文本,每一分組又劃分為16個32位子分組。演算法的輸出由四個32位分組組成,將它們級聯形成一個128位散列值。

(1)附加填充比特:填充消息使其長度恰好為一個比512位的倍數僅小64位的數。即對報文進行填充使報文的長度(比特數)與448模512同餘。填充方法是附一個1在消息後面接所要求的多個比特0。

(2)附加長度值:在其後附上64位的消息長度(填充前)。如果消息長度大於 264,僅使用該長度的低64比特。這樣,該域包含的長度值為初始長度模264 的值。

這兩步的作用是使消息長度恰好是512位的整數倍(演算法的其餘部分要求如此),同時確保不同的消息在填充後不相同。

(3)初始化寄存器:四個32位初始化變數為:

它們也被稱為鏈接變數(chaining variable)

(4)進行演算法的主循環:這一步是演算法的核心,它是一個包含四個大循環的64步函數,四個大循環結構相同,但每次使用的邏輯函數不同,每一個大循環由對512比特的16步操作組成,即每16步為一輪大循環。

每次操作如下(設 Ai+1、Bi+1 、Ci+1 、Di+1 為第 +1個時鍾周期時打入寄存器的值):

以一下是每輪中用到的四個非線性函數(每輪一個)。

常數ti可以如下選擇:在第i步中,ti是4294967296*abs(sin(i))的整數部分,i的單位是弧度。Wi是512位消息分組中的一個,Si是每次循環移位的次數。對每次而言也是固定的常數。

(5)結果輸出:所有64步完成之後,將第64步的輸出加到四個初始化變數上作為新的初始化變數,進行下一個512比特分組的運算,直到所有分組處理完畢,單次操作圖如下:

圖1. MD5演算法單步操作圖

3 演算法優化

由上圖可以看到,硬體實現時,MD5演算法每一步操作中的關鍵路徑在於B的求取(其他三個變數都是直接傳遞),這個關鍵路徑包括了四個模 232加法運算、三輸入變數的邏輯運算、"兩個查找表運算及一個循環左移運算,而在FPGA設計中,加法運算最為耗時,四個加法運算至少需要三個加法器級聯完成,加法運算嚴重製約了整個操作的速度,可見要加快演算法運行速度就必須在簡化這一關鍵路徑上下工夫,經過觀察我們發現,在

中 對每個周期都是已知的常數,是輸入的512比特的一個32位分組,這樣,在512比特輸入初始化完成後,也可看作固定常數,

Ai是第i時鍾周期里寄存器D 的值,而 Di的值又是第i-1周期里的Ci-1 ,即Ai 的`值是第i-1周期里Ci-1的值。

若在第i周期設中間寄存器變數 ,並令

那麼在第i+1周期,

就可以表示為

操作就可以用下面幾個式子代替:

其中, Ai+1沒有參與任何運算,因此上式可以接著化簡為

這樣一來,原來一個周期內需要完成三級加法和相應的組合邏輯,現在只需要完成兩級加法和部分組合邏輯就行了,大大提高了演算法速度,只要在運算開始時加-個周期的初始化即可,簡化後的系統框圖如下:

圖2. 改進後的單步操作圖

4 結果比較

由上文中的演算法分析部分不難看出,傳統的實現方式關鍵路徑是3級32比特加法器延遲和組合邏輯的延遲,而改進的實現方式減少了一級加法器的延遲,並把組合邏輯的延遲分散到不同路徑上,因此,採用改進的實現方式大約可以將速度提高到原來的1.5倍左右。同時,為了實現數據的初始化,需要提前一個周期計算出寄存器A的值,因此整個演算法的實現需要65個周期。我們採用 VerilogHDL 描述,選擇Altera Stratix II EP2S15F672C5 FBGA晶元,在QuartusII6.0上驗證通過。由於在FPGA中,連線延時也很關鍵,而這部分延時不能像加法延時那樣通過預先計算並存儲在寄存器中來消除一部分,所以實際的MD5改進演算法與傳統型相比較,速度的提高約為1.3,資源方面由於只是增加了一個時鍾節拍,寄存器數量和組合邏輯並沒有增加,所以改進型在資源方面和傳統型相當。下表為演算法改進前後在資源、頻率、流量上的比較。

表1. 改進前後資源比較

5 結束語

由表1可見,改進型MD5演算法實現,使用的資源並沒有明顯增加,但速度的改善十分明顯,基本實現了用較少的資源得到較高速率的目標,證明了結構的正確性和合理性。實驗結果也說明,這種利用寄存器來減少加法器級聯從而減少關鍵路徑的實現方法也可用於一般的FPGA硬體設計中。

參考文獻

[1] R.Rivest. The MD5 Message-Digest Algorithm,RFC1321 1992。

[2] Jarvinen K, Tommiska M,Skytta J.Hardware implementation analysis of the MD5 hash algorithm.System Sciences,2005.HICSS』05.Proceedings of the 38th Annual Hawaii International conference on 03-06 Jan.2005:298

[3] Bruce Schneier. 應用密碼學.北京:機械工業出版社,2000:188~194

[4] William Stallings. 密碼編碼學與網路安全:原理與實踐.北京:電子工業出版社,2001: 216~222。

[5] 夏宇聞.Verilog 數字系統設計教程.航空航天大學出版社,2005

;

❽ md5指的是什麼

MD5即Message-Digest Algorithm5信息摘要演算法5,是計算機廣泛使用的散列演算法之一又譯摘要演算法,哈希演算法。經MD2,MD3和MD4發展而來,誕生於20世紀90年代初。用於確保信息傳輸完整一致。雖然已被破解,但仍然具有較好的安全性,加之可以免費使用,所以仍廣泛運用於數字簽名,文件完整性驗證以及口令加密等領域。

md5的研究

2004年8月17日的美國加州聖巴巴拉的國際密碼學會議上,來自中國山東大學的王小雲教授做了破譯MD5。HAVAL-128,MD4和RIPEMD演算法的報告,公布了MD系列演算法的破解結果。宣告了世界通行密碼標准MD5不再安全。2008年,荷蘭埃因霍芬技術大學科學家成功把2個可執行文件進行了MD5碰撞,使得這兩個運行結果不同的程序被計算出同一個MD。

閱讀全文

與md5演算法研究相關的資料

熱點內容
尺度計演算法大全 瀏覽:925
單片機開發板的作用 瀏覽:329
唯美愛情動作電影在線觀看 瀏覽:574
老電影農村片 瀏覽:303
netbeansclinux 瀏覽:180
不可能的世界小說免費閱讀 瀏覽:272
法國啄木鳥絲襪電影 瀏覽:307
動作片愛情在線免費觀看 瀏覽:1002
騰飛投資理財分紅源碼 瀏覽:854
windows打開埠命令 瀏覽:93
php獲取數組第一個元素key 瀏覽:488
重生二戰德國元首希特勒 瀏覽:135
被迫成為言情文的炮灰男小三 瀏覽:646
風月片在線觀看視頻 瀏覽:427
如何更新搶修app 瀏覽:711
aqdya愛情網 瀏覽:743
韓國倫理電影正宇 瀏覽:887
男主角在劇里叫諾亞的電影 瀏覽:794
集結號的男主 瀏覽:415
魔獸世界懷舊服會長移交命令 瀏覽:100