在前一章介紹的 ECB 與 CBC 模式中,區塊加密引擎(如 AES)都是直接對明文區塊進行加密。
今天介紹的 CFB(Cipher Feedback) 與 OFB(Output Feedback) 模式則展現了密碼學中極為巧妙的思想:將「區塊密碼(Block Cipher)」轉化為「串流密碼(Stream Cipher)」。
在這兩種模式下,區塊加密引擎不再直接處理明文,而是專門用來生成動態的「金鑰流(Keystream)」,最後再與明文進行 XOR 運算。
核心共通點:
無需 Padding(填充):因為最終加密是透過 XOR 進行,資料長度可以精確到 Byte 甚至 Bit,解決了末尾區塊長度不足的問題。
CFB(Cipher Feedback, 密文回授模式)CFB 模式是一種自同步串流密碼(Self-synchronizing Stream Cipher)。它的特色是將「前一個區塊產出的密文」回授(Feed back)作為下一個區塊加密引擎的輸入。流程:輸入暫存器 初始向量(IV) 或 C_{i-1} ---> [ 加密演算法 ] ---> 金鑰流區塊 S_i加密演算法輸出後:密文生成:金鑰流區塊 S_i + 明文區塊 P_i ---> [ XOR 運算 ] ---> 最終密文 C_i回授推進:將剛產出的 密文 C_i 回授推入下一個區塊的輸入暫存器,作為下次呼叫加密引擎的輸入。
OFB 是一種同步串流密碼(Synchronous Stream Cipher)。它與 CFB 極為相似,但存在一個根本性的差異:回授給下一次加密引擎輸入的,是「加密引擎自身的輸出(金鑰流 S_i)」,而不是密文 C_i。
OFB 模式是一種同步串流密碼(Synchronous Stream Cipher)。它與 CFB 極為相似,但存在一個根本性的差異:回授給下一次加密引擎輸入的,是「加密引擎自身的輸出(金鑰流 S_i)」,而不是密文 C_i。流程:輸入暫存器 S_0(即初始向量(IV)) or S_{i-1} ---> [ 加密演算法 ] ---> 金鑰流區塊 S_i加密演算法輸出後:密文生成:金鑰流區塊 S_i + 明文區塊 P_i ---> [ XOR 運算 ] ---> 最終密文 C_i回授推進:將 金鑰流區塊 S_i 本身 回授推入下一個區塊的輸入暫存器,作為下次呼叫加密引擎的輸入。