Aes

AES-GCM 密碼標籤和 IV 大小,同時嘗試通過刪除它們來使加密的密文無用

  • March 12, 2019

我在 GCM 操作模式下使用 AES 對文件中的數據段進行加密/解密和身份驗證。每個部分的佈局可以通過這張圖來概括。每個段基本上都是(enc-)彼此分開解密的,使用它們各自的(隨機生成的)IV和Tag:

在此處輸入圖像描述

該段的加密過程如下:

在此處輸入圖像描述

雖然解密和身份驗證將這樣執行:

在此處輸入圖像描述

所以讓我解釋一下我的困境。

我正在嘗試優化刪除其中一個段(如上圖所示)時的情況。正面的方法是將其在磁碟上歸零。但是,出於優化的目的,我想只刪除它的 IV 和 Tag,因此希望解密該段的數據在計算上是不可行的。但這帶來了兩點:

  1. 12 字節的 IV 大小似乎有點低。我知道這是 AES-GCM 的 IV 的預設大小。但是,如果我將 IV 大小增加到 32 字節,我會在這種情況下受益嗎?因此,如果我刪除 256 位 IV,它會使加密數據“安全丟棄”嗎?
  2. 標記自己。它是用於解密還是僅用於身份驗證?換句話說,如果我出於丟棄加密數據的目的而將其清除,這是否重要。我正在使用執行 AES-GCM 解密的實際函式(使用 Crypto++ 函式 named 實現CryptoPP::GCM<CryptoPP::AES>::Decryption::DecryptAndVerify()),如果我更改標籤,它似乎返回不同的明文,但我不是 100% 確定它。

但是,出於優化的目的,我想只刪除它的 IV 和 Tag,因此希望解密該段的數據在計算上是不可行的。

都不工作。IV可能看起來有效(就像在一個大小的空間上進行蠻力搜尋一樣) $ 2^{96} $ 可能看起來令人生畏),但是攻擊者還有另一種潛在的方法。

如果攻擊者有密文,猜對了16個字節的明文和密鑰,他就可以恢復IV;從那裡,他可以恢復其餘的明文。

由於攻擊者猜測 16 字節明文的可能性,這似乎是不可行的。

而且,標籤甚至更糟(如果您遇到這種情況,AAD 也是如此);擁有密鑰、iv 和密文的攻擊者可以在沒有標籤的情況下輕鬆解密密文。他可能不確定密文沒有被修改;但是他可能願意假設它不是。

既然我給了你兩個否定的答案,那就給你一個積極的想法;為什麼不進行密鑰生成程序:

key :=SHA2( master key || extra data )

額外數據儲存在段標頭中的位置(以及其他任何地方);它是您第一次加密時隨機生成的;當您決定進行快速擦除時,您會覆蓋它。主密鑰是從使用 PBKDF2 的密碼中派生的密鑰。

如果這個額外的數據至少有 256 位長,那麼恢復密鑰並不比直接攻擊 AES-256 更容易。

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