1. 程式人生 > >訊息認證碼MAC-Message Authentication Code

訊息認證碼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
  • 金鑰推測攻擊