Encryption

為什麼說如果我們有重複的密文塊會洩露我們的資訊?

  • July 18, 2013

我最近遇到了一個問題: https ://security.stackexchange.com/questions/15767/what-do-key-size-and-block-size-mean-in-cryptography它在我身上創造了一系列懷疑。參考第二個答案,您可能會發現如果我們收到數據總量的平方根,則重複塊的重複機率為 50%。如果某個塊如何重複,它怎麼能被破解?資訊是如何洩露的?

洩露的確切資訊取決於正在使用的操作模式。最簡單的情況是ECB,其中重複的密文塊意味著對應的明文塊也是相等的。

對於CBC模式,當兩個密文塊相等時,即 $ C_i=C_j $ ,我們知道在應用分組密碼之前存在相等性。這反過來意味著:

$$ C_{i-1}\oplus P_i=C_{j-1}\oplus P_j. $$ 等效地,您正在學習 $ P_{i}\oplus P_j=C_{i-1}\oplus C_{j-1} $ . 編輯平等來自於在 CBC 模式下, $ C_i=E_K(C_{i-1}\oplus P_i) $ 在哪裡 $ E_K $ 表示正在使用的分組密碼。

如果您使用 ECB 或 CBC 模式進行加密,請參閱 minar 的答案(並且 CFB 模式類似於 CBC 模式 - 如果您找到一個衝突對,您可以推斷出兩個明文塊之間的關係)。

另一方面,Major Major 忽略的一件事是,在某些模式下,重複塊不會洩漏任何東西。考慮計數器模式(CTR);這可以定義為:

$$ C_i = P_i \oplus E_k(i) $$ 如果我們碰巧找到兩個塊:

$$ C_i = C_j $$ 能告訴我們的是:

$$ P_i \oplus P_j = E_k(i) \oplus E_k(j) $$ 但是,由於我們沒有關於 $ E_k(i) \oplus E_k(j) $ (除了它不是零),我們無法推斷出任何關於 $ P_i, P_j $ (除了它們不一樣的事實)。

如果您越過生日邊界,計數器模式確實會有一些數據洩漏;但是,它比有關單個塊的資訊要微妙得多。

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