
香農在設計Feistel密碼系統的過程中,提出了兩種基本操作,可以防禦對密碼系統的各種統計分析攻擊:擴散和混淆。擴散的目的是儘可能地使明文和密文之間存在統計關係複雜;混淆的目的是使密文和密鑰之間的統計關係儘可能複雜。為了防止攻擊者獲取密鑰,在擴散過程中,將明文統計信息擴展到密文的較長統計信息,使每個密文號與許多明文數字相關,從而使密文統計的統計關係明文與明文之間的關係儘可能複雜,因此攻擊者無法利用密文統計信息;在混淆過程中,密文統計信息與加密密鑰值之間的關係儘可能複雜。因此攻擊者很難推斷出加密密鑰。擴散和混淆給出了分組密碼的基本特徵,並成為分組密碼設計的基礎。
Feistel分組密碼安全性包括:
(1)明文消息和密文消息的包大小。在相同條件下,每輪加密數據包的長度越大,加密算法的安全性越高,但是加密速度會越慢。當前使用的分組加密算法的分組長度是64位。
(2)子項的大小。子密鑰長度增加,算法安全性也會相應的增加,但加密速度降低,因此,分組密碼的設計需要平衡安全性和加密效率。在實際應用中,通常認為為了確保分組加密算法滿足計算安全性,子密鑰的長度最少需要是128位。
(3)循環次數。循環次數對密碼的安全性有影響,即循環次數越多,安全性會越高,加密效率越低。
(4)子密鑰生成算法。在給出初始密鑰的情況下,用於生成子密鑰的算法越複雜,加密算法的安全性越高。
(5)圓函數F。關於圓函數的討論比較複雜。通常認為,圓函數F越複雜,相應加密算法的安全性越高。
Feistel分組密碼的解密過程與加密過程相同。
