公钥密码体制
合集下载
第4章公钥密码体制

密钥
为公钥。 不再需要, 以n,e为公钥。私密钥为d。(p, q不再需要, 可以销毁。 可以销毁。)
RSA算法在计算上的可行性
加密和解密
无论是加密还是解密都需要计算某个整数的模n 整数次幂,即C=Me mod n、M=Cd mod n。但不 、 需要先求出整数的幂再对n取模,而可利用模运 算的性质: (a mod n) * (b mod n)= (a*b) mod n 对于Me mod n,可先求出M1 mod n,M2 mod n, M4 mod n……,再求Me mod n
RSA算法 RSA算法
RSA Algorithm
概况
MIT三位年轻数学家, 1979年发现了一种用数 论构造双钥的方法,称作MIT 体制 MIT体制 MIT 体制,后来被 广泛称之为RSA体制 RSA体制 RSA体制。 它既可用于加密、又可用于数字签字。 RSA算法的安全性基于数论中大整数分解的 困难性。 迄今为止理论上最为成熟完善的公钥密码体 制,该体制已得到广泛的应用。
公钥密码体制有4个组成部分
明文:算法的输入,它们是可读信息或数据,用M 表示; 密文:算法的输出。依赖于明文和密钥,对给定的 消息,不同的密钥产生密文不同。用E表示; 公钥和私钥:算法的输入。这对密钥中一个用于加 密,为Ke,此密钥公开;一个用于解密,为Kd,此 密钥保密。加密算法执行的变换依赖于密钥; 加密、解密算法
选p=7,q=17。 求n=p×q=119,φ(n)=(p-1)(q-1)=96。 取e=5,满足1<e<φ(n),且gcd(φ(n),e)=1。确 定满足d·e=1 mod 96且小于96的d,因为 77×5=385=4×96+1,所以d为77。 因此公开钥为{5,119},秘密钥为{77,119}。 设明文m=19,则由加密过程得密文为 C=195 mod 119≡2476099 mod 119=66 解密为6677mod 119=19
公钥密码体制公钥密码体制

首次公开提出了“公开密钥密码编码学”的概念。
这是一个与对称密码编码截然不同的方案。
提出公开密钥的理论时,其实用性并没有又得到证明:
❖ 当时还未发现满足公开密钥编码理论的算法; ❖ 直到 1978 年,RSA 算法的提出。
2.基本特征
❖ 加密和解密使用两个不同的密钥 公钥PK:公开,用于加密,私钥SK:保密,用作解密 密钥
3.优点
❖ 密钥管理
加密密钥是公开的; 解密密钥需要妥善保存; 在当今具有用户量大、消息发送方与接收方具有明显的信息不对称
特点的应用环境中表现出了令人乐观的前景。 新用户的增加只需要产生一对公共/私有密钥。
❖ 数字签名和认证
只有解密密钥能解密,只有正确的接收者才拥有解密密钥。
缺点:公共密钥系统的主要弱点是加密和解密速度慢。
加密与解密由不同的密钥完成; 知道加密算法,从加密密钥得到解密密钥在计算上是不可行的; 两个密钥中任何一个都可以作为加密而另一个用作解密。
6.公钥密码算法
除RSA算法以外,建立在不同计算问题上的其他公钥密码算法 有:
基于因子分解问题的Rabin算法; 椭圆曲线公钥算法; 基于有限域中离散对数难题的ElGamal公钥密码算法 基于代数编码系统的McEliece公钥密码算法; 基于“子集和”难题的Merkle-Hellman Knapsack(背包)公钥密码算 法; 目前被认为安全的Knapsack型公钥密码算法Chor-Rivest。
实际应用中的加密方式
❖ 混合加密技术 对称密码体制:密钥分发困难 公钥体制:加解密效率低 将对称加密算法的数据处理速度和公钥算法对密钥的保 密功能相结合 利用对称加密算法加密传输数据 利用非对称加密算法交换会话密钥
实际应用中的加密方式
第09-12讲 公钥密码体制

