密碼學初級教程(五)消息認證碼MAC-Message Authentication Code


密碼學家工具箱中的6個重要的工具:

  • 對稱密碼
  • 公鑰密碼
  • 單向散列函數
  • 消息認證碼
  • 數字簽名
  • 偽隨機數生成器

MAC能識別出篡改和偽裝,也就是既可以確認消息的完整性,也可以進行認證。

消息認證碼的輸入包括任意長度的消息和一個發送者與接受者之間共享的密鑰,它可以輸出固定長度的數據,這個數據就是MAC。

消息認證碼是一種與密鑰相關聯的單向散列函數。

消息認證碼的應用實例

  • SWIFT(Society for Wordwide Interbank Financial Telecommunication,環球銀行金融電信協會)

銀行和銀行之間是通過SWIFT來傳遞交易消息的。而為了確認消息的完整性以及對消息進行驗證,SWIFT中使用了消息認證碼。

  • IPsec

IPsec是對互聯網基本通信協議-IP協議(Internet Protocol)增加安全性的一種方式。

  • SSL/TLS

我們在網上購物等場景中所使用的通信協議。

 

消息認證碼的實現方法

  • 使用單向散列函數實現

使用SHA-1、MD5之類的單向散列函數可以實現消息認證碼,其中一種實現方法稱為HMAC。

  • 使用分組密碼實現

使用DES、AES之類的分組密碼可以實現消息認證碼。

  • 其他實現方法

使用流密碼和公鑰密碼等也可以實現消息認證碼。

HMAC

HMAC是一種使用單向散列函數來構造消息認證碼的方法,其中H為Hash的意思。

使用SHA-1、MD5、RIPEMD-160所構造的HMAC,分別稱為HMAC-SHA-1、HMAC-MD5和HMAC-RIPEMD。

對消息認證碼的攻擊

  • 重放攻擊
  • 防御重放攻擊的方式
  • 序號
  • 時間戳
  • nonce
  • 密鑰推測攻擊

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM