1. 程式人生 > >信息安全作業五 2016012101 上官文欽

信息安全作業五 2016012101 上官文欽

添加 挑戰 重要 將不 性能 ota 出現 破解 正在

一、散列函數的具體應用

1)文件校驗

  我們比較熟悉的校驗算法有奇偶校驗和CRC校驗,這2種校驗並沒有抗數據篡改的能力,它們一定程度上能檢測並糾正數據傳輸中的信道誤碼,但卻不能防止對數據的惡意破壞。

  MD5 Hash算法的"數字指紋"特性,使它成為目前應用最廣泛的一種文件完整性校驗和(Checksum)算法,不少Unix系統有提供計算md5 checksum的命令。

  2)數字簽名

  Hash 算法也是現代密碼體系中的一個重要組成部分。由於非對稱算法的運算速度較慢,所以在數字簽名協議中,單向散列函數扮演了一個重要的角色。對 Hash 值,又稱"數字摘要"進行數字簽名,在統計上可以認為與對文件本身進行數字簽名是等效的。而且這樣的協議還有其他的優點。

  3)鑒權協議

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

二、說明散列函數的安全性以及目前安全散列函數的發展。

1)生日攻擊

生日攻擊是指在N個人中出現生日相同的概率,通常我們本能的反應是366個人中就一定會有相同生日,但實際上通過概率的運算,只需要70個人,出現相同生日的概率就高達99.9%。而70大概只是366的五分之一。

防範方法:

(1)使用安全的Hash算法:安全的Hash算法生成的Hash值有足夠多的位數。這樣,攻擊者在尋找兩個具有相同Hash值的文件時就會非常困難。

(2)加鹽:在為文件簽名之前,先向文件添加一個隨機值,然後計算Hash值,再將文件、簽名和隨機值一起發送給接收者。這樣,攻擊者必須找出具有特定Hash值的偽造文件,這非常困難。

(3)改動文件:在為文件簽名之前,對消息或文件做少許改動。這樣,攻擊者必須找出具有特定Hash值的偽造文件,這非常困難。

2MD5安全性:

MD5(RFC 1321)是 Rivest 於1991年對MD4的改進版本。它對輸入仍以512位分組,其輸出是4個32位字的級聯,與 MD4 相同。MD5比MD4來得復雜,並且速度較之要慢一點,但更安全,在抗分析和抗差分方面表現更好,是計算機安全領域廣泛使用的一種散列函數。

但是在2004年8月17日的美國加州聖巴巴拉,正在召開的國際密碼學會議上,王曉雲教授首次公布了提出一種尋找MD5碰撞的新方法,目前利用該方法用普通微機幾分鐘內即可找到MD5的碰撞,MD5已經被徹底攻破。她的研究成果作為密碼學領域的重大發現宣告了固若金湯的世界通行密碼標準MD5的堡壘轟然倒塌,引發了密碼學界的軒然大波。

3) SHA-1的安全性:

安全哈希算法SHA-1是在1993年提出並在1995年完成修訂,如今已經在許多加密安全協議中廣泛使用,包括TLS和SSL、PGP 、SSH、S/MIME和IPsec等,被視為是MD5(散列函數)的後繼者。然而從2005年開始,SHA-1的安全性就開始被密碼學家質疑,他們認為隨著計算機性能的提升,破解SHA-1算法將不成問題。2017年2月23日Google實現了對SHA-1算法的第一次攻擊,現SHA-1算法被破解已經成為現實。

三、md5算法在驗證軟件完整性時可能出現的問題。

 1)數據完整性校驗

  檢查數據有沒有被篡改過,這裏取個例子。當用Android手機進行OTA升級的時候,下載完升級包(不管是全升包還是增量包),緊接著就是用該升級包的標準MD5進行驗證,如果校驗的結果等於標準的MD5值,那麽就證明這個升級包沒有被篡改過。

  2)不可逆的加密

   像Unix系統中,用戶用用戶名和密碼登陸系統,由於系統中存放的是用戶名和密碼組合MD5校驗值,所以登陸框將會把用戶名和密碼進行MD5算法從而生成用戶名和密碼組合的MD5校驗值,系統由此可以知道能不能登陸成功。

  MD5算法解析

   MD5是以512位做為一個單位來處理原文,每一個512位又被分成16*32位來進行處理,直到所有原文都被處理一遍。

  1、首先要對原文進行填充,保證數據長度是512個位的整數倍,填充方式如下:

   (原文+ n + 64) %512 = 0

   n:表示需要在原文後面添加多少位,一般添加1個1,或n和0

   64:表示原文的長度

  2、MD5算法中,需要初始鏈接變量,作為算法第一輪運算的基礎,它作為MD5算法的初始值,可以想象,就算是同一段原文在進行MD5生成時,只要鏈接變量不一樣,生成的MD5校驗值也是不一樣的。

   針對這512位為一個分組的數據,處理方式是將它分成16*32位。從程序上來看,主循環有4輪,每一輪對這個16個數字進行處理,這裏需要提到4個函數,每一次的處理都是通過這4個函數來完成的。當經過這些循環之後,會生成一個32位的MD5目標校驗值。如果采用相同的初始鏈接變量和4個函數,那麽對於同一段原文生成的MD5目標校驗值是一樣的,所以,MD5就能去檢測數據的完整性和一致性。

信息安全作業五 2016012101 上官文欽