陌生人间的保密通信问题 数字签名的问题
– 传统加密算法无法实现抗抵赖的需求
140000 120000 100000 80000 60000 40000 20000 0
密钥量
50
100
200 300 400 用户数
500
图6-1 用户数与密钥量的对应关系
公钥密码体制
公钥密码又称为双钥密码、非对称密码 公钥密码体制提出的标志性文献:
Q
X1 1
X2 0
X3 2760
Y1 0
Y2 1
Y3 167
16
1
0
1
1
-16
167
88
1
-1
-16
17
88
79
例:取p=47, q=61时, n=2867, (n)=(47-1)(61-1)=2760, 可取SK=167,PK=1223
Extended Euclid(f, d) (设 f >d) (X1,X2,X3)←(1,0,f); (Y1,Y2,Y3)←(0,1,d); :loop if Y3=0 then return gcd(f, d)=0; if Y3=1 then return gcd(f, d)=1; Y2=d-1 mod f; Q=X3/Y3 ; (T1,T2,T3)←(X1-QY1,X2QY2,X3-QY3); (X1,X2,X3)←(Y1,Y2,Y3); (Y1,Y2,Y3)←(T1,T2,T3); got o loop
为了提高加密速度,通常取e为特定的小整数,如 EDI国际标准中规定 e=216+1,ISO/IEC9796中甚 至允许取e=3。这时加密速度一般比解密速度快10 倍以上。
RSA密钥的生成
ElGamal公钥密码体制及安全性

下面我们首先计算
γ
2,0
=α
0×(p-1)/2
mod 29
= 20 mod 29 = 1, γ
2,1
=α
1×(p-1)/2mod
29
= 228/2 mod 29
= 28. 因为 = 28 =γ
2,1 ,
0
ß mod 29 = 1828/2 mod 29
所以 a = 1.令
ß = ß α 1 因为
0, 1 e i 1
i
根据目前的计算能力,只有当p-1 的素因子是小素数时,才 能有效分解 p-1求得 。因此,Pohlig-Hellman 算法适用于p1 的素因子是小素数的情况。 例5.8 设p = 29, 则 p-1= 28 = 22×7.设α = 2, ß 18. = 求log 。令log a .
s ( p 1 ) qi
mod p
qi ,s
· ,k, · ·
s = 0, 1,2, ·· i -1. 将这些 q ·
ei i
排成一个
下面利用表L求 a mod q
a mod q
ei i
, i= 1,2,
1 i
· ,k. · ·
e i 1
设
q
ei 1 i
a a q a
0
ß=αd mod p,
所以
k c2(c1d)–1≡mß (α
dk
)
–1
(mod p)
–1(mod
≡mα
dk
(α
dk
)
p) α ∈zp*
≡m(mod p). 因此,解密变换能正确的从密文恢复相应的明文。
5.4.2. ElGamal公钥密码体制的安全性
公钥密码体制及典型算法-RSA

