Authentication

加密雜湊與 MAC

  • May 6, 2018

我(相信我)知道雜湊和 MAC 之間的一般區別;前者用於完整性,後者用於完整性身份驗證,因為除了消息之外,它還需要一個密鑰作為輸入。

但是,如果我散列消息,使用密鑰(與用於加密消息的密鑰不同的密鑰)對其進行加密,然後發送它而不是 MAC 呢?它不具有與發送 MAC 相同的屬性嗎?

在這兩種情況下,我們都輸入了一條消息和一個密鑰來計算一個加密的散列/MAC,所以看起來像提供了完整性和真實性。

如果不是,對手將通過什麼方式破壞與每條加密消息一起發送加密雜湊(使用單獨的密鑰)的方案的真實性?

編輯:

正如下面的評論中提到的,這已經在這里這裡得到了回答,但我無法將其標記為重複,因為它位於單獨的 StackExchange 上。

假設您的意思是E K 1 (m) || E K 2 (H(m))E K (m || H(m)),它不是任何標準中批准的 MAC 方案,可能存在問題。相反,您可能應該使用 HMAC,這涉及獲取消息和密鑰並將它們散列在一起。HMAC 由RFC 2104定義為HMAC K (m) = H((K ⊕ opad) || H((K ⊕ ipad) || m))其中opadipad是常數。HMAC 是一個帶鍵的散列函式,這意味著摘要取決於消息和密鑰。

引用自:https://crypto.stackexchange.com/questions/58988