DES与RSA加密解密算法(PPT)

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

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

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

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

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

4、, 16, 24, 32, 40, 48, 56, 64位)=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 0111R(32位) = 1000 1001 1010 1011 1100 1101 1110 1111DES

5、加解密算法:加解密算法:In Actionl有密钥K(64位) = 133457799BBCDFF1,即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 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

6、7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 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

7、 D0(28位) = 0101010 1011001 1001111 0001111 第一步:生成第一步:生成16个子钥个子钥(48位位)C1和D1分别为C0和D0左移1位。 C3和D3分别为C2和D2左移2位 第一步:生成第一步:生成16个子钥个子钥(48位位)l从而得到从而得到C1D1 C16D16:lC1 = 1110000110011001010101011111D1 = 1010101011001100111100011110 lC2 = 1100001100110010101010111111D2 = 0101010110011001111000111101 lC3 = 00001

8、10011001010101011111111D3 = 0101011001100111100011110101 lC4 = 0011001100101010101111111100D4 = 0101100110011110001111010101 llC15 = 1111100001100110010101010111D15 = 1010101010110011001111000111 lC16 = 1111000011001100101010101111D16 = 0101010101100110011110001111 第一步:生成第一步:生成16个子钥个子钥(48位位)lKn(48位位

9、) = 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 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

10、111011 011001 110110 111100 100111 100101K3 = 010101 011111 110010 001010 010000 101100 111110 011001K4 = 011100 101010 110111 010110 110110 110011 010100 011101K5 = 011111 001110 110000 000111 111010 110101 001110 101000K6 = 011000 111010 010100 111110 010100 000111 101100 101111K7 = 111011 001000

11、010010 110111 111101 100001 100010 111100K8 = 111101 111000 101000 111010 110000 010011 101111 111011K9 = 111000 001101 101111 101011 111011 011110 011110 000001K10 = 101100 011111 001101 000111 101110 100100 011001 001111K11 = 001000 010101 111111 010011 110111 101101 001110 000110K12 = 011101 0101

12、11 000111 110101 100101 000110 011111 101001K13 = 100101 111100 010111 010001 111110 101011 101001 000001K14 = 010111 110100 001110 110111 111100 101110 011100 111010K15 = 101111 111001 000110 001101 001111 010011 111100 001010K16 = 110010 110011 110110 001011 000011 100001 011111 110101第二步:用子钥对第二步:

13、用子钥对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 48 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 0

14、111 1000 1001 1010 1011 1100 1101 1110 1111l对M运用IP,故有IP(64位) = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 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 1

15、010 第二步:用子钥对第二步:用子钥对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运算,函数f 从一个32位的数据块R(n-1)和一个48位子钥Kn得到一个新的32位数据块。(算法从略)第二步:用子钥对第二步:用子钥对64位数据加密位数据加密l到此为止,我们得到了16对32位的数据块,即L1R1, L2R2, L3R3, , L16R16l最后一对L16R16就是我们需要的。第二步:用

16、子钥对第二步:用子钥对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 28l 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 010

17、0 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从而,经过以上步骤,最终从明文

18、M = 0123456789ABCDEF得到密文C = IP-1 = 85E813540F0AB405 l以上为加密过程,要解密,依次反向计算即可。多层多层 DESlDES 算法可能是运用最广的对称加解密算法,但由于密钥长度较短,导致安全性不高。l故在安全性占首要地位的应用场合如金融业等,采用多个不同密钥(K1, K2, K3)的多层DES加解密。l这些多层DES系统被广泛应用,由此衍生出Triple DES, G-DES, DES-X, LOKI89和ICE等对称加解密系统。多层多层 DES 加解密过程加解密过程l以Triple DES为例说明。l加密过程:1. 以 K1 加密2. 以 K2

19、 解密3. 以 K3 加密l解密过程 (密钥顺序及应用方向与加密过程相反):1. 以 K3 解密2. 以 K2 加密3. 以 K1 解密多层多层 DES 衍生衍生l如果令K1=K3,则实际进行了双密钥加解密,即Triple DES加解密。l如果令K1=K2=k3,则实际进行了普通单密钥加解密。RSA 加解密算法加解密算法l与DES不同,RSA算法中,每个通信主体都有两个钥匙,一个公钥一个私钥。l一般应用过程为:RSA 一般应用过程一般应用过程乙方乙方甲方甲方明文乙方公钥解密甲方私钥解密甲方私钥加密乙方公钥加密明文甲方公钥解密乙方私钥解密乙方私钥加密甲方公钥加密加密解密密文密文明文密文签名加解密

20、发送加解密RSA 具体算法:公私钥生成具体算法:公私钥生成1.随机选定两个大素数p, q.2.计算公钥和私钥的公共模数 n = pq .3.计算模数n的欧拉函数 (n) .4.选定一个正整数e, 使1 e (n) , 且e与(n)互质.5.计算d, 满足 de 1 (mod (n) ), (k为某个正整数).6.n与e决定公钥, n与d决定私钥.RSA 具体算法:加解密具体算法:加解密1.小张欲给小李发一个消息M, 他先把M转换为一个大数m n, 然后用小李的公钥(n & e)把m加密为另一个大数: c = me mod n2.小李收到小张发来的大数c, 着手解密. 通过自己的私钥(n & d), 得到原来的大数m: m = cd mod n3.再把m转换为M, 小李即得到小张的原始消息. 该过程为小张给小李发消息,公钥为小李的公钥(n & e), 私钥为小李的私钥(n & d).RSA 具体算法原理具体算法原理这个过程之所以能通过, 是因为有如下等式: cd (me)d med (mod n)THE END

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

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