使用少量 IV 攻擊 AES-CBC
假設在 CBC 模式下使用 AES 加密,我們有 $ IV\in {0}^{113}||{0,1}^{15} $ .
我知道,如果我們能以 100% 的機率預測下一個 IV,那麼就會有完全破壞加密的攻擊。那麼如果我們隨機選擇 IV 作為預測,我們有 $ \frac{1}{2^{15}} $ 正確猜測下一個向量的機率。
對於這種弱 IV,是否有更好的 CCA 或 CPA?平均最多需要多少次查詢?
如果目標是區分加密器和隨機器,那麼顯而易見的事情就是要求 $ \sqrt{2^{15}} $ 相同明文的加密。假設每個加密使用其中一個 $ 2^{15} $ 隨機允許 IV,然後很有可能,兩個單獨的加密將使用相同的 IV(從而導致完全相同的密文)。這比 $ \frac{1}{2^{15}} $ 嘗試預測 IV 得到的結果。
現在,如果你想要比區分攻擊更好的東西,那麼,考慮一下這個攻擊模型:攻擊者有一個密文塊 $ C $ 他有關於相應明文的部分資訊 $ P $ ,即他知道最初的 113 位,而沒有關於剩餘 15 位的資訊。攻擊者希望恢復剩餘的 15 位,並且能夠注入選擇的明文,並且能夠在密文中看到加密者的 IV選擇。
攻擊者可以做的是注入一系列選定的明文,其中前 113 位是明文 $ P $ 他知道,最後 15 位為 0(任意工作,0 使其更容易解釋)。加密器將選擇一個隨機IV;如果他選擇的隨機IV恰好與未知明文具有完全相同的最後15位,則生成的初始密文塊將是挑戰密文塊 $ C $ (因此,通過檢查加密器使用的 IV,攻擊者現在知道該值 $ P $ ).
對於每個送出的明文,都有一個機率 $ 2^{-15} $ 隨機IV是“正確的”,所以這需要一個預期的 $ 2^{15} $ 明文查詢成功。
相比之下,在這個攻擊模型中,如果我們假設攻擊者可以預測整個 IV,他可以恢復具有預期的明文 $ 2^{15}/2 $ 查詢,因此不知道最後 13 位的攻擊者只會將效率降低 2 倍。