日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

本文目的

在我的上一篇文章《MD5算法,看這篇就夠了》中,我描述了md5算法的基本步驟,今天跟大家分享一下破解md5的原理。參考文獻(xiàn)在文末,有興趣的讀者可以讀讀。

符號(hào)

文本中出現(xiàn)諸如M0,M1,以粗體字母+非粗體數(shù)字組合的符號(hào)等同于公式中該字母和以該數(shù)字作為下標(biāo)的符號(hào)。

MD5算法回顧

首先我們來(lái)大概回顧一下MD5算法。

  1. 填充。將消息E的長(zhǎng)度進(jìn)行填充,使其滿足對(duì)512取余為448。
  2. 補(bǔ)充數(shù)據(jù)長(zhǎng)度。將原消息以64位表示,并添加到填充的數(shù)據(jù)之后,我們得到M。
  3. 初始化緩存器。A:01 23 45 67;B:89 ab dc ed;C:fe dc ba 98;D:76 54 32 10。A,B,C,D都是32位的緩存器,在下一步運(yùn)算中使用。
  4. 進(jìn)行迭代處理。M的長(zhǎng)度是512的整數(shù)倍(448+64),我們將數(shù)據(jù)M以512長(zhǎng)度為單位進(jìn)行劃分,此時(shí)M=(M0,M1,M2....M(N-1)),在運(yùn)算中我們將這512位用16個(gè)32位的數(shù)來(lái)表示。接下來(lái),我們對(duì)M進(jìn)行遍歷,對(duì)其中的每一項(xiàng)進(jìn)行四輪運(yùn)算,每一輪都要進(jìn)行16則計(jì)算,計(jì)算的結(jié)果緩存到A,B,C,D緩存器中,并對(duì)下一次迭代產(chǎn)生影響。
  5. 輸出。我們從A的低位字節(jié)開會(huì),到D的高位字節(jié)結(jié)束,每一個(gè)都是32位,最終拼接的結(jié)果就是4*32 = 128位,這就是MD5計(jì)算的結(jié)果。

上述迭代的過(guò)程我們稱之為雜湊運(yùn)算??梢悦枋龀蛇@樣:

MD5破解原理

 

公式中的Mi表示為M中下標(biāo)為i的元素,H0是緩存器中的初始值(A,B,C,D),Hi表示第i-1輪中緩存器中的結(jié)果,四輪運(yùn)算我們抽象成函數(shù)f。

差分攻擊簡(jiǎn)介

哈希函數(shù)最重要的分析方法是差分攻擊,同時(shí)也是分析分組密碼最重要的方法之一。差分攻擊大部分是使用異或運(yùn)算的異或差分攻擊,由Eli Biham和Adi Shamir在分析類似DES加密體系的安全性中提出的,他們描述差分密碼分析是一種分析純文本對(duì)(原文)中的特殊差異對(duì)產(chǎn)生的密碼文本對(duì)的差異的影響的方法。

在本文中,我們使用整數(shù)模減((A-B) mod C)來(lái)進(jìn)行差分分析。

差分攻擊原理

兩個(gè)數(shù)之間的差我們表示為:

MD5破解原理

 

對(duì)于M=(M0,M1,M2,....,M(N-1))和M'=(M0',M1',M2',....,M(N-1)')。哈希函數(shù)的整個(gè)過(guò)程的差我們可以表示為:

MD5破解原理

 

在上式中,△H0表示初始值(A,B,C,D)之間的差,顯然是0?!鱄表示最終兩個(gè)消息之間的差,△Hi表示在第i次迭代之后結(jié)果的差,當(dāng)然也是下次迭代的初始差值。我們的目標(biāo)很簡(jiǎn)單,假如我們使得最終的結(jié)果△H=0的話,也就是M和M'的哈希結(jié)果是一樣的,M和M'就產(chǎn)生了碰撞。

差分優(yōu)化

要想使得碰撞發(fā)生,即△H為0,需要滿足的充分條件多達(dá)290多條(N=2),分布在每一輪運(yùn)算的計(jì)算上,附錄中給出了表格。要想滿足這些條件,提高碰撞的可能性,我們使用消息修改技術(shù)。有兩種修改方式。

1、對(duì)于任意的消息塊(Mi,Mi')第一輪運(yùn)算的非0“差”。

MD5破解原理

 

其中△R,第二個(gè)下標(biāo)表示輪數(shù)。我們通過(guò)修改Mi的值,保證在第一輪運(yùn)算中滿足差分的條件。

2、使用多消息修改機(jī)制,我們不僅能保證第一輪運(yùn)算滿足充分條件,同時(shí)也能都大幅提高第二輪運(yùn)算條件滿足的幾率。

MD5差分攻擊

對(duì)于MD5的差分攻擊,同其他哈希函數(shù)大同小異。這里我們攻擊的目標(biāo)是1024位M=(M0,M1)的消息體。我們的目的就是根據(jù)差分值計(jì)算M'=(M0',M1'),使得MD5(M)=MD5(M')。

步驟描述如下:

  1. 隨機(jī)產(chǎn)生M0
  2. 使用消息修改算法修改M0,使之盡量滿足充分條件;
  3. 如果所有的充分條件都滿足,則計(jì)算MD5的輸出并將其作為后半部分的鏈接變量,如果不滿足,則回到第2步,重新隨機(jī)選擇;
  4. 隨機(jī)產(chǎn)生M1
  5. 使用和前半部分相同的方法計(jì)算后半部分的輸出。需要注意的是,后半部分計(jì)算使用的鏈接變量初始值為前半部分的輸出

總結(jié)

該攻擊方法只用于尋找產(chǎn)生碰撞的消息對(duì),對(duì)于實(shí)際應(yīng)用來(lái)說(shuō),滿足差分的充分條件的幾率很小。

參考文獻(xiàn)

  1. Xiaoyun Wang,Hongbo Yu,How to Break MD5 and Other Hash Functions
  2. E. Biham, A. Shamir. Differential Cryptanalysis of the Data Encryption Standard
  3. The MD5 Message-Digest Algorithm

附錄

MD5破解原理

摘自王小云論文


MD5破解原理

摘自王小云論文

關(guān)注技術(shù)大白,帶你閱讀技術(shù)書籍,了解技術(shù)內(nèi)幕!

分享到:
標(biāo)簽:MD5
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定