1. 程式人生 > >散列函數的應用及其安全性(信息安全技術作業5)

散列函數的應用及其安全性(信息安全技術作業5)

判斷 ica ont 技術 不能 fan 結合 spa 以及

一、給出散列函數的具體應用

1)文件校驗

MD5 Hash算法的"數字指紋"特性,使它成為目前應用最廣泛的一種文件完整性校驗算法

2數字簽名

因為非對稱算法的運算速度比較慢,所以在數字簽名協議中應用單向散列函數。對 Hash 值進行數字簽名,在統計上可以認為與對文件本身進行數字簽名是等效的。通過HASH處理我們可以使其僅僅作用於HASH摘要上,從而提高效率。

3)鑒權協議

如下的鑒權協議又被稱作"挑戰--認證模式:在傳輸信道是可被偵聽,但不可被篡改的情況下,這是一種簡單而安全的方法。

4)安全數據的安全存儲

由於HASH函數的單向性,我們可以實現口令,密碼等安全數據的安全存儲。

5)數據
校驗

HASH函數有類似數據冗余校驗的功能,但是它比簡單的冗余校驗碰撞的概率要小得多,所以HASH來做關鍵數據的驗證。

6)關鍵數據的衍生

因為HASH算法能夠最大限度的保證其唯一性(從一個隨機的種子數產生,並且不暴露種子本身秘密)。

二、結合生日攻擊、以及2004、2005年王曉雲教授有關MD5安全性2017年google公司SHA-1的安全性,說明散列函數的安全性以及目前安全散列函數的發展。

生日問題:

n個人中隨機選取k個人,k為多大時能保證k個人中有兩個人的生日是相同的?只要k=70,這其中兩個人有相同生日的可能性就是99.9%。

20042005年王曉雲教授有關MD5安全性

王小雲教授發現,可以很快的找到

MD5碰撞,就是兩個文件可以產生相同的指紋。這意味著,當你在網絡上使用電子簽名簽署一份合同後,還可能找到另外一份具有相同簽名但內容迥異的合同,這樣兩份合同的真偽性便無從辨別。王小雲教授的研究成果證實了利用MD5算法的碰撞可以嚴重威脅信息系統安全

2017google公司SHA-1的安全性

希值可與 PDF 文件內容沖突 SHA-1破壞性攻擊的速度仍然較暴力破解攻擊快10萬倍,這意味著前者確實具有可行性。

散列函數的安全性:

什麽樣的散列函數可以說是安全的呢?

第一、尋找兩個輸入得到相同的輸出值在計算上是不可行的,這就是我們通常所說的抗碰撞的

第二、找一個輸入,能得到給定的輸出在計算上是不可行的,即不可從結果推導出它的初始狀態

目前安全散列函數的發展

SHA-22002年,NIST分別發布了SHA-256SHA-384SHA-512,這些算法統稱SHA-22008年又新增了SHA-224這些目前算是比較安全的

三、結合md5算法中的選擇前綴碰撞以及第二個鏈接中的helloworld.exe和goodbyworld.exe兩個可執行文件的md5消息摘要值和兩個文件的執行結果說明md5算法在驗證軟件完整性時可能出現的問題

什麽是md5算法中的選擇前綴碰撞

以同一個給定的前綴程序A為基礎,在尾部添加不同的附加數據,得到兩個具有相同MD5的樣本BC,前綴構造法碰撞後的兩個樣本只有尾部少量字節不同,而程序代碼是相同的。通過判斷尾部數據的差異,兩個樣本可以執行不同的程序流程。由於這種碰撞手法是通過同一前綴程序碰撞生成的兩個樣本,如果其中有惡意代碼流程則兩個樣本均包含惡意代碼,所以比較容易被安全軟件識別,隱蔽性較差。

可能出現的問題

1、不同程序的MD5可能是一樣的。比如說HelloWorld.exeGoodbyeWorld.exe這兩個程序,他們會在屏幕上打印出不同的字符,但是它們的MD5都是一致的。

2、容易對MD5進行沖撞攻擊,普通的計算機可以在短時間內找到沖撞對。

3、可以利用MD5的這個漏洞來偽造數字簽名

4不能通過校驗MD5從而確保軟件安全性

散列函數的應用及其安全性(信息安全技術作業5)