DES算法的实现步骤.ppt_第1页
DES算法的实现步骤.ppt_第2页
DES算法的实现步骤.ppt_第3页
DES算法的实现步骤.ppt_第4页
DES算法的实现步骤.ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

DES算法的实现步骤 DES算法实现加密需要三个步骤: 第一步:变换明文。对给定的64位比特的明文x,首先 通过一个置换IP表来重新排列x,从而构造出64位比特 的x0,x0=IP(x)=L0R0,其中L0表示x0的前32比特, R0表示x0的后32位。 第二步:按照规则迭代。规则为 Li = Ri-1 Ri = Lif(Ri-1,Ki) (i=1,2,316) 经过第一步变换已经得到L0和R0的值,其中符号表 示的数学运算是异或,f表示一种置换,由S盒置换构 成,Ki是一些由密钥编排函数产生的比特块。f和Ki将 在后面介绍。 第三步:对L16R16利用IP-1作逆置换, 就得到了密文y。加密过程如图8-4所示 。 从图中可以看出,DES 加密需要四个关键点:1 、IP置换表和IP-1逆置换 表。2、函数f。3、子密 钥Ki。4、S盒的工作原 理。 (1)IP置换表和IP-1逆置换表 输入的64位数据按置换IP表进行重新组合 ,并把输出分为L0、R0两部分,每部分各 长32位,其置换IP表如表8-1所示。 5 8 5 0 4 2 3 4 2 6 1 8 1 0 26 0 5 2 4 4 3 6 2 8 2 0 1 2 4 6 2 5 4 4 6 3 8 3 0 2 2 1 4 66 4 5 6 4 8 4 0 3 2 2 4 1 6 8 5 7 4 9 4 1 3 3 2 5 1 7 915 9 5 1 4 3 3 5 2 7 1 9 1 1 3 6 1 5 3 4 5 3 7 2 9 2 1 1 3 56 3 5 5 4 7 3 9 3 1 2 3 1 5 7 将输入64位比特的第58位换到第一位,第50位换到第二位,依此 类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部 分,L0是输出的左32位,R0是右32位。比如:置换前的输入值为 D1D2D3D64,则经过初始置换后的结果为:L0=D58D50.D8 ,R0=D57D49.D7。 经过16次迭代运算后。得到L16、R16,将此作为输入,进行逆置 换,即得到密文输出。逆置换正好是初始置换的逆运算,例如, 第1位经过初始置换后,处于第40位,而通过逆置换IP-1,又将第 40位换回到第1位,其逆置换IP-1规则表8-2所示。 逆置换表IP-1 408481656246432397471555236331 386461454226230375451353216129 364441252206028353431151195927 34242105018582633141949175725 (2)函数f 函数f有两个输入:32位的Ri-1和48位Ki,f函数的处理 流程如图所示。 E变换的算法是从Ri-1的32位中选取某些位,构成48位。即 E将32比特扩展变换为48位,变换规则根据E位选择表,如 表8-3所示。 3 2 12345456789891 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 Ki是由密钥产生的48位比特串,具体的算法下面介绍。将E的 选位结果与Ki作异或操作,得到一个48位输出。分成8组,每 组6位,作为8个S盒的输入。 每个S盒输出4位,共32位,S盒的工作原理将在第第四步介绍 。S盒的输出作为P变换的输入,P的功能是对输入进行置换, P换位表如表8-4所示。 1 6 72 0 2 1 2 9 1 2 2 8 1 7 11 5 2 3 2 6 51 8 3 1 1 0 282 4 1 4 3 2 2 7 391 9 1 3 3 0 62 2 1 1 42 5 (3)子密钥ki 假设密钥为K,长度为64位,但是其中第8、16、24、32、40、48 、64用作奇偶校验位,实际上密钥长度为56位。K的下标i的取值 范围是1到16,用16轮来构造。构造过程如图8-6所示。 首先,对于给定的密钥K,应用PC1变换进行选位,选 定后的结果是56位,设其前28位为C0,后28位为D0。 PC1选位如表8-5所示。 5 7 4 9 4 1 3 3 2 5 1 7 915 8 5 0 4 2 3 4 2 6 1 8 1 0 25 9 5 1 4 3 3 5 2 7 1 9 1 1 36 0 5 2 4 4 3 6 6 3 5 5 4 7 3 9 3 1 2 3 1 5 76 2 5 4 4 6 3 8 3 0 2 2 1 4 66 1 5 3 4 5 3 7 2 9 2 1 1 3 52 8 2 0 1 2 4 第一轮:对C0作左移LS1得到C1,对D0作左移LS1得 到D1,对C1D1应用PC2进行选位,得到K1。其中LS1 是左移的位数,如表8-6所示。 1122222212222221 表8-6中的第一列是LS1,第二列是LS2,以此类推。左移的原理 是所有二进位向左移动,原来最右边的比特位移动到最左边。 其中PC2如表8-7所示。 1 4 1 7 1 1 2 4 1532 8 1 5 62 1 1 0 2 3 1 9 1 2 , 42 6 81 6 72 7 2 0 1 3 2 4 1 5 2 3 1 3 7 4 7 5 5 3 0 4 0 5 1 4 5 3 3 4 8 4 4 4 9 3 9 5 6 3 4 5 3 4 6 4 2 5 0 3 6 2 9 3 2 第二轮:对C1,D1作左移LS2得到C2和D2, 进一步对C2D2应用PC2进行选位,得到K2。 如此继续,分别得到K3,K4K16。 (4)S盒的工作原理 S盒以6位作为输入,而以4位作为输出,现在以S1为例说明其过 程。假设输入为A=a1a2a3a4a5a6,则a2a3a4a5所代表的数是0到 15之间的一个数,记为:k=a2a3a4a5;由a1a6所代表的数是0到3 间的一个数,记为h=a1a6。在S1的h行,k列找到一个数B,B在0 到15之间,它可以用4位二进制表示,为B=b1b2b3b4,这就是S1 的输出。 DES算法的解密过程是一样的,区别仅仅在于第一次迭代时用子 密钥K16,第二次K15、最后一次用K1,算法本身并没有任何变 化。DES的算法是对称的,既可用于加密又可用于解密。 表2.5 选择(替代)函数S 表2.5 选择(替代)函数S 表2.5 选择(替代)函数S DES算法的应用误区 DES算法具有比较高安全性,到目前为止,除 了用穷举搜索法对DES算法进行攻击外,还没 有发现更有效的办

温馨提示

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

评论

0/150

提交评论