分组密码的设计原则

TIME:2018-11-02   click: 347 次

分组加密算法其实可看成是一个置换,用于加密的置换仅是全体置换组成集合的一个子集。设计分组密码关键是找出一种算法,可在密钥的控制下,从一个够大并好的置换子集里,容易而快速地选出一个置换。

影响分组密码安全性的原因有许多,就像分组长度与密钥长度等。但有关实用密码的一般设计原则如下。

(1)混乱原则:设计的密码应使密钥与明文及密文间的依存关系比较复杂,以使此依赖对密码分析者而言是不可以用的。

(2)扩散原则:设计的密码应使密钥的每一位数字影响密文的许多位数字,以防止对密钥进行逐段破译,且明文的每一位数字也应影响密文的许多位数字以便隐蔽明文数字统计特性。

分组密码可借助软件与硬件实现。硬件实现的优点是可获得高速率,而软件实现的优点是灵活性强、代价低。基于软件和硬件的不同性质,分组密码的设计原则可根据预定的实现方法来考虑。

(1)软件实现的设计原则:用子块与简单的运算。密码运算在子块上,需要子块的长度可以自然地适应软件编程。在软件实现中,根据比特置换很难实现,所以应尽可能防止用它。子块上的一些密码运算应是容易软件实现的,最好用一些标准处理器的基本指令,如加法、乘法与移位等。

(2)硬件实现的设计原则:加密与解密能用同样的器件完成。尽量用规则结构,因密码应有一个标准的组件结构,为了可使其能适应于用超大规模集成电路达到。

当然,以上的原则是非常概括的,离构造安全的分组密码还差得很远。下面一些原则也是常需要考虑的。

(1)简单性原则:包括规范的简单性和分析的简单性。规范的简单性表示只用了有限个运算,且这些运算很易解释。简单规范的明显好处是方便正确实现,另一个优点是人们在研究密码时,似乎对有简单规范的密码算法更有兴趣。分析的简单性,好处是方便描述与理解密码算法通过什么方式抗击已知类型的密码分析。这样,在设计阶段就开始考虑抵抗已知攻击,从而在设计开始时就给出了一定程度的密码可信度。规范的简单性并不是意味着分析的简单性,提出一个描述简单但已知攻击手段又难很难分析的密码算法是比较容易的。

(2)必要条件:设计一个分组密码的最低要求是它一定能抗击全部已知的攻击,特别是差分攻击与线性攻击。因此,密码设计者不仅要熟悉现存的各种攻击方法,且要预想到一些未知的攻击。

(3)可扩展性:在设计密码时还应充分考虑各种可能的扩展情况,如可变分组或密钥长,如此才可以适应多级安全的需要。

安全性是分组密码最重要的设计准则,它要求尽管攻击者清楚分组密码的内部结构,还是无法破译此密码。这就标识没有针对该密码的某种攻击方法,它的工作量比穷密钥搜索小。

上一篇:des加密的工作模式 下一篇:aes加密的产生背景