现代对称密钥密码.ppt
《现代对称密钥密码.ppt》由会员分享,可在线阅读,更多相关《现代对称密钥密码.ppt(145页珍藏版)》请在三一办公上搜索。
1、1,信息安全原理与应用第三章 现代对称密码,对称密钥密码,概念:指的是这样一种密码体制,在这种密码系统里,加密和解密过程使用相同的密钥。即信息的发送方和接收方用同一个密钥去加密和解密数据。它的优势是加密/解密的速度快,适用于 对大量数据进行加密/解密,但劣势是对密钥的管理困难。本章将要讨论两类对称密钥密码:分组密码和流密码。,对称密钥密码,分组密码:明文消息按照一定长度(如64bit、128bit等)进行分组,每组都使用完全相同的密钥进行加密,产生相应的密文。一个明文分组被当作一个整体来产生一个等长的密文分组。相同的明文分组不管处在明文序列的什么位置,总是对应相同的密文分组。即密文仅与给定的密
2、码算法和密钥有关,而与被处理的明文数据段(明文分组)在明文中所处的位置无关。,对称密钥密码,流密码:又称为序列密码,是一种针对比特流的重要加密方法,这种密码每次只对二进制序列的一个比特(即一位)进行加密。流密码的核心是:创建密钥流的随机比特串,然后将明文比特和密钥流比特逐位组合在一起,最后生成的比特串就是密文。加密时,将密钥流S与明文P逐位做异或(XOR)运算,生成密文C;解密时,将密文C与密钥流S逐位做异或(XOR)运算,恢复成明文P。,5,内容提要,对称分组密码的设计原理与方法数据加密标准DES其它现代对称分组密码分组密码的操作模式加密的位置流密码,6,三个安全设计原则,对称分组密码先将明
3、文消息用二进制编码表示,然后再将编码后的数字序列划分成若干个长度为n的分组(简称“明文分组”),每个分组分别在相同的密钥控制下按照一定的算法变换成等长的输出数字序列(简称“密文分组”)。分组加密算法本质上体现了n位明文分组和n位密文分组的一一映射。分组大小n的选择 1)如果n较小,则得到的明文空间和密文空间有限,容易受到“统计分析”方法的攻击。2)如果n充分大,则由于得到的明文空间和密文空间足够大,明文的统计特征将被掩盖,可以抵抗“统计分析”方法的攻击;但同时也将导致密钥数目的急剧增加和密钥空间的急剧增大,这会给密钥的分配、管理和存储带来很大的困难。,一般的,对于n位分组的对称分组密码,不同变
4、换的总数为(2n)!,也就是说,密钥的个数为(2n)!个。,7,对称分组密码设计的安全原则,分组长度足够大。使明文分组的个数足够多,以抵抗“统计分析”攻击。密钥数量足够多。能抵抗“穷举密钥”攻击,但又不能过长,以利于密钥管理。还要尽量消除弱密钥,使各个密钥的出现等概率。密码算法要足够复杂。充分实现明文与密钥的“混淆”和“扩散”,以抵抗各种已知攻击。,8,两个基本设计方法,由于对称分组密码的缺点是不善于隐藏明文的统计特性,因而对“统计分析”攻击方式的抵御能力不强,故Shannon提出了两个抵抗“统计分析”的方法:混淆和扩散。混淆:目的是为了隐藏明文和密文之间的关系,增加密钥和密文之间关系的复杂性
5、。可以使用“代替”的方法来实现。扩散:目的是让密文没有统计特征,也就是将明文中的统计信息散布到整个密文中,增加密文与明文之间关系的复杂性,以挫败推测出密钥的尝试。可以使用“置换”的方法来实现。,两个基本设计方法,代替置换网络(S-P网络)结构1949年,Shannon提出了“代替置换网络”的思想,这是构成现代分组密码的基础。S-P网络基于密码学的两个基本操作:代替和置换。代替被称为S盒(S-box),提供了信息的混淆;置换被称为P盒(P-box),提供了信息的扩散 在对称分组密码中,同时运用了“混淆”和“扩散”的设计方法。,分组密码的发展历史,1973年5月,美国联邦政府提出征求在传输和存储数
6、据中保护计算机数据安全的密码算法的建议;1975年3月,美国国家标准局(NBS)首次公布IBM公司提出的算法Lucifer中选;1977年1月,NBS正式向社会公布,采纳IBM公司设计的方案作为非机密数据的数据加密标准(Data Encryption Standard)。DES正式成为美国联邦政府信息处理标准,即FIPS-46标准,同年7月开始生效。1983年,国际标准化组织(ISO)也将DES作为数据加密标准,称为DEA-1。此后,每隔5年美国国家保密局(NSA)对DES作新的评估,并重新审定它是否继续作为联邦加密标准。最近的一次评估是在1994年1月,决定从1998年12月以后,DES将不
7、再作为联邦数据加密标准。,11,内容提要,对称分组密码的设计原理与方法数据加密标准DES其它现代对称分组密码分组密码的操作模式流密码,12,内容提要,DES的产生与应用Feistel密码结构对DES的描述对DES的讨论,13,DES的产生,1973年5月15日,NBS开始公开征集标准加密算法,并公布了它的设计要求:(1)算法必须提供高度的安全性(2)算法必须有详细的说明,并易于理解(3)算法的安全性取决于密钥,不依赖于算法(4)算法适用于所有用户(5)算法适用于不同应用场合(6)算法必须高效、经济(7)算法必须能被证实有效(8)算法必须是可出口的,DES的应用,1979年,美国银行协会批准使用
8、DES。1980年,美国国家标准协会(ANSI)将DES作为私人使用的标准,称为DEA。1983年,国际化标准组织(ISO)将DES作为国际数据加密标准,称为DEA-1。,15,内容提要,DES的产生与应用Feistel密码结构对DES的描述对DES的讨论,DES算法的整体结构 Feistel密码结构,Feistel密码结构是由Horst Feistel在设计Lucifer分组密码时发明的,并因DES的使用而流行。Feistel密码结构是分组密码设计的一个原则,而不是一种特殊的密码。许多分组密码都采用了Feistel结构。对一个分组长度为2w比特的n轮Feistel密码结构(对DES算法,分组
9、长度为64bit,轮数是16轮)其加密过程如下:,DES算法的整体结构 Feistel密码结构,(1)给定明文分组P,将P分为长度相等的左右两部分,分别记为L0和R0。即P=L0R0。(2)进行完全相同的n轮迭代运算。(3)n轮迭代运算后,先将左右两部分互换得到Rn和Ln,再将这两部分组合生成密文分组C,即C=RnLn。,Feistel密码结构,Ln+1=RnRn+1=Ln,DES算法的整体结构 Feistel密码结构,每一轮的迭代算法 加密:对于每一轮 i=1,2,.,n,新的左右部分根据如下规则重新计算:Li=Ri-1 Ri=Li-1F(Ri-1,Ki)解密:对于每一轮 i=n,n-1,.
10、,1,新的左右部分根据如下规则重新计算:Ri-1=Li Li-1=RiF(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通过密钥扩展算法产生的。对于DES来说,种子密钥K为64bit,由K产生的子密钥Ki为48bit,在16轮迭代运
11、算中,每一轮的子密钥Ki均不同。Feistel密码结构的优点在于所有密码的安全性问题可以转化为轮函数F的问题,故分析的重点可以集中在轮函数F上。,DES算法的整体结构 Feistel密码结构,基于Feistel结构的分组密码算法的特点(1)分组长度(2w):分组长度越大安全性越高,但会导致加密/解密速度下降,故应选择合理的分组长度。(2)密钥位数(K):密钥位数越大安全性越高,但会导致加密/解密速度下降。现在通常使用的密钥长度是128bit。(DES使用的密钥长度为64bit)(3)循环次数/轮数(n):多轮加密可以提高安全性。(DES轮函数的迭代次数为16次)(4)子密钥产生算法(Ki):算
12、法越复杂,就越增加密码分析的难度。(5)轮函数(F):轮函数越复杂,越增加密码分析的难度。,DES算法的整体结构 Feistel密码结构,分组密码算法设计上的特点(1)能够用软件快速实现加密算法和解密算法。(2)易于分析,便于掌握算法的保密强度以及密钥的扩展方法。,24,内容提要,DES的产生与应用Feistel密码结构对DES的描述对DES的讨论,DES(Data Encryption Standard)是“数据加密标准”的缩写。DES是基于Lucifer密码设计的,Lucifer密码是IBM公司提出的一种基于Feistel密码结构的密码。从Lucifer转变成DES的过程(1)密钥长度从原
13、来的128位减少到64位,并且64位密钥中的8位在实际使用中是没有作用的,只是用来进行奇偶校验。如果采用“穷举搜索”密钥 的攻击方法进行破译,虽然工作量从2128减少到256,但实际56位密钥的DES的强度与拥有更长密钥的 Lucifer的强度是相当的。(2)对S盒进行置换,即S盒的改变。对于S盒的改变增强了DES算法抵抗密码攻击的能力。,DES密码的特点(1)DES是一种对二进制数据进行加密/解密的算法。(2)DES的明文分组长度为64bit,得到的密文分组长度也为64bit。(3)使用的密钥长度为64bit。其中有效密钥长度为56bit,有8bit用于奇偶校验。(4)DES的加密过程与解密
14、过程相似,但子密钥Ki的使用顺序正好相反。加密时,使用顺序为K1,K2,.,K16;解密时,使用顺序为K16,K15,.,K1。(5)DES整个密码体制是公开的,系统的安全性完全取决于密钥的保密。(6)DES同时使用了“混淆”和“扩散”两种分组密码设计的基本方法。,DES每一轮使用48位的子密钥Ki,每个子密钥都是由56位密钥构成的集合中的子集构成的。DES是基于Feistel结构的密码,因此它的加密/解密过程与Feistel密码结构一样。对于轮函数F的要求:(1)通常是一个多阶段的乘积变换;(2)与子密钥Ki相关;(3)是非线性变换,且不要求可逆;(4)实现对密码分析的扰乱,是密码设计 安全
15、性的关键。,对于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位的输入压缩成32位再输出。最后对S盒的输出结果进行P置换。P置换的输出(即得到的轮函数F)再与上一轮的左半部分按位进行XOR运算,最终得到新一轮的右半部分。,DES的加密过程 64bit的明文分组经过初始置换IP后,被分成相等的左右两部分各
16、32bit,记为L0和R0。在子密钥的控制下经过16轮迭代的乘积变换(也是轮函数F的具体实现),得到L16和R16。先交换左右两部分,再将交换后的两部分连接起来形成64bit的预输出。64bit的预输出经过初始逆置换IP-1,得到64bit的密文分组。,将上图细化后得到如图所示DES加密流程图。,初始置换IP和初始逆置换IP-1在密码意义上作用是:打乱原来输入的明文分组中ASCII码字的划分关系,第一步:初始置换IP对于给定的64位的明文p,通过初始置换IP获得64位的p0,并将p0分为左右两部分,前面32位记为L0,后面32位记为R0,即p0=IP(p)=L0R0。IP置换如图所示。,置换表
17、中的数字164代表的仅仅是明文分组中元素所处的位置,而非元素的值!,第四步:初始逆置换IP-1应用初始逆置换IP-1对最后一轮迭代之后得到的R16L16进行置换,得到密文C。即C=IP-1(R16L16)。初始逆置换IP-1如图所示。,33,初始置换IP和IP-1,IP,IP-1,M1M40,M40M1,初始置换IP和初始逆置换IP-1互为逆运算,轮函数,第二步:16轮迭代变换轮函数F(Ri-1,Ki)=p_box(S_boxes(Expand(Ri-1)Ki),在每轮的开始将经过初始置换IP后输入的64bit数据分为长度相等的左右两部分。将右半部分原封不动作为本轮要输出的64bit数据的左半
18、部分。即Li=Ri-1。对右半部分进行一系列变换,即用轮函数作用于右半部分和子密钥,然后将所得结果(32bit数据)与初始输入数据的左半部分进行逐位模2加。最后将所得数据作为本轮要输出的64bit数据的右半部分。即Ri=Li-1F(Ri-1,Ki)。,第三步:交换左右32bit经过16轮迭代后得到的64bit数据为L16R16。必须将左右部分进行交换得到R16L16后,才能作为初始逆置换IP-1的输入。,37,DES加解密过程,令i表示迭代次数,表示逐位模2求和,f为加密函数。DES的加密和解密过程表示如下。加密过程:解密过程:,轮函数F的使用轮函数由扩展置换运算E、与子密钥的异或运算、选择压
19、缩变换S盒和置换运算P盒组成。F(Ri-1,Ki)=p_box(S_boxes(Expand(Ri-1)Ki),轮函数的内部结构,扩展置换运算E扩展置换运算E将输入的32bit数据扩展为48bit数据输出,变换表如图所示。它的作用有三个:1、产生与子密钥长度相同的数据进行异或运算。2、它产生的48bit的输出数据,使得在进行S盒代替运算时能进行压缩。3、输入的1位将影响2个替换,使得输出对输入的依赖性传播的更快,产生“雪崩效应”。,40,扩展置换,扩展,Ri-1(32bit),选择压缩变换S盒 选择压缩变换S盒将输入的48bit数据从左到右分成8组,每组6bit。将8个分组的数据分别输入8个S
20、盒中的一个,每个S盒为一非线性变换,得到4bit输出。如图所示。,S盒的使用 8个S盒的使用方法相同。对每个S盒:都可以看成是一个4*16的矩阵。每一行都是015的一个置换。6bit输入中的第1和第6比特位组成的二进制数用于确定S盒的行。中间4个比特位组成的二进制数用于确定S盒的列。将对应S盒的行列交叉处的十进制数转换成4位二进制数,作为输出。,43,S-盒的构造,S盒是许多密码算法的唯一非线性部件,它的安全强度决定了整个密码算法的安全强度。S盒提供了密码算法所必须的“混淆”作用。DES的每一轮都使用相同的8个S盒。,置换运算P盒P置换的目的是提供“雪崩效应”,使明文或密钥的一点小变动都会引起
21、密文的大变动。如图所示。,46,P-盒置换,P置换,M1M9,M22M29,子密钥的生成子密钥的产生过程如图所示。,48,子密钥的产生,(1)给定64bit的种子密钥K,在置换选择1(PC-1)的作用下,去掉了输入的第8,16,24,32,40,48,56,64比特位(即:去掉8个字节中,每个字节的第8比特位)(2)将得到的56bit数据分成左右相等的两部分,各28bit,分别记为C0和D0。(3)对1i16,计算Ci=LSi(Ci-1)和Di=LSi(Di-1)。其中,LS表示循环左移,每轮循环左移的位数为:,(4)将循环左移后的Ci和Di重新组合成56bit数据,在置换选择2(PC-2)的
22、 作用下,去掉了第9,18,22,25,35,38,43,54比特位,同时,重新排列了剩下的48bit数据并将其输出,作为第i轮的子密钥Ki。置换选择1(PC-1)和置换选择2(PC-2)如图所示。,51,子密钥的产生,DES的解密1)DES的解密算法和加密算法完全相同,只是各子密钥的使用顺序相反,即为K16,K15,K14,.,K2,K1。2)在每一轮的子密钥Ki产生过程中,使用的是循环右移。每一轮的右移位数如表所示。,53,内容提要,DES的产生与应用Feistel密码结构对DES的描述对DES的讨论,54,对DES的讨论,弱密钥与半弱密钥互补密钥DES的破译密钥长度的争论DES的轮数,5
23、5,弱密钥,概念:初始密钥被分成两部分,每部分都单独做移位。如果每一部分的每一位都是0或都是1,则每一圈的子密钥都相同。这样的密钥被称为弱密钥。DES存在4个弱密钥基于弱密钥的加密过程和解密过程是相同的,加密两次就恢复成明文。,56,半弱密钥,概念:有些成对的密钥会将明文加密成相同的密文,即一对密钥中的一个能用来解密由另一个密钥加密的消息,这种密钥称作半弱密钥。DES至少有12个半弱密钥,形成6对。每个半弱密钥在16轮迭代中不是产生16个不同的子密钥,而是产生2种不同的子密钥,每一种出现8次。,半半弱密钥,概念:这种密钥在16轮迭代中只产生4种子密钥,每种子密钥出现4次。DES有48个半半弱密
24、钥。小结:弱密钥、半弱密钥和半半弱密钥共有4+12+48=64个,而DES可能的密钥数为256个。因此,随机选择密钥,能落在这64个中的概率很小,而且可以在密钥产生器产生种子密钥时进行检查,以避免这些密钥。,58,对DES的讨论,弱密钥与半弱密钥互补密钥DES的破译密钥长度的争论DES的轮数,59,互补密钥,概念:将密钥的0换成1,1换成0,就得到该密钥的补密钥。该密钥与其补密钥称为“互补密钥”。如果用原密钥加密一组明文,则用其补密钥可以将该明文的补码加密成原密文的补码。设X表示X的补码,则 Ek(M)=C Ek(M)=C,60,对DES的讨论,弱密钥与半弱密钥互补密钥DES的破译密钥长度的争
25、论DES的轮数,61,DES的破译,根据攻击者所掌握的信息,可将对“对称分组密码”的攻击分为:(1)唯密文攻击(2)已知明文攻击(3)选择明文攻击 攻击复杂度:可以从两个方面衡量(1)数据复杂度:即实施该攻击所需输入 的数据量。(2)处理复杂度:即处理这些数据所需要 的计算量。,DES的破译,对DES最可靠的攻击方法是“强力攻击”。攻击复杂度依赖于分组长度和密钥长度。强力攻击分为:强力密钥搜索攻击,字典攻击,查表攻击和时间-存储攻击。(1)强力密钥搜索攻击:设k是密钥长度,在唯密文攻击下,攻击者依次尝试密钥空间中所有的2k个密钥来解密密文,直到得到一个有意义的明文。这种攻击的复杂度平均为2k-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 对称 密钥 密码
链接地址:https://www.31ppt.com/p-5367183.html