是否有可以使用對稱(AES256)密鑰加密的最大數據量?
我正在開發一個應用程序,我們將加密數十億條小(< 2,000 字節)記錄。結合起來,我們面臨著許多 TB 的數據。每條記錄都將使用唯一的 IV/nonce 獨立加密。
我們知道重複使用 IV/nonce 值的限制以及可以使用密鑰/IV 對(NIST SP 800-38 系列)加密的數據量的限制。鑑於每條記錄都將使用唯一的 IV,這可能是推動密鑰輪換的主要因素。
是否存在最大數據量 - 無論使用唯一 IV/nonce 的加密操作數量如何 - AES 密鑰本身應該被輪換,還是完全由塊鏈模式設置的限制驅動退休?
由於所謂的生日限制,您通常不應將單個 AES 密鑰用於超過幾 PB 的數據:基於 AES 的密碼系統(如 AES-GCM)往往具有僅受以下限制的顯著優勢$$ \frac{q(q - 1)/2}{2^b} $$處理後 $ q $ 數據塊,其中 $ b = 128 $ 是塊大小,由生日悖論引起。
什麼時候 $ q \approx \sqrt{2^b} = 2^{64} $ ,標准定理基本上不提供安全保證。當你達到分組密碼的生日界限時,請參閱sweet32可能會出現什麼問題 - 當然,對於像 Blowfish 這樣的 64 位分組密碼,生日界限要小得多,它在哪裡 $ 2^{32} $ ,但這個想法仍然與 AES 有關。
(如果我們將 256 位分組密碼標準化,如 Rijndael-256 或 Threefish,那麼 $ 2^{128} $ 將完全無關緊要。但我們沒有,雖然那裡有 256 位分組密碼,但幾乎沒有人使用它們。)
使用 AES 的特定密碼系統可能有較小的限制——例如,具有隨機nonce 的 AES-GCM 對於同一密鑰下的數十億條消息是不安全的,因為 nonce 只有 96 位長,並且在發生衝突時安全性會災難性地降低,預計僅在大約 $ \sqrt{2^{96}} = 2^{48} $ 消息。