3
对称密码体制的缺陷
密钥分配问题 通信双方要进行加密通信,需要通过秘密的安全信道 协商加密密钥,而这种安全信道可能很难实现; 密钥管理困难问题 在有多个用户的网络中,任何两个用户之间都需 要有共享的秘密钥,当网络中的用户n很大时,需要管理的密钥数目 是非常大 。
n用户保密通信网,用户彼此间进行保密通信需要 2 Cn n(n 1) / 2 个密钥。 n=1000:499500个密钥 n=5000:12497500个密PKB求秘密钥SKB在计算 上是不可行的。 ⑤ 敌手由密文c和B的公开钥PKB恢复明文m 在计算上是不可行的。 ⑥ 加、解密次序可换,即 EPKB[DSKB(m)]=DSKB[EPKB(m)] 其中最后一条虽然非常有用,但不是对 所有的算法都作要求。
26
公钥密码算法应满足的要求
以上要求的本质之处在于要求一个陷门单向 函数。 单向函数是两个集合X、Y之间的一个映射, 使得Y中每一元素y都有惟一的一个原像x∈X,且 由x易于计算它的像y,由y计算它的原像x是不可 行的。这里所说的易于计算是指函数值能在其输入 长度的多项式时间内求出,即如果输入长n比特, 则求函数值的计算时间是na的某个倍数,其中a是 一固定的常数。这时称求函数值的算法属于多项式 类P,否则就是不可行的。例如,函数的输入是n 比特,如果求函数值所用的时间是2n的某个倍数, 则认为求函数值是不可行的。
5
公钥密码体制的基本概念
由私钥及其他密码信息容易计算出公开密钥 (a polynomial time (P-time) problem) 由公钥及算法描述,计算私钥是难的 (an NPtime problem) 因此,公钥可以发布给其他人(wishing to communicate securely with its owner ) 密钥分配问题不是一个容易的问题(the key distribution problem )
对称密码体制的缺陷
密钥分配问题 通信双方要进行加密通信,需要通过秘密的安全信道 协商加密密钥,而这种安全信道可能很难实现; 密钥管理困难问题 在有多个用户的网络中,任何两个用户之间都需 要有共享的秘密钥,当网络中的用户n很大时,需要管理的密钥数目 是非常大 。
n用户保密通信网,用户彼此间进行保密通信需要 2 Cn n(n 1) / 2 个密钥。 n=1000:499500个密钥 n=5000:12497500个密PKB求秘密钥SKB在计算 上是不可行的。 ⑤ 敌手由密文c和B的公开钥PKB恢复明文m 在计算上是不可行的。 ⑥ 加、解密次序可换,即 EPKB[DSKB(m)]=DSKB[EPKB(m)] 其中最后一条虽然非常有用,但不是对 所有的算法都作要求。
26
公钥密码算法应满足的要求
以上要求的本质之处在于要求一个陷门单向 函数。 单向函数是两个集合X、Y之间的一个映射, 使得Y中每一元素y都有惟一的一个原像x∈X,且 由x易于计算它的像y,由y计算它的原像x是不可 行的。这里所说的易于计算是指函数值能在其输入 长度的多项式时间内求出,即如果输入长n比特, 则求函数值的计算时间是na的某个倍数,其中a是 一固定的常数。这时称求函数值的算法属于多项式 类P,否则就是不可行的。例如,函数的输入是n 比特,如果求函数值所用的时间是2n的某个倍数, 则认为求函数值是不可行的。
5
公钥密码体制的基本概念
由私钥及其他密码信息容易计算出公开密钥 (a polynomial time (P-time) problem) 由公钥及算法描述,计算私钥是难的 (an NPtime problem) 因此,公钥可以发布给其他人(wishing to communicate securely with its owner ) 密钥分配问题不是一个容易的问题(the key distribution problem )
第四章-公钥密码体制

