430 likes | 670 Views
第九章 公钥密码学. 对称密码体制的缺陷:. 9.1 公钥密码学思想. 定义 9.1.1 一个公钥密码体制是这样的一个 5 元组 {M,C,K , E K , D K } ,且满足如下的条件: 1.M 是可能消息的集合; 2.C 是可能的密文的集合; 3. 密钥空间 K 是一个可能密钥的有限集;
E N D
9.1公钥密码学思想 • 定义9.1.1一个公钥密码体制是这样的一个5元组{M,C,K,EK,DK},且满足如下的条件: • 1.M是可能消息的集合; • 2.C是可能的密文的集合; • 3. 密钥空间K是一个可能密钥的有限集; • 4.对每一个K={K1,K2} ∈K,都对应一个加密算法EK1∈ E, EK1:M→C和解密算法DK2∈ D,DK2:C → M,满足对于任意的m ∈ M,都有c= EK1(m),m= DK2(c)=DK2(EK1(m))=m; • 5.对于所有的KK,在已知E的情况下推出D是计算上不可能的; • 对每一个K∈ K,函数EK1和DK2都是多项式时间可计算的函数。EK1是一个公开函数,K1称作公钥;而DK2是一个秘密函数,K2称作私钥,由用户秘密地保存。
public-key/two-key/asymmetric包括两个密钥: • 公开密钥(a public-key), 可以被任何人知道, 用于加密或验证签名 • 私钥( private-key), 只能被消息的接收者或签名者知道,用于解密或签名 • 加密或验证签名者不能解密或多或生成签名. • 是密码学几千年历史中最有意义的结果
4.公钥密码理论 • 由私钥及其他密码信息容易计算出公开密钥 (a polynomial time (P-time) problem) • 由公钥及算法描述,计算私钥是难的 (an NP-time problem) • 因此,公钥可以发布给其他人(wishing to communicate securely with its owner ) • 密钥分配问题不是一个容易的问题(the key distribution problem )
5.公钥算法分类 • Public-Key Distribution Schemes (PKDS) • 用于交换秘密信息(依赖于双方主体) • 常用于对称加密算法的密钥 • Public Key Encryption (PKE) • 用于加密任何消息 • 任何人可以用公钥加密消息 • 私钥的拥有者可以解密消息 • 任何公钥加密方案能够用于密钥分配方案PKDS • 许多公钥加密方案也是数字签名方案 • Signature Schemes • 用于生成对某消息的数字签名 • 私钥的拥有者生成数字签名 • 任何人可以用公钥验证签名
6.公钥的安全性 • 依赖于足够大大的困难性差别 • 类似与对称算法,穷搜索在理论上是能够破解公钥密码 exhaustive search • 但实际上,密钥足够长 (>512bits) • 一般情况下,有一些已知的困难问题(hard problem” • 要求足够大的密钥长度 (>512 bits) • 导致加密速度比对称算法慢
2. RSA (Rivest, Shamir, Adleman) • 使用最广泛的公钥加密算法 • Rivest, Shamir & Adleman (RSA) in 1977 • R L Rivest, A Shamir, L Adleman, "On Digital Signatures and Public Key Cryptosystems", Communications of the ACM, vol 21 no 2, pp120-126, Feb 1978
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}
4。RSA 参数选择 • 需要选择足够大的素数 p, q • 通常选择小的加密指数e,且与ø(N)互素 • e对所有用户可以是相同的 • 最初建议使用e=3 • 现在3太小 • 常使用 e=216-1 = 65535 • 解密指数比较大
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
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
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)=1570 5.收到密文1570后,用私钥d=1019进行解密: 15701019(mod 3337)=688
9。RSA 安全性 • RSA 安全性基于计算 ø(N)的困难性 • 要求分解模N
10. RSA的实现问题 • 需要计算模 300 digits (or 1024+ bits) 的乘法 • 计算机不能直接处理这么大的数 • (计算速度很慢) • 需要考虑其它技术,加速RSA的实现
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
9.2.3概率素性检测 • 定义9.2.3:如果P是素数,且a小于p,如果至少存在一个x∈ [1,p-1]满足x2≡a(modp),则我们称a是模p的二次剩余(quadratic residue)。 • 定义9.2.4:设p是一奇素数,对任何a≧0,我们定义勒让德符号(Legendre symbol)L(a,p)为 0 如果a ≡ 0(modp) L(a,p)= 1 如果a是模p的二次剩余 -1 如果a是p的非二次剩余 • 定理9.2.1(欧拉准则):设p是素数,那么x是模p的二次剩余当且仅当 x(P-1)/2≡ 1(modp)
推论9.2.1:假设p是素数,那么L(a,p) ≡ a(P-1)/2(modp) • 定义9.2.5:雅可比符号(Jacobi symbol),记作J(a,n),是勒让德符号的一般化表示,它定义在任意正整数a和奇整数n上。设n的素数因子分解式为pe1……pek,则 J(a,n)=L(a,p1)e1…L(a,p)ek
对一个奇整数n的Solovay-strassen素性测试 1. 选择一随机整数a,满足a∈ [1,n-1] 2.如果J(a,n)=a(n-1)/2modn 则 • 回答“n是素数” • 否则 回答“n是合数”
7.Diffie-Hellman 密钥分配方案 • 公钥密码问世 • Diffie & Hellman in 1976: • 密钥交换的实际方法 • 公钥方案概念的提出 • W Diffie, M E Hellman, "New directions in Cryptography", IEEE Trans. Information Theory, IT-22, pp644-654, Nov 1976 • James Ellis (UK CESG) 在案970年曾提出此概念
12。El Gamal 公钥加密方案 • Diffie-Hellman key distribution scheme 的变形 • 能够用于安全交换密钥 • published in 1985 by ElGamal: • T. ElGamal, "A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms", IEEE Trans. Information Theory, vol IT-31(4), pp469-472, July 1985. • 安全性是基于离散对数 • 缺点:增加了消息长度(2倍)
13 密钥建立 • 密钥生成: • 选取一个大素数p及本原元a mod p • 接收者 Bob有一个密秘钥 xB • 计算 yB = axB mod p
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需要永久保密
15. El Gamal 解密 • 首先计算 message key K • K = C1xB mod p = ak.xBmod p • 计算明文: • M = C2.K-1mod p
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
9.4 基于纠错码的公钥密码体制 • 纠错码理论中的NPC问题。 • 问题1 陪集重量问题 • 问题2 重量分布问题 • 问题3 最小距离问题 • 当前关于建立基于纠错码的密码体制很多是基于传统的Hamming距离的。
9.5椭圆曲线公钥体制 1.椭圆曲线 • 定义9.5.1:设p是一个大于3的素数,在Zp上的椭圆曲线y2=x3+ax+b 由一个基于同余式y2=x3+ax+b modp的解集(x,y)∈Zp*Zp和一个称为无穷远点的特定点O组成,这里的a,b∈ Zp是二个满足4a+27b≡0 modp 的常数。
椭圆曲线上的运算 • 设P=(x1,y1) ∈E, Q=(x2,y2) ∈ E, 若 x1=x2且y1=-y2 ,那么 P+Q=O;否则P+Q=(x3,y3) ,这里的x3=λ2-x1-x2,y3=λ (x1-x3)-y1. x3=
2.椭圆曲线密码体制 定理9.5.1(Hasse定理):如果E是定义在域GF(q)上的椭圆曲线,N是E上的点(x,y) ∈GF(q)的数目,则
椭圆曲线密码体制有如下的一些特点 : • 1.在安全性相当的前提下, 可使用较短的密钥. • 2.椭圆曲线密码体制是建立在一个不同于大整数分解及素域乘法群离散对数问题的数学难题之上. • 3 椭圆曲线资源丰富, 同一个有限域上存在着大量不同的椭圆曲线, 这为安全性增加了额外的保证。 • 4. 在执行速度方面,椭圆曲线密码体制较对应的离散对数体制要快, 且在签名和解密方面较RSA 快, 但在签名验证和加密方面较RSA 慢. • 5.椭圆曲线密码体制的安全性分析成果并不丰硕. 也许这可视为椭圆曲线密码体制具有高强度的一种证据,因此, 大多数密码学家对这种密码体制的前景持乐观态度.
9.6其他公开密钥密码体制 9.6.1Goldwasser-Micali概率公开密钥密码系统
Goldwasser-Micali概率公开密钥密码系统的安全性分析与讨论Goldwasser-Micali概率公开密钥密码系统的安全性分析与讨论 • 对于攻击者来说,当他截获到密文(C1,C2,…,Ck)时,他能求出J(Ci,n) ,但当mi=0,J(Ci,n)= J(xi2,n)=1,当mi=1, J(yxi2,n)= J(y,n)J(xi2,n)=1,攻击者无法获得其它的任何信息,而对A来说,因为他拥有私有密钥p和q ,可求出J(Ci,p),J(Ci,q) , 从而得到明文。 • 从传输效率来看,由于明文对应至[1,n-1]之间,故其效率为,|n|为n的长度。效率非常差 。
9.6.3有限自动机公开密钥密码体制 • 此类体制是基于分解两个有限自动机的合成也是困难的而构造的,尤其是当其中的一个或两个为非线性时,难度就会更大。
小结 • 公钥密码学是现代密码学的很重要的组成部分,本章主要介绍了公钥密码的思想和几种基于计算复杂性的公钥密码体制。 • 公钥密码的思想 • RSA体制 • 基于纠错码的公钥密码体制 • 基于椭圆曲线的公钥密码体制。