Aes

使用初始化向量作為附加的認證數據

  • September 13, 2021

密碼是 GCM-AES。是否可以接受/建議將 IV 儲存為 AAD?有什麼流行的例子嗎?

正如評論中已經指出的那樣,您不需要將 IV 放入 AAD(附加認證數據)中。

NIST (PDF) 採用的GCM 提案在第 2.1 段輸入和輸出中明確規定了這一點:

IV 是經過身份驗證的,不需要將其包含在 AAD 欄位中。

NIST 文件 SP 800-38d ( PDF) 沒有明確指定它,但它確實包含了一些關於此效果的提示,例如在附錄 B 中:

通過認證加密功能創建認證標籤提供了一種機制,通過該機制可以在執行認證解密功能時獲得明文和AAD(和IV)的真實性保證。

最後,為了更通用一點,RFC 5116 : An Interface and Algorithms for Authenticated Encryption, 2.1: Authenticated Encryption指定了以下內容:

隨機數在算法內部經過身份驗證,不需要將其包含在 AD 輸入中。如果對應用程序方便,nonce 可以包含在 P 或 A 中。


因此將 IV 儲存在 AAD 中是可以接受的,但我認為沒有任何理由推薦它。

如果我在審查期間看到 AAD 中包含 IV,我可能會認為它表明設計師不知道他/她在做什麼。

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