Block-Cipher

類似 CBC 的 XOR 密碼的弱點

  • April 29, 2020

一個簡單的對稱加密算法可以寫成如下:

  1. 輸入消息 M 和 64 位密鑰 $ K $
  2. 將 M 分成 64 位大小的塊 $ B_1…B_n $
  3. 獲取第一個塊 $ B_1 $ 並按位執行 $ \oplus $ 用 K 生成加密塊 $ E_1 $
  4. 重複

獲取下一個塊 $ B_i $ 並按位執行 $ \oplus $ 和 $ E_{i-1} $ 生成加密塊 $ E_i $ 5. 直到消息結束

Q) 如果上述算法的弱點是什麼 $ K = B_1 $ (消息中的前 64 位)

這似乎是一個作業問題,因為它是。我想我知道這裡發生了什麼。從算法來看,

$ E_1= Key \oplus B_1 $ 和 $ E_i=E_{i-1} \oplus B_i $ 對所有人 $ i>1 $

如果已知加密文本,則可以使用以下方法獲取明文 $ B_i = E_{i-1} \oplus E_i $ . 借助這個公式,我們可以在不知道任何密鑰的情況下推導出整個純文字。

該算法很弱,即使 $ K \neq B_1 $ 因為即便如此,我們也能夠在不知道密鑰的情況下從密文中獲取明文。但是,在這種情況下,我們可以利用 Key 等於 B1 的事實並得到任何有意義的結果嗎?

我知道如果 $ K = B_1 $ , $ E_1 $ 會變成0,那麼 $ E_2=B_2 $ . 我被困在這裡。那麼我可以從中得出任何其他結論嗎?還是我的方法完全錯誤?

基本思想:

$ a \oplus a = 0 $

$ a\oplus 0 = a $

也如果 $ K = B_{1} $ , $ E_{1} = 0 $ 並根據您的計劃 $ B_{2} \oplus E_{1} = E_{2} = B_{2} $

由於您設置 $ K = B_{1} $ 如果您不知道,則無法解密第一個塊 $ B_{1} $ . 這個系統從根本上被破壞了,它永遠無法在實踐中使用。遺憾的是,這個作業問題並沒有給出 CBC 的正確概念。像 AES 這樣的塊密碼的實用 CBC 模式以非常不同的方式工作。例如,如果我們有一個加密函式 $ E_{k} $ 那麼這就是CBC加密的工作原理。

$ C_{0} =E_{k}(IV\oplus M_{0}) $

$ C_{1} =E_{k}(C_{0}\oplus M_{1}) $
等等……正如你所看到的,有一個非常強大的加密功能的應用程序 $ E_{k} $ 這可能是 AES 之類的東西。在這裡,您正在做一個簡單的 XOR。初步看來,您的方案受到已知的明文攻擊,並且 64 位密鑰始終可以進行暴力搜尋。我可能錯過了一些關鍵點,但這是我現在能想到的!

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