《第3章分组密码体制课件.ppt》由会员分享,可在线阅读,更多相关《第3章分组密码体制课件.ppt(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第第第3 3章章章章 分组密码体制分组密码体制分组密码体制分组密码体制郝艳华郝艳华郝艳华郝艳华漳州师范学院计算机科学与工程系漳州师范学院计算机科学与工程系漳州师范学院计算机科学与工程系漳州师范学院计算机科学与工程系1/12/202313.1 分组密码概述分组密码概述3.2 数据加密标准数据加密标准3.3 差分密码分析与线性密码分析差分密码分析与线性密码分析3.4 分组密码的运行模式分组密码的运行模式3.5 IDEA3.6 AES算法算法Rijndael1/12/202323.1 分组密码概述分组密码概述在许多密码系统中,单钥分组密码是系统安全的在许多密码系统中,单钥分组密码是系统安全的一个重
2、要组成部分,用分组密码易于构造一个重要组成部分,用分组密码易于构造伪随机伪随机数生成器、流密码、消息认证码(数生成器、流密码、消息认证码(MAC)和杂)和杂凑函数凑函数等,还可进而成为等,还可进而成为消息认证技术、数据完消息认证技术、数据完整性机制、实体认证协议以及单钥数字签字体制整性机制、实体认证协议以及单钥数字签字体制的核心组成部分。的核心组成部分。实际应用中对于分组密码的要求:实际应用中对于分组密码的要求:安全性安全性运行速度、存储量(程序的长度、数据分组长度、高运行速度、存储量(程序的长度、数据分组长度、高速缓存大小)、实现平台(硬件、软件、芯片)、运速缓存大小)、实现平台(硬件、软件
3、、芯片)、运行模式行模式1/12/20233明文明文x0,x1,xi,明文分组明文分组 x=(x0,x1,xn-1),密钥密钥 k=(k0,k1,kt-1)密文分组密文分组 y=(y0,y1,ym-1)加密函数加密函数 E:VnKVm图图3.1 分组密码框图分组密码框图1/12/20234与流密码不同之处在于输出的每一位数字不是与流密码不同之处在于输出的每一位数字不是只与相应时刻输入的明文数字有关,而是与一只与相应时刻输入的明文数字有关,而是与一组长为组长为n的明文数字有关。的明文数字有关。在相同密钥下,分组密码对长为在相同密钥下,分组密码对长为n的输入明文组的输入明文组所实施的变换是等同的,
4、所以只需研究对任一所实施的变换是等同的,所以只需研究对任一组明文数字的变换规则组明文数字的变换规则这种密码实质上是字长为这种密码实质上是字长为n的数字序列的代换密的数字序列的代换密码码1/12/20235通常取通常取m=n。若若mn,则为有数据扩展的分组密码;,则为有数据扩展的分组密码;若若mn,则为有数据压缩的分组密码。,则为有数据压缩的分组密码。本文主要讨论二元情况本文主要讨论二元情况1/12/20236设计的算法应满足下述要求:设计的算法应满足下述要求:分组长度分组长度n要足够大要足够大,使分组代换字母,使分组代换字母表中的元素个数表中的元素个数2n足够大,防止明文穷举足够大,防止明文穷
5、举攻击法奏效。攻击法奏效。DES、IDEA、FEAL和和LOKI等分组密码都等分组密码都采用采用n=64,在生日攻击下用,在生日攻击下用232组密文成功概率为组密文成功概率为1/2,同时要求,同时要求23264b=215MB存贮,故采用穷举存贮,故采用穷举攻击是不现实的。攻击是不现实的。1/12/20237 密钥量要足够大密钥量要足够大(即置换子集中的元素(即置换子集中的元素足够多),尽可能消除弱密钥并使所有密足够多),尽可能消除弱密钥并使所有密钥同等地好,以防止钥同等地好,以防止密钥穷举攻击密钥穷举攻击奏效。奏效。但密钥又不能过长,以便于密钥的管理。但密钥又不能过长,以便于密钥的管理。DES
6、采用采用56比特密钥,太短了,比特密钥,太短了,IDEA采用采用128比特密钥,据估计,在今后比特密钥,据估计,在今后3040年内采用年内采用80 比特密钥是足够安全的。比特密钥是足够安全的。1/12/20238 由密钥确定置换的算法要足够复杂由密钥确定置换的算法要足够复杂,充,充分实现明文与密钥的扩散和混淆,没有分实现明文与密钥的扩散和混淆,没有简单的关系可循,能抗击各种已知的攻简单的关系可循,能抗击各种已知的攻击,如差分攻击和线性攻击;有高的非击,如差分攻击和线性攻击;有高的非线性阶数,实现复杂的密码变换;使对线性阶数,实现复杂的密码变换;使对手破译时除了用穷举法外,无其它捷径手破译时除了
7、用穷举法外,无其它捷径可循。可循。1/12/20239 加密和解密运算简单,易于软件和硬件加密和解密运算简单,易于软件和硬件高速实现。高速实现。如将分组如将分组n化分为子段,每化分为子段,每段长为段长为8、16或者或者32。在以软件实现时,应选用简单的运算,使作用于子在以软件实现时,应选用简单的运算,使作用于子段上的密码运算易于以标准处理器的基本运算,如段上的密码运算易于以标准处理器的基本运算,如加、乘、移位等实现,避免用以软件难于实现的逐加、乘、移位等实现,避免用以软件难于实现的逐比特置换。比特置换。为了便于硬件实现,加密和解密过程之间的差别应为了便于硬件实现,加密和解密过程之间的差别应仅在
8、于由秘密密钥所生成的密钥表不同而已。这样,仅在于由秘密密钥所生成的密钥表不同而已。这样,加密和解密就可用同一器件实现。加密和解密就可用同一器件实现。设计的算法采用规则的模块结构,如多轮迭代等,设计的算法采用规则的模块结构,如多轮迭代等,以便于软件和以便于软件和VLSI(超大规模集成电路)快速实(超大规模集成电路)快速实现。现。1/12/202310 数据扩展尽可能地小。数据扩展尽可能地小。一般无数据扩展,一般无数据扩展,在采用同态置换和随机化加密技术时可引在采用同态置换和随机化加密技术时可引入数据扩展。入数据扩展。差错传播尽可能地小。差错传播尽可能地小。要实现上述几点要求:要实现上述几点要求:
9、首先要在理论上研究有效而可靠的设计方法首先要在理论上研究有效而可靠的设计方法而后进行严格的安全性检验而后进行严格的安全性检验要易于实现要易于实现1/12/2023113.1.1 代换代换如果明文和密文的分组长都为如果明文和密文的分组长都为n比特,则明文比特,则明文的每一个分组都有的每一个分组都有2n个可能的取值。为使加密个可能的取值。为使加密运算可逆(使解密运算可行),明文的每一个运算可逆(使解密运算可行),明文的每一个分组都应产生惟一的一个密文分组,这样的变分组都应产生惟一的一个密文分组,这样的变换是可逆的,换是可逆的,称明文分组到密文分组的可逆变换为称明文分组到密文分组的可逆变换为代换代换
10、。不同可逆变换的个数有不同可逆变换的个数有2n!个。个。1/12/202312下图表示下图表示n=4的代换密码的一般结构,的代换密码的一般结构,4比特输入产生比特输入产生16个可能输入状态中的一个,由代换结构将这一状态映个可能输入状态中的一个,由代换结构将这一状态映射为射为16个可能输出状态中的一个,每一输出状态由个可能输出状态中的一个,每一输出状态由4个个密文比特表示。密文比特表示。1/12/202313加密映射和解密映射可由代换表来定义加密映射和解密映射可由代换表来定义这种定义法是分组密码最常用的形式,能用于定义明这种定义法是分组密码最常用的形式,能用于定义明文和密文之间的任何可逆映射文和
11、密文之间的任何可逆映射1/12/202314如果分组长度太小如果分组长度太小,系统则等价于古典的,系统则等价于古典的代换密码,容易通过对明文的统计分析而代换密码,容易通过对明文的统计分析而被攻破。被攻破。这个弱点不是代换结构固有的,只是因为分这个弱点不是代换结构固有的,只是因为分组长度太小。如果分组长度组长度太小。如果分组长度n足够大,而且从足够大,而且从明文到密文可有任意可逆的代换,那么明文明文到密文可有任意可逆的代换,那么明文的统计特性将被隐藏而使以上的攻击不能奏的统计特性将被隐藏而使以上的攻击不能奏效效从实现的角度来看,从实现的角度来看,分组长度很大分组长度很大的可逆的可逆代换结构是不实
12、际的。代换结构是不实际的。一般地,对一般地,对n比特的代换结构,密钥的大小是比特的代换结构,密钥的大小是n2n比特。如对比特。如对64比特的分组,密钥大小应比特的分组,密钥大小应是是64264=2701021比特,因此难以处理。比特,因此难以处理。1/12/202315实际中常将实际中常将n分成较小的段,例如可选分成较小的段,例如可选n=r n0,其中,其中r和和n0都是正整数,将设计都是正整数,将设计n个变量的代换变为设计个变量的代换变为设计r个较小的子代换,个较小的子代换,而每个子代换只有而每个子代换只有n0个输入变量。个输入变量。一般一般n0都不太大,称每个子代换为都不太大,称每个子代换
13、为代换盒代换盒,简称为简称为S盒盒。例如例如DES中将输入为中将输入为48比特、输出为比特、输出为32比特比特的代换用的代换用8个个S盒来实现,每个盒来实现,每个S盒的输入端盒的输入端数仅为数仅为6比特,输出端数仅为比特,输出端数仅为4比特。比特。1/12/2023163.1.2 扩散和混淆扩散和混淆扩散和混淆是由扩散和混淆是由Shannon提出的设计密码提出的设计密码系统的两个基本方法,目的是抗击敌手对系统的两个基本方法,目的是抗击敌手对密码系统的统计分析。密码系统的统计分析。如果敌手知道明文的某些统计特性,如消息如果敌手知道明文的某些统计特性,如消息中不同字母出现的频率、可能出现的特定单中
14、不同字母出现的频率、可能出现的特定单词或短语,而且这些统计特性以某种方式在词或短语,而且这些统计特性以某种方式在密文中反映出来,那么敌手就有可能得出加密文中反映出来,那么敌手就有可能得出加密密钥或其一部分,或者得出包含加密密钥密密钥或其一部分,或者得出包含加密密钥的一个可能的密钥集合。的一个可能的密钥集合。1/12/202317所谓所谓扩散扩散,就是将明文的统计特性散布到密文,就是将明文的统计特性散布到密文中去,实现方式是使得密文中每一位由明文中中去,实现方式是使得密文中每一位由明文中多位产生多位产生。例如对英文消息例如对英文消息M=m1m2m3的加密操作的加密操作 其中其中ord(mi)是求
15、字母是求字母mi对应的序号,对应的序号,chr(i)是求序号是求序号i对应的字母。这时明文的统计特性将被散布到密文对应的字母。这时明文的统计特性将被散布到密文中,因而中,因而每一字母在密文中出现的频率比在明文中每一字母在密文中出现的频率比在明文中出现的频率更接近于相等,双字母及多字母出现的出现的频率更接近于相等,双字母及多字母出现的频率也更接近于相等频率也更接近于相等。在二元分组密码中,可对数据重复执行某个置在二元分组密码中,可对数据重复执行某个置换,再对这一置换作用于一函数,可获得扩散换,再对这一置换作用于一函数,可获得扩散1/12/202318扩散扩散是使是使明文明文和和密文密文之间的统计
16、关系变得尽之间的统计关系变得尽可能复杂,以使敌手无法得到密钥可能复杂,以使敌手无法得到密钥混淆混淆是使是使密文密文和和密钥密钥之间的统计关系变得之间的统计关系变得尽可能复杂,以使敌手无法得到密钥。因此尽可能复杂,以使敌手无法得到密钥。因此即使敌手能得到密文的一些统计关系,由于即使敌手能得到密文的一些统计关系,由于密钥和密文之间的统计关系复杂化,敌手也密钥和密文之间的统计关系复杂化,敌手也无法得到密钥。无法得到密钥。使用复杂的代换算法可以得到预期的混淆效使用复杂的代换算法可以得到预期的混淆效果,而简单的线性代换函数得到的混淆效果果,而简单的线性代换函数得到的混淆效果则不够理想。则不够理想。扩散和
17、混淆成功地实现了分组密码的本质属扩散和混淆成功地实现了分组密码的本质属性,因而成为设计现代分组密码的基础。性,因而成为设计现代分组密码的基础。1/12/2023193.1.3 Feistel密码结构密码结构很多分组密码的结构从本质上说都是基很多分组密码的结构从本质上说都是基于该结构的于该结构的乘积密码乘积密码指顺序地执行两个或多个基本指顺序地执行两个或多个基本密码系统,使得最后结果的密码强度高密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果于每个基本密码系统产生的结果.Feistel提出了实现代换和置换的方法。其提出了实现代换和置换的方法。其思想实际上是思想实际上是Shannon
18、提出的利用乘积密提出的利用乘积密码实现混淆和扩散思想的具体应用。码实现混淆和扩散思想的具体应用。1/12/202320图图3.3 Feistel网络示意图网络示意图1/12/2023211.Feistel加密结构加密结构输入是分组长为输入是分组长为2w的明文和一个密钥的明文和一个密钥K。将。将每组明文分成左右两半每组明文分成左右两半L0和和R0,在进行完,在进行完n轮迭轮迭代后,左右两半再合并到一起以产生密文分组。代后,左右两半再合并到一起以产生密文分组。其第其第i轮迭代的输入为前一轮输出的函数:轮迭代的输入为前一轮输出的函数:其中其中Ki是第是第i轮用的子密钥,由加密密钥轮用的子密钥,由加密
19、密钥K得到。得到。一般地,各轮子密钥彼此不同而且与一般地,各轮子密钥彼此不同而且与K也不同。也不同。1/12/202322Feistel网络中每轮结构都相同,每轮中网络中每轮结构都相同,每轮中右半数据被作用于轮函数右半数据被作用于轮函数F后,再与左半后,再与左半数据进行异或运算数据进行异或运算代换代换每轮的轮函数的结构都相同,但以不同每轮的轮函数的结构都相同,但以不同的子密钥的子密钥Ki作为参数。作为参数。代换过程完成后,再交换左、右两半数代换过程完成后,再交换左、右两半数据据置换置换这种结构是这种结构是Shannon提出的代换提出的代换置置换网络换网络SPN的特有形式的特有形式1/12/20
20、2323Feistel网络的实现与以下参数和特性有关:网络的实现与以下参数和特性有关:分组大小分组大小:分组越大则安全性越高,但加密速度就分组越大则安全性越高,但加密速度就越慢。分组密码设计中最为普遍使用的分组大小是越慢。分组密码设计中最为普遍使用的分组大小是64比特。比特。密钥大小密钥大小:密钥越长则安全性越高,但加密速度就:密钥越长则安全性越高,但加密速度就越慢。现在普遍认为越慢。现在普遍认为64比特或更短的密钥长度是不比特或更短的密钥长度是不安全的,通常使用安全的,通常使用128比特的密钥长度。比特的密钥长度。轮数轮数:单轮结构远不足以保证安全性,但多轮结构:单轮结构远不足以保证安全性,
21、但多轮结构可提供足够的安全性。典型地,轮数取为可提供足够的安全性。典型地,轮数取为16。子密钥产生算法子密钥产生算法:该算法的复杂性越大,则密码分:该算法的复杂性越大,则密码分析的困难性就越大。析的困难性就越大。轮函数轮函数:轮函数的复杂性越大,密码分析的困难性:轮函数的复杂性越大,密码分析的困难性也越大。也越大。1/12/202324在设计在设计Feistel网络时,还有以下两个方面网络时,还有以下两个方面需要考虑:需要考虑:快速的软件实现快速的软件实现:在很多情况中,算法:在很多情况中,算法是被镶嵌在应用程序中,因而无法用硬件是被镶嵌在应用程序中,因而无法用硬件实现。此时算法的执行速度是考
22、虑的关键。实现。此时算法的执行速度是考虑的关键。算法容易分析算法容易分析:如果算法能被无疑义地:如果算法能被无疑义地解释清楚,就可容易地分析算法抵抗攻击解释清楚,就可容易地分析算法抵抗攻击的能力,有助于设计高强度的算法。的能力,有助于设计高强度的算法。1/12/2023252.Feistel解密结构解密结构Feistel解密过程本质上和加密过程是一样解密过程本质上和加密过程是一样的,算法使用密文作为输入,但的,算法使用密文作为输入,但使用子密使用子密钥钥Ki的次序与加密过程相反的次序与加密过程相反,即第,即第1轮使轮使用用Kn,第,第2轮使用轮使用Kn-1,最后一轮,最后一轮使用使用K1。这一
23、特性保证了解密和加密可采。这一特性保证了解密和加密可采用同一算法。用同一算法。1/12/202326图图3.4 Feistel加解密过程加解密过程1/12/202327证明解密过程第证明解密过程第1轮的输出等于加密过程第轮的输出等于加密过程第16轮轮输入左右两半的交换值输入左右两半的交换值 在加密过程中:在加密过程中:在解密过程中在解密过程中1/12/202328所以解密过程第所以解密过程第1轮的输出为轮的输出为LE15RE15,等于加密过程第等于加密过程第16轮输入左右两半交换后轮输入左右两半交换后的结果。容易证明的结果。容易证明这种对应关系在这种对应关系在16轮中轮中每轮都成立每轮都成立。
24、一般地,加密过程的第。一般地,加密过程的第i轮有轮有因此因此以上两式描述了加密过程中第以上两式描述了加密过程中第i轮的输入与轮的输入与第第i轮输出的函数关系轮输出的函数关系1/12/2023293.2 数据加密标准数据加密标准数据加密标准(数据加密标准(data encryption standard,DES)是迄今为止世界上最为广泛使用和流行的)是迄今为止世界上最为广泛使用和流行的一种分组密码算法一种分组密码算法它的分组长度为它的分组长度为64比特,密钥长度为比特,密钥长度为56比特,它比特,它是由美国是由美国IBM公司研制的,是早期的称作公司研制的,是早期的称作Lucifer密码的一种发展
25、和修改密码的一种发展和修改1975年年3月月17日日DES首次被公布在联邦记录中,首次被公布在联邦记录中,经过大量的公开讨论后,经过大量的公开讨论后,DES于于1977年年1月月15日日被正式批准并作为美国联邦信息处理标准,即被正式批准并作为美国联邦信息处理标准,即FIPS-46,同年,同年7月月15日开始生效。日开始生效。规定每隔规定每隔5年由美国国家保密局(年由美国国家保密局(national security agency,NSA)作出评估,并重新批准)作出评估,并重新批准它是否继续作为联邦加密标准。它是否继续作为联邦加密标准。1/12/202330最近的一次评估是在最近的一次评估是在1
26、994年年1月,美国已决定月,美国已决定1998年年12月以后将不再使用月以后将不再使用DES。1997年年DESCHALL小组经过近小组经过近4个月的努力,通过个月的努力,通过Internet搜索了搜索了31016个密钥,找出了个密钥,找出了DES的密钥,的密钥,恢复出了明文。恢复出了明文。1998年年5月美国月美国EFF(electronics frontier foundation)宣布,他们以一台价值宣布,他们以一台价值20万美元的计算机改装成的万美元的计算机改装成的专用解密机,用专用解密机,用56小时破译了小时破译了56 比特密钥的比特密钥的DES。美国国家标准和技术协会已征集并进行
27、了几轮评估、美国国家标准和技术协会已征集并进行了几轮评估、筛选,产生了称之为筛选,产生了称之为AES(advanced encryption standard)的新加密标准。的新加密标准。尽管如此,尽管如此,DES对于推动密码理论的发展和应用毕对于推动密码理论的发展和应用毕竟起了重大作用,对于掌握分组密码的基本理论、竟起了重大作用,对于掌握分组密码的基本理论、设计思想和实际应用仍然有着重要的参考价值设计思想和实际应用仍然有着重要的参考价值1/12/2023313.2.1 DES描述描述1/12/2023321.1.初始置换初始置换初始置换初始置换1/12/2023331/12/2023341.
28、初始置换初始置换M1 M2 M3 M4 M5 M6 M7 M8M9 M10 M11 M12 M13 M14 M15 M16 M17 M18 M19 M20 M21 M22 M23 M24M25 M26 M27 M28 M29 M30 M31 M32M33 M34 M35 M36 M37 M38 M39 M40M41 M42 M43 M44 M45 M46 M47 M48M49 M50 M51 M52 M53 M54 M55 M56M57 M58 M59 M60 M61 M62 M63 M641/12/202335其中其中其中其中MMi i是二元数字。由表是二元数字。由表是二元数字。由表是二元数
29、字。由表3.2(a)3.2(a)得得得得X=IP(M)X=IP(M)为:为:为:为:MM58 58 MM50 50 MM42 42 MM34 34 MM26 26 MM18 18 MM10 10 MM2 2MM60 60 MM52 52 MM44 44 MM36 36 MM28 28 MM20 20 MM12 12 MM4 4MM62 62 MM54 54 MM46 46 MM38 38 MM30 30 MM22 22 MM14 14 MM6 6MM64 64 MM56 56 MM48 48 MM40 40 MM32 32 MM2424 M M16 16 MM8 8MM57 57 MM49 4
30、9 MM41 41 MM33 33 MM25 25 MM17 17 MM9 9 MM1 1MM59 59 MM51 51 MM43 43 MM35 35 MM27 27 MM19 19 MM11 11 MM3 3MM61 61 MM53 53 MM45 45 MM37 37 MM29 29 MM21 21 MM13 13 MM5 5MM63 63 MM55 55 MM47 47 MM39 39 MM31 31 MM23 23 MM15 15 MM7 71/12/202336如果再取逆初始置换如果再取逆初始置换Y=IP-1(X)=IP-1(IP(M),可以看出,可以看出,M各位的初始顺序将被恢复
31、。各位的初始顺序将被恢复。1/12/202337图图3.6 DES加密算法的轮结构加密算法的轮结构1/12/202338每轮变换可由以下公式表示:每轮变换可由以下公式表示:1/12/202339图图3.7 函数函数F(R,K)的计算过程的计算过程1/12/2023401/12/2023411/12/2023421/12/202343对每个盒对每个盒Si,其,其6比特输入中,第比特输入中,第1个和第个和第6个比个比特形成一个特形成一个2位二进制数,用来选择位二进制数,用来选择Si的的4个代换个代换中的一个。中的一个。6比特输入中,中间比特输入中,中间4位用来选择列。位用来选择列。行和列选定后,得
32、到其交叉位置的十进制数,行和列选定后,得到其交叉位置的十进制数,将这个数表示为将这个数表示为4位二进制数即得这一位二进制数即得这一S盒的输盒的输出。出。例如,例如,S1 的输入为的输入为011001,行选为,行选为01(即第(即第1行)行),列选为,列选为1100(即第(即第12列),行列交叉位置的列),行列交叉位置的数为数为9,其,其4位二进制表示为位二进制表示为1001,所以,所以S1的输的输出为出为1001。S盒的每一行定义了一个可逆代盒的每一行定义了一个可逆代换。换。1/12/2023443.3.密钥的产生密钥的产生密钥的产生密钥的产生1/12/2023451/12/2023464.4
33、.解密解密 和和FeistelFeistel密码一样,密码一样,DESDES的解密和的解密和加密使用同一算法,但子密钥使用的顺加密使用同一算法,但子密钥使用的顺序相反。序相反。1/12/2023473.2.2 二重二重DES为了提高为了提高DES的安全性,并利用实现的安全性,并利用实现DES的现有的现有软硬件,可将软硬件,可将DES算法在多密钥下多重使用。算法在多密钥下多重使用。二重二重DES是多重使用是多重使用DES时最简单的形式,其中时最简单的形式,其中明文为明文为P,两个加密密钥为,两个加密密钥为K1和和K21/12/202348密文为:密文为:解密时,以相反顺序使用两个密钥:解密时,以
34、相反顺序使用两个密钥:因此,二重因此,二重DES所用密钥长度为所用密钥长度为112比特,强度极比特,强度极大地增加。大地增加。然而,假设对任意两个密钥然而,假设对任意两个密钥K1和和K2,能够找出另,能够找出另一密钥一密钥K3,使得,使得那么,二重那么,二重DES以及多重以及多重DES都没有意义,因为它都没有意义,因为它们与们与56比特密钥的单重比特密钥的单重DES等价,好在这种假设对等价,好在这种假设对DES并不成立。并不成立。1/12/202349将将DES加密过程加密过程64比特分组到比特分组到64比特分组比特分组的映射看作一个置换,如果考虑的映射看作一个置换,如果考虑264个所有个所有
35、可能的输入分组,则密钥给定后,可能的输入分组,则密钥给定后,DES的的加密将把每个输入分组映射到一个惟一的加密将把每个输入分组映射到一个惟一的输出分组。否则,如果有两个输入分组被输出分组。否则,如果有两个输入分组被映射到同一分组,则解密过程就无法实施。映射到同一分组,则解密过程就无法实施。对对264个输入分组,总映射个数为个输入分组,总映射个数为1/12/202350另一方面,对每个不同的密钥,另一方面,对每个不同的密钥,DES都定义都定义了一个映射,总映射数为了一个映射,总映射数为256N/2,则令,则令如果如果TN/2,则令,则令从而可得关于密钥比特的一个线性方程。对不同的从而可得关于密钥
36、比特的一个线性方程。对不同的明文密文对重复以上过程,可得关于密钥的一组线明文密文对重复以上过程,可得关于密钥的一组线性方程,从而确定出密钥比特。性方程,从而确定出密钥比特。1/12/202365研究表明,当研究表明,当 充分小时,攻击成功的概率是充分小时,攻击成功的概率是这一概率只依赖于这一概率只依赖于 ,并随着,并随着N或或 的增加而增加。的增加而增加。1/12/202366如何对差分密码分析和线性密码分析进行改进,如何对差分密码分析和线性密码分析进行改进,降低它们的复杂度降低它们的复杂度仍是现在理论研究的热点仍是现在理论研究的热点目前已推出了很多改进方法,例如目前已推出了很多改进方法,例如
37、,高阶差分密高阶差分密码分析、截段差分密码分析(码分析、截段差分密码分析(truncated differential cryptanalysis)、不可能差分密码分)、不可能差分密码分析、多重线性密码分析、非线性密码分析、划析、多重线性密码分析、非线性密码分析、划分密码分析和差分分密码分析和差分-线性密码分析,再如针对密线性密码分析,再如针对密钥编排算法的相关密钥攻击、基于钥编排算法的相关密钥攻击、基于Lagrange插插值公式的插值攻击及基于密码器件的能量分析值公式的插值攻击及基于密码器件的能量分析(power analysis),另外还有错误攻击、时间),另外还有错误攻击、时间攻击、攻击、Square攻击和攻击和Davies攻击等。攻击等。1/12/202367