Encryption

僅將 AES-CCM 用於身份驗證是否安全 - 即用於發送沒有加密數據的 AAD?

  • November 8, 2021

我們在通信協議中採用 AES-CCM 128 位流密碼,具有 7 字節隨機數和 12 字節身份驗證標籤。到目前為止,不需要在此協議中使用附加認證數據 (AAD),因為所有傳輸的數據(除了 Nonce 之外)都已加密。

與此同時,出現了一些新的網路相關要求,可能需要將一個消息欄位作為 AAD 傳輸,而不是在密文中傳輸。一些傳輸的消息實際上將只包含這個經過身份驗證的明文欄位。這些消息中不會有額外的密文。預期的消息接收者將始終必須在實際解釋消息之前對消息進行身份驗證。

這是否可行/安全,或者這是否會以任何方式損害系統的安全性?

CCM的NIST 規範(全文:“塊密碼操作模式建議:用於身份驗證和機密性的 CCM 模式”):在第 5.3 節中對此有明確的評論:

有效負載也可能為空,在這種情況下,規範退化為關聯數據的身份驗證模式。

所以,是的,它是安全的,並且不會損害安全性。順便說一下,對於任何經過身份驗證的密碼來說,這通常都是正確的。

作為旁注,與幾乎所有密碼一樣,任何對手當然可以看到沒有密文 - 由於使用了 CTR,它通常知道每個明文消息的確切大小。

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