资源预览内容
第1页 / 共72页
第2页 / 共72页
第3页 / 共72页
第4页 / 共72页
第5页 / 共72页
第6页 / 共72页
第7页 / 共72页
第8页 / 共72页
第9页 / 共72页
第10页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第7讲 分组密码o它将明文划分成固定的 n 比特的数据组,然后以组为单位,在密钥的控制下进行一系列的线性或非线性的变化而得到密文。这就是分组密码。o分组密码一次变换一组数据。o分组密码算法的一个重要特点就是:当给定一个密钥后,若明文分组相同,那么所变换出密文分组也相同。o分组密码的一个重要优点是不需要同步 分组密码体制 输入输出加密算法密钥明文输入输出解密算法密钥明文n bitn bitn bitn bit密文密文分组密码的一般设计原理o分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。加密算法加密算法解密算法解密算法 明文明文密文密文原来的明文原来的明文(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位密钥来加密64位数据的方法。o发明人:nIBM公司 和.o基础:n1967年美国Horst Feistel提出的理论;o产生:n美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告,最终选定DES。DESo采用分组密码体制;o用56bit密钥来加密64bit数据的方法;oDES要达到的目标有:n提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;n具有复杂性,使得破译的开销超过可能获得的利益;nDES的安全性不依赖于算法的保密,安全性仅以加密密钥的保密为基础;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位比特的明文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位比特明文位比特明文在密在密钥控制下控制下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 19 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与IP-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 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 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的输出块;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)o48bit块通过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 11 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 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 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 12 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盒的一个输入位至少要引起两位的输出改变;置换函数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
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号