密码学-DES密码(二)_第1页
密码学-DES密码(二)_第2页
密码学-DES密码(二)_第3页
密码学-DES密码(二)_第4页
密码学-DES密码(二)_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 分分 组组 密密 码码分组密码概述分组密码概述 分组密码是将明文消息序列分组密码是将明文消息序列 m1, m2, m1k, 分成等长的消息组分成等长的消息组(m1, m2, mn), (mn+1, mn+2, m2n), 在密钥控制下,在密钥控制下, 按固定的算法按固定的算法Ek一组一组进行加密。加密一组一组进行加密。加密 后输出等长后输出等长 密文组密文组 (y1, ,ym ), (ym+1, ,y2m) ,第二章第二章 分分 组组 密密 码码加加 密密 算算 法法密密 钥钥 k k明文明文(x1, x2, xn)密文密文(y1, y2, yn)加密一组明文的过程加密一组明文的

2、过程第二章第二章 分分 组组 密密 码码分组密码设计原则分组密码设计原则一般设计原则一般设计原则混乱混乱扩散扩散实现的设计原则实现的设计原则软件软件硬件硬件第二章第二章 分分 组组 密密 码码分组密码的结构分组密码的结构;分组密码原则分组密码原则 “复杂复杂” 难于分解难于分解 “简单简单” 易于实现易于实现选代密码:选代密码: X = Y(0) F FF FF F密钥密钥K K Y(2) Y(r-1) Y(1) Y(r) Z(2)Z(1)Z(r)第二章第二章 分分 组组 密密 码码分组密码两种类型的总体结构:分组密码两种类型的总体结构:Feistal网络:只改变输入分组的一半网络:只改变输入

3、分组的一半SP网络网络: 改变整个数据分组改变整个数据分组 典型的分组密码算法典型的分组密码算法 DES 数据加密标准数据加密标准DES (Data Encryption Standard ) DES密码体制密码体制最有名的密码算法最有名的密码算法 第一个被公开的现代密码第一个被公开的现代密码 由由IBM于于1971年至年至1972年研制成功年研制成功 分组长度:分组长度:64比特比特密钥长度:密钥长度:56比特比特第二章第二章 分分 组组 密密 码码 DES是一个对称算法:加密和解密用的是同一算法。是一个对称算法:加密和解密用的是同一算法。目前目前DES已被视为不安全,普遍使用的是变种已被视

4、为不安全,普遍使用的是变种triple DES,即对即对64比特分组加密三次,每次用不同的密钥,比特分组加密三次,每次用不同的密钥, 密钥长度总共密钥长度总共168比特。比特。第二章第二章 分分 组组 密密 码码第二章第二章 分分 组组 密密 码码比较著名的对称加密算法比较著名的对称加密算法算法算法注释注释Blowfish块加密;布鲁斯块加密;布鲁斯施奈尔(施奈尔(Bruce Schneier)提出)提出DES块加密;块加密; 7 0年代提出年代提出IDEA块加密(被认为是现有最好的算法)块加密(被认为是现有最好的算法)RC2RC4RC5RC6块加密;块加密; R S A公司提出公司提出流加密

5、流加密块加密块加密块加密块加密Triple DES使用三个密钥的加密、解密、加密序列使用三个密钥的加密、解密、加密序列 2. DES算法描述 1) DES算法规定算法规定 DES密钥长度规定为密钥长度规定为64位,但实际只使用位,但实际只使用56位,位,其余的八位用作奇偶校验位。具体地说,在其余的八位用作奇偶校验位。具体地说,在64位密位密钥中钥中8的倍数位是校验位,即第的倍数位是校验位,即第8,16,24,32,40,48,56和和64位是校验位,剩下的位是校验位,剩下的56位则作为真正的位则作为真正的密钥。密钥。第二章第二章 分分 组组 密密 码码 DES是一个分组密码。它的入口参数有三是

