《分组加密算法》PPT课件.ppt
《《分组加密算法》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《分组加密算法》PPT课件.ppt(72页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第7讲 分组密码o它将明文划分成固定的 n 比特的数据组,然后以组为单位,在密钥的控制下进行一系列的线性或非线性的变化而得到密文。这就是分组密码。o分组密码一次变换一组数据。o分组密码算法的一个重要特点就是:当给定一个密钥后,若明文分组相同,那么所变换出密文分组也相同。o分组密码的一个重要优点是不需要同步 分组密码体制 输入输出加密算法密钥明文输入输出解密算法密钥明文n bitn bitn bitn bit密文密文分组密码的一般设计原理o分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字
2、)序列。加密算法加密算法解密算法解密算法 明文明文密文密文原来的明文原来的明文(x0,,xn-1)(k0,,kn-1)密钥密钥k=(k0,,kn-1)密钥密钥k=(x0,,xn-1)(y0,,yn-1)分组密码的一般设计原理o设计目标n在密钥控制下,从一个足够大、足够好的置换子集中简单迅速地选出一个置换,对当前输入的明文数字组进行加密变换;o要求:n1 分组长度足够大,防止穷举攻击;n2 密钥空间足够大,但不能太长,以便于密钥的管理;n3 算法要足够复杂,充分实现明文和密钥的扩散;没有简单的关系可寻DES对称加密技术oDES(Data Encryption Standard)算法n是一种用56
3、位密钥来加密64位数据的方法。o发明人:nIBM公司 W.Tuchman和C.Meyer.o基础:n1967年美国Horst Feistel提出的理论;o产生:n美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告,最终选定DES。DESo采用分组密码体制;o用56bit密钥来加密64bit数据的方法;oDES要达到的目标有:n提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;n具有复杂性,使得破译的开销超过可能获得的利益;nDES的安全性不依赖于算法的保密,安全性仅以加密
4、密钥的保密为基础;n在实现上可行、经济;DES算法的原理 oDES算法的入口参数有三个:Key、Data、Mode。o其中:nKey为8个字节共64位,是DES算法的工作密钥;nData也为8个字节64位,是要被加密或被解密的数据;nMode为DES的工作方式有两种:加密或解密。DES算法原理oDES算法的工作原理:n如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;n如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。DES算法的实现步骤o第一步:变换明文。n对给定的64
5、位比特的明文x,首先通过一个置换IP表来重新排列x,从而构造出64位比特的x0,x0=IP(x)=L0R0,其中L0表示x0的前32比特,R0表示x0的后32位。o第二步:n按照规则迭代。规则为nLi=Ri-1nRi=Li-1f(Ri-1,Ki)(i=1,2,316)n经过第一步变换已经得到L0和R0的值,其中符号表示的数学运算是异或,f表示一种置换,由S盒置换构成,Ki是一些由密钥编排函数产生的比特块。f和Ki将在后面介绍。o第三步:n对L16R16进行交换得到R16L16n对R16L16利用IP-1作逆置换,就得到了密文y。DES加密过程输入输入6464位比特明文位比特明文在密钥控制下在密
6、钥控制下1616轮迭代轮迭代初始置换初始置换IPIP置换表置换表交换左右交换左右32bit32bitIPIP逆置换表逆置换表输出输出6464位比特密文位比特密文DES算法的实现步骤o可以看出,DES加密需要四个关键点:o(1)IP置换表和IP-1逆置换表;o(2)函数f;o(3)子密钥Ki。o(4)S盒的工作原理。(1)IP置换表和IP-1逆置换表58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 1
7、9 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 740 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25输入的第58位作为第1位输入的第50位作为第1位输入的第42位作为第1位输入的第40位作为第1位输入的第8位作为第1位输入的第42位作为第1位IP与I
8、P-1互逆M=(m1,m2,.)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2425 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4849 50 51 52 53 54 55 561 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2425 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
9、47 4849 50 51 52 53 54 55 56IP(M)=(m58,m50 )=(m1 1,m1 2,.)58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 161 58 45 37 29 21 13 563 55 47 39 31 23 15 740 8 48 16 56 24 64 32 39 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 29
10、 36 4 44 12 52 20 60 2834 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25IPIP-1DES的一轮迭代Li-1(32 bit)Ri-1(32 bit)选择扩展运算选择扩展运算 E盒盒48bit寄存器寄存器48bit寄存器寄存器选择压缩运算选择压缩运算 S盒盒32bit寄存器寄存器置换运算置换运算 PRi=Li-1 f(Ri-1,ki)(32 bit)(32 bit)Li=Ri-1轮开始:轮开始:64bit分成分成左右两半左右两半子密钥子密钥Ki(48 bit)扩展置换 E盒(Expand Box)o将输入的32bit块扩展到48bit
11、的输出块;o48bit的输出块再分成8个6bit块;01 02 03 0405 06 07 0809 10 11 1213 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3201 02 03 0405 06 07 0809 10 11 1213 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3232040812162024280509131721252901扩展置换函数扩展置换函数E扩展位扩展位扩展位扩展位固定位固定位压缩替代 S盒(Substitution Box)o4
12、8bit块通过S盒压缩成32bit块48bit寄存器寄存器32bit寄存器寄存器 S1S2S3S4S5S6S7S86bit4bit共共8个个S盒盒S盒S1盒14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13S2盒15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 103 13 4 7 15 2 8 14 12 0 1 10 6 9 1
13、1 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9o作用:将6个输入位映射为4个输出位;o方法:若定义a1a2a3a4a5a6,将a1a6组成2位二进制数,对应S盒表中的行号;将a2a3a4a5组成一个4位的2进制数,对应S盒表中的列号;映射到交叉点的数据就是该S盒的输出。o输入为101011的输出是?S盒S3盒10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 813 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 6 4 9 8 15 3 0
14、 11 1 2 12 5 10 14 71 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12S4盒7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 1513 8 11 5 6 15 0 3 4 7 2 12 1 10 14 910 6 9 0 12 11 7 13 15 1 3 14 5 2 8 43 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14S5盒2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 914 11 2 12 4 7 13 1 5 0 15 10 3 9 8 64 2 1 11 10 13
15、7 8 15 9 12 5 6 3 0 1411 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3S盒S6盒12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 1110 15 4 2 7 12 9 5 6 1 13 14 0 11 3 89 14 15 5 2 8 12 3 7 0 4 10 1 13 11 64 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13S7盒4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 113 0 11 7 4 9 1 10 14 3 5 12 2 15 8 61 4 11 13 1
16、2 3 7 14 10 15 6 8 0 5 9 26 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12S8盒13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 15 13 8 10 3 7 4 12 5 6 11 0 14 9 27 11 4 1 9 12 14 2 0 6 10 13 15 3 5 82 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11S盒oDES中其它算法都是线性的,而S盒运算则是非线性的,S盒不易于分析,它提供了更好的安全性;所以S盒是算法的关键所在;o提供了密码算法所必需的混乱作用;o改变S盒的一个
17、输入位至少要引起两位的输出改变;置换函数P(Permutaion)oP置换的目的是:提供雪崩效应;o明文或密钥的一点小的变动都引起密文的较大变化;16 07 20 21 29 12 28 1701 15 23 26 05 18 31 1002 08 24 14 32 27 03 0919 13 30 06 22 11 04 25DES中子密钥的生成64bit64bit密钥密钥置换选择置换选择1 1C C0 0(28bit28bit)D D0 0(28bit28bit)循环左移循环左移循环左移循环左移C C(28bit28bit)C C(28bit28bit)循环左移循环左移循环左移循环左移置换
18、选择置换选择2 2置换选择置换选择2 2循环左移循环左移1234567811222222091011121314151612222221密钥表的计算逻辑:密钥表的计算逻辑:C Ci i(28bit28bit)D Di i(28bit28bit)(56bit(56bit)(56bit(56bit)K Ki i K K1 1 (48bit)(48bit)(48bit)(48bit)(56bit(56bit)置换选择-1 置换选择-2 57 49 41 33 25 17 9 1 58 50 42 34 26 1810 2 59 51 43 25 27 19 11 3 60 52 44 36 63 5
19、5 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 14 17 11 24 1 5 3 28 15 6 21 1023 19 12 4 26 8 16 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 48 44 49 39 56 34 5346 42 50 36 29 32置换选择置换选择1 置换选择置换选择2多重DES双重DES加密加密加密加密K1K2PC加密加密加密加密K2K1CP双重双重DES加密逻辑加密逻辑双重双重DES解密逻辑解密逻辑多重DES三
20、重DES加密加密解解密密K1PC三重三重DES加密逻辑加密逻辑三重三重DES解密逻辑解密逻辑K2解密解密K1BA解密解密加加密密K1CPK2解密解密K1BADES算法的安全性 oDES算法具有比较高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。o而56位长的密钥的穷举空间为256,如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近228.5年的时间。of函数(S盒)的设计原理未知;DES算法的程序实现o根据DES算法的原理,可以方便的利用C语言实现其加密和解密算法。o在VC+6.0中新建基于控制台的Win32应用程序,算法如程序D
21、ES1.cpp所示。数据加密标准 DESo数据加密标准 DES 属于常规密钥密码体制,是一种分组密码。o在加密前,先对整个明文进行分组。每一个组长为 64 bit。o然后对每一个 64 bit 二进制数据进行加密处理,产生一组 64 bit 密文数据。o最后将各组密文串接起来,即得出整个的密文。o使用的密钥为 64 bit(实际密钥长度为 56 bit,有 8 bit 用于奇偶校验)。DES 加密标准 L0R0L1=R0IPL2=R1L15=R14R1=L0 f(R0,K1)R2=L1 f(R1,K2)R15=L14 f(R14,K15)L16=R15R16=L15 f(R15,K16)IP1
22、fff输出密文 Y(64 bit)明文 X(64 bit)输入K16(48 bit)K2(48 bit)K1(48 bit)X0 的左半边 (32 bit)X0(64 bit)X0 的右半边 (32 bit)R16L16(64 bit)DES 的明显缺点 oDES 实际上就是一种单字符替代,而这种字符的长度是 64 bit。o也就是说,对于 DES 算法,相同的明文就产生相同的密文。这对 DES 的安全性来说是不利的。o为了提高 DES 的安全性,可采用加密分组链接的方法。加密分组的链接 X0Y0X1Y1X2Y2X3Y3X0Y0X1Y1X2Y2X3Y3初始向量初始向量密钥密钥明文明文密文密文加
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分组加密算法 分组 加密算法 PPT 课件
限制150内