DES 与 RSA 加密解密算法

上传人:ji****72 文档编号:50765113 上传时间:2018-08-10 格式:PPT 页数:33 大小:77.50KB
返回 下载 相关 举报
DES 与 RSA 加密解密算法_第1页
第1页 / 共33页
DES 与 RSA 加密解密算法_第2页
第2页 / 共33页
DES 与 RSA 加密解密算法_第3页
第3页 / 共33页
DES 与 RSA 加密解密算法_第4页
第4页 / 共33页
DES 与 RSA 加密解密算法_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《DES 与 RSA 加密解密算法》由会员分享,可在线阅读,更多相关《DES 与 RSA 加密解密算法(33页珍藏版)》请在金锄头文库上搜索。

1、DES 与 RSA 加解密算法两种加密算法l对称加解密算法: 通信双方(通信主体)同时掌握一个钥匙, 加解密都由这一个钥匙完成。l公私钥加解密算法: 通信双方(通信主体)彼此掌握不同的钥匙 ,不同方向的加解密由不同钥匙完成。对称加解密算法l通信双方通信前共同拟定一个密钥,不对第 三方公开。l消息发送前都通过该密钥加密,到达后也通 过该密钥解密。l不具有个体原子性,一个密钥被共享,泄露 机率加大。对称加解密过程n通信双方甲、乙共同拟定一个密钥,共享。n任何一方发信时都以该共享密钥加密再发送 。n收信方同样以该密钥解密。n复信同上。公钥与私钥l权威数字认证机构(CA)给所有通信主体( 个人或组织)

2、颁发公钥和私钥,彼此配对, 分别唯一。l私钥好比数字指纹,同时具有解密和加密功 能。个人保管,不公开。l公钥好比安全性极高的挂号信箱地址,公开 。公私钥加解密举例l设若甲有一份需保密的数字商业合同发给乙签署。经过如下步 骤: 1. 甲用乙的公钥对合同加密。 2. 密文从甲发送到乙。 3. 乙收到密文,并用自己的私钥对其解密。 4. 解密正确,经阅读,乙用自己的私钥对合同进行签署。 5. 乙用甲的公钥对已经签署的合同进行加密。 6. 乙将密文发给甲。 7. 甲用自己的私钥将已签署合同解密。 8. 解密正确,确认签署。公私钥加解密说明l从以上步骤,我们知道: 1. 用公钥加密的密文能且只能用与其唯

3、一 配对的私钥才能解开。 2. 如果某份密文被解开,那么肯定是密文 的目标信息主体解开的。 3. 私钥因其唯一标识所有者的属性,被用 于数字签名,具有法律效力。DES 与 RSA 加解密算法lDES 是一种单一密钥加解密算法。通信主体 之间只有一个密钥,该密钥不对第三方公开 。lRSA 则是公钥/私钥系统。该系统比 DES 系 统更原子化,具有普遍应用意义。DES 加解密算法lDES (Data Encryption Standard),是IBM在 上个世纪70年代开发的单密钥对称加解密算 法。l该算法利用一个56+8奇偶校验位(第8, 16, 24, 32, 40, 48, 56, 64位)

4、=64位的密钥对以 64位为单位的块数据进行加解密。DES 加解密算法:In Actionl有明文M(64位) = 0123456789ABCDEF,即 M(64位) = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111lL(32位) = 0000 0001 0010 0011 0100 0101 0110 0111 R(32位) = 1000 1001 1010 1011 1100 1101 1110 1111DES 加解密算法:In Actionl有密钥K(64位) = 13345

5、7799BBCDFF1,即 K(64位) = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 l其中红色标注为奇偶校验位,即实际密钥为 56位。第一步:生成16个子钥(48位)l对K使用PC-1(87) 57 49 41 33 25 17 91 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12

6、 4 第一步:生成16个子钥(48位)l从而,由K(64位) = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 l得到K+(56位) = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111 l进而, C0(28位) = 1111000 0110011 0010101 0101111 D0(28位) = 0101010 1011001 1001111 0001111 第一步:生成16个子钥(48位)C1和D1分别为C0和D0

7、左移1位。 C3和D3分别为C2和 D2左移2位 第一步:生成16个子钥(48位)l从而得到C1D1 C16D16:lC1 = 1110000110011001010101011111 D1 = 1010101011001100111100011110 lC2 = 1100001100110010101010111111 D2 = 0101010110011001111000111101 lC3 = 0000110011001010101011111111 D3 = 0101011001100111100011110101 lC4 = 0011001100101010101111111100

