Download presentation
Presentation is loading. Please wait.
1
李开祥 郭雪丽 马高峰 杨洋 孙凤英 陈静 Copyright © 2007 西安交通大学电子商务系
DES 与 RSA 加解密算法 李开祥 郭雪丽 马高峰 杨洋 孙凤英 陈静 Copyright © 2007 西安交通大学电子商务系
2
两种加密算法 对称加解密算法: 通信双方(通信主体)同时掌握一个钥匙,加解密都由这一个钥匙完成。
公私钥加解密算法: 通信双方(通信主体)彼此掌握不同的钥匙,不同方向的加解密由不同钥匙完成。
3
对称加解密算法 通信双方通信前共同拟定一个密钥,不对第三方公开。 消息发送前都通过该密钥加密,到达后也通过该密钥解密。
不具有个体原子性,一个密钥被共享,泄露机率加大。
4
对称加解密过程 通信双方甲、乙共同拟定一个密钥,共享。 任何一方发信时都以该共享密钥加密再发送。 收信方同样以该密钥解密。 复信同上。
5
公钥与私钥 权威数字认证机构(CA)给所有通信主体(个人或组织)颁发公钥和私钥,彼此配对,分别唯一。
私钥好比数字指纹,同时具有解密和加密功能。个人保管,不公开。 公钥好比安全性极高的挂号信箱地址,公开。
6
公私钥加解密举例 设若甲有一份需保密的数字商业合同发给乙签署。经过如下步骤: 1. 甲用乙的公钥对合同加密。 2. 密文从甲发送到乙。 3. 乙收到密文,并用自己的私钥对其解密。 4. 解密正确,经阅读,乙用自己的私钥对合同进行签署。 5. 乙用甲的公钥对已经签署的合同进行加密。 6. 乙将密文发给甲。 7. 甲用自己的私钥将已签署合同解密。 8. 解密正确,确认签署。
7
公私钥加解密说明 从以上步骤,我们知道: 1. 用公钥加密的密文能且只能用与其唯一配对的私钥才能解开。 2. 如果某份密文被解开,那么肯定是密文的目标信息主体解开的。 3. 私钥因其唯一标识所有者的属性,被用于数字签名,具有法律效力。
8
DES 与 RSA 加解密算法 DES 是一种单一密钥加解密算法。通信主体之间只有一个密钥,该密钥不对第三方公开。
9
DES 加解密算法 DES (Data Encryption Standard),是IBM在上个世纪70年代开发的单密钥对称加解密算法。
该算法利用一个56+8奇偶校验位(第8, 16, 24, 32, 40, 48, 56, 64位)=64位的密钥对以64位为单位的块数据进行加解密。
10
DES 加解密算法:In Action 有明文M(64位) = ABCDEF,即 M(64位) = L(32位) = R(32位) =
11
DES 加解密算法:In Action 有密钥K(64位) = BBCDFF1,即 K(64位) = 其中红色标注为奇偶校验位,即实际密钥为56位。
12
第一步:生成16个子钥(48位) 对K使用PC-1(8×7)
13
第一步:生成16个子钥(48位) 从而,由K(64位) = 得到K+(56位) = 进而, C0(28位) = D0(28位) =
14
第一步:生成16个子钥(48位) C1和D1分别为C0和D0左移1位。… C3和D3分别为C2和D2左移2位 …
15
第一步:生成16个子钥(48位) 从而得到C1D1 ~ C16D16:
… … C15 = D15 = C16 = D16 =
16
第一步:生成16个子钥(48位) Kn(48位) = PC-2( CnDn(56位) ) PC-2(8×6) 14 17 11 24 1 5
17
第一步:生成16个子钥(48位) 最终得到所有16个子钥,每个48位: K1 = K2 = K3 = K4 = K5 = K6 = K7 = K8 = K9 = K10 = K11 = K12 = K13 = K14 = K15 = K16 =
18
第二步:用子钥对64位数据加密 对明文M使用IP(8×8) 58 50 42 34 26 18 10 2
19
第二步:用子钥对64位数据加密 由于M(64位) = 对M运用IP,故有 IP(64位) =
20
第二步:用子钥对64位数据加密 IP(64位) = L0(32位) + R0(32位) 故
21
第二步:用子钥对64位数据加密 从L0和R0开始,循环16次,得出L1R1到L16R16,依据递推公式:
Ln = R(n-1) Rn = L(n-1) + f (R(n-1),Kn) 其中除了Kn为48位,其他变量及函数均为32位。 其中+号表示异或XOR运算,函数f 从一个32位的数据块R(n-1)和一个48位子钥Kn得到一个新的32位数据块。(算法从略)
22
第二步:用子钥对64位数据加密 到此为止,我们得到了16对32位的数据块,即 L1R1, L2R2, L3R3, …, L16R16
23
第二步:用子钥对64位数据加密 继续对R16L16(64位)运用一次重排列: IP-1(8×8)
24
第二步:用子钥对64位数据加密 即在 L16(32位) = R16(32位) = R16L16(64位) = 时,对R16L16运用IP-1,得 IP-1(64位) = = 85E813540F0AB405 从而,经过以上步骤,最终从明文 M = ABCDEF 得到密文 C = IP-1 = 85E813540F0AB405 以上为加密过程,要解密,依次反向计算即可。
25
多层 DES DES 算法可能是运用最广的对称加解密算法,但由于密钥长度较短,导致安全性不高。
故在安全性占首要地位的应用场合如金融业等,采用多个不同密钥(K1, K2, K3)的多层DES加解密。 这些多层DES系统被广泛应用,由此衍生出Triple DES, G-DES, DES-X, LOKI89和ICE等对称加解密系统。
26
多层 DES 加解密过程 以Triple DES为例说明。 加密过程: 1. 以 K1 加密 2. 以 K2 解密 3. 以 K3 加密
27
多层 DES 衍生 如果令K1=K3,则实际进行了双密钥加解密,即Triple DES加解密。
如果令K1=K2=k3,则实际进行了普通单密钥加解密。
28
RSA 加解密算法 与DES不同,RSA算法中,每个通信主体都有两个钥匙,一个公钥一个私钥。 一般应用过程为:
29
RSA 一般应用过程 甲方 乙方 加密 解密 明文 密文 签名加解密 发送加解密 甲方私钥 解密 乙方公钥 解密 明文 甲方私钥 加密
甲方公钥 加密 乙方私钥 加密 明文 甲方公钥 解密 乙方私钥 解密 乙方
30
RSA 具体算法:公私钥生成 随机选定两个大素数p, q. 计算公钥和私钥的公共模数 n = pq . 计算模数n的欧拉函数 φ(n) .
选定一个正整数e, 使1 < e < φ(n) , 且e与φ(n)互质. 计算d, 满足 de ≡ 1 (mod φ(n) ), (k为某个正整数). n与e决定公钥, n与d决定私钥.
31
RSA 具体算法:加解密 该过程为小张给小李发消息,公钥为小李的公钥(n & e), 私钥为小李的私钥(n & d).
小张欲给小李发一个消息M, 他先把M转换为一个大数m < n, 然后用小李的公钥(n & e)把m加密为另一个大数: c = me mod n 小李收到小张发来的大数c, 着手解密. 通过自己的私钥(n & d), 得到原来的大数m: m = cd mod n 再把m转换为M, 小李即得到小张的原始消息.
32
RSA 具体算法原理 这个过程之所以能通过, 是因为有如下等式: cd ≡(me)d ≡med (mod n)
33
Copyright © 2007 西安交通大学电子商务系
The End 谢谢! 李开祥 郭雪丽 马高峰 杨洋 孙凤英 陈静 Copyright © 2007 西安交通大学电子商务系
Similar presentations