6、一个分组密码。它的入口参数有三个,分别是个,分别是Key、Data和和Mode。其中。其中Key为为64位,是位,是 DES算法的工作密钥;算法的工作密钥;Data为为64位,位,是要被加密或被解密的数据;是要被加密或被解密的数据;Mode为为DES的的工作方式,分加密或解密两种。工作方式,分加密或解密两种。第二章第二章 分分 组组 密密 码码 在通信网络的两端,双方约定一致的在通信网络的两端,双方约定一致的Key,在通信的源点用在通信的源点用Key对明文数据进行对明文数据进行DES加密,加密,然后以密文形式在公共通信网然后以密文形式在公共通信网(如电话网如电话网)中传输中传输到通信网络的终点

7、,密文数据到达目的地后,到通信网络的终点,密文数据到达目的地后,用同样的用同样的Key对密文数据进行解密,便恢复了对密文数据进行解密,便恢复了明文数据。明文数据。 第二章第二章 分分 组组 密密 码码 2) DES加密过程加密过程 DES算法加密的过程大致可以分为三部算法加密的过程大致可以分为三部分:初始置换、分:初始置换、16次迭代过程和逆置换,次迭代过程和逆置换,其中在其中在16次迭代过程中还必须从密钥中提次迭代过程中还必须从密钥中提取子密钥,将取子密钥,将32位的右半部分扩展为位的右半部分扩展为48位。位。具体算法过程如下所示。具体算法过程如下所示。第二章第二章 分分 组组 密密 码码第

