2010-09-12 104 views

回答

78
  • 甲消息摘要算法採用單個輸入 - 消息 - 和產生「消息摘要」(又名散列),它允許您驗證消息的完整性:任何變化到消息將(理想)導致產生不同的散列。可以替換消息和摘要的攻擊者完全能夠用新的有效對替換消息和摘要。
  • MAC算法有兩個輸入端 - 的消息和密鑰 - 並且產生MAC,其可以驗證完整性的消息的真實性:任何變化到消息祕密密鑰將(理想地)導致產生不同的MAC。沒有祕密的人應該能夠產生驗證的MAC計算;換句話說,可以使用MAC來檢查MAC是否由可訪問密鑰的一方產生。
  • HMAC算法只是一種特定類型的MAC算法,它在內部使用散列算法(而不是例如加密算法)來生成MAC。
+0

@Rook這裏很老的評論,但CMAC只是MAC的一種特定形式。當然,沒有什麼能反對使用AES-CMAC。 – 2012-08-11 13:32:54

+1

@owlstead你的權利,我很困惑,因爲一些圖書館將其稱爲模式。 – rook 2012-08-11 18:00:06

+1

「一個MAC可以用來檢查MAC是否生成...」不應該是「...檢查_message_是否生成...」? – leonbloy 2017-09-20 13:46:28

14
  • 消息摘要是一個簡單的消息的散列。它是應用於輸入數據的加密散列函數的輸出,它被稱爲消息
  • A 消息驗證碼(MAC)是一條證明消息完整性並且不容易被僞造的信息。
  • A HMAC是由RFC 2104定義的特定種類的MAC。

維基百科有很好的文章涵蓋了所有這些條款:見Message DigestMessage Authentication CodeHMAC

+1

對於MAC,完整性和真實性都可以證明,因爲發送方和接收方共享一個公共密鑰。 – Nate 2013-07-01 00:08:44