(p-1)! = 12…(p-1) [(a mod p)(2a mod p)…((p-1)a mod p)] mod p [a2a…(p-1)a] mod p [ap-1(p-1)!] mod p 注意到(p-1)!与p互素,因此定理成立.
• 推论: p素数,a是任意整数,则: ap a mod p
– M kφ(n)+1=M mod n
RSA算法举例(1)
p = 53,q = 61,n = pq = 3233, φ(n)=52x60 = 3120 令d = 791,则e = 71 令m = RE NA IS SA NC E 即m = 1704 1300 0818 1800 1302 0426 170471 mod 3233 = 3106,…, C = 3106 0100 0931 2691 1984 2927
欧拉定理
• 证明: • R={x1,x2,…,x(n)}为所有小于n且与n互素的正整数,考虑集 合 • S={(ax1mod n), (ax2mod n),…, (ax(n) mod n)} • (aximod n)与n互素 • (aximod n)两两不等: • (aximod n) = (axjmod n) ximod n = xjmod n • S有(n)个元素 • 故S也是所有小于n且与n互素的正整数,因此S=R,从而 xi=(aximod n)((axi)) mod n • (a(n) xi) mod n • 注意到xi 与n互素,从而得到结论.
费马(Fermat)定理
• 若p是素数,a是正整数,且gcd(a,p)=1,则ap1≡1mod p • 证明:考虑集合{1,2,…,p-1},对每个数乘以a,得到 集合{a mod p,2a mod p,…,(p-1)a mod p},对于p, 后者两两不同且都在1与p-1之间,因此两个集合相 同,于是:
• 推论: p素数,a是任意整数,则: ap a mod p
– M kφ(n)+1=M mod n
RSA算法举例(1)
p = 53,q = 61,n = pq = 3233, φ(n)=52x60 = 3120 令d = 791,则e = 71 令m = RE NA IS SA NC E 即m = 1704 1300 0818 1800 1302 0426 170471 mod 3233 = 3106,…, C = 3106 0100 0931 2691 1984 2927
欧拉定理
• 证明: • R={x1,x2,…,x(n)}为所有小于n且与n互素的正整数,考虑集 合 • S={(ax1mod n), (ax2mod n),…, (ax(n) mod n)} • (aximod n)与n互素 • (aximod n)两两不等: • (aximod n) = (axjmod n) ximod n = xjmod n • S有(n)个元素 • 故S也是所有小于n且与n互素的正整数,因此S=R,从而 xi=(aximod n)((axi)) mod n • (a(n) xi) mod n • 注意到xi 与n互素,从而得到结论.
费马(Fermat)定理
• 若p是素数,a是正整数,且gcd(a,p)=1,则ap1≡1mod p • 证明:考虑集合{1,2,…,p-1},对每个数乘以a,得到 集合{a mod p,2a mod p,…,(p-1)a mod p},对于p, 后者两两不同且都在1与p-1之间,因此两个集合相 同,于是:
第7讲 公钥密码体制

二、RSA密码体制
参数选择:
独立地选取两大素数p1和p2(各512bit的数), 计算 n=p1×p2 其欧拉函数值(n)=(p1-1)(p2-1) 随机选一整数e, 1e<(n),((n), e)=1(因而在模(n)下e有逆元) d=e-1 mod (n) 公钥为n,e; 私钥为d (p1, p2不再需要,可以销毁)
* MIPS-年指以每秒执行1,000,000条指令的计算机运行一年
二、RSA密码体制
安全性:分解模数n
技术进展使分解算法和计算能力在不断提高,计算所需的硬件费用在不断下降 RSA-129: 110位十进制数字早已能分解。 Rivest等最初悬赏$100的RSA-129,已经 由包括五大洲43个国家600多人参加,用1600台机子同时产生820条指令数据, 通过Internet网,耗时8个月,于1994年4月2日
但数学上至今还未证明分解模就是攻击RSA的最佳方法,
也未证明分解大整数就是NP问题, 可能有尚未发现的多项式时间分解算法。 人们完全可以设想有另外的途径破译RSA, 如求出解密指数d或找到(p1-1)(p2-1)等。 但这些途径都不比分解n来得容易。 甚至Alexi等[1988]曾揭示,从RSA加密的密文恢复某些比特的困难性也和 恢复整组明文一样困难。 这一视在困难性问题是个NP问题,但还没人证明它为NPC问题。
因为(e1, e2,)=1,所以由Euclidean算法有r e1+s e2=1
计算 (y1-1)-r y2s = x mod n (假设r是负数)
二、RSA密码体制
安全性:低加密指数攻击
小的e可加快加密和验证签字速度,且所需的存储密钥空间小
但若加密钥e选择得太小,则容易受到攻击 网中三用户的加密钥e均选3,分别模n1, n2, n3 (互素,否则可求出公因子,而降低安全性)
RSA公钥密码体制简介

