具有 CFB 模式的 64 位時鐘密碼。一個字節從密文中脫離。從明文中洩露的比特數是多少
我有一個考試問題;
我們使用 CFB 加密了大小為 100 字節的消息。在傳輸過程中,第 12 個字節出現故障。有多少位缺陷將在解密中。答案是 72 位,我不明白為什麼?
CFB模式的解密如下;
$$ P_i = E_k(C_{i-1}) \oplus C_i $$ $$ C_0= \operatorname{IV} $$
CFB中的位翻轉攻擊
如果密文中有比特翻轉攻擊,那麼我們有兩種情況。
$ \color{red}{\textbf{Red case:}} $ 最後一個密文位被翻轉。這只會影響相應的明文塊。所以攻擊者可以改變一個明文位而不影響任何其他位。
$ \color{ForestGreen}{\textbf{Green case:}} $ 假設 $ i $ 密文位被改變, $ 0 \leq i < n $ 在哪裡 $ n $ 是塊的總數,那麼這次有兩個明文塊受到影響。我們也可以從方程式中看到;
$$ P_i = E_k(C_{i-1}) \oplus \color{blue}{C_i} $$ $$ P_{i+1} = E_k(\color{blue}{C_{i}}) \oplus C_{i+1} $$
注意:CFB 模式的 IV 位翻轉沒有CBC模式的好效果。
你的問題
由於您有 100 個字節,而 64 位塊密碼具有 8 個字節的塊大小,因此第 12 個字節的數字屬於第二個密文。如果它落入最後一個,則只影響一個字節, $ \color{red}{\textbf{red case}} $ .
現在,既然我們在 $ \color{ForestGreen}{\textbf{green case}} $ , 對於有缺陷的一字節 $ C_i $ ,我們將看到兩個明文受到影響 $ P_i $ 和 $ P_{i+1} $ . $ P_i $ 有一個字節缺陷和 $ P_{i+1} $ 有全塊背叛。
弗格里厄在評論中給出了叛逃的機率。如前所述,缺陷並不清楚翻轉了多少位。它可能是 1 或 8。此外,受影響的完整塊不受控制。例如,如果我們假設密碼具有雪崩標準,我們預計每個密文位都有 50% 的機率發生翻轉。因此我們可以說它在 1 到 64 之間。所以受影響的位總數在 2 到 72 之間。
讓我們通過緩解措施來完成:
由於數據沒有完整性,因此攻擊/背叛是可能的。MAC或HMAC可用於防止或更好地使用提供機密性、完整性和真實性的認證加密。在 TLS 1.3 中,CCM和GCM是標準化的認證加密模式。