21
第第第第第第第第第 ( 第 ) • 第第第第 ( 第 ) • RSA \ ElGamal algorithms

第十讲公钥加密算法 ( 续 )

  • Upload
    amie

  • View
    145

  • Download
    6

Embed Size (px)

DESCRIPTION

第十讲公钥加密算法 ( 续 ). 公钥密码 ( 续 ) RSA \ ElGamal algorithms. 1. 公钥加密. 公钥加密算法 : 用于加密任何消息 常能用于签名和密钥交换 eg. RSA, ElGamal 基于不同有限域的指数运算 (galois 整数域、 elliptic curves etc) 其它问题的公钥体制 (Error Correcting Codes) 大多数都被攻破. 2. RSA (Rivest, Shamir, Adleman). 使用最广泛的公钥加密算法 - PowerPoint PPT Presentation

Citation preview

Page 1: 第十讲公钥加密算法  ( 续 )

第十讲公钥加密算法 ( 续 )

• 公钥密码 ( 续 )• RSA \ ElGamal algorithms

Page 2: 第十讲公钥加密算法  ( 续 )

1. 公钥加密 • 公钥加密算法 : 用于加密任何消息• 常能用于签名和密钥交换• eg. RSA, ElGamal • 基于不同有限域的指数运算 (galois 整数域、 elliptic curves etc) • 其它问题的公钥体制 (Error Correcting C

odes) • 大多数都被攻破

Page 3: 第十讲公钥加密算法  ( 续 )

2. RSA (Rivest, Shamir, Adleman)

• 使用最广泛的公钥加密算法• Rivest, Shamir & Adleman (RSA) in 1977 • R L Rivest, A Shamir, L Adleman, "On Digit

al Signatures and Public Key Cryptosystems", Communications of the ACM, vol 21 no 2, pp120-126, Feb 1978

Page 4: 第十讲公钥加密算法  ( 续 )

3. RSA Setup• 每个用户生成自己的公钥 \ 私钥对 :• 选择两个随机大素数 (~100 digit), p, q • 计算模数 N=p.q • 选择一个随机加密密钥匙 e : e<N, gcd(e,ø(N))=1 • 解下列同余方程 , 求解密密钥 d: • e.d=1 mod ø(N) and 0<=d<=N • 公开加密密钥 : Kr={er,Nr} • 保存其解密似钥 : • K-1r={d,p,q}

Page 5: 第十讲公钥加密算法  ( 续 )

4 。 RSA 参数选择• 需要选择足够大的素数 p, q • 通常选择小的加密指数 e, 且与 ø(N) 互素• e 对所有用户可以是相同的 • 最初建议使用 e=3• 现在 3 太小• 常使用 e=216-1 = 65535 • 解密指数比较大

Page 6: 第十讲公钥加密算法  ( 续 )

5. RSA Usage

• 要加密消息 M , 发送者要得到接收者的公钥 Kr={er,Nr} • 计算 : C=Mer mod Nr, where 0<=M<N • 为解密 C , 接收者使用私钥• K-1r={d,p,q} • 计算 : M=Cd mod Nr

Page 7: 第十讲公钥加密算法  ( 续 )

6. RSA 理论• RSA 基于 Fermat's Theorem: • if N = pq where p, q are primes, then:Xø(N) = 1 mod N • for all x not divisible by p or q, ie gcd(x,ø(N))=1 • where ø(N)=(p-1)(q-1) • 但在 RSA 中, e & d 是特殊选择的• ie e.d=1 mod ø(N) 或 e.d=1+Rø(N) • hence have:M = Cd = Me.d = M1+Rø(N) = M1.(Mø(N))R = M1.(1)R = M1 mod N •

Page 8: 第十讲公钥加密算法  ( 续 )

8 。 RSA 举例例子:1. 选素数 p=47 和 q = 71 ,得 n=3337, (n)=46×70 = 3220 ;2. 选择 e=79 ,求得私钥 d=e -1 1019(mod 3220 )。3. 公开 n=3337 和 e=79.4. 现要发送明文 688 ,计算:68879(mod 3337)=15705. 收到密文 1570 后,用私钥 d = 1019 进行解密: 15701019 ( mod 3337)=688

