Aes
使用初始化向量作為附加的認證數據
密碼是 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,我可能會認為它表明設計師不知道他/她在做什麼。