一般地,分组密码体制的设计准则包括安全性准则和实现性准则两种。安全性准则主要研究如何设计安全算法、分组长度和密钥长度。关于实用密码的安全性设计原则一般是Shannon提出的混乱原则和扩散原则。对于实现性准则,主要讨论如何提高算法的执行速度。分组密码可以用软件和硬件来实现。硬件实现的优点是可获得高速率;而软件实现的优点是灵活性强、代价低。归纳之,分组密码体制的设计准则一般包括以下内容。
1.混乱原则
混乱原则又称混淆原则,是指明文与密钥以及密文之间的统计关系尽可能复杂化,使破译者无法推导出相互间的依赖关系,从而加强隐蔽性。
即使敌手能得到密文的一些统计关系,由于明文和密文之间的统计关系复杂化,敌手也无法得到密钥。使用复杂的代换算法可以得到预期的混乱效果,而简单的线性代换函数得到的混乱效果则不够理想。
2.扩散原则
扩散原则是让明文中的每一位(包括密钥中的每一位)直接和间接地影响输出密文中的许多位,或者让密文中的每一位受制于输入明文以及密钥中的若干位,以便达到隐蔽明文的统计特性,即输入明文分组的每一比特和输入密钥的每一比特,其作用必定要扩散到输出密文分组的每一比特上去。
3.分组长度要足够大
为使分组代换字母表中的元素个数2n足够大,分组越长则安全性越高,能有效防止明文穷举攻击法,但分组长度也不能太长,因为分组长度越长加密速度越慢。分组密码设计中最为普遍使用的分组大小是64bit。(www.xing528.com)
4.密钥量要足够大且没有弱密钥
为使密码算法能抵抗对密钥的强力攻击,必须保证密钥长度尽可能大。比如,近几年新出现的各种算法,其密钥长度都已经要求至少128bit。但密钥又不能过长,以便于密钥的管理。尽可能消除弱密钥或半弱密钥,当弱密钥或半弱密钥的个数较少时,它们对密码体制本身的安全性影响就会很小。
5.子密钥产生的算法要足够复杂
充分实现明文与密钥的扩散和混淆,没有简单的关系可循,能抗击各种已知的攻击,如差分攻击和线性攻击;有高的非线性阶数,实现复杂的密码变换;使敌手破译时除了用穷举法外,无其他捷径可循。
6.加密和解密运算简单
在以软件实现时,应选用简单的运算,使密码运算易于以标准处理器的基本运算(如加、乘、移位等)实现,避免用软件难于实现的逐比特置换。为了便于硬件实现。加密和解密尽可能用同一器件实现。设计的算法采用规则的模块结构,以便于软件快速实现。此外,差错传播和数据扩展要尽可能小。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。