信息保障与安全课件:第3章--现代对称密钥密码=========.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《信息保障与安全课件:第3章--现代对称密钥密码=========.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 保障 安全 课件 _ 现代 对称 密钥 密码
- 资源描述:
-
1、1 对称密钥密码对称密钥密码 概念:概念:指的是这样一种密码体制,在这种指的是这样一种密码体制,在这种密码系统里,密码系统里,加密和解密过程使用相同的加密和解密过程使用相同的密钥密钥。即信息的发送方和接收方用同一个。即信息的发送方和接收方用同一个密钥去加密和解密数据。它的密钥去加密和解密数据。它的优势优势是加密是加密/解密的速度快,适用于解密的速度快,适用于 对大量数据进行加对大量数据进行加密密/解密,但解密,但劣势劣势是对密钥的管理困难。是对密钥的管理困难。本章将要讨论两类对称密钥密码:本章将要讨论两类对称密钥密码:分组密码分组密码和和流密码流密码。对称密钥密码对称密钥密码 分组密码:分组密
2、码:明文消息按照一定长度(如明文消息按照一定长度(如64bit、128bit等)进行分组,每组都使用等)进行分组,每组都使用完全相同的密钥进行加密,产生相应的密完全相同的密钥进行加密,产生相应的密文。一个明文分组被当作一个整体来产生文。一个明文分组被当作一个整体来产生一个等长的密文分组。一个等长的密文分组。 相同的明文分组不管处在明文序列的什么相同的明文分组不管处在明文序列的什么位置,总是对应相同的密文分组。位置,总是对应相同的密文分组。即密文即密文仅与给定的密码算法和密钥有关,而与被仅与给定的密码算法和密钥有关,而与被处理的明文数据段(明文分组)在明文中处理的明文数据段(明文分组)在明文中所
3、处的位置无关。所处的位置无关。对称密钥密码对称密钥密码 流密码:流密码:又称为序列密码,是一种针对又称为序列密码,是一种针对比比特流特流的重要加密方法,的重要加密方法,这种密码每次只对这种密码每次只对二进制序列的一个比特(即一位)进行加二进制序列的一个比特(即一位)进行加密密。 流密码的流密码的核心是:核心是:创建密钥流的随机比特创建密钥流的随机比特串,然后将明文比特和密钥流比特逐位组串,然后将明文比特和密钥流比特逐位组合在一起,最后生成的比特串就是密文。合在一起,最后生成的比特串就是密文。 加密时,加密时,将密钥流将密钥流S与明文与明文P逐位做异或逐位做异或(XOR)运算,生成密文运算,生成
4、密文C; 解密时,解密时,将密文将密文C与密钥流与密钥流S逐位做异或逐位做异或(XOR)运算,恢复成明文运算,恢复成明文P。5内容提要内容提要 对称分组密码的设计原理与方法对称分组密码的设计原理与方法 数据加密标准数据加密标准DES 其它现代对称分组密码其它现代对称分组密码 分组密码的操作模式分组密码的操作模式 加密的位置加密的位置 流密码流密码6三个安全设计原则三个安全设计原则 对称分组密码先将明文消息用对称分组密码先将明文消息用二进制编码表示二进制编码表示,然后再将编码,然后再将编码后的数字序列划后的数字序列划分成若干个长度为分成若干个长度为n n的分组(简称的分组(简称“明文分明文分组组
5、”),每个分组分别在相同的密钥控制下按照一定的算法变),每个分组分别在相同的密钥控制下按照一定的算法变换成等长的输出数字序列(简称换成等长的输出数字序列(简称“密文分组密文分组”)。)。 分组加密算法分组加密算法本质上体现了本质上体现了n n位明文分组和位明文分组和n n位密文分组的一一位密文分组的一一映射。映射。 分组大小分组大小n n的选择的选择 1 1)如果)如果n n较小,则得到的明文空间和密文空间有限,容易受到较小,则得到的明文空间和密文空间有限,容易受到“统计分析统计分析”方法的攻击。方法的攻击。 2 2)如果)如果n n充分大,则由于得到的明文空间和密文空间足够大,充分大,则由于
6、得到的明文空间和密文空间足够大,明文的统计特征将被掩盖,明文的统计特征将被掩盖,可以抵抗可以抵抗“统计分析统计分析”方法的攻击;方法的攻击;但同时也将导致密钥数目的急剧增加和密钥空间的急剧增大,但同时也将导致密钥数目的急剧增加和密钥空间的急剧增大,这会给密钥的分配、管理和存储带来很大的困难。这会给密钥的分配、管理和存储带来很大的困难。一般的,对于一般的,对于n位分组的对称分组密位分组的对称分组密码,不同变换的总数为码,不同变换的总数为(2n)!,也就是,也就是说,密钥的个数为说,密钥的个数为(2n)!个。个。7对称分组密码设计的安全原则对称分组密码设计的安全原则 分组长度足够大。分组长度足够大
7、。使明文分组的个数足够使明文分组的个数足够多,以抵抗多,以抵抗“统计分析统计分析”攻击。攻击。 密钥数量足够多。密钥数量足够多。能抵抗能抵抗“穷举密钥穷举密钥”攻攻击,但又不能过长,以利于密钥管理。还击,但又不能过长,以利于密钥管理。还要尽量消除弱密钥,使各个密钥的出现等要尽量消除弱密钥,使各个密钥的出现等概率。概率。 密码算法要足够复杂。密码算法要足够复杂。充分实现明文与密充分实现明文与密钥的钥的“混淆混淆”和和“扩散扩散”,以抵抗各种已,以抵抗各种已知攻击。知攻击。8两个基本设计方法两个基本设计方法 由于对称分组密码的缺点是不善于隐藏明文的由于对称分组密码的缺点是不善于隐藏明文的统计特性,
8、因而对统计特性,因而对“统计分析统计分析”攻击方式的抵御能攻击方式的抵御能力不强,故力不强,故Shannon提出了两个抵抗提出了两个抵抗“统计分析统计分析”的方法:的方法:混淆和扩散。混淆和扩散。混淆:混淆:目的是为了隐藏明文和密文之间的关系,增加密目的是为了隐藏明文和密文之间的关系,增加密钥和密文之间关系的复杂性。可以使用钥和密文之间关系的复杂性。可以使用“代替代替”的方法的方法来实现。来实现。扩散:扩散:目的是让密文没有统计特征,也就是将明文中的目的是让密文没有统计特征,也就是将明文中的统计信息散布到整个密文中,增加密文与明文之间关系统计信息散布到整个密文中,增加密文与明文之间关系的复杂性
9、,以挫败推测出密钥的尝试。可以使用的复杂性,以挫败推测出密钥的尝试。可以使用“置换置换”的方法来实现。的方法来实现。两个基本设计方法两个基本设计方法 代替置换网络(代替置换网络(S-P网络)结构网络)结构1949年,年,Shannon提出了提出了“代替置换网络代替置换网络”的思想,这是构成现代分组密码的基础的思想,这是构成现代分组密码的基础。S-P网网络基于密码学的两个基本操作:代替和置换络基于密码学的两个基本操作:代替和置换。代替被称为代替被称为S盒(盒(S-box),提供了信息的混淆),提供了信息的混淆;置换被称为;置换被称为P盒(盒(P-box),提供了信息的扩),提供了信息的扩散散 在
10、对称分组密码中,同时运用了在对称分组密码中,同时运用了“混淆混淆”和和“扩散扩散”的设计方法。的设计方法。分组密码的发展历史分组密码的发展历史1973年年5月,美国联邦政府提出征求在传输和存储数据中月,美国联邦政府提出征求在传输和存储数据中保护计算机数据安全的密码算法的建议;保护计算机数据安全的密码算法的建议;1975年年3月,美国国家标准局月,美国国家标准局(NBS) 首次公布首次公布IBM公司提公司提出的算法出的算法Lucifer中选;中选;1977年年1月,月,NBS正式向社会公布,采纳正式向社会公布,采纳IBM公司设计的公司设计的方案作为方案作为非机密数据的数据加密标准非机密数据的数据
11、加密标准 (Data Encryption Standard)。DES正式成为美国联邦政府信息处理标准,正式成为美国联邦政府信息处理标准,即即FIPS-46标准,同年标准,同年7月开始生效。月开始生效。1983年,国际标准化组织(年,国际标准化组织(ISO)也将)也将DES作为数据加密作为数据加密标准,称为标准,称为DEA-1。此后,每隔此后,每隔5年美国国家保密局(年美国国家保密局(NSA)对)对DES作新的评作新的评估,并重新审定它是否继续作为联邦加密标准。估,并重新审定它是否继续作为联邦加密标准。最近的一次评估是在最近的一次评估是在1994年年1月,决定从月,决定从1998年年12月以后
12、月以后,DES将不再作为联邦数据加密标准。将不再作为联邦数据加密标准。11内容提要内容提要 对称分组密码的设计原理与方法对称分组密码的设计原理与方法 数据加密标准数据加密标准DES 其它现代对称分组密码其它现代对称分组密码 分组密码的操作模式分组密码的操作模式 流密码流密码12内容提要内容提要 DES的产生与应用的产生与应用 Feistel密码结构密码结构 对对DES的描述的描述 对对DES的讨论的讨论13DES的产生的产生 1973年年5月月15日日,NBS开始公开征集标准加密算法开始公开征集标准加密算法,并并公布了它的设计要求公布了它的设计要求:(1)算法必须提供高度的安全性算法必须提供高
13、度的安全性(2)算法必须有详细的说明算法必须有详细的说明,并易于理解并易于理解(3)算法的安全性取决于密钥算法的安全性取决于密钥,不依赖于算法不依赖于算法(4)算法适用于所有用户算法适用于所有用户(5)算法适用于不同应用场合算法适用于不同应用场合(6)算法必须高效、经济算法必须高效、经济(7)算法必须能被证实有效算法必须能被证实有效(8)算法必须是可出口的算法必须是可出口的DES的应用的应用 1979年,美国银行协会批准使用年,美国银行协会批准使用DES。 1980年,美国国家标准协会(年,美国国家标准协会(ANSI)将)将DES作为私人使用的标准,称为作为私人使用的标准,称为DEA。 198
14、3年,国际化标准组织(年,国际化标准组织(ISO)将)将DES作为国际数据加密标准,称为作为国际数据加密标准,称为DEA-1。15内容提要内容提要 DES的产生与应用的产生与应用 Feistel密码结构密码结构 对对DES的描述的描述 对对DES的讨论的讨论DES算法的整体结构算法的整体结构 Feistel密码结构密码结构 Feistel密码结构是由密码结构是由Horst Feistel在设计在设计Lucifer分组密码时发明的,并因分组密码时发明的,并因DES的使的使用而流行。用而流行。 Feistel密码结构是分组密码设计的一个原密码结构是分组密码设计的一个原则,则,而不是一种特殊的密码。
15、而不是一种特殊的密码。 许多分组密码都采用了许多分组密码都采用了Feistel结构。结构。 对一个分组长度为对一个分组长度为2w比特比特的的n轮轮Feistel密密码结构(对码结构(对DES算法,分组长度为算法,分组长度为64bit,轮数是轮数是16轮)其加密过程如下:轮)其加密过程如下: DES算法的整体结构算法的整体结构 Feistel密码结构密码结构(1)给定明文分组)给定明文分组P,将,将P分为长度相等的分为长度相等的左右两部分,分别记为左右两部分,分别记为L0和和R0。即。即P=L0R0。(2)进行完全相同的)进行完全相同的n轮迭代运算。轮迭代运算。(3)n轮迭代运算后,先将左右两部
16、分互换轮迭代运算后,先将左右两部分互换得到得到Rn和和Ln,再将这两部分组合生成密文分再将这两部分组合生成密文分组组C,即,即C=RnLn。Feistel密码结构密码结构Ln+1=RnRn+1=LnDES算法的整体结构算法的整体结构 Feistel密码结构密码结构 每一轮的迭代算法每一轮的迭代算法 加密:加密:对于每一轮对于每一轮 i=1,2,.,n,新新的左右部分根据如下规则重新的左右部分根据如下规则重新计算:计算: Li=Ri-1 Ri=Li-1 F(Ri-1,Ki) 解密:解密:对于每一轮对于每一轮 i=n,n-1,.,1,新的左右部分根据如下规则重新的左右部分根据如下规则重新计算:新计
17、算: Ri-1=Li Li-1=Ri F(Li,Ki)DES算法的整体结构算法的整体结构 Feistel密码结构密码结构 说明:说明:F是轮函数是轮函数 F(Ri-1,Ki)=p_box(S_boxes(Expand(Ri-1),Ki) F(Li,Ki)=p_box(S_boxes(Expand(Li),Ki) 其中:其中:p_box:P盒盒 S_boxes:S盒盒 Expand:扩展置换:扩展置换DES算法的整体结构算法的整体结构 Feistel密码结构密码结构 说明:说明: Ki是第是第i轮的子密钥轮的子密钥(subkey)。子密钥是由种子密钥。子密钥是由种子密钥K通过密钥扩展算法产生的。
18、通过密钥扩展算法产生的。 对于对于DES来说,种子密钥来说,种子密钥K为为64bit,由,由K产生的子产生的子密钥密钥Ki为为48bit,在,在16轮迭代运算中,每一轮的子密钥轮迭代运算中,每一轮的子密钥Ki均不同。均不同。Feistel密码结构的密码结构的优点优点在于所有密码的安全性问题在于所有密码的安全性问题可以转化为轮函数可以转化为轮函数F的问题,故分析的重点可以集中的问题,故分析的重点可以集中在轮函数在轮函数F上。上。DES算法的整体结构算法的整体结构 Feistel密码结构密码结构 基于基于Feistel结构的分组密码算法的特点结构的分组密码算法的特点(1)分组长度(分组长度(2w)
19、:):分组长度越大安全性越高,但会导致加分组长度越大安全性越高,但会导致加密密/解密速度下降,故应选择合理的分组长度。解密速度下降,故应选择合理的分组长度。(2)密钥位数(密钥位数(K):):密钥位数越大安全性越高,但会导致加密钥位数越大安全性越高,但会导致加密密/解密速度下降。现在通常使用的密钥长度是解密速度下降。现在通常使用的密钥长度是128bit。(。(DES使使用的密钥长度为用的密钥长度为64bit) (3)循环次数循环次数/轮数(轮数(n):):多轮加密可以提高安全性。(多轮加密可以提高安全性。(DES轮函数的迭代次数为轮函数的迭代次数为16次)次) (4)子密钥产生算法(子密钥产生
20、算法(Ki):):算法越复杂,就越增加密码分析算法越复杂,就越增加密码分析的难度。的难度。 (5)轮函数(轮函数(F):):轮函数越复杂,越增加密码分析的难度。轮函数越复杂,越增加密码分析的难度。DES算法的整体结构算法的整体结构 Feistel密码结构密码结构 分组密码算法设计上的特点分组密码算法设计上的特点(1)能够用软件快速实现加密算法和解密)能够用软件快速实现加密算法和解密算法。算法。(2)易于分析,便于掌握算法的保密强度)易于分析,便于掌握算法的保密强度以及密钥的扩展方法。以及密钥的扩展方法。24内容提要内容提要 DES的产生与应用的产生与应用 Feistel密码结构密码结构 对对D
21、ES的描述的描述 对对DES的讨论的讨论 DES(Data Encryption Standard)是)是“数据加密数据加密标准标准”的缩写。的缩写。DES是基于是基于Lucifer密码设计的,密码设计的,Lucifer密码是密码是IBM公司提出的一种基于公司提出的一种基于Feistel密密码结构的密码。码结构的密码。 从从Lucifer转变成转变成DES的过程的过程(1)密钥长度从原来的)密钥长度从原来的128位减少到位减少到64位,并且位,并且64位密钥中的位密钥中的8位在实际使用中是没有作用的,只位在实际使用中是没有作用的,只是用来进行奇偶校验。如果采用是用来进行奇偶校验。如果采用“穷举
22、搜索穷举搜索”密密钥钥 的攻击方法进行破译,虽然工作量从的攻击方法进行破译,虽然工作量从2128减少到减少到256,但实际,但实际56位密钥的位密钥的DES的强度与拥有更长密的强度与拥有更长密钥的钥的 Lucifer的强度是相当的。的强度是相当的。 (2)对)对S盒进行置换,即盒进行置换,即S盒的改变。对于盒的改变。对于S盒的盒的改变增强了改变增强了DES算法抵抗密码攻击的能力。算法抵抗密码攻击的能力。 DES密码的特点密码的特点(1)DES是一种对是一种对二进制数据二进制数据进行加密进行加密/解密的算解密的算法。法。(2)DES的明文分组长度为的明文分组长度为64bit,得到的密文分,得到的
23、密文分组长度也为组长度也为64bit。(3)使用的密钥长度为)使用的密钥长度为64bit。其中有效密钥长度。其中有效密钥长度为为56bit,有,有8bit用于奇偶校验。用于奇偶校验。(4)DES的加密过程与解密过程相似,但子密钥的加密过程与解密过程相似,但子密钥Ki的使用顺序正好相反。加密时,使用顺序为的使用顺序正好相反。加密时,使用顺序为K1,K2,.,K16;解密时,使用顺序为;解密时,使用顺序为K16,K15,.,K1。(5)DES整个密码体制是公开的,整个密码体制是公开的,系统的安全性系统的安全性完全取决于密钥的保密完全取决于密钥的保密。(6)DES同时使用了同时使用了“混淆混淆”和和
24、“扩散扩散”两种分两种分组密码设计的基本方法。组密码设计的基本方法。 DES每一轮使用每一轮使用48位的子密钥位的子密钥Ki,每个子密钥都是由,每个子密钥都是由56位密钥构成的集合中的子集构成的。位密钥构成的集合中的子集构成的。 DES是基于是基于Feistel结构的密码,因此它的加密结构的密码,因此它的加密/解密过解密过程与程与Feistel密码结构一样。密码结构一样。 对于轮函数对于轮函数F的要求:的要求:(1)通常是一个多阶段的)通常是一个多阶段的乘积变换乘积变换;(2)与子密钥)与子密钥Ki相关;相关;(3)是非线性变换,且不要求可逆;)是非线性变换,且不要求可逆;(4)实现对密码分析
25、的扰乱,是密码设计)实现对密码分析的扰乱,是密码设计 安全性的关键。安全性的关键。 对于对于DES的轮函数的轮函数F,可以写成如下形式:,可以写成如下形式: F(Ri-1,Ki)=p_box(S_boxes(Expand(Ri-1) Ki) 其中:其中:p_box:P盒盒 S_boxes:S盒盒 Expand:扩展置换:扩展置换 DES的分组长度是的分组长度是64位,所以每个位,所以每个Li和和Ri都是都是32位。位。 扩展置换将扩展置换将32位的输入扩展为位的输入扩展为48位,扩展后位,扩展后的结果与的结果与48位的子密钥位的子密钥按位进行按位进行XOR运算运算。 然后然后S盒将这盒将这48
展开阅读全文