Aes
DES 和 AES 中的 8 位 CFB - 錯誤傳播
對於 AES 和 DES 加密的 8 位 CFB 模式下的錯誤傳播,我需要回答兩個問題。問題如下:
- 如果傳輸的密文塊 C1 有錯誤,那麼在對文件進行 8 位 CFB-DES 解密時會損壞多少明文塊?
- 如果傳輸的密文塊 C1 有錯誤,使用 8 位 CFB-AES 時有多少損壞的明文塊?
對於問題 1,我知道答案是 9 個字元,因為 P1 會受到影響,以下 8 個字元(雪崩效應)也會受到影響。但是為什麼在使用 AES 時會影響 17 位,即。P1 及以下 16 個字元?我在 Linux Ubuntu 上使用 openssl -AES-256-CFB8 和 -DES-CFB8 測試了這種加密。
AES 模式下會影響 17 個字節,而不是 17 位。這是因為 AES 的塊大小是 16 字節,而不是 DES 的 8 字節。
當您更改密文時,它直接影響位於明文相同位置的位,加上從移位寄存器中取出所需的時間,這是密碼原語的塊大小的大小,即 8 個字節DES 和 16 個字節用於 AES。
然而,問題是有多少塊受到影響,而不是多少字節。請注意,CFB 的塊大小將設置為 1 位,而不是底層塊密碼的塊大小。CFB 畢竟是流模式。
所以你可以說 9 * 8 = 72 個塊對於 DES 或實際上 17 * 8 = 136 對於 AES 影響。這可能不是老師的意思,你最好猜兩個塊或 9 個 DES 和 17 個 AES。另請參閱 SEJPM here的解釋。
CFB8 模式的好處在於,如果您刪除或插入一個字節,它將重新同步。它不會做的是只翻轉那些在密文中更改的明文位,例如 CTR 模式。
現在我們已經不那麼感興趣了。我們傾向於在較低層擷取傳輸錯誤,然後僅在整個密文可用時解密,最好使用經過身份驗證的加密來擷取對密文的任何更改(故意或其他方式)。
另請注意,CFB8 模式非常昂貴。它需要對傳輸的每個字節進行塊加密,既可以加密也可以解密。