当要对明文进行加密时,可先进行预处理, 计算出m2、m3等,这种方法我们称之为窗口法。
32
例:
计算: 152013(mod 2539) 13 23 1 22 0 2 1 1101 B
(e3 , e2 , e1, e0 ) (1,1,0,1)
152013 mod2539
(((1520e3 )2 1520e2 )2 1520e1 )2 1520e0 (mod 2539) ((15202 1520)2 15200 )2 1520 (mod 2539)
14
RSA算法论证
假设截获密文C,从中求出明文M。他知道 M≡Cd mod n ,
因为n是公开的,要从C中求出明文M,必须先求 出d,而d是保密的。但他知道,
ed≡1 mod φ(n), e是公开的,要从中求出d,必须先求出φ(n),而 φ(n)是保密的。但他又知道,
φ(n)=(p-1)(q-1),
9
RSA算法论证
于是,M tφ(n) =bq+1,其中b为某整数。 两边同乘M, M tφ(n)+1 =bqM+M 。 因为M=ap,故 M tφ(n)+1 =bqap+M =abn+M 。 取模n得, M φ(n)+1 =M mod n 。
10
RSA算法论证
第二种情况:M=0 当M=0时,直接验证,可知命题成立。
加密过程:c=me mod n 解密过程:m=cd mod n
3
2、工作原理
定义:任给一个正整数m,如果用m去除任意两个整 数a、b所得的余数相同,称a、b对模m同余。记 为: a bmodm,若余数不同,则a、b对模m不同余。 记为: a b modm。
定理: a bmodm ,当且仅当m|(a-b)。
32
例:
计算: 152013(mod 2539) 13 23 1 22 0 2 1 1101 B
(e3 , e2 , e1, e0 ) (1,1,0,1)
152013 mod2539
(((1520e3 )2 1520e2 )2 1520e1 )2 1520e0 (mod 2539) ((15202 1520)2 15200 )2 1520 (mod 2539)
14
RSA算法论证
假设截获密文C,从中求出明文M。他知道 M≡Cd mod n ,
因为n是公开的,要从C中求出明文M,必须先求 出d,而d是保密的。但他知道,
ed≡1 mod φ(n), e是公开的,要从中求出d,必须先求出φ(n),而 φ(n)是保密的。但他又知道,
φ(n)=(p-1)(q-1),
9
RSA算法论证
于是,M tφ(n) =bq+1,其中b为某整数。 两边同乘M, M tφ(n)+1 =bqM+M 。 因为M=ap,故 M tφ(n)+1 =bqap+M =abn+M 。 取模n得, M φ(n)+1 =M mod n 。
10
RSA算法论证
第二种情况:M=0 当M=0时,直接验证,可知命题成立。
加密过程:c=me mod n 解密过程:m=cd mod n
3
2、工作原理
定义:任给一个正整数m,如果用m去除任意两个整 数a、b所得的余数相同,称a、b对模m同余。记 为: a bmodm,若余数不同,则a、b对模m不同余。 记为: a b modm。
定理: a bmodm ,当且仅当m|(a-b)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{1,3,6,13,27,52, …} 而 {1,3,4,9,15,25} 不是。
如果序列为超递增序列,则背包问题则是P类问题。
14
MH背包密码的基本思想
利用实际上存在两类不同的背包问题,一类在线性时间 内可解(超递增背包问题),而另一类不能(普通背包问题)。 易解的背包问题可以转化成难解的背包问题。公钥使用难解 的背包问题,它可很容易地被用来加密明文但不能用来解密 密文。私钥使用易解的背包问题,它给出一个解密的简单方 法。不知道私钥的人要破解密文就不得不解一个难解的背包 问题。
i=1
利用已知u并根据uv=1 (mod p) ,可求得v。
下面作变换称为墨科-赫尔曼(Merkle-Hellman)变换:
ak≡ubk(mod p),k=1,2,…,n 非超递增序列{ai}和p作为公钥; 超递增序列{bi}和v作为私钥;
12
背包问题
已知一长度 b 的背包及长度分别为 a1,a2,… ,an 的 n 个物品。假定这些物品的半径和背包相同,若从这 n 个物品 中选出若干物品使得恰好装满这个背包。
公式化的描述为:给定一个正整数集A={a1,a2,…,an},已 知b是A的某子集中元素的和。问题是,找到一个n元的0 、1
向量X=(x1,x2,…,xn)使得:
n
∑ aixi = b
i =1
这是一个NP问题。
其中a1, a2, … , an 和 b 都是正整数。
13
超递增序列
如果序列 a1, a2, … , an 满足条件:
i −1
∑ ai > a j (i = 2,3,..., n) j =1
则称该序列为超递增序列。 例如: {1,2,4,8, … ,2n }
数字签名问题
对称密码体制中通信双方拥有同样的密钥, 所以接收方可以伪造签名,发送方也可以 否认发送过某消息,难于解决陌生人之间 的身份认证和交易信息认证的问题。
6
加解密模型
¾发送方A查找接受方B的公钥。 ¾A采用公钥加密算法以B的公钥作为加密密钥对明文加密。 ¾A通过不安全信道将密文发送给B。 ¾B收到密文后使用自己的私钥对密文解密还原出明文。
4
引言
在公钥密码体制以前的整个密码学发展史中,所有的密码 算法,包括原始手工计算的、由机械设备实现的以及由计算机 实现的,都是基于代换和换位这两个基本方法,建立在位(字 符)方式的操作上。
而公钥密码体制则为密码学的发展提供了新的理论和技术 思想,一方面公钥密码算法是建立在数学函数基础上的,而不 是建立在位(字符)方式的操作上的 ;另一方面公钥密码算法是 以非对称的形式使用两个密钥,两个密钥的使用对密钥分配、 认证等都有着深刻的意义。可以说,公钥密码体制的出现在密 码学发展史上是一次质的飞跃。
公钥密码体制
本讲主要内容
公钥密码体制的简介 背包问题 RSA算法 ElGamal算法 ECC算法 IBE算法
3
回顾
保密通信进入计算机网络时代,传统密码体制逐渐暴露其 固有的弱点,当时主要体现密钥管理。 1976年W.Diffie和Hellman 在《密码学的新方向》中首次 提出了公钥密码算法的思想。 1978年后Rivest,Shamir和Adleman提出的RSA算法体现了 公钥算法的思想,并具有实用性。 公钥密码体制是现代密码学的一个标志,到目前为止,是 密码学史上最大也是唯一真正的革命。 公钥密码引起密码界高度关注,并得到迅速的发展,尤其 在信息安全的应用中涉及公钥密码技术。
¾私钥和公钥是如何生成的,它们之间有着怎样的关系; ¾安全的密钥长度是多少; ¾公钥密码体制的安全性依赖的数学难题是什么; ¾如何实现加密算法(公钥加密),以及解密算法(私钥解密),
反之亦然(数字签名);
¾现在这种公钥密码体制的安全分析。
10
常用算法
背包问题(NP问题)。
背包算法
基于大整数素因子分解问题。
5
对称密码体制的缺陷
密钥分配问题
通信双方要进行加密通信,需要通 过秘密的安全信道协商加密密钥, 而这种安全信道在实际中很难实现。
密钥管理问题
在有n个用户的通信网络中,每个用户要想和其它n-1 个用户进行通信,必须使用n-1个密钥,而系统中的 总密钥量将达到n(n-1)/2。当n较大时,这样大的密钥 量,在产生、保存、传递、使用和销毁等各个环节中 都会变得很复杂,存在着安全隐患。
c = Epk (m) 在计算上是容易的。 B
¾接收方B用自己的私钥对c解密,即m = DskB (c) 在计算上是容
易的。
¾攻击方由B的公钥PKB求私钥SKB在计算上是不可行的。 ¾攻击方由密文c和B的公钥PKB恢复明文m或求私钥SKB (选择
明文攻击)在计算上是不可行的。
9
公钥密码算法思考的主要问题
B的公钥 不安全信道
文
A
接受方
解密算法 明 文 B
7
基本原理(陷门单向函数)
¾正向计算容易。即如果知道密钥 Pk 和消息M,容易计
算 C= fp (M) 。 k
¾在不知道密钥 Sk 的情况下,反向计算不可行。即如果只
知道加密后的消息C而不知道密钥 S k ,则计算不可
将消息编码为背包问题的解。明文分组长度等于堆中物 品个数,且明文位与b的值相对应,密文是计算得到的和值。
15
公私钥对的生成
公 开 的 背 包 序 列 a1,a2,…,an 是 由 超 递 增 序 列
b1,b2,…,bn 进行以下变换得到的。
选取素数p和u,且
p
>
n
∑
bi
,1 ≤ u ≤
p −1 。
RSA,Rabin等
基于有限域乘法群上的离散对数问题。
Elgamal(DS)。
椭园曲线上的离散对数问题。
ECC。
基于身份的密码体制
IBE。
11
背包算法简介
¾由默克尔(Merkle)和赫尔曼(Hellman)提出的; ¾最早提出的公开密钥算法; ¾安全性源于背包问题,是一个NP问题; ¾大部分是不安全的,很少使用;
行 M = f −1(C) 。
¾在知道密钥 Sk 的情况下,反向计算容易。即如果同时知
道加密消息C和密钥 Sk
,则计算
M
=
f
−1 Sk
(C)
是容易的。这
里的密钥 Sk 相当于陷门,它和 Pk 配对使用。
8
公钥密码算法应满足的要求
¾接收方B产生密钥对(公钥PKB和私钥SKB)在计算上是容易
的。
¾发送方A用接收方的公钥对消息m加密以产生密文c,即
如果序列为超递增序列,则背包问题则是P类问题。
14
MH背包密码的基本思想
利用实际上存在两类不同的背包问题,一类在线性时间 内可解(超递增背包问题),而另一类不能(普通背包问题)。 易解的背包问题可以转化成难解的背包问题。公钥使用难解 的背包问题,它可很容易地被用来加密明文但不能用来解密 密文。私钥使用易解的背包问题,它给出一个解密的简单方 法。不知道私钥的人要破解密文就不得不解一个难解的背包 问题。
i=1
利用已知u并根据uv=1 (mod p) ,可求得v。
下面作变换称为墨科-赫尔曼(Merkle-Hellman)变换:
ak≡ubk(mod p),k=1,2,…,n 非超递增序列{ai}和p作为公钥; 超递增序列{bi}和v作为私钥;
12
背包问题
已知一长度 b 的背包及长度分别为 a1,a2,… ,an 的 n 个物品。假定这些物品的半径和背包相同,若从这 n 个物品 中选出若干物品使得恰好装满这个背包。
公式化的描述为:给定一个正整数集A={a1,a2,…,an},已 知b是A的某子集中元素的和。问题是,找到一个n元的0 、1
向量X=(x1,x2,…,xn)使得:
n
∑ aixi = b
i =1
这是一个NP问题。
其中a1, a2, … , an 和 b 都是正整数。
13
超递增序列
如果序列 a1, a2, … , an 满足条件:
i −1
∑ ai > a j (i = 2,3,..., n) j =1
则称该序列为超递增序列。 例如: {1,2,4,8, … ,2n }
数字签名问题
对称密码体制中通信双方拥有同样的密钥, 所以接收方可以伪造签名,发送方也可以 否认发送过某消息,难于解决陌生人之间 的身份认证和交易信息认证的问题。
6
加解密模型
¾发送方A查找接受方B的公钥。 ¾A采用公钥加密算法以B的公钥作为加密密钥对明文加密。 ¾A通过不安全信道将密文发送给B。 ¾B收到密文后使用自己的私钥对密文解密还原出明文。
4
引言
在公钥密码体制以前的整个密码学发展史中,所有的密码 算法,包括原始手工计算的、由机械设备实现的以及由计算机 实现的,都是基于代换和换位这两个基本方法,建立在位(字 符)方式的操作上。
而公钥密码体制则为密码学的发展提供了新的理论和技术 思想,一方面公钥密码算法是建立在数学函数基础上的,而不 是建立在位(字符)方式的操作上的 ;另一方面公钥密码算法是 以非对称的形式使用两个密钥,两个密钥的使用对密钥分配、 认证等都有着深刻的意义。可以说,公钥密码体制的出现在密 码学发展史上是一次质的飞跃。
公钥密码体制
本讲主要内容
公钥密码体制的简介 背包问题 RSA算法 ElGamal算法 ECC算法 IBE算法
3
回顾
保密通信进入计算机网络时代,传统密码体制逐渐暴露其 固有的弱点,当时主要体现密钥管理。 1976年W.Diffie和Hellman 在《密码学的新方向》中首次 提出了公钥密码算法的思想。 1978年后Rivest,Shamir和Adleman提出的RSA算法体现了 公钥算法的思想,并具有实用性。 公钥密码体制是现代密码学的一个标志,到目前为止,是 密码学史上最大也是唯一真正的革命。 公钥密码引起密码界高度关注,并得到迅速的发展,尤其 在信息安全的应用中涉及公钥密码技术。
¾私钥和公钥是如何生成的,它们之间有着怎样的关系; ¾安全的密钥长度是多少; ¾公钥密码体制的安全性依赖的数学难题是什么; ¾如何实现加密算法(公钥加密),以及解密算法(私钥解密),
反之亦然(数字签名);
¾现在这种公钥密码体制的安全分析。
10
常用算法
背包问题(NP问题)。
背包算法
基于大整数素因子分解问题。
5
对称密码体制的缺陷
密钥分配问题
通信双方要进行加密通信,需要通 过秘密的安全信道协商加密密钥, 而这种安全信道在实际中很难实现。
密钥管理问题
在有n个用户的通信网络中,每个用户要想和其它n-1 个用户进行通信,必须使用n-1个密钥,而系统中的 总密钥量将达到n(n-1)/2。当n较大时,这样大的密钥 量,在产生、保存、传递、使用和销毁等各个环节中 都会变得很复杂,存在着安全隐患。
c = Epk (m) 在计算上是容易的。 B
¾接收方B用自己的私钥对c解密,即m = DskB (c) 在计算上是容
易的。
¾攻击方由B的公钥PKB求私钥SKB在计算上是不可行的。 ¾攻击方由密文c和B的公钥PKB恢复明文m或求私钥SKB (选择
明文攻击)在计算上是不可行的。
9
公钥密码算法思考的主要问题
B的公钥 不安全信道
文
A
接受方
解密算法 明 文 B
7
基本原理(陷门单向函数)
¾正向计算容易。即如果知道密钥 Pk 和消息M,容易计
算 C= fp (M) 。 k
¾在不知道密钥 Sk 的情况下,反向计算不可行。即如果只
知道加密后的消息C而不知道密钥 S k ,则计算不可
将消息编码为背包问题的解。明文分组长度等于堆中物 品个数,且明文位与b的值相对应,密文是计算得到的和值。
15
公私钥对的生成
公 开 的 背 包 序 列 a1,a2,…,an 是 由 超 递 增 序 列
b1,b2,…,bn 进行以下变换得到的。
选取素数p和u,且
p
>
n
∑
bi
,1 ≤ u ≤
p −1 。
RSA,Rabin等
基于有限域乘法群上的离散对数问题。
Elgamal(DS)。
椭园曲线上的离散对数问题。
ECC。
基于身份的密码体制
IBE。
11
背包算法简介
¾由默克尔(Merkle)和赫尔曼(Hellman)提出的; ¾最早提出的公开密钥算法; ¾安全性源于背包问题,是一个NP问题; ¾大部分是不安全的,很少使用;
行 M = f −1(C) 。
¾在知道密钥 Sk 的情况下,反向计算容易。即如果同时知
道加密消息C和密钥 Sk
,则计算
M
=
f
−1 Sk
(C)
是容易的。这
里的密钥 Sk 相当于陷门,它和 Pk 配对使用。
8
公钥密码算法应满足的要求
¾接收方B产生密钥对(公钥PKB和私钥SKB)在计算上是容易
的。
¾发送方A用接收方的公钥对消息m加密以产生密文c,即