
1.分組密碼的設計要求
在一定的數學規則下,分組密碼利用簡單函數和非線性函數等運算,得到比較複雜的變換。一般情況下對分組密碼算法的要求如下:
(1)分組長度n要足夠大。由於當明文分組長度為n位時,至多需要2n個明文密文對就可完全破解密碼。同理,當密鑰長度為n位時,至多只需要試驗2n個密鑰就可破解該密文。因此從安全角度考慮,明文分組和密鑰長度都應足夠大。當分組長度n較小時,分組密碼類似於某些古典密碼,如維吉尼亞密碼、希爾密碼和置換密碼,它仍然有效地保留着明文中的統計信息,會給攻擊者有可乘之機,攻擊者能夠有效地窮舉明文空間,得到密碼變換本身。
(2)密鑰空間足夠大。分組密碼的密鑰所確定的密碼變換隻是所有置換中極小的一部分。假如這一部分足夠小,攻擊者能夠有效地顺利获得窮舉密鑰確定所有的置換,到達定時間,攻擊者就能夠對密文進行解密,從而得到有意義的明文。
3)密碼變換必須足夠複雜。使攻擊者除了窮舉外,找不到其他便捷的數學破譯方法。
2.分組密碼的設計原則和方法
在實際中,採用了香農的建議,分組密碼設計的指導原則是混淆和擴散。
(1)混淆:指所設計的密碼應使得密鑰和明文以及密文之間的依賴關係相當複雜,以至於這種依賴性對密碼剖析者來說無法使用,即密碼能夠對分析者隱藏一些明文的局部特徵。例如,單表替代密碼就不符合混淆的標準,像雙字母e這樣的局部特徵在密文中依然表現為雙字母,並且單字母的呈現頻率將依然得到體現。
(2)擴散:指所設計的密碼應使得密鑰的每一位影響密文的許多位,以避免對密鑰進行逐段破譯,並且明文的每一位也影響密文的許多位,以隱蔽明文的統計特性,像維吉尼亞這樣的多表替代密碼在混淆上是有效的,由於它不是在每一時刻都用同樣的方法加密同樣的字符。但維吉尼亞密碼在擴散上是失敗的,由於它沒有做任何換位,該缺點加上周期性替代將受到 Freidman攻擊。顺利获得擴散能夠使明文的不同部分都不斷能在原來的位置上。
為了便於實現和分析,分組密碼經常採用以下兩個方法:
(1)為了使分組長度足夠大,以確保密碼算法的強度。可以將大的明文分組再分成幾個小段,分別完成各個小段的加密置換,最終進行並行操作。
(2)採用乘積密碼技術。它就是以某種方式陆续在執行兩個或多個密碼變換。例如,設有兩個子密碼變換E1和E2,則先以E1對明文進行加密,然後再以E2對所得結果進行加密,其中E1的密文空間與E2的明文空間相同。如果得當的話,乘積密碼能夠有效地掩蓋密碼變換的弱點,構成比其中任意一個密碼變換更強的秘密系統。
3.分組密碼的工作模式
美國在FIPS中定義了5種運行模式:電子密碼本ECB)、密碼分組連結(CBC)、計數器模式(CTR)、輸出反饋(OFB)和密碼反饋(CFB)。任何分組密碼算法都能依據不同的應用選擇不同的模式。
(1)ECB模式是最簡單的分組模式,它直接利用加密算法分別對每個明文分組進行加密。其特點有:
①每個分組用同一個密鑰加密,同樣的明文分組將產生同樣的密文分組,因此安全性有限。
②單個密文分組中有一個或多個比特錯誤只會影響該分組的解密,就是說錯誤傳播率小。
(2)CBC模式是使用最普遍的分組密碼運行模式。它將第一個明文分組與初始向量進行異或運算,而將後面的明文分組分別與前一密文分組做異或運算,再使用相同的密鑰對所有異或後的分組進行加密。其特點是:
①安全性大為提高。每個明文分組的加密結果不僅與密鑰有關,還與前一密文分組有關,因此,同樣的明文分組將產生不同的密文分組。
②由於CBC模式引入了反饋,當某個密文分組出現錯誤後,會影響該分組與後一密文分組的解密,但其他分組不受影響,因此錯誤傳播率有限。
(3)CTR、OFB、CFB模式均可將分組密碼轉換為流密碼,其特點是利用分組密碼算作為一個密鑰流產生器。
對於安全的分組密碼算法來說,採用適當的工作模式可隱藏明文的統計特性、數據的格式等,從而提高整體的安全性。
