分组密码的设计就是找到一种算法,能在密钥的控控制下从一个足够大且足够好的置换子集中简单而迅速的选出一个置换,用来对当前输入的明文进行加密交换。一般地,分组密码的设计准则包括安全性准则和实现性准则两种。前者主要研究如何设计安全算法,分组长度和密钥长度,后者主要讨论如何提高算法的执行速度。
1 安全性原则
关于实用密码的两个一般的设计原则是Shannon提出混乱原则和扩散原则。
1.混乱原则:人们所设计的密码应使得密钥和明文以及密文之间的信赖关系相当复杂以至于这种信赖性对密码分析者来说是无法利用。
2.扩散原则:人们所设计密码应使得密钥的每一位数字影响密文的多位数字以防止对密钥进行逐段破译,而且明文的每一位数字也影响密文的多位数字以便隐藏明文数字的统计性性。
影响现代分组密码安全性的因素很多,主要取决于密码算法、分组长度和密钥长度,相应的安全性设计准则也包括三类:
2. 密码算法的设计准则
1) 算法可以公开:密码体制的安全性应当仅依赖于对密钥的保密,而不应基于对算法的保密,这既是数据加密算法标准化所必需要求的,同时也是网络保密通信赖以生存的基础。
2) 混乱原则:密码算法应当保证密钥,明文和密文的依赖关系相当复杂,以至于这种依赖性对密码分析者来说使无法利用的。
3) 扩散原则:人们所设计的密码应使得密钥的每一位数字影响密文的许多位数字,以便隐藏明文数字的统计特性。
4) 能抵抗差分分析和线性分析:为使密码算法能抵抗差分分析,通常选取具有“本原转移概率矩阵”的markov 型密码,通过对一个“弱”密钥函数进行多次迭代,而得到一个“强密码”,为使密码算法抵抗线性分析,通常要求算法中包含高度非线性密码函数。
5) 没有弱密钥:当弱密钥或半弱密钥的个数较少时,它们对体制本身的安全性影响不在,在算法设计中稍作处理就可避免,而且随即选取一个密钥是弱密钥的概率随密钥空间的增大而趋于0。
3. 密钥长度的设计准则
为使密码算法能抵抗对密钥强力攻击,必须保证密钥长度尽可能大,比如,
在近几年来新出现的各种算法,密钥长度都已经要求至少128bits。
4. 分组密码长度
为阻止对分组密码进行统计分析,分组长度必须足够大,由于分组密码是一种简单代换密码,而明文有一定的多余度,因此理论上可以对密文进行频率统计分析。当分组长度很大时,这种分析需要大量的密文数据,使得计算上不可行。
此外还有一个重要的设计原理:密码体制必须能抵抗现有的所有攻击方法。
5 实现准则
分组密码可以用软件和硬件来实现。硬件实现的优点是可获得高速率,而软件实现的优点是灵活性强、代价低。
软件实现的设计原则是加密和解密过程区别应该在密钥的使用方式不同,以便同样的器件既可用来加密,又可以用来解密。尽量使用规则结构,因为密码应有一个标准的组件结构,以便能适应于用超大规模集成电路实现。
3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/