Authenticated-Encryption

具有零長度 AAD 的 GCM 是否不太安全?

  • October 17, 2021

在之前的問題中,明確指出在 GCM 的情況下,“無 AAD”和“零長度 AAD”之間沒有區別。由於我在幾個實現中註意到“零長度 AAD”,我的問題是,這是否會降低此類 AE 方案的安全性?

在處理 AE 安全性的各種論文中,我認為Namprempre、Rogaway 和 Shrimpton 的論文 Reconsidering Generic Composition在這方面可能是最明確的。根據他們的 nAE 方案列舉,顯示較弱安全邊界的第一個方案是 A9,其中 A(即 AAD)從標記計算中刪除(見圖 5)。當然,現在他們確實提到這是一個邊緣案例(過渡性)。但他們明確表示,它的安全性不如 A1-A8 方案(所有這些方案在標籤計算中都包含 A)。我試圖調查有關該主題的其他論文,但我還沒有找到提供類似處理的論文。

因此,如果 GCM 中缺少 AAD(或者如果 |AAD|=0),GCM 安全性是否以任何方式降級,或者我們的安全性證明有點弱?或者,這不是我們應該從上面的 Namprempre 論文中得出的結論嗎(假設他們的結果被加密社區接受)?

AES-GCM 在論文中屬於 A5 類。在 AES-GCM 中不支持 $ \texttt{no-AAD} $ ,即使您在加密期間不使用 AAD,AES-GCM 也會將其轉換為 $ \texttt{zero-length-AAD} $ .

見 NIST特別出版物 800-38d,第 15 頁

算法4: $ GCM-AE_K (IV, P, A) $

  1. 讓 $ u = 128\cdot\lceil\operatorname{len}(C)/128\rceil - \operatorname{len}(C) $ 然後讓 $ v = 128\cdot\lceil\operatorname{len}(A)/128\rceil - \operatorname{len}(A) $ .

5.定義一個塊, $ S $ , 如下:$$ S = \operatorname{GHASH}H(\mathbf{A \mathbin| \mathtt 0^v} \mathbin| C \mathbin| \mathtt 0^u \mathbin| \mathbf{[\operatorname{len}(A)]{64}} \mathbin| [\operatorname{len}(C)]_{64}). $$ …

在第 4 步和第 5 步中,AAD 和密文都附加了最小數量的 ’ $ \mathtt 0 $ ’ 位,可能沒有,因此結果字元串的位長度是塊大小的倍數(粗體是我的)。

$ A $ 是關聯數據, $ len(A) = 0 $ 所以, $ \mathtt{v} = 0 $ . 即使在這種情況下,我們也有 $ [\operatorname{len}(A)]_{64} $ ,這個 64 位的關聯數據長度編碼,這將始終指示 AAD 的存在,零長度與否!。

如果攻擊者刪除相關數據,使其看起來像零長度,則在解密期間,必須停止標籤不匹配(始終立即停止並停止解密)。

支持no-AAD的方案不能攜帶失去AAD的資訊,否則屬於零長度AAD。

最後,我們對零長度 AAD 的偽造提供了額外的保護。

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