密码学(编辑修改稿)内容摘要:

42 二、数据加密标准 (DES) 数据加密标准 A 32位 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 选择运算 E 选择运算 E的结果 48位 扩展置换 E 43 二、数据加密标准 (DES) 数据加密标准 使用密钥 在第 i+1次迭代中,用 48位二进制的密钥(由 56位密钥生成,下边会介绍) K( i+1) =k1(i+1)k2(i+1)…k 48(i+1) 与 E(R( i) )按位相加(逻辑异或),输出仍是 48位,共 8行,每行 6位。 Z 1 : r32(i)+ k1(i+1) r1(i) +k2(i+1) … r 5(i) +k6(i+1) Z 2 : r4(i)+ k7(i+1) r5(i) +k8(i+1) … r 9(i) +k12(i+1) … Z 8 : r28(i)+ k43(i+1) r29(i) +k44(i+1) … r 1(i) +k48(i+1) 作为 8个 Si选择函数 的输入 44 二、数据加密标准 (DES) 数据加密标准 S1,S2...S8选择函数 其功能是把 6bit数据变为 4bit数据。 Si(i=1,2......8)的功能表: 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, 15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13, S2: 15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10, 3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5, 0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15, 13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9, 45 数据加密标准 S6: 12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11, 10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8, 9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6, 4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13, S7: 4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1, 13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6, 1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2, 6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12, S8: 13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7, 1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2, 7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8, 2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11, S3: 10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8, 13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1, 13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7, 1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12, S4: 7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15, 13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9, 10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4, 3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14, S5: 2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9, 14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6, 4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14, 11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3, 46 数据加密标准 S 盒是 DES 的最敏感部分,其原理至今未公开。 人们担心 S 盒隐藏陷门,使得只有他们才可以破译算法,但研究中并没有找到弱点。 美国国家安全局透露了 S 盒的几条设计准则: 1 所有的 S 盒都不是它输入的线性仿射函数。 就是没有一个线性方程能将四个输出比特表示成六个比特输入的函数。 2 改变 S 盒的 1 位输入,输出至少改变 2 位。 这意味着 S 盒是经过精心设计的,它最大程度上增大了扩散量。 3 S 盒的任意一位输出保持不变时, 0 和 1 个数之差极小。 即如果保持一位不变而改变其它五位,那么其输出0 和 1 的个数不应相差太多。 47 二、数据加密标准 (DES) 数据加密标准 使用选择函数 S 将以上第 j个 (1≤j≤6)二进制的块 ( 记为 Z j=zj1 zj2 zj3 zj4 zj5 zj6) 输入第 j个选择函数 Sj。 各选择函数 Sj的功能是把 6位数变换成 4位数 , 做法是以 zj1zj6为行号 , zj2 zj3 zj4 zj5为列号 ,查找 Sj, 行列交叉处即是要输出的 4位数。 在此以 S1为例说明其功能 , 我们可以看到:在 S1中 , 共有 4行数据 , 命名为 0, 3行;每行有 16列 , 命名为 0、 3, ......, 1 15列。 现设输入为: D= 101100 令:列= 0110 行= 10 坐标为( 2, 6),然后在 S1表中查得对应的数为 2,以 4位二进制表示为 0010,此即选择函数 S1的输出。 48 二、数据加密标准 (DES) 数据加密标准 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 S1 1 0 1 1 0 0 10 2 0 0 1 0 输入 6位 输出 4位 使用选择函数 S的例子 49 二、数据加密标准 (DES) 数据加密标准 8个选择函数的输出 ( 32位) 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 置换 P 加密函数的结果 X ( 32位) 置换 P( 单纯换位表) 50 二、数据加密标准 (DES) 数据加密标准 迭代 把 L( i) 与 X( i) 按位相加 , 形成 R( i+1) , 且令 R( i) 为 L( i+1) , 即得到经第 i+1次迭代加密后的输出 L( i+1) R( i+1) , 其中 L( i+1) = R( i) R( i+1) = L( i) ⊕ f(R( i) ,K( i+1) ) (*) (i=0,1,2,… ,15) 51 数据加密标准 64位密钥 置换选择 1 C0(28位 ) D0(28位 ) 循环左移 循环左移 C1(28位 ) D1(28位 ) 置换选择 2 K1 (48位 ) (56位 ) 循环左移 循环左移 Ci(28位 ) Di(28位 ) 置换选择 2 Ki (48位 ) (56位 ) 16个子密钥的生成算法 循环左移: 1 1 9 1 2 1 10 2 3 2 11 2 4 2 12 2 5 2 13 2 6 2 14 2 7 2 15 2 8 2 16 1 52 二、数据加密标准 (DES) 数据加密标准 置换选择 1 密钥计算的目的在于产生加密和解密时所需要的 16个子密钥,记作 K(i)。 初始密钥 Key值为 64位,但DES算法规定,其中第 1 ......64位是奇偶校验位,不参与 DES运算。 故 Key 实际可用位数便只有 56位。 即:经过子密钥换位表 PC1的变换后,Key 的位数由 64 位变成了 56位,此 56位分为 C0、D0两部分,各 28位。 53 二、数据加密标准 (DES) 数据加密标准 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 33 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 不考虑各字节第 8位 密钥( 64位) C0(28位 ) D0(28位 ) 密钥置换选择 1 54 二、数据加密标准 (DES) 数据加密标准 循环移位规则: 轮数: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 位数: 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 密钥置换选择 2 56位分为 C0、 D0两部分,然后分别进行第 1次循环左移,得到 C D1, 将 C1( 28位)、 D1( 28位)合并得到 56位,再经过子密钥换位表 PC2, 便得到了密钥 K1( 48位)。 子密钥换位表 PC2给出了选择及选择后的次序,可以看出去掉了第 1 2 2 3 3 4 54位。 55 二、数据加密标准 (DES) 数据加密标准 Ci(28位 ) Di(28位 ) 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 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 Ki(48位 ) 密钥置换 2 去掉第 9, 18,22, 25, 35,38, 43, 54位, 56位变成 48位 56 二、数据加密标准 (DES) 数据加密标准 L0R0 ←IP( 明文 ) L1←R 0 R1← L 0(R0,K1) L2←R 1 R2← L 1(R1,K2) …… L16←R。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。