Ctr
我可以在計數器模式下使用 AES 生成多少種不同的密鑰流?
我在 CTR 模式下為 AES 使用 64 位隨機數(在流之間遞增)和 64 位計數器(在流中遞增)。使用此設置可以生成多少種不同的密鑰流?
不同密鑰流的數量取決於使用的密鑰大小和隨機數中的位數。假設您正在使用 $ n $ 位鍵和 $ k $ 你的隨機數位。那麼理論上最大的密鑰流數是 $ 2^n\cdot 2^k=2^{n+k} $ 因為 nonce 和 key 的每個組合都應該產生不同的密鑰流。
但是,如果您限制密鑰流的長度,情況就會改變。說你只想要 $ 128 $ -bit 密鑰流,但您使用 $ 256 $ -bit 密鑰和一個 $ 64 $ -位隨機數。只會有 $ 2^{128} $ 不同的密鑰流。
所以,如果你的密鑰流是 $ s $ 位長,你使用 $ n $ 位鍵和一個 $ k $ 比特隨機數,那麼實際上,可能的密鑰流的數量是 $ \min(2^{s}, 2^{n+k})=2^{\min(s,n+k)} $ .
更新
基於密鑰已修復的評論,這會更改分析。因為只有一把鑰匙,它變成 $ \min(2^{s}, 2^{k})=2^{\min(s,k)} $ . 以上分析如果針對隨機選擇的密鑰。