8、D4 = 0101100110011110001111010101 l lC15 = 1111100001100110010101010111 D15 = 1010101010110011001111000111 lC16 = 1111000011001100101010101111 D16 = 0101010101100110011110001111 第一步:生成16个子钥(48位)lKn(48位) = PC-2( CnDn(56位) )lPC-2(86) l14 17 11 24 1 5l3 28 15 6 21 10l 23 19 12 4 26 8l 16 7 27 20 13 2l

9、41 52 31 37 47 55l 30 40 51 45 33 48l 44 49 39 56 34 53l 46 42 50 36 29 32 第一步:生成16个子钥(48位)l最终得到所有16个子钥,每个48位:K1 = 000110 110000 001011 101111 111111 000111 000001 110010 K2 = 011110 011010 111011 011001 110110 111100 100111 100101 K3 = 010101 011111 110010 001010 010000 101100 111110 011001 K4 = 01

10、1100 101010 110111 010110 110110 110011 010100 011101 K5 = 011111 001110 110000 000111 111010 110101 001110 101000 K6 = 011000 111010 010100 111110 010100 000111 101100 101111 K7 = 111011 001000 010010 110111 111101 100001 100010 111100 K8 = 111101 111000 101000 111010 110000 010011 101111 111011 K9

11、 = 111000 001101 101111 101011 111011 011110 011110 000001 K10 = 101100 011111 001101 000111 101110 100100 011001 001111 K11 = 001000 010101 111111 010011 110111 101101 001110 000110 K12 = 011101 010111 000111 110101 100101 000110 011111 101001 K13 = 100101 111100 010111 010001 111110 101011 101001

12、000001 K14 = 010111 110100 001110 110111 111100 101110 011100 111010 K15 = 101111 111001 000110 001101 001111 010011 111100 001010 K16 = 110010 110011 110110 001011 000011 100001 011111 110101第二步:用子钥对64位数据加密l对明文M使用IP(88)l58 50 42 34 26 18 10 2l 60 52 44 36 28 20 12 4l 62 54 46 38 30 22 14 6l 64 56 4

13、8 40 32 24 16 8l 57 49 41 33 25 17 9 1l 59 51 43 35 27 19 11 3l 61 53 45 37 29 21 13 5l 63 55 47 39 31 23 15 7 第二步:用子钥对64位数据加密l由于M(64位) =0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111l对M运用IP,故有 IP(64位) = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 111

14、1 0000 1010 1010 第二步:用子钥对64位数据加密lIP(64位) = L0(32位) + R0(32位)l故lL0 (32位) = 1100 1100 0000 0000 1100 1100 1111 1111 R0 (32位) = 1111 0000 1010 1010 1111 0000 1010 1010 第二步:用子钥对64位数据加密l从L0和R0开始,循环16次,得出L1R1到L16R16, 依据递推公式:lLn = R(n-1) Rn = L(n-1) + f (R(n-1),Kn) l其中除了Kn为48位,其他变量及函数均为32位。l其中+号表示异或XOR运算,函

15、数f 从一个32位的数 据块R(n-1)和一个48位子钥Kn得到一个新的32位数 据块。(算法从略)第二步:用子钥对64位数据加密l到此为止,我们得到了16对32位的数据块, 即 L1R1, L2R2, L3R3, , L16R16l最后一对L16R16就是我们需要的。第二步:用子钥对64位数据加密l继续对R16L16(64位)运用一次重排列: IP-1(88) l40 8 48 16 56 24 64 32l39 7 47 15 55 23 63 31l 38 6 46 14 54 22 62 30l 37 5 45 13 53 21 61 29l 36 4 44 12 52 20 60 2

16、8l 35 3 43 11 51 19 59 27l 34 2 42 10 50 18 58 26l 33 1 41 9 49 17 57 25 第二步:用子钥对64位数据加密l即在 L16(32位) = 0100 0011 0100 0010 0011 0010 0011 0100 R16(32位) = 0000 1010 0100 1100 1101 1001 1001 0101 R16L16(64位) = 00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100 l时,对R16L16运用IP-1,得 IP-1(64位) = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101 = 85E813540F0AB405l从而,经过以上步骤,最终从明文 M = 0123456789ABCDEF 得到密文 C = IP-1 = 85E813540F0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号