Mac

AEAD 的不同 MAC 和密鑰?

  • April 27, 2018

我正在實現RFC 7518中的一些算法,我注意到AES_CBC_HMAC_SHA2包含以下段落:

  1. 輔助密鑰 MAC_KEY 和 ENC_KEY 從輸入密鑰 K 生成如下。這兩個鍵中的每一個都是一個八位字節字元串。

MAC_KEY 按順序由 K 的初始 MAC_KEY_LEN 八位字節組成。ENC_KEY 按順序由 K 的最後一個 ENC_KEY_LEN 八位字節組成。

輸入密鑰 K 中的八位字節數必須是 MAC_KEY_LEN 和 ENC_KEY_LEN 之和。這些參數的值由 5.2.3 到 5.2.5 節中的 Authenticated Encryption 算法指定。注意 MAC 密鑰在輸入密鑰 K 中的加密密鑰之前;這與標識符“AES_CBC_HMAC_SHA2”中算法名稱的順序相反。

為什麼加密密鑰與 MAC 密鑰不同?我在wikipedia中看到的範例表明兩者都使用了相同的密鑰。

我的理解是,因為在 JWE 中只有消息經過身份驗證,這意味著密鑰可用於回火,並且由於 MAC 密鑰和 MAC 位於已知位置,因此應該可以偽造消息。

我在那個假設中不正確嗎?為什麼 RFC 作者選擇拆分密鑰而不是重用它?

我在 wikipedia 中看到的範例表明兩者都使用了相同的密鑰。

在大多數結構中這樣做都很好,但是“大多數”不是“全部”。圖形也可以讀作“以某種方式從給定的輸入鍵中導出一個鍵”。

為什麼加密密鑰與 MAC 密鑰不同?

從密碼學上講,對不同的原語使用不同的密鑰會更乾淨,因為它**肯定會防止由於密鑰重用而導致的微妙互動,從而使關於安全聲明的正式證明更容易。

在某些情況下,您實際上必須為 MAC 和加密方案使用不同的密鑰,最著名的例子是CBCCBC-MAC的組合,它允許在密鑰重用時(幾乎)修改整個消息.

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