Aes
AES 計數器模式與 CBC 模式的安全性
為了使 AES-CBC 成為 CPA 安全,必須為每個數據包隨機選擇所使用的 IV。如果 IV 是可預測的,那麼加密不是 CPA 安全的。AES-CTR 模式也一樣嗎?也就是說,對於 AES-CTR 模式,第一個計數器必須是隨機的還是可以是隨機數?謝謝
對 AES-CTR 輸入塊的要求是,它們在密鑰的生命週期內應該是唯一的。在大多數情況下,隨機 96 位隨機數與從 0 開始的 32 位計數器一起使用。如果 AES-CTR 的相同輸入塊出現兩次,則 AES-CTR 不再是 CPA 安全的。在這種情況下,這可能是由於之後的反溢出 $ 2^{32} $ 塊或由於碰撞隨機選擇的 96 位隨機數(生日悖論:50% 的機會在 $ \sqrt{2^{96}} $ 消息。考慮以下情況:
兩個不同的 1-Block 消息 $ P $ 和 $ P’ $ 在同一密鑰下發送 $ K $ (可以事先協商)並且使用相同的隨機數 $ N $ . 攻擊者知道相關密文 $ C $ 和 $ C’ $ 其中通過使用密鑰流對它們進行異或計算(基於隨機數和計數器):
$ C = P \oplus E_K(N,0) $
$ C’ = P’ \oplus E_K(N,0) $
然後攻擊者可以簡單地異或密文
$ C\oplus C’ = P \oplus E_K(N,0) \oplus P’ \oplus E_K(N,0) = P \oplus P’ $
他獲得了兩個純文字之間的“距離”。由於英語的冗餘,他或許能夠確定 $ P $ 和 $ P’ $ .
這個問題也被稱為“兩次墊”。一旦相同的密鑰流與明文進行異或運算,我們就會遇到麻煩。因此,重要的是,AES 加密的輸入在密鑰的生命週期內是唯一的。它不必是不可預測的,只是獨一無二的。