在更改密鑰之前,我們可以使用 AES 256 加密多少數據?
雖然這個問題已經在這個連結中得到了回答(After How Much Data Encryption (AES-256) we should change key?),但我對答案並不滿意,因為建議塊密碼操作模式:伽羅瓦/計數器模式(GCM ) 並且 GMAC對此有不同的看法。它說
現在 2^32 塊密碼,意味著 2^32 * 16 字節的數據,大約是 68 GB。那麼我需要在 68 GB 之後更改密鑰嗎?我很困惑,因為我對這個領域很陌生,我會非常感謝在這方面的任何幫助或建議。
AES-GCM 與 AES 不同。AES-GCM 使用 96 位 IV,或在使用前將非 96 位 IV 轉換為 96 位 IV。RBG 和確定性構造的特定約束意味著並非所有這 96 位都有望在呼叫之間發生變化。IV 衝突(同一 IV 與給定密鑰的兩次使用)對 GCM 的安全性是災難性的,因此必須避免。
n 位值的“生日界限”是 $ 2^\frac{n}{2} $ ,所以 96 位 IV 的邊界只有 $ 2^\frac{96}{2}=2^{48} $ 塊。但是兩種推薦的 IV 結構都保持了一些 IV 的固定,從而降低了推薦的塊數。例如
本建議書建議但不要求 IV 的前 32 位(即最左邊)保持固定欄位;並且尾隨(即最右邊的)64 位保存呼叫欄位
意味著只有 64 位的 IV 會發生變化,所以 $ 2^\frac{64}{2}=2^{32} $ 可以使用這些 GCM 設置安全地加密塊。其他 IV 生成方法同樣傾向於減少變化位的數量。修復一些位允許多個源使用相同的密鑰加密數據。如果一位是固定的,則兩個設備可以共享一個密鑰。如果兩位是固定的,4個設備可以。等等。如果沒有固定的位,那麼每個設備都必須有自己的用於其他設備的發送和接收密鑰。由於規範的這一部分是關於固定的、共享的密鑰,因此儲存需求將很快使小型系統不堪重負。
一般來說,它最終是特定於模式的,但事實證明,限制通常約為 64 GB,儘管它也取決於您的風險承受能力。
施奈爾等人。推薦 $ 2^{32} $ 帶有 CBC 的塊和 $ 2^{60} $ 具有 CTR 模式的塊。然而,後來的研究表明,CTR 模式與 CBC 模式一樣容易洩漏,因此您可能希望將自己限制在 $ 2^{32} $ 也可以使用該模式阻止。見https://eprint.iacr.org/2018/159.pdf