
分組密碼算法儘管具有一定的安全性,也需藉助合適的工作模式隱藏明文的統計特徵、數據格式等,以加強整體的安全性,減少刪除、重放、插入與偽造的頻次。美國在NIST-SP800標準中定義了以下五種模式,分組密碼算法都可由不同的應用場合選擇用其中一種模式。
1.ECB(電子碼本)模式
ECB模式是利用加密算法各分組數據組加密。明文分成64bit的分組實施加密,有需要時填充,每個組用相同的密鑰加密,在同一個明文組中取得相同的密文。
2.CBC(密碼分組連結)模式
CBC比ECB更複雜,更安全,因此它是最常用的分組密碼操作模式。CBC模式中,分組密碼加密過程是:第一时间第一組明文分組和初始矢量執行異或,明文分組後的和前一個密文分組也不同,再用同一密鑰送到加密算法加密構成一條鏈。
3.CFB(密碼反饋)模式
DES是分組長度是64bit的分組密碼,不過用CFB或OFB可轉換DES為序列密碼(流密碼)。序列密碼沒有必要填充消息,且運行是實時的。所以若傳送字母流,可用流密碼直接加密且傳送每一字母。序列密碼的性質有密文與明文類似,因此,若要發送的每個字符長是8bit,就應用8bit密鑰加密每個字符。若密鑰長超過8bit,那麼就會浪費。
4.OFB(輸出反饋)模式
OFB模式的結構類似於CFB,分組密碼算法被視為密鑰流生成器,而和CFB模式相比不一樣的地方如下:CFB模式是反饋密文單元在移位寄存器上,而OFB模式是把加密算法的輸出反饋至移位寄存器,解決了CBC與CFB的有誤傳播引起的問題,但同時也帶來了同步流密碼缺點,密文被篡改很難檢測。
5.CTR(計數器)模式
與CFB、OFB模式類似,CTR模式也是把分組密碼作為序列密碼密鑰流生成器,用與明文分組規律一樣的計數器長度得到密碼流,和明文分組異或。CTR模式加密和解密方法相同,使用加密函數代替解密功能。實際上,CTR模式是一種序列密碼,它顺利获得計數器累加的計數器取得密鑰流。
