《应用密码学》课件第3章.ppt
第3章分组密码体制
3.1分组密码概述
3.2分组密码的原理
3.3数据加密标准
3.4高级加密标准
3.5SMS4密码算法
3.6其他典型的对称密码体制简介
3.7对称密码体制的工作模式
3.8对称密码算法的应用
3.1分组密码概述
分组密码是一种广泛使用的对称密码。和对称密码中的
序列密码(流密码streamcipher)不同,分组密码在加密过程
中不是将明文按字符逐位加密,而是首先要将待加密的明文
进行分组,每组的长度相同,然后对每组明文分别加密得到
密文。分组密码系统采用相同的加密密钥和解密密钥,这是
对称密码系统的显著特点。
例如将明文分为m块:P0,P1,P2,…,Pm-1,每个块
在密钥作用下执行相同的变换,生成m个密文块:
C0,C1,C2,…,Cm-1,每块的大小可以是任意长度,但通常是每
块的大小大于等于64位(块大小为1比特位时,分组密码就
变为序列密码)。如图3-1所示是通信双方最常用的分组密
码基本通信模型。
图3-1分组密码基本通信模型图
在图3-1中,参与通信的实体有发送方Alice、接收
方Bob。而攻击者是在双方通信中试图攻击发方或者收方信
息服务的实体,攻击者经常也称为敌人、对手、搭线者、窃
听者、入侵者等,并且攻击者通常企图扮演合法的发送方或
者接收方。
由图3-1所示,一个分组密码系统(BlockCipherSystem,
简称BCS)可以用一个五元组来表示:BCS={P,C,K,E,D}。
其中,P、C、K、E、D分别代表明文空间、密文空间、密
钥空间、加密算法、解密算法。
设X={x0,x1,…,xn-2,xn-1}为一组长度为n的明文块,在
密钥K={k0,k1,…,kt-1}的加密作用下得到密文块
Y={y0,y1,…,ym-2,ym-1},其中xi,yj,kr∈GF(2),且
0≤i≤n-1,0≤j≤m-1,0≤r≤t-1
若n=m,明文块长度等于密文块长度,称之为无数据扩
展和压缩的分组密码;
若nm,明文块长度大于密文块长度,称之为有数据压
缩的分组密码;
若nm,明文块长度小于密文块长度,称之为有数据扩
展的分组密码。
为了保证分组密码的安全强度,设计分组密码时应遵循如
下的基本原则:
(1)分组长度足够长,防止明文穷举攻击,例如DES
(DataEncryptionStandard)、IDEA(InternationalData
EncryptionAlgorithm)等分组密码算法,分组块大小为64bit,
在生日攻击下用232组密文,破解成功的概率为0.5,同时要求
232×64bit=215MB大小的存储空间,故在目前环境下采用穷举
攻击DES、IDEA等密码算法是不可能的;而AES明文分组为
128bit,同样在生日攻击下用264组密文,破解成功的概率为0.5,
同时要求存储空间大小为264×128bit=248MB,所以采用穷举攻
击AES算法在计算上就更不可行。
(2)密钥量足够大,同时需要尽可能消除弱密钥的使用,
防止密钥穷举攻击,但是由于对称密码体制存在密钥管理问
题,密钥也不能过大。
(3)密钥变换足够复杂,能抵抗各种已知攻击,如差
分攻击、线性攻击、边信道攻击等,即使得攻击者除了穷举
攻击外找不到其它有效的攻击方法。
(4)加密和解密的运算简单,易于软硬件高速实现。
(5)数据扩展足够小,一般无数据扩展。
(6)差错传播尽可能小,加密或解密某明文或密文分
组出错,对后续密文解密的影响也尽可能小。
3.2分组密码的原理
20世纪40年代末,ClaudeShannon(香农)在遵循Kerckhoff
(柯克霍夫)原则前提下,提出了设计密码系统的两个基本方
法——扩散和混淆,目的是抗击攻击者对密码系统的统计分析。
(1)扩散:将明文的统计特性散布到密文中去,实现方式
是使得明文的每一位影响密文中多位的值,等价于密文中每一位
均受明文中多位的影响。在分组密码中,对数据重复执行某个置
换,再对这一置换作用于一函数,可获得扩散。
(2)混淆:使密文和密钥之间的统计关系变得尽可能复杂,
使得攻击者无法得到密文和密钥之间的统计,从而攻击者无法得
到密钥。
1.代替—置换网络
1949年,ClaudeShannon(香农)在他的论文中提出了
一种乘积密码,实现混淆和扩散。乘积密码通常伴随一系列
置换与代替操作,常见的乘积密码是迭代密码。许多分组密
码重复一个或几个步骤:代替