加密第二節_散列算法

加密第二節_散列算法

本節內容

  1. 散列函數(HASH函數)
  2. HMAC技術(哈希信息認證代碼技術)

散列函數(HASH函數)

主流的散列算法有MD5和SHA-1,其主要任務是驗證數據的完整性,經過散列函數計算獲得的結果叫作散列值,該散列值一般被稱爲數據的指紋web

散列算法特色算法

  1. 固定大小:散列函數能夠接收任意大小數據,並輸出固定大小散列值,MD5獲得的散列值大小是128bit,SHA-1獲得的散列值大小是160bit
  2. 雪崩效應:原始數據只要修改,計算獲得的散列值將會發生巨大變化
  3. 單向:只可能從原始數據計算獲得散列值,不可能從散列值恢復數據
  4. 衝突避免:幾乎不能找到另一個數據和當前數據計算的散列值相同,所以散列函數能確保數據的惟一性

散列算法用途:安全

  • 認證;
  • 使用數字簽名保障數據與文檔的完整性;
  • IPSec和路由協議的驗證

HMAC技術(哈希信息認證代碼技術)

  • 增長一個KEY一同作HASH;
  • 須要雙方預先知道這個KEY;
  • 在保障完整性的基礎上實現了源認證;
  • 消除了HASH易受中間人攻擊的問題;基於存在的HASH函數;

舉例:
OSPF的認證,路由器1使用明文和KEY一同作散列,獲得散列值,再將該散列值和明文一同發給路由器2,路由器2將明文和相同的KEY作散列運算,獲得散列值,進行對比,實現源認證和信息的完整性。函數

MD5:性能

  • 普遍使用的HASH算法;
  • 單向;
  • 衝突避免;
  • 128bit固定輸出;
  • 不建議在新的運用中使用;
  • SHA-1和SHA-2提供了更高的安全性

HASH/HMAC使用指南:
避免使用MD5,使用更加安全的SHA-1和SHA-2,從性能考慮能夠使用MD5,保護用於HMAC的預共享密鑰。加密

相關文章
相關標籤/搜索