Aes
密碼回饋模式 (CFB) 的周期數
CFB 操作模式有多少個週期?
例如,我在 CFB 模式下使用 AES 加密。在輸出最終密文之前,這個循環要循環多少次?在下圖中,這是在 3 個週期內完成的。輸出最終密文之前的周期數有什麼規定嗎?我可能會走得很遠,但這種特定的操作模式有點令人困惑。
您似乎看錯了圖表。CFB模式沒有“循環”,每個明文/密文塊只加密一次。
誠然,這不完全是你的錯:該圖令人困惑地為每個塊使用相同的“明文”和“密文”標籤,即使它們實際上並不相同。
因此,在 CFB 模式加密中實際發生的是明文消息被分成一些固定長度的塊(通常與正在使用的塊密碼的塊大小相匹配)。然後將這些明文塊中的每一個與塊密碼的輸出進行異或運算,並將此異或運算的結果作為相應的密文塊輸出,並用作塊密碼的輸入,用於加密下一個明文塊。
(大多數其他經典分組密碼操作模式都以類似的方式工作,只有細節不同。例如,在 OFB 模式下,分組密碼的輸出被保存,以在異或之前用作下一個分組密碼呼叫的輸入與目前的明文塊生成對應的密文塊。)
在數學上,您可以像這樣編寫 CFB 模式加密:
$$ C_i = P_i \oplus E_K(C_{i-1}) $$ 在哪裡 $ P_i $ 是個 $ i $ - 消息中的第一個明文塊, $ C_i $ 是對應的 $ i $ -th 密文塊,和 $ C_{i-1} $ 是前一個密文塊。*另外, $ \oplus $ 表示按位 XOR 和 $ E_K $ 表示用密鑰進行分組密碼加密 $ K $ .
*) 對於第一個塊,其中 $ C_{i-1} $ 沒有定義,我們使用 IV 代替。