8、二章第二章 分分 组组 密密 码码 DES加密过程加密过程 初始置换初始置换 密钥(密钥(1)密钥(密钥(2)密钥(密钥(3)密钥(密钥(16)64位明文位明文 逆初始置换逆初始置换第二章第二章 分分 组组 密密 码码64位明文IP初始置换L0R0fK1L1R1fK2L15R15fK16左右交换R16L16逆初始置换IP164位密文LiRi1,RiLi1 f(Ri1,Ki)DES算法加密过程: 初始置换:初始置换: 密钥置换:密钥密钥置换:密钥 64位位 56 48 扩展置换:扩展置换:Ri 从从 32 48 S 盒代替:盒代替:48 32 P 盒置换:盒置换: 末置换:末置换: 第二章第二章

9、 分分 组组 密密 码码第二章第二章 分分 组组 密密 码码(1) 初始置换:在表初始置换:在表2-3中的中的IP的置换中将明文的的置换中将明文的第第58位移到第一位,将第位移到第一位,将第50位移到第二位,将位移到第二位,将第第42位移到第三位位移到第三位依次类推。而在表依次类推。而在表2-3中的中的IP的逆置换中,将第一位拉回到第的逆置换中,将第一位拉回到第58位,位,第二位拉回到第第二位拉回到第50位,第三位拉回到第位,第三位拉回到第42位,位,考察其他的位,也可以得到同考察其他的位,也可以得到同IP初始置换相对初始置换相对应的位。应的位。 所以,称所以,称IP是是IP的逆置换。因而,的

10、逆置换。因而,DES算法算法既可以用于加密,又可以用于解密。既可以用于加密,又可以用于解密。58 50 42 34 26 18 10 2 60 52 44 36 38 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 表2-2 初始置换IP 第二章第二章 分分 组组 密密 码码表2-3 逆初始置换IP-140 8 48 16 56 24 64 32 39 7

11、 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 第二章第二章 分分 组组 密密 码码 (2) 迭代过程迭代过程T。在。在DES算法中,一共要作算法中,一共要作16次迭代次迭代过程,顺序记为过程,顺序记为Ti设第设第i次迭代次迭代T的输入为,其中、的输入为,其中、R分别是左半部分别是左半部分分32位和右半部分位和右半部分32位,则第位,

12、则第i次迭代的输出为次迭代的输出为 Li = Ri-1 Ri = Li-1 + f (Ri-1, Ki )第第i次迭代的输出作为第次迭代的输出作为第i+1次迭代的输入,进行次迭代的输入,进行下一次迭代。下一次迭代。第二章第二章 分分 组组 密密 码码Ri-1压缩置换压缩置换扩展置换扩展置换S-盒代替盒代替Li-1Li密密 钥钥密密 钥钥移位移位移位移位P-盒转换盒转换Ri第三章第三章 分分 组组 密密 码码f f是将一个是将一个32位的符号串转换为另一个位的符号串转换为另一个32位的位的符号串的运算函数,其流程如图符号串的运算函数,其流程如图2-4 所示。所示。功能的第一步是将功能的第一步是将

13、32位的输入转换为位的输入转换为48位,并位,并与迭代密钥按位异或,再把得到的与迭代密钥按位异或,再把得到的48位分为八位分为八组,每组六位,分别通过组,每组六位,分别通过S1,S2,S8输出,输出,每组只输出四位,组合成每组只输出四位,组合成32位,这位,这32位最后通位最后通过置换输出。在计算时,需要计算出。过置换输出。在计算时,需要计算出。第三章第三章 分分 组组 密密 码码生成 f (Ri1,Ki)单纯置换S4S5S6S7S8S1S2S3异或运算Ki扩增排列Ri1图2-4 f(Ri-1,ki)的计算过程第三章第三章 分分 组组 密密 码码第三章第三章 分分 组组 密密 码码图图9-4中

14、扩增排列的选位表描述中扩增排列的选位表描述了如何将了如何将32位转换为位转换为48位的方位的方法,总共八行六列。如果,则法,总共八行六列。如果,则E(Ri-1)=r32r1r2r3r32 r1,如表,如表2-5所示。所示。3 2 1 2 3 4 5 4 5 6 7 8 9 8 9 1 0 1 1 1 2 1 3 1 2 1 3 1 4 1 5 1 6 1 7 1 6 1 7 1 8 1 9 2 0 2 1 2 0 2 1 2 2 2 3 2 4 2 5 2 4 2 5 2 6 2 7 2 8 2 9 2 8 2 9 3 0 3 1 3 2 1 表2-5 扩增排列E(R) 数据在数据在S盒中执行

15、混淆动作。八个盒中执行混淆动作。八个S盒中盒中的每一个的每一个S盒都是将六位的输入映射为四盒都是将六位的输入映射为四位的输出。以位的输出。以S1盒为例,盒中的数据排盒为例,盒中的数据排列如表所示。列如表所示。14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 S1盒 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 第三章第三章 分分 组组 密密 码码S盒的工作原理是这样的:若输入为盒的工作原理

16、是这样的:若输入为101101 ,其中首尾其中首尾(11)两位二进制数转换为十进制数两位二进制数转换为十进制数(3)作作为行,中间四位为行,中间四位(0110)二进制数转换为十进制数二进制数转换为十进制数(6)作为列。假设从表作为列。假设从表2-6中查得的数为中查得的数为m,0m15,m换为四位二进制数,则就是输入的四换为四位二进制数,则就是输入的四位输出。位输出。第三章第三章 分分 组组 密密 码码例如,例如,Sl盒的输入为盒的输入为101101,在盒中的第,在盒中的第三行第六列上的数字是三行第六列上的数字是1,用二进制数表示,用二进制数表示为为0001,则,则4位输出为位输出为0001。注

17、意:注意:S盒的行和列序号都是从盒的行和列序号都是从0开始的。开始的。第三章第三章 分分 组组 密密 码码单纯置换是对输入单纯置换是对输入的的32位进行置换,位进行置换,产生产生32位输出。如位输出。如果输入为果输入为Hi=r1r2r3 2,则,则P(Hi)=h16h7h4h25,如表如表2-6所示。所示。1 6 7 2 0 2 1 2 9 1 2 2 8 1 7 1 1 5 2 3 2 6 5 1 8 3 1 1 0 2 8 2 4 1 4 3 2 2 7 3 9 1 9 1 3 3 0 6 2 2 1 1 4 2 5 表2-6 单纯置换P(H) 第三章第三章 分分 组组 密密 码码(3)

18、Ki是由是由56位的密钥位的密钥K确定的确定的48位密钥,位密钥,每一次迭代使用不同的每一次迭代使用不同的48位密钥。密钥位密钥。密钥Ki的的生成过程如图所示。生成过程如图所示。第二章第二章 分分 组组 密密 码码密密钥钥的的产产生生过过程程初始密钥初始密钥 K ( 64 bit )PC - 1LS1C0(28 bit ) D0(28 bit ) LS1C1 D1LS2LS2LS16LS16C16 D16PC - 2K1PC - 2K16第三章第三章 分分 组组 密密 码码子密钥的初始值为子密钥的初始值为64位。位。DES算法规定其中的第算法规定其中的第8、16、24、32、40、48、56、

19、64位位(共共8位位)为奇偶校验位,不参为奇偶校验位,不参与与DES运算。因此,子密钥的实际可用位数为运算。因此,子密钥的实际可用位数为56位。即位。即经过缩小选择换位经过缩小选择换位1之后,由之后,由64位变成位变成56位。位。第三章第三章 分分 组组 密密 码码将将56位密钥分成两部分的位密钥分成两部分的28位密钥,然后这两位密钥,然后这两部分分别循环左移一位或两位,由圈数决定。部分分别循环左移一位或两位,由圈数决定。移位后,再从移位后,再从56位中选出位中选出48位。由于每次都移位。由于每次都移位,因此每次产生的子密钥都不同。位,因此每次产生的子密钥都不同。第二章第二章 分分 组组 密密

20、 码码缩小选择换位表为八行七列,共缩小选择换位表为八行七列,共56个元素,分为两个部分:个元素,分为两个部分:上面四行为上面四行为L0,下面四行为,下面四行为R0,每部分都是,每部分都是28位。若密钥位。若密钥k=d1d2d64,则,则L0=d57d49d36,R0=d63d55d4。其中缩小。其中缩小选择换位选择换位1如表如表2-7所示。然后分别进行第一次循环左移,所示。然后分别进行第一次循环左移,得到得到L1、R1。将。将28位的位的L1、28位的位的R1合并得到合并得到56位。经过位。经过缩小选择换位缩小选择换位2如表如表2-8所示,得到所示,得到48位的密钥位的密钥K1。同样方。同样方

21、法可以得到密钥法可以得到密钥K2,K3,K16。57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 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 第二章第二章 分分 组组 密密 码码表2-7 缩小选择换位1(PC-1) 第二章第二章 分分 组组 密密 码码14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13

22、 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 表2-8 缩小选择换位2 DES解密解密 加密和解密使用相同算法加密和解密使用相同算法 不同之处是密钥的次序相反不同之处是密钥的次序相反 归纳如下:归纳如下: R16L16=IP(64 bit密文密文) Ri-1=Li,Li-1=Rif(Ri-1,ki),i=1, 2, ,64 64 bit明文明文=IP-1(L0R0)第二章第二章 分分 组组 密密 码码第三章第三章 分分 组组 密密 码码DES 的工作模式(的工作模式(P28)电码本模式(电码

23、本模式(ECB)密码分组链接模式(密码分组链接模式(CBC)密文反馈方式(密文反馈方式(CFB)输出反馈模式(输出反馈模式(OFB)电码本模式(电码本模式(ECB)电码本模式(电码本模式(ECB)密码分组链接模式(密码分组链接模式(CBC)密码分组链接模式(密码分组链接模式(CBC)密文反馈方式(密文反馈方式(CFB)密文反馈方式(密文反馈方式(CFB)输出反馈模式(输出反馈模式(OFB)输出反馈模式(输出反馈模式(OFB) 二重二重DES 及其问题及其问题二重二重DES 及其问题及其问题明明 文文三重三重DES密文密文DES加密加密密钥密钥 = K1DES解密解密密钥密钥 = K2DES加密加密

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论