Page 9: 第十讲公钥加密算法  ( 续 )

9 。 RSA 安全性 • RSA 安全性基于计算 ø(N) 的困难性 • 要求分解模 N

Page 10: 第十讲公钥加密算法  ( 续 )

10. RSA 的实现问题• 需要计算模 300 digits (or 1024+ bits) 的乘法• 计算机不能直接处理这么大的数• (计算速度很慢)• 需要考虑其它技术,加速 RSA 的实现

Page 11: 第十讲公钥加密算法  ( 续 )

11. RSA – 的快速实现• 加密很快,指数小• 解密比较慢,指数较大• 利用中国剩余定理 CRT ,• CRT 对 RSA 解密算法生成两个解密方程 (利用 M = Cd mod R )• 即 : M1 = M mod p = (C mod p)d mod (p-1)• M2 = M mod q = (C mod q)d mod (q-1) • 解方程 M = M1 mod p • M = M2 mod q • 具有唯一解(利用 CRT ):• :M = [((M2 +q - M1)u mod q] p + M1• 其中 p.u mod q = 1

Page 12: 第十讲公钥加密算法  ( 续 )

12 。 El Gamal 公钥加密方案• Diffie-Hellman key distribution scheme 的变形• 能够用于安全交换密钥• published in 1985 by ElGamal: • T. ElGamal, "A Public Key Cryptosystem and a Si

gnature Scheme Based on Discrete Logarithms", IEEE Trans. Information Theory, vol IT-31(4), pp469-472, July 1985.

• 安全性是基于离散对数 • 缺点:增加了消息长度( 2 倍)

Page 13: 第十讲公钥加密算法  ( 续 )

13 密钥建立• 密钥生成:• 选取一个大素数 p 及本原元 a mod p• 接收者 Bob 有一个密秘钥 xB

• 计算 yB = axB mod p •

Page 14: 第十讲公钥加密算法  ( 续 )

14. El Gamal 加密• 为加密 M • 发送者选择随机数 k, 0<=k<=p-1 • 计算消息密钥 K : • K = yBk mod p • 计算密文对 : C = {C1,C2} • C1 = ak mod p • C2 = K.M mod p • 发送到接收者• k 需要永久保密

Page 15: 第十讲公钥加密算法  ( 续 )

15. El Gamal 解密• 首先计算 message key K • K = C1xB mod p = ak.xB mod p • 计算明文 : • M = C2.K-1 mod p

Page 16: 第十讲公钥加密算法  ( 续 )

16. El Gamal Example• 选择 p=97 及本原根 a=5 • recipient Bob 选择 秘密钥 xB=58 & 计算并发布公钥 yB=558=44 mod 97 • Alice 要加密 M=3 to Bob • 首先得到 Bob 的公开密钥 yB=44 • 选择随机 k=36 计算 :K=4436=75 mod 97 • 计算密文对 : • C1 = 536 = 50 mod 97 • C2 = 75.3 mod 97 = 31 mod 97 • 发送 {50,31} to Bob • Bob 恢复 message key K=5058=75 mod 97 • Bob 计算 K-1 = 22 mod 97 • Bob 恢复明文 M = 31.22 = 3 mod 97

Page 17: 第十讲公钥加密算法  ( 续 )

17 。公钥密码现状• 已知的安全算法是有限域上指数运算 素数域 GF(p) 上的整数运算• 多项式运算 GF(2^n) • 椭圆曲线上的运算 (elliptic curves) (harder to com

pute so use smaller sizes) • 基于其它困难问题的体制

Page 18: 第十讲公钥加密算法  ( 续 )

18. 公钥密码方案的实际应用 • 实现速度 • 通常用于交换对称算法的加密密钥• 数字签名算法(下节内容)

Page 19: 第十讲公钥加密算法  ( 续 )

19 小结• RSA 算法• ElGamal 算法• 实现问题

Page 20: 第十讲公钥加密算法  ( 续 )

Exercises

1. Illustrate the operation of RSA, given the following parameters: System modulus n=119 (7x17) encryption exp e=11

Determine the decryption exponent d, and hence details the public and private keys for this user. Then show how a message M=20 would be encrypted and decrpyted.

Page 21: 第十讲公钥加密算法  ( 续 )

• END!