Block-Cipher

OCB - 針對未知 IV 的蠻力

  • January 24, 2021

我讀到,對在 OCB 中使用未知密鑰和IV加密的明文進行暴力攻擊的複雜性與只有密鑰未知的攻擊大致相同。

  1. 這是為什麼?
  2. 有這種攻擊的描述嗎?如果沒有,你能否給我一個關於這種攻擊如何工作的提示?

好的,這是針對 OCB 的蠻力式攻擊的一個可能草圖,它不假設您知道隨機數。每個測試的密鑰都需要 512 次試用解密,因此它比對 CBC 的蠻力攻擊要貴一些,但只是一個常數因素。

讓我們假設:

  • 你有一個加密的消息是 $ 16n+15 $ 字節長
  • 你知道明文的最後 15 個字節
  • 還有另一個街區 $ P_n $ 如果我們正確解密,您有足夠的資訊可以辨識它。

如果我們查看最後 15 個字節的 OCB 處理,我們有:

$ C_{last} = P_{last} \oplus Trunc( E(K, \Delta_{last} )) $

在哪裡 $ Trunc $ 是一個截斷最後一個字節的函式。所以,我們知道前 15 個字節 $ E(K, \Delta_{last}) $ ,即 $ C_{last} \oplus P_{last} $ .

測試一個值 $ K $ ,我們遍歷最後一個字節的所有 256 個可能值 $ B $ , 併計算

$ \Delta_{last} = D(K, (C_{last} \oplus P_{last}) || B) $

從每個 $ \Delta_{last} $ 值,我們計算相應的 $ \Delta_{n} $ 值(這是一個 $ GF(2^{128}) $ 乘法,所以這很容易),然後計算:

$ P_n = \Delta_{n} \oplus D(K, C_n \oplus \Delta_n) $

並檢查這是否是一個合理的明文值。

一旦我們有一個合理的值 $ K $ 和 $ \Delta_i $ ,我們可以檢查身份驗證標籤來驗證解密。

一旦我們擁有了所有這些,我們還可以恢復用於加密消息的隨機數;如果相關的 nonce 用於使用相同的密鑰加密其他消息,這可能很有用。

現在,如果我們能得到一個明文消息,顯然這種攻擊可以得到改善 $ 128n+127 $ 位長;這在實踐中不太可能。

引用自:https://crypto.stackexchange.com/questions/1686