2016012086+杨岚青+散列函数应用及安全性
1、給出散列函數(shù)的具體應(yīng)用
(1)消息認(rèn)證,防止系統(tǒng)遭到主動(dòng)攻擊。有兩個(gè)方面的目的:
a.驗(yàn)證消息的發(fā)送者是真的。
b.驗(yàn)證數(shù)據(jù)完整性,消息在傳輸、存儲(chǔ)過(guò)程中未被篡改、重放或延遲,由于雪崩性,稍有改動(dòng)一比對(duì)就會(huì)發(fā)現(xiàn)。
(2)產(chǎn)生數(shù)字簽名:計(jì)算H(m),然后私鑰加密,確認(rèn)信息發(fā)布者,提供身份認(rèn)證和不可抵賴性。
(3)密鑰推導(dǎo):天生單向性,密鑰導(dǎo)出函數(shù)(KDF),用于將密鑰擴(kuò)展到更長(zhǎng)的密鑰或獲得所需格式的密鑰。
(4)偽隨機(jī)數(shù)生成:通常使用TRNG來(lái)產(chǎn)生種子。不知道種子情況下,不管知道序列多少位,都無(wú)法預(yù)測(cè)下一位,從產(chǎn)生的任何值都不能推斷出種子值。
2、 結(jié)合生日攻擊、以及2004、2005年王曉云教授有關(guān)MD5安全性和2017年google公司SHA-1的安全性,說(shuō)明散列函數(shù)的安全性以及目前安全散列函數(shù)的發(fā)展。
散列函數(shù)的安全性
(1)先說(shuō)一下生日攻擊,生日攻擊法可用于攻擊任何Hah算法,只依賴于Hash值的長(zhǎng)度。生日悖論:在一個(gè)教室里只要有23或23以上的人數(shù),至少有兩個(gè)人生日相同的概率就大于等于0.5;在一個(gè)教室中,找一個(gè)生日與某人生日相同的概率不小于0.5時(shí),只需要有學(xué)生183人。在碰撞中,使用生日攻擊,當(dāng)進(jìn)行2^(n/2)次的選擇明文攻擊下成功的概率將超過(guò)0.63。所以生日攻擊對(duì)散列函數(shù)安全性是非常大的,生日攻擊對(duì)散列函數(shù)的安全提出一個(gè)必要條件,消息一定要夠長(zhǎng)。統(tǒng)計(jì)結(jié)果表明,當(dāng)Hash值長(zhǎng)度為128比特時(shí),任意兩個(gè)報(bào)文M1、M2具有相同hash值的概率接近零。標(biāo)準(zhǔn)安全hash值為160比特。
(2)MD5。先了解了一下MD5的加密過(guò)程
1.消息填充:將消息長(zhǎng)度填充至差64位就是512的倍數(shù)。那64位是表示填充長(zhǎng)度的,是先從低位表示填充長(zhǎng)度的。
?
2.填充后的消息是512的倍數(shù),然后按512分組,每組又是16個(gè)32位長(zhǎng)的字。
?
3.初始化中間結(jié)果:128位的緩存區(qū)來(lái)存儲(chǔ)中間結(jié)果,對(duì)其初始化4個(gè)32位長(zhǎng)的寄存器分別存放四個(gè)固定的整數(shù)。
4.迭代壓縮:每個(gè)分組經(jīng)壓縮函數(shù)HMD5處理。
?
5.????輸出:最后一個(gè)HMD5的輸出即為消息摘要。
王小云教授的成就是找到了MD5迅速碰撞的方法,這是個(gè)巨大的進(jìn)步,但距離實(shí)用價(jià)值還有很大距離。哈希函數(shù)是不可逆的,從MD5哈希值反向推出原始信息是不可能的,王教授只是找到了快速碰撞的方法。就是根據(jù)MD5哈希值快速找到另外一個(gè)報(bào)文也是這個(gè)哈希值,但是理論上一個(gè)MD5哈希值對(duì)應(yīng)無(wú)窮多的原始報(bào)文,目前想根據(jù)MD5哈希值對(duì)原始報(bào)文信息進(jìn)行篡改還是不可能的。
(3)SHA-1。與前身MD5相比,SHA-1的輸出長(zhǎng)度更長(zhǎng)(MD5輸出長(zhǎng)度為128bit,而SHA-1的輸出長(zhǎng)度為160bit),這也意味著出現(xiàn)哈希碰撞的概率更低。同時(shí),SHA-1的安全性似乎也比MD5更好。王小云教授所在的團(tuán)隊(duì)提出了一個(gè)一種尋找SHA-1碰撞的,相對(duì)快速的攻擊方法,這標(biāo)志著SHA-1存在漏洞。
目前安全散列函數(shù)的發(fā)展
2004年8月中國(guó)密碼學(xué)家王小云教授等首次公布了提出一種尋找MD5碰撞的新方法。目前利用該方法用普通微機(jī)幾分鐘內(nèi)即可找到MD5的碰撞,MD5已經(jīng)被徹底攻破。MD5已經(jīng)受了重傷;它的應(yīng)用就要淘汰。SHA-1仍然活著,但也不會(huì)很長(zhǎng)。著名計(jì)算機(jī)公司SUN的LINUX專家Val Henson則說(shuō):“以前我們說(shuō)"SHA-1可以放心用,其他的不是不安全就是未知", 現(xiàn)在我們只能這么總結(jié)了:"SHA-1不安全,其他的都完了"。近些年,應(yīng)用最廣泛的散列函數(shù)是SHA。
● 1995年公布SHA-1
● 2002年,公布了SHA-2(SHA-256、SHA-384、SHA-512)
● 2008年,增加了SHA-224
針對(duì)王小云教授等破譯的以MD5為代表的Hash函數(shù)算法的報(bào)告,美國(guó)國(guó)家技術(shù)與標(biāo)準(zhǔn)局(NIST)于2004年8月24日發(fā)表專門(mén)評(píng)論,評(píng)論的主要內(nèi)容為:“在最近的國(guó)際密碼學(xué)會(huì)議(Crypto 2004)上,研究人員宣布他們發(fā)現(xiàn)了破解數(shù)種HASH算法的方法,其中包括MD4,MD5,HAVAL-128,RIPEMD還有 SHA-0。分析表明,于1994年替代SHA-0成為聯(lián)邦信息處理標(biāo)準(zhǔn)的SHA-1的減弱條件的變種算法能夠被破解;但完整的SHA-1并沒(méi)有被破解,也沒(méi)有找到SHA-1的碰撞。研究結(jié)果說(shuō)明SHA-1的安全性暫時(shí)沒(méi)有問(wèn)題,但隨著技術(shù)的發(fā)展,技術(shù)與標(biāo)準(zhǔn)局計(jì)劃在2010年之前逐步淘汰SHA-1,換用其他更長(zhǎng)更安全的算法(如SHA-224、SHA-256、SHA-384和SHA-512)來(lái)替代。”
現(xiàn)在Google,facebook,微軟,蘋(píng)果等早已經(jīng)換成了暫時(shí)安全的sha-256,sha-512等算法,屬于sha-2系列,發(fā)布快十五年了,應(yīng)該很快就可以看到國(guó)際主流的網(wǎng)站更換sha-3算法了。
3、md5算法來(lái)驗(yàn)證軟件完整性時(shí)可能出現(xiàn)的問(wèn)題
(1)對(duì)于第二個(gè)鏈接中的helloworld.exe和goodbyworld.exe兩個(gè)可執(zhí)行文件,會(huì)打印出不同的字符,但它們的MD5是一樣的。密碼學(xué)家曾使用“構(gòu)造前綴碰撞法”來(lái)進(jìn)行攻擊,用了不到兩天,得出結(jié)論:MD5算法不應(yīng)再用于任何軟件完整性檢查或代碼簽名的用途!現(xiàn)在,如果僅僅是想要生成 MD5 相同而內(nèi)容不同的文件的話,在任何主流配置的電腦上用幾秒鐘就可以完成了。
這幾位密碼學(xué)家編寫(xiě)的“快速 MD5 碰撞生成器”:
http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5.exe.zip
源代碼:http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5_source.zip
(2)簽名算法受到威脅。王小云教授發(fā)現(xiàn),可以很快的找到MD5的“碰撞”,就是兩個(gè)文件可以產(chǎn)生相同的“指紋”。這意味著,當(dāng)你在網(wǎng)絡(luò)上使用電子簽名簽署一份合同后,還可能找到另外一份具有相同簽名不同內(nèi)容的合同,這樣兩份合同的真?zhèn)涡员銦o(wú)從辨別。王小云教授的研究成果證實(shí)了利用MD5算法的碰撞可以嚴(yán)重威脅信息系統(tǒng)安全,這一發(fā)現(xiàn)使目前電子簽名的法律效力和技術(shù)體系受到威脅。
?
轉(zhuǎn)載于:https://www.cnblogs.com/yanglqa/p/9032289.html
總結(jié)
以上是生活随笔為你收集整理的2016012086+杨岚青+散列函数应用及安全性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ScalaPB(4): 通用跨系统pro
- 下一篇: 过年买新碗的寓意 新年最重要的是讨个吉利