Aes

對於 AES GCM 解密功能,輸出(PT)是否取決於標籤值(T)?

  • August 25, 2021

根據規範,FOR GCM 解密函式輸入為 IV、A、C 和 T。如下所述:

5.2.2 認證解密函式給定一個批准的分組密碼、密鑰和相關標籤長度的選擇,認證解密函式的輸入是 IV、A、C 和 T 的值,如第 2 節所述。5.2.1 以上。輸出是以下之一:

  • 與密文 C 對應的明文 P,或
  • 一個特殊的錯誤程式碼,在本文件中表示為 FAIL。

我指的是線上提供的 AES GCM 參考模型,我看到用於解密以計算不考慮標記值的 PT 結果。

輸出 (PT) 是否取決於標籤值 (T)?

參考模型連結:https ://github.com/mko-x/SharedAES-GCM/blob/master/Sources/gcmtest.c

在 GCM 中,明文是在沒有標籤的情況下計算的。但是發布明文是否安全取決於標籤!如果標籤不正確,則必須返回錯誤。如果沒有標籤“保護”明文的發布,攻擊者修改密文的內容是微不足道的。

輸出 (PT) 是否取決於標籤值 (T)?

不,不是,除非您假設返回錯誤也被視為輸出。該輸出通常表示為 $ \bot $ 在描述中,儘管您的參考將其簡單地表示為“失敗”。

最後,GCM 中使用的加密只是計數器模式加密(CTR 或 SIC)。唯一的技巧是,如果 nonce 大小大於 12 個字節,您可能需要計算計數器模式的 IV。我在 StackOverflow 上創建了一個未驗證標籤 的範例解密- 但請注意,它假定為 12 字節隨機數。

如果您想要一個 GCM 模式,其中解密取決於標籤,您應該查看 AES-GCM-SIV 模式。這裡使用了一個合成 IV (SIV),它兼作身份驗證標籤。


如果您在驗證之前使用密文,您很容易受到結果明文中特定位的更改的影響(攻擊者只需翻轉密文中的相同位)。這可能反過來導致明文預言也可能影響機密性。

沒有直接驗證的解密仍然有一些有限的適用性。您可能希望解密密文塊並將明文結果放入臨時文件中,然後在驗證身份驗證標籤後將臨時文件複製或移動到最終位置。如果驗證返回錯誤,則應銷毀臨時文件。

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