分组密码课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《分组密码课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分组 密码 课件
- 资源描述:
-
1、第第3章章 分组密码体制分组密码体制3.1 分组密码概述分组密码概述3.2 数据加密标准数据加密标准DES3.4 分组密码的运行模式分组密码的运行模式3.5 IDEA3.6 AES算法算法Rijndaeln单钥分组密码是系统安全的一个重要组成部分单钥分组密码是系统安全的一个重要组成部分n实际应用中对于分组密码可能提出多方面的要求实际应用中对于分组密码可能提出多方面的要求n 安全性安全性n 运行速度运行速度n 存储量(程序的长度、数据分组长度、高速缓存大小)存储量(程序的长度、数据分组长度、高速缓存大小)n 实现平台(硬件、软件、芯片)实现平台(硬件、软件、芯片)n 运行模式运行模式3.1分组密
2、码概述分组密码概述分组密码是将明文消息编码表示后的数字序列分组密码是将明文消息编码表示后的数字序列x0,x1,xi,划分成长为划分成长为n的组的组x=(x0,x1,xn-1),各,各组(长为组(长为n的矢量)分别在密钥的矢量)分别在密钥k=(k0,k1,kt-1)控制控制下变换成等长的输出数字序列下变换成等长的输出数字序列y=(y0,y1,ym-1)(长(长为为m的矢量),其加密函数的矢量),其加密函数E:VnKVm,Vn和和Vm分别是分别是n维和维和m维矢量空间,维矢量空间,K为密钥空间,如为密钥空间,如图图3.1所示。它与流密码不同之处在于输出的每一所示。它与流密码不同之处在于输出的每一位
3、数字不是只与相应时刻输入的明文数字有关,而位数字不是只与相应时刻输入的明文数字有关,而是与一组长为是与一组长为n的明文数字有关。在相同密钥下,的明文数字有关。在相同密钥下,分组密码对长为分组密码对长为n的输入明文组所实施的变换是等的输入明文组所实施的变换是等同的,所以只需研究对任一组明文数字的变换规则。同的,所以只需研究对任一组明文数字的变换规则。这种密码实质上是字长为这种密码实质上是字长为n的数字序列的代换密码。的数字序列的代换密码。图图3.1 分组密码框图分组密码框图通常取通常取m=n。若。若mn,则为有数据扩展的分组密码;,则为有数据扩展的分组密码;若若mn,则为有数据压缩的分组密码。在
4、二元情况,则为有数据压缩的分组密码。在二元情况下,下,x和和y均为二元数字序列,它们的每个分量均为二元数字序列,它们的每个分量xi,yiGF(2)。本节将主要讨论二元情况。设计的算。本节将主要讨论二元情况。设计的算法应满足下述要求:法应满足下述要求:分组长度分组长度n要足够大,使分组代换字母表中的元要足够大,使分组代换字母表中的元素个数素个数2n足够大,防止明文穷举攻击法奏效。足够大,防止明文穷举攻击法奏效。DES、IDEA、FEAL和和LOKI等分组密码都采用等分组密码都采用n=64,在,在生日攻击下用生日攻击下用232组密文成功概率为组密文成功概率为1/2,同时要求,同时要求23264b=
5、215MB存贮,故采用穷举攻击是不现实的。存贮,故采用穷举攻击是不现实的。密钥量要足够大(即置换子集中的元素足够密钥量要足够大(即置换子集中的元素足够多),尽可能消除弱密钥并使所有密钥同等地好,多),尽可能消除弱密钥并使所有密钥同等地好,以防止密钥穷举攻击奏效。但密钥又不能过长,以以防止密钥穷举攻击奏效。但密钥又不能过长,以便于密钥的管理。便于密钥的管理。DES采用采用56比特密钥,看来太短比特密钥,看来太短了,了,IDEA采用采用128比特密钥,据估计,在今后比特密钥,据估计,在今后3040年内采用年内采用80 比特密钥是足够安全的。比特密钥是足够安全的。由密钥确定置换的算法要足够复杂,充分
6、实现由密钥确定置换的算法要足够复杂,充分实现明文与密钥的扩散和混淆,没有简单的关系可循,明文与密钥的扩散和混淆,没有简单的关系可循,能抗击各种已知的攻击,如差分攻击和线性攻击;能抗击各种已知的攻击,如差分攻击和线性攻击;有高的非线性阶数,实现复杂的密码变换;使对手有高的非线性阶数,实现复杂的密码变换;使对手破译时除了用穷举法外,无其它捷径可循。破译时除了用穷举法外,无其它捷径可循。加密和解密运算简单,易于软件和硬件高速实加密和解密运算简单,易于软件和硬件高速实现。如将分组现。如将分组n化分为子段,每段长为化分为子段,每段长为8、16或者或者32。在以软件实现时,应选用简单的运算,使作用于子在以
7、软件实现时,应选用简单的运算,使作用于子段上的密码运算易于以标准处理器的基本运算,如段上的密码运算易于以标准处理器的基本运算,如加、乘、移位等实现,避免用以软件难于实现的逐加、乘、移位等实现,避免用以软件难于实现的逐比特置换。为了便于硬件实现,加密和解密过程之比特置换。为了便于硬件实现,加密和解密过程之间的差别应仅在于由秘密密钥所生成的密钥表不同间的差别应仅在于由秘密密钥所生成的密钥表不同而已。这样,加密和解密就可用同一器件实现。设而已。这样,加密和解密就可用同一器件实现。设计的算法采用规则的模块结构,如多轮迭代等,以计的算法采用规则的模块结构,如多轮迭代等,以便于软件和便于软件和VLSI快速
8、实现。此外,差错传播和数快速实现。此外,差错传播和数据扩展要尽可能地小。据扩展要尽可能地小。数据扩展。一般无数据扩展,在采用同态置换数据扩展。一般无数据扩展,在采用同态置换和随机化加密技术时可引入数据扩展。和随机化加密技术时可引入数据扩展。差错传播尽可能地小。差错传播尽可能地小。要实现上述几点要求并不容易。首先,要在理论上要实现上述几点要求并不容易。首先,要在理论上研究有效而可靠的设计方法,而后进行严格的安全研究有效而可靠的设计方法,而后进行严格的安全性检验,并且要易于实现。性检验,并且要易于实现。下面介绍设计分组密码时的一些常用方法。下面介绍设计分组密码时的一些常用方法。如果明文和密文的分组
9、长都为如果明文和密文的分组长都为n比特,则明文的每比特,则明文的每一个分组都有一个分组都有2n个可能的取值。为使加密运算可逆个可能的取值。为使加密运算可逆(使解密运算可行),明文的每一个分组都应产生(使解密运算可行),明文的每一个分组都应产生惟一的一个密文分组,这样的变换是可逆的,称明惟一的一个密文分组,这样的变换是可逆的,称明文分组到密文分组的可逆变换为代换。不同可逆变文分组到密文分组的可逆变换为代换。不同可逆变换的个数有换的个数有2n!个。个。3.1.1 代换代换图图3.2表示表示n=4的代换密码的一般结构,的代换密码的一般结构,4比特输入比特输入产生产生16个可能输入状态中的一个,由代换
10、结构将这个可能输入状态中的一个,由代换结构将这一状态映射为一状态映射为16个可能输出状态中的一个,每一输个可能输出状态中的一个,每一输出状态由出状态由4个密文比特表示。加密映射和解密映射个密文比特表示。加密映射和解密映射可由代换表来定义,如表可由代换表来定义,如表3.1所示。这种定义法是所示。这种定义法是分组密码最常用的形式,能用于定义明文和密文之分组密码最常用的形式,能用于定义明文和密文之间的任何可逆映射。(见间的任何可逆映射。(见33页表页表3.1)图图3.2 代换结构代换结构但这种代换结构在实用中还有一些问题需考虑。如但这种代换结构在实用中还有一些问题需考虑。如果分组长度太小,如果分组长
11、度太小,如n=4,系统则等价于古典的代,系统则等价于古典的代换密码,容易通过对明文的统计分析而被攻破。这换密码,容易通过对明文的统计分析而被攻破。这个弱点不是代换结构固有的,只是因为分组长度太个弱点不是代换结构固有的,只是因为分组长度太小。如果分组长度小。如果分组长度n足够大,而且从明文到密文可足够大,而且从明文到密文可有任意可逆的代换,那么明文的统计特性将被隐藏有任意可逆的代换,那么明文的统计特性将被隐藏而使以上的攻击不能奏效。而使以上的攻击不能奏效。然而,从实现的角度来看,分组长度很大的可逆代然而,从实现的角度来看,分组长度很大的可逆代换结构是不实际的。仍以表换结构是不实际的。仍以表3.1
12、为例,该表定义了为例,该表定义了n=4时从明文到密文的一个可逆映射,其中第时从明文到密文的一个可逆映射,其中第2列是列是每个明文分组对应的密文分组的值,可用来定义这每个明文分组对应的密文分组的值,可用来定义这个可逆映射。因此从本质上来说,第个可逆映射。因此从本质上来说,第2列是从所有列是从所有可能映射中决定某一特定映射的密钥。这个例子中,可能映射中决定某一特定映射的密钥。这个例子中,密钥需要密钥需要64比特。一般地,对比特。一般地,对n比特的代换结构,比特的代换结构,密钥的大小是密钥的大小是n2n比特。如对比特。如对64比特的分组,密比特的分组,密钥大小应是钥大小应是64264=2701021
13、比特,因此难以处理。比特,因此难以处理。实际中常将实际中常将n分成较小的段,例如可选分成较小的段,例如可选n=rn0,其,其中中r和和n0都是正整数,将设计都是正整数,将设计n个变量的代换变为设个变量的代换变为设计计r个较小的子代换,而每个子代换只有个较小的子代换,而每个子代换只有n0个输入个输入变量。一般变量。一般n0都不太大,称每个子代换为代换盒,都不太大,称每个子代换为代换盒,简称为简称为S盒。例如盒。例如DES中将输入为中将输入为48比特、输出为比特、输出为32比特的代换用比特的代换用8个个S盒来实现,每个盒来实现,每个S盒的输入端盒的输入端数仅为数仅为6比特,输出端数仅为比特,输出端
14、数仅为4比特。比特。扩散和混淆是由扩散和混淆是由Shannon提出的设计密码系统的两提出的设计密码系统的两个基本方法,目的是抗击敌手对密码系统的统计分个基本方法,目的是抗击敌手对密码系统的统计分析。如果敌手知道明文的某些统计特性,如消息中析。如果敌手知道明文的某些统计特性,如消息中不同字母出现的频率、可能出现的特定单词或短语,不同字母出现的频率、可能出现的特定单词或短语,而且这些统计特性以某种方式在密文中反映出来,而且这些统计特性以某种方式在密文中反映出来,那么敌手就有可能得出加密密钥或其一部分,或者那么敌手就有可能得出加密密钥或其一部分,或者得出包含加密密钥的一个可能的密钥集合。在得出包含加
15、密密钥的一个可能的密钥集合。在Shannon称之为理想密码的密码系统中,密文的所称之为理想密码的密码系统中,密文的所有统计特性都与所使用的密钥独立。图有统计特性都与所使用的密钥独立。图3.2讨论的讨论的代换密码就是这样的一个密码系统,然而它是不实代换密码就是这样的一个密码系统,然而它是不实用的。用的。3.1.2 扩散和混淆扩散和混淆所谓扩散,就是将明文的统计特性散布到密文中去,所谓扩散,就是将明文的统计特性散布到密文中去,实现方式是使得明文的每一位影响密文中多位的值,实现方式是使得明文的每一位影响密文中多位的值,等价于说密文中每一位均受明文中多位影响。例如等价于说密文中每一位均受明文中多位影响
16、。例如对英文消息对英文消息M=m1m2m3的加密操作的加密操作其中其中ord(mi)是求字母是求字母mi对应的序号,对应的序号,chr(i)是求序是求序号号i对应的字母。这时明文的统计特性将被散布到对应的字母。这时明文的统计特性将被散布到密文中,因而每一字母在密文中出现的频率比在明密文中,因而每一字母在密文中出现的频率比在明文中出现的频率更接近于相等,双字母及多字母出文中出现的频率更接近于相等,双字母及多字母出现的频率也更接近于相等。在二元分组密码中,可现的频率也更接近于相等。在二元分组密码中,可对数据重复执行某个置换,再对这一置换作用于一对数据重复执行某个置换,再对这一置换作用于一函数,可获
17、得扩散。函数,可获得扩散。1mod26knn iiychrord m分组密码在将明文分组依靠密钥变换到密文分组时,分组密码在将明文分组依靠密钥变换到密文分组时,扩散的目的是使明文和密文之间的统计关系变得尽扩散的目的是使明文和密文之间的统计关系变得尽可能复杂,以使敌手无法得到密钥;混淆是使密文可能复杂,以使敌手无法得到密钥;混淆是使密文和密钥之间的统计关系变得尽可能复杂,以使敌手和密钥之间的统计关系变得尽可能复杂,以使敌手无法得到密钥。因此即使敌手能得到密文的一些统无法得到密钥。因此即使敌手能得到密文的一些统计关系,由于密钥和密文之间的统计关系复杂化,计关系,由于密钥和密文之间的统计关系复杂化,
18、敌手也无法得到密钥。使用复杂的代换算法可以得敌手也无法得到密钥。使用复杂的代换算法可以得到预期的混淆效果,而简单的线性代换函数得到的到预期的混淆效果,而简单的线性代换函数得到的混淆效果则不够理想。混淆效果则不够理想。扩散和混淆成功地实现了分组密码的本质属性,因扩散和混淆成功地实现了分组密码的本质属性,因而成为设计现代分组密码的基础。而成为设计现代分组密码的基础。很多分组密码的结构从本质上说都是基于一个称为很多分组密码的结构从本质上说都是基于一个称为Feistel网络的结构。网络的结构。Feistel提出利用乘积密码可获提出利用乘积密码可获得简单的代换密码,乘积密码指顺序地执行两个或得简单的代换
19、密码,乘积密码指顺序地执行两个或多个基本密码系统,使得最后结果的密码强度高于多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果,每个基本密码系统产生的结果,Feistel还提出了实还提出了实现代换和置换的方法。其思想实际上是现代换和置换的方法。其思想实际上是Shannon提提出的利用乘积密码实现混淆和扩散思想的具体应用。出的利用乘积密码实现混淆和扩散思想的具体应用。3.1.3 Feistel密码结构密码结构1.Feistel加密结构加密结构图图3.3是是Feistel网络示意图,加密算法的输入是分组网络示意图,加密算法的输入是分组长为长为2w的明文和一个密钥的明文和一个密钥
20、K。将每组明文分成左右。将每组明文分成左右两半两半L0和和R0,在进行完,在进行完n轮迭代后,左右两半再合轮迭代后,左右两半再合并到一起以产生密文分组。其第并到一起以产生密文分组。其第i轮迭代的输入为轮迭代的输入为前一轮输出的函数:前一轮输出的函数:其中其中Ki是第是第i轮用的子密钥,由加密密钥轮用的子密钥,由加密密钥K得到。一得到。一般地,各轮子密钥彼此不同而且与般地,各轮子密钥彼此不同而且与K也不同。也不同。111,iiiiiiLRRLF RK图图3.3 Feistel网络示意图网络示意图Feistel网络中每轮结构都相同,每轮中右半数据被网络中每轮结构都相同,每轮中右半数据被作用于轮函数
21、作用于轮函数F后,再与左半数据进行异或运算,后,再与左半数据进行异或运算,这一过程就是上面介绍的代换。每轮的轮函数的结这一过程就是上面介绍的代换。每轮的轮函数的结构都相同,但以不同的子密钥构都相同,但以不同的子密钥Ki作为参数。代换过作为参数。代换过程完成后,再交换左、右两半数据,这一过程称为程完成后,再交换左、右两半数据,这一过程称为置换。这种结构是置换。这种结构是Shannon提出的代换提出的代换置换网置换网络(络(substitution-permutation network,SPN)的特)的特有形式。有形式。Feistel网络的实现与以下参数和特性有关:网络的实现与以下参数和特性有关
22、:分组大小分组越大则安全性越高,但加密速度分组大小分组越大则安全性越高,但加密速度就越慢。分组密码设计中最为普遍使用的分组大小就越慢。分组密码设计中最为普遍使用的分组大小是是64比特。比特。密钥大小密钥越长则安全性越高,但加密速度密钥大小密钥越长则安全性越高,但加密速度就越慢。现在普遍认为就越慢。现在普遍认为64比特或更短的密钥长度是比特或更短的密钥长度是不安全的,通常使用不安全的,通常使用128比特的密钥长度。比特的密钥长度。轮数单轮结构远不足以保证安全性,但多轮结轮数单轮结构远不足以保证安全性,但多轮结构可提供足够的安全性。典型地,轮数取为构可提供足够的安全性。典型地,轮数取为16。子密钥
23、产生算法该算法的复杂性越大,则密码子密钥产生算法该算法的复杂性越大,则密码分析的困难性就越大。分析的困难性就越大。轮函数轮函数的复杂性越大,密码分析的困难轮函数轮函数的复杂性越大,密码分析的困难性也越大。性也越大。在设计在设计Feistel网络时,还有以下两个方面需要考虑:网络时,还有以下两个方面需要考虑:快速的软件实现在很多情况中,算法是被镶嵌快速的软件实现在很多情况中,算法是被镶嵌在应用程序中,因而无法用硬件实现。此时算法的在应用程序中,因而无法用硬件实现。此时算法的执行速度是考虑的关键。执行速度是考虑的关键。算法容易分析如果算法能被无疑义地解释清楚,算法容易分析如果算法能被无疑义地解释清
24、楚,就可容易地分析算法抵抗攻击的能力,有助于设计就可容易地分析算法抵抗攻击的能力,有助于设计高强度的算法。高强度的算法。2.Feistel解密结构解密结构Feistel解密过程本质上和加密过程是一样的,算法解密过程本质上和加密过程是一样的,算法使用密文作为输入,但使用子密钥使用密文作为输入,但使用子密钥Ki的次序与加密的次序与加密过程相反,即第过程相反,即第1轮使用轮使用Kn,第,第2轮使用轮使用Kn-1,最后一轮使用最后一轮使用K1。这一特性保证了解密和加密可采。这一特性保证了解密和加密可采用同一算法。用同一算法。图图3.4的左边表示的左边表示16轮轮Feistel网络的加密过程,右边网络的
25、加密过程,右边表示解密过程,加密过程由上而下,解密过程由下表示解密过程,加密过程由上而下,解密过程由下而上。为清楚起见,加密算法每轮的左右两半用而上。为清楚起见,加密算法每轮的左右两半用LEi和和REi表示,解密算法每轮的左右两半用表示,解密算法每轮的左右两半用LDi和和RDi表示。图中右边标出了解密过程中每一轮的中表示。图中右边标出了解密过程中每一轮的中间值与左边加密过程中间值的对应关系,即加密过间值与左边加密过程中间值的对应关系,即加密过程第程第i轮的输出是轮的输出是LEiREi(表示链接),解密过程表示链接),解密过程第第16-i轮相应的输入是轮相应的输入是RDiLDi。图图3.4 Fe
展开阅读全文