消息驗證碼:
消息認證碼是壹種確認完整性和認證的技術,消息認證碼,簡稱MAC。
消息認證碼的輸入是任意長度的消息,是發送方和接收方共享的密鑰。輸出是固定長度的MAC值。
消息認證碼的特點:
消息認證碼是與密鑰相關聯的單向散列函數。消息認證碼需要預先有密鑰。
消息認證碼也有密鑰分發的問題,解決方案類似於對稱密碼:公鑰密碼、Diffie-Hellman、密鑰分發中心等。
消息認證碼可以判斷消息是否被篡改,或者是否有人偽裝成發送者發送消息。
應用示例:
SWIFT:護送國際銀行間交易並使用消息認證碼技術的國際組織。
IPsec:消息的認證和完整性檢查由消息認證碼完成。
SSL/TLS:消息認證碼也用於通信內容的認證和完整性檢查。
消息認證碼的實現;
消息認證碼有多種實現方式。
使用單向哈希函數實現。
消息認證碼可以通過使用單向散列函數來實現,例如SHA-2,其中壹種被稱為HMAC。
使用分組密碼實現。
采用分組密碼的密鑰作為消息認證的共享密鑰,所有消息均采用CBC方式加密。
取最後壹條密文作為MAC值。因為CBC模式下的最後壹個包會同時受到整個消息和密鑰的影響,所以它可以用作消息認證碼。