文档介绍:第8章分组密码
分组密码概述
一个分组密码是一种映射:
记为E(X,K) 或称为明文空间, 称为密文空间, 为密钥空间。
分组密码的设计原则
有关实用密码的两个一般设计原则是Shannon提出的混乱原则和扩散原则。
混乱:人们所设计的密码应使得密钥和明文以及密文之间的依赖关系相当复杂以至于这种依赖性对密码分析者来说是无法利用的。
扩散:人们所设计的密码应使得密钥的每一位数字影响密文的许多位数字以防止对密钥进行逐段破译,而且明文的每一位数字也应影响密文的许多位数字以便隐蔽明文数字统计特性。
软件实现的设计原则:使用子块和简单的运算。密码运算在子块上进行,要求子块的长度能自然地适应软件编程,比如8、16、32比特等。在软件实现中,按比特置换是难于实现的,因此我们应尽量避免使用它。子块上所进行的一些密码运算应该是一些易于软件实现的运算,最好是用一些标准处理器所具有的一些基本指令,比如加法、乘法和移位等。
硬件实现的设计原则:加密和解密可用同样的器件来实现。尽量使用规则结构,因为密码应有一个标准的组件结构以便其能适应于用超大规模集成电路实现。
其他原则:
简单性原则:包括规范的简单性和分析的简单性。
必须能抗击所有已知的攻击,特别是差分攻击和线性攻击。
可扩展性。要求能提供128、192、256比特的可变分组或密钥长。
分组密码的结构
Feistel网络与SP网络,它们的主要区别在于:SP结构每轮改变整个数据分组,而Feistel密码每轮只改变输入分组的一半。
AES和DES分别是这两种结构的代表。
Feistel网络(又称Feistel结构)可把任何轮函数转化为一个置换,它是由Horst Feistel在设计Lucifer分组密码时发明的,并因DES的使用而流行。“加解密相似”是 Feistel型密码的实现优点。
SP网络(又称SP结构)是Feistel网络的一种推广,其结构清晰,S一般称为混淆层,主要起混淆作用。P一般称为扩散层,主要起扩散作用。SP网络与Feistel网络相比,可以得到更快速的扩散,不过SP网络的加解密通常不相似。有关这两种结构的特点,读者在了解了DES和AES算法之后再细细体会。
分组密码的安全性
安全需求
如果不知道密钥的知识,攻击者从密文恢复出明文是实际不可能的。
用固定的k比特的秘密钥,加密T个明文,其中,最大化T后仍能达到一个可接受的安全性是现代分组密码追求的目标。
几乎所有当代分组密码用更小的查表(代替盒或S盒)合并其他变换(线性变换)模仿这样一个大的随机查表。这种做法实际上是安全性和可接受的复杂性的一个折中。
安全模型
1)无条件安全性。
2)多项式安全性。
3)“可证明的安全性”。
4)实际的安全性。
5)历史的安全性。