散列函數的應用及其安全性

(1) 給出散列函數的具體應用。算法

 

Hash算法在信息安全方面的應用主要體如今如下的3個方面:
  1)文件校驗
  咱們比較熟悉的校驗算法有奇偶校驗和CRC校驗,這2種校驗並無抗數據篡改的能力,它們必定程度上能檢測並糾正數據傳輸中的信道誤碼,但卻不能防止對數據的惡意破壞。
  MD5 Hash算法的"數字指紋"特性,使它成爲目前應用最普遍的一種文件完整性校驗和(Checksum)算法,很多Unix系統有提供計算md5 checksum的命令。
  2)數字簽名
  Hash 算法也是現代密碼體系中的一個重要組成部分。因爲非對稱算法的運算速度較慢,因此在數字簽名協議中,單向散列函數扮演了一個重要的角色。對 Hash 值,又稱"數字摘要"進行數字簽名,在統計上能夠認爲與對文件自己進行數字簽名是等效的。並且這樣的協議還有其餘的優勢。
  3)鑑權協議
  以下的鑑權協議又被稱做"挑戰--認證模式:在傳輸信道是可被偵聽,但不可被篡改的狀況下,這是一種簡單而安全的方法。安全

 

(2) 結合生日攻擊、以及200四、2005年王曉雲教授有關MD5安全性和2017年google公司SHA-1的安全性,說明散列函數的安全性以及目前安全散列函數的發展。問題2的回答能夠參考下面給出的第一個連接。函數

 

(1)散列函數的安全性google

一、已知哈希函數的輸出,要求它的輸入是困難的,即已知c=Hash(m),求m是困難的。這代表函數應該具備單向性。
二、已知m,計算Hash(m)是容易的。這代表函數應該具備快速性。
三、已知,構造m2使Hash(m2)=c1是困難的。這代表函數應該具備抗碰撞性。
四、c=Hash(m),c的每一比特都與m的每一比特有關,並有高度敏感性。即每改變m的一比特,都將對c產生明顯影響。這代表函數應該具備雪崩性。
五、做爲一種數字簽名,還要求哈希函數除了信息m自身以外,應該基於發信方的祕密信息對信息m進行確認。
六、接受的輸入m數據沒有長度限制;對輸入任何長度的m數據可以生成該輸入報文固定長度的輸出。md5

(2)安全散列函數的發展開發

三種最普遍使用的算法是MD5,SHA和RIPEMD; 然而全部算法都來自MD4的格式。近些年,應用最普遍的散列函數是SHA。因爲其餘每一種被普遍應用的散列函數都已經被證明存在這密碼分析學中的缺陷,接着到2005年,SHA或許僅存的安全散列算法。SHA由美國國家標準與技術研究院(NIST)開發。1995年公佈SHA-1;2002年,公佈了SHA-2(SHA-25六、SHA-38四、SHA-512);2008年,增長了SHA-224。軟件

 

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

可能會感染病毒、植入木馬/後門/人爲篡改、傳輸故障。若是有第三方在驗證軟件完整性時截取軟件代碼,使用快速MD5碰撞生成器,在短期內僞造一份相同的MD5,並惡意篡改軟件,那麼安全性將會大大降低,當軟件過大時,在驗證過程當中所需的時間也會大大增長,對於第三方而言,攻擊的成功機率也會增長。攻擊者也不須要從源代碼中構造出兩個文件,徹底能夠將第一個文件做爲任何源的任何可執行文件,而且做爲第二個文件生成第二個可執行文件做爲惡意軟件。而後,能夠找到要附加到兩個文件的字節塊,使得獲得的文件具備相同的MD5哈希值。攻擊者只須要獲取第一個文件就能夠了。密碼

相關文章
相關標籤/搜索