分组密码的设计就是找到一种算法,能在密钥的控控制下从一个足够大且足够好的置换子集中简单而迅速的选出一个置换,用来对当前输入的明文进行加密交换。一般地,分组密码的设计准则包括安全性准则和实现性准则两种。前者主要研究如何设计安全算法,分组长度和密钥长度,后者主要讨论如何提高算法的执行速度。

1 安全性原则

关于实用密码的两个一般的设计原则是Shannon提出混乱原则和扩散原则。

1.混乱原则:人们所设计的密码应使得密钥和明文以及密文之间的信赖关系相当复杂以至于这种信赖性对密码分析者来说是无法利用。

2.扩散原则:人们所设计密码应使得密钥的每一位数字影响密文的多位数字以防止对密钥进行逐段破译,而且明文的每一位数字也影响密文的多位数字以便隐藏明文数字的统计性性。

影响现代分组密码安全性的因素很多,主要取决于密码算法、分组长度和密钥长度,相应的安全性设计准则也包括三类:

2. 密码算法的设计准则

1) 算法可以公开:密码体制的安全性应当仅依赖于对密钥的保密,而不应基于对算法的保密,这既是数据加密算法标准化所必需要求的,同时也是网络保密通信赖以生存的基础。

2) 混乱原则:密码算法应当保证密钥,明文和密文的依赖关系相当复杂,以至于这种依赖性对密码分析者来说使无法利用的。

3) 扩散原则:人们所设计的密码应使得密钥的每一位数字影响密文的许多位数字,以便隐藏明文数字的统计特性。

[1]  [2]