公钥密码体制公钥密码体制
第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
第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密钥的生成
公钥密码体制加密及签名的原理

公钥密码体制加密及签名的原理
公钥密码体制是一种基于非对称密码算法的密码体制,其中包括加密和签名两个过程。
加密原理:
1. 首先,生成一对密钥,即公钥和私钥。
公钥可以公开,供他人使用,而私钥只能由密钥的拥有者保密。
2. 使用公钥对要传输的明文进行加密。
公钥加密是一种单向操作,即使用公钥加密的数据只能使用相应的私钥进行解密。
3. 将加密后的密文发送给接收者。
4. 接收者收到密文后,使用自己的私钥进行解密,得到原始的明文。
签名原理:
1. 所发送的消息使用发送者的私钥进行加密生成签名。
加密操作可以确保除发送者外的其他人无法更改签名。
2. 发送签名和原始消息给接收者。
3. 接收者使用发送者的公钥对签名进行解密,得到原始的消息。
4. 接收者还可以使用发送者的公钥对原始的消息进行解密,以验证签名的真实性和完整性。
总结:
公钥密码体制通过使用非对称密钥对(公钥和私钥)进行加密和解密,实现了加密和签名的功能。
加密过程使用接收者的公钥对消息进行加密,只有接收者的私钥才能解密。
签名过程使用发送者的私钥对消息进行加密,接收者使用发送者的公钥对
签名进行解密,以验证签名的真实性和完整性。
这种体制保证了信息的机密性和完整性。
公钥密码体制加密及签名的原理

公钥密码体制加密及签名的原理
公钥密码体制是一种使用公钥加密和私钥解密的密码体制。
它有两个主要的应用:加密和签名。
加密的原理:加密方使用接收方的公钥将明文加密,加密后的密文只能使用接收方的私钥进行解密。
这样,只有接收方才能解密得到明文,从而实现了加密和保护数据的目的。
签名的原理:签名方使用自己的私钥对消息进行签名,签名后的消息和签名一起传送给验证方。
验证方使用签名方的公钥对接收到的签名进行验证,如果验证成功,则说明消息的真实性和完整性得到了保证。
因为私钥是唯一的,只有签名方能够生成正确的签名,其他人无法伪造签名,因此可以使用签名来验证消息的身份和完整性。
公钥密码体制的安全性基于两个关键问题:一是计算性难题的难解性,例如大数分解问题和离散对数问题;二是公钥和私钥的关联性,即通过公钥无法计算出私钥。
公钥密码体制通过使用不同的数学原理和算法来实现加密和签名功能,常用的公钥密码体制包括RSA算法、椭圆曲线密码算法(ECC)和椭圆曲线数字签名算法(ECDSA)等。
这些算法利用数论、代数和椭圆曲线等数学原理,结合计算机算法的运算和模运算,在保证安全性的前提下,实现了公钥密码体制的加密和签名功能。
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公钥密码体制的安全性
第四章-公钥密码体制

• 推论: 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公钥密码体制简介

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)。
公钥密码体制

基于公开密钥的加密过程
图4.1 公钥密码体制的通信保密过程
基于公开密钥的鉴别过程
图4.2 公钥密码体制的数字签名和验证签名过程
公钥密钥的应用范围
加密/解密 数字签名(身份鉴别) 密钥交换
5.1.4 公钥密码系统基本思想和要求
1、涉及到各方:发送方、接收方、攻击者 2、涉及到数据:公钥、私钥、明文、密文 3、公钥算法的条件: – 产生一对密钥是计算可行的; – 已知公钥和明文,产生密文是计算可行的; – 接收方利用私钥来解密密文是计算可行的; – 对于攻击者,利用公钥来推断私钥是计算不可行的 – 已知公钥和密文,恢复明文是计算不可行的; – (可选)加密和解密的顺序可交换。
5.1.2 公钥密码体制的起源
公钥密码又称为双钥密码和非对称密码,是1976年 由Diffie和Hellman在其“密码学新方向”一文中提 出的,见划时代的文献:W.Diffie and M.E.Hellman, New Directrions in Cryptography, IEEE Transaction on Information Theory, V.IT-22.No.6, Nov 1976,PP.644-654 RSA公钥算法是由Rivest,Shamir和Adleman在 1978年提出来的, 见Communitions of the ACM. Vol.21.No.2. Feb.1978, PP.120-126
Euler定理: 若a与n为互素的正整数,则: aφ (n)≡1modn,推论: 若n=pq, p≠q都是素数, k是任意整数,mkφ (n)+1≡m k(p-1)(q-1)+1 ≡m mod n, 对任意0≤m≤n 证明φ (n)= (p-1)(q-1)
什么是公钥密码体制

什么是公钥密码体制
公钥密码体制也称非对称密码体制或者双钥密码体制,是基于数学函数(如单向陷门函数)而不是基于置换和代换的工具。
公钥密码算法的最大特点是采用两个相关密钥将加密和解密能力分开,其中一个是公开的,称为公钥,用于加密;其中一个是为用户专用的,是保密的,称为私钥,用于解密。
公钥密码体制是为了解决对称密码体制中最难解决的2个问题而提出的:
1.密钥分配问题:在对称密码中,接受方和发送方使用相同密钥。
一般情况下该密钥
通过加密信道进行传输。
但是加密信道可能会被攻击者攻击。
2.数字签名问题:如果使用对称加密来进行数字签名,那么在对密钥进行管理和分发
时带来被攻击者攻击的问题。
在公钥密码体制中存在2个密钥:公钥,私钥。
公钥和加密算法是公开的,公钥用于加密数据;私钥是保密的,用于解密。
以上内容仅供参考,如需获取更多详细信息,建议查阅公钥密码体制相关的资料或咨询数学领域专业人士。
信息安全概论第四章公钥密码体制

14
Diffie-Hellman密钥交换算法 密钥交换算法
Diffie和Hellman在其里程碑意义的文章中, 虽然给出了密码的思想,但是没有给出真正意 义上的公钥密码实例,也既没能找出一个真正 带陷门的单向函数 然而,他们给出单向函数的实例,并且基于此 提出Diffie-Hellman密钥交换算法
13
常用的公开密钥算法
公钥算法的种类很多,具有代表性的三种密码: 公钥算法的种类很多,具有代表性的三种密码: 基于整数分解难题(IFP)的算法体制 基于整数分解难题(IFP)的算法体制(RSA) 基于离散对数难题(DLP)算法体制 基于离散对数难题(DLP)算法体制(ElGamal) 基于椭圆曲线离散对数难题( ECDLP ) 的算法体制 基于椭圆曲线离散对数难题 ( ECDLP) (ECC)
3
4.1 公钥密码体制的基本原理
对称算法的不足
(1)密钥管理量的困难 传统密钥管理:两两分别用一个密钥时, 传统密钥管理:两两分别用一个密钥时,则n个用户需 C(n,2)=n(n-1)/2个密钥 当用户量增大时, 个密钥, 要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密钥空 间急剧增大。 间急剧增大。如: n=100 时, C(100,2)=4,995 n=5000时 n=5000时, C(5000,2)=12,497,500 (2)密钥必须通过某一信道协商,对这个信道的安全 密钥必须通过某一信道协商, 性的要求比正常的传送消息的信道的安全性要高
7
公开密钥密码的重要特性
加密与解密由不同的密钥完成 Y: X: Y = EKU(X) X = DKR(Y) = DKR(EKU(X))
加密: X 解密: Y
知道加密算法,从加密密钥得到解密密钥在计算上 , 是不可行的 两个密钥中任何一个都可以用作加密而另一个用 作解密(不是必须的) X = DKR(EKU(X))
第4章公钥密码体制

4.2.3 乘法逆元
如果gcd(a,b)=1,那么: 存在a-1,使a* a-1 ≡1 mod b 存在b-1,使b* b-1 ≡1 mod a 这里,把a-1称为a模b的乘法逆元, b-1称为b 模a的乘法逆元
用扩展的欧几里德算法求乘法逆元
gcd(11111,12345)
12345=1*11111+1234 11111=9*1234+5 1234=246*5+4 5=1*4+1 4=4*1+0
characteristic of algorithms
It is computationally infeasible to determine the decryption key given only knowledge of the cryptographic algorithm and the encryption key. Either of the two related keys can be used for encryption, with the other used for decryption.
4.2 数论基础
数论中的许多概念在设计公钥密码算法时是 必不可少的.掌握这些基础知识对于理解公 钥密码体制的原理和应用十分重要.
整 除
定理:设整数a和b,如果存在整数k,使 b=ak,则说b能被a整除,记作:a|b 例:3|15,-15|60 性质:
对所有整数a≠0, a|0, a|a成立 对任意整数b, 1|b成立
本原根的性质
如果a是n的本原根,且:
x1=a1 mod n,x2=a2 mod n,…,xФ(n)=aФ(n) mod n
则:
x1≠x2≠…≠xФ(n),且xФ(n)=1
chapter 5 公钥密码体制(ro)

3. 计算离散对数不因数分解有着密切的关系,如果能成功解 决离散对数问题,则也能解决因子分解问题。(注:其逆命 题的正确性还有待证明)
主要内容
• • • • • • • 问题提出与公钥密码基本概念 公钥密码基本应用 陷门单向函数 RSA密码体制 DH密钥交换算法 离散对数密码体制 椭圆曲线密码体制
群
• 群的概念
– 是由一个非空集合G组成,在集合G中定义了一个二元运算符“· ”, – 并满足以下性质的代数系统,记为{G, ·}
离散对数问题
1. 设p是一大素数,a < p,已知x,求解ax (mod p)的模指数 运 算比较容易。模指数运算的逆问题是找出某个数的离散对 数,即:已知y, a以及大素数p ,求x使得:ax = y (mod p)。 2. 在素数域中有三种计算离散对数的方法:
陷门单向函数
定义 陷门单向函数是一类满足下述条件的单向函数: (1) 正向计算容易。若已知Pk和消息x, y=f Pk(x) (2) 在不知密钥Sk (Sk是陷门信息)的情况下, 反向计算是不可行的。
(3) 在已知密钥Sk的情况下,反向计算是容易的。 即 x=f -1Sk(y)
(3) 公钥系统
在一个公钥系统中,所有用户共同选定一个陷门单 向函数,加密运算E。用户i从陷门集中选定zi,并 公开Ezi。
–传统加密算法无法实现抗抵赖的需求
公钥密码体制
• 公钥密码又称为双钥密码、非对称密码 • 公钥密码体制提出的标志性文献:
– W.Diffie and M.E.Hellman, New Directions in Cryptography, IEEE Transaction on Information Theory, V.IT-22.No.6, Nov 1976, PP.644-654
公钥密码体制RSA介绍

3
1
公钥密码体制概述
公钥密码体制的要求 用户:产生密钥对K=(PK, SK)在计算上是可行的 发送方:已知公钥与明文,产生密文是容易的 接收方:利用私钥解密密文在计算上是可行的 攻击者:利用公钥求解私钥在计算上是不可行的 攻击者:已知公钥与密文,在不知道私钥的情况下, 恢复明文在计算上是不可行的
4
Zn上的模n运算 设n的二进制表示有 0≤m1, m2≤n-1. 上的模 运算:设 的二进制表示有k, ≤ 运算 的二进制表示有
m1+m2 (mod n): O(k) m1-m2 (mod n): O(k) m1×m2 (mod n): O(k2) (m1) -1 (mod n): O(k3) (m1)c (mod n): O(k2 ×logc) (平方-乘算法).
18
RSA的安全参数 RSA的安全参数
p和q要足够大 n=pq 为1024位, 或2048位. 和 要足够大 要足够大: 位 位 p和q应为强素数 和 应为强素数 应为强素数(strong prime). 如果素数p 满足以下条件, 则称为强素数. (1) p -1有大素数因子r; (2) p+1有大素数因子s; (3) r-1有大素数因子t. 例如: 理想的强素数为: r=2t+1; p=2r+1=4t+3; p=2s-1.
9
2
RSA密码体制 RSA密码体制
例4.1 设p=11, q=13. 令 n=11×13=143 , × φ(n)=(p-1)(q-1)=(11-1)(13-1)=120, 取公钥: PK=(n, e)=(143, e=17), 计算: d=e-1=17-1=113 (mod 120) (因为: 17×113=1921=16×120+1). 私钥: SK=(p, q , d) =(11, 13, 113). 对于明文: m=24, 密文: c=EPK(m)=2417=7 (mod 143). 对于密文: c=7, 解密: m=DSK(c)=7113=24 (mod 143 ).
公钥密码体制的原理与应用方法

公钥密码体制的原理与应用方法公钥密码体制(Public Key Cryptography)是一种密码学的方法,它使用了一对密钥,即公钥和私钥,用于加密和解密数据。
下面是公钥密码体制的原理和应用方法的简要解释:原理:1. 公钥和私钥对:公钥和私钥是一对相关联的密钥,它们由密码系统的用户生成。
公钥是公开的,可以向任何人公开,用于加密数据。
私钥是保密的,只有密钥的拥有者可以使用它来解密数据。
2. 加密和解密过程:发送方使用接收方的公钥对数据进行加密,只有拥有对应私钥的接收方才能解密数据。
这样,即使公钥被泄露,数据仍然是安全的,因为只有私钥才能解密它。
3. 数字签名:公钥密码体制还可以用于数字签名。
发送方使用自己的私钥对数据进行签名,接收方可以使用发送方的公钥验证签名的真实性。
这样,接收方可以确认数据的完整性和来源。
应用方法:1. 数据加密:公钥密码体制广泛应用于数据加密,包括互联网通信、电子邮件、电子商务等领域。
发送方可以使用接收方的公钥对数据进行加密,确保数据在传输过程中的机密性。
2. 数字签名和身份验证:公钥密码体制可用于生成和验证数字签名,以确保数据的完整性和身份验证。
接收方可以使用发送方的公钥验证数字签名,确认数据来自发送方且未被篡改。
3. 密钥交换:公钥密码体制可用于安全地进行密钥交换。
发送方使用接收方的公钥加密共享密钥,并将其发送给接收方。
接收方使用自己的私钥解密共享密钥,实现安全的密钥交换。
1/ 24. 虚拟私人网络(VPN):公钥密码体制被广泛用于建立安全的虚拟私人网络连接。
通过使用公钥和私钥对数据进行加密和解密,保障数据在公共网络中的安全传输。
公钥密码体制的优势在于它消除了传统密码体制中密钥传输的困扰,提供了更高的安全性和便利性。
然而,公钥密码体制的加密和解密过程相对较慢,因此通常与对称密码体制结合使用,以平衡安全性和性能。
2/ 2。
信息安全概论-ppt--公钥密码体制

公钥密码体制
17
4.1 一些数学基础
❖ 费马(Fermat)定理:
p素数,a是整数且不能被p整除,则:ap-1 1 mod p 例:a = 7,p = 19,则ap-1 = 718 1 mod 19
a = 3,p = 5,则ap-1 = 34 1 mod 5
❖ 欧拉(Euler)函数(n):
如果gcd(a,b)=1,则称a和b互素。
公钥密码体制
11
素数和素分解
任一整数p>1,若只有+(-)1和+(-)p为约数,就称其 为素数(prime),否则为一合数。素数在数论和现代密码学中扮演 重要角色。 判断:
所有奇数都是素数。所有偶数都是合数。 除了1,自然数不是素数就是合数。 除了2,5,个位上是0,2,4,6,8,5的数都是合数。 两个自然数相乘,乘得的数一定是合数。 除了3,能被3整除的数都是合数。 一个自然数不是素数就是合数。 合数至少有三个因数。 素数一定是奇数。合数一定是偶数。 1不是素数也不是合数。
公钥密码体制
16
4.1 一些数学基础
❖ 模运算:
求余数运算(简称求余运算)a mod n将整数a映射到集合
{0,1, …,n-1},称求余运算在这个集合上的算术运算为模运算
模运算有以下性质: [(a mod n)+(b mod n)] mod n = (a+b) mod n [(a mod n)- (b mod n)] mod n = (a-b) mod n [(a mod n)×(b mod n)] mod n = (a×b) mod n
❖ 数论简介:
数论是密码学特别是公钥密码学的基本工具。研究“离散数字集合” 的相关问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
首次公开提出了“公开密钥密码编码学”的概念。
这是一个与对称密码编码截然不同的方案。
提出公开密钥的理论时,其实用性并没有又得到证明:
❖ 当时还未发现满足公开密钥编码理论的算法; ❖ 直到 1978 年,RSA 算法的提出。
2.基本特征
❖ 加密和解密使用两个不同的密钥 公钥PK:公开,用于加密,私钥SK:保密,用作解密 密钥
3.优点
❖ 密钥管理
加密密钥是公开的; 解密密钥需要妥善保存; 在当今具有用户量大、消息发送方与接收方具有明显的信息不对称
特点的应用环境中表现出了令人乐观的前景。 新用户的增加只需要产生一对公共/私有密钥。
❖ 数字签名和认证
只有解密密钥能解密,只有正确的接收者才拥有解密密钥。
缺点:公共密钥系统的主要弱点是加密和解密速度慢。
加密与解密由不同的密钥完成; 知道加密算法,从加密密钥得到解密密钥在计算上是不可行的; 两个密钥中任何一个都可以作为加密而另一个用作解密。
6.公钥密码算法
除RSA算法以外,建立在不同计算问题上的其他公钥密码算法 有:
基于因子分解问题的Rabin算法; 椭圆曲线公钥算法; 基于有限域中离散对数难题的ElGamal公钥密码算法 基于代数编码系统的McEliece公钥密码算法; 基于“子集和”难题的Merkle-Hellman Knapsack(背包)公钥密码算 法; 目前被认为安全的Knapsack型公钥密码算法Chor-Rivest。
实际应用中的加密方式
❖ 混合加密技术 对称密码体制:密钥分发困难 公钥体制:加解密效率低 将对称加密算法的数据处理速度和公钥算法对密钥的保 密功能相结合 利用对称加密算法加密传输数据 利用非对称加密算法交换会话密钥
实际应用中的加密方式
举例:假设Alice与Bob进行保密通信,过程如下:
Alice
大整数分解问题(简称IFP);
离散对数问题(简称DLP);
椭圆曲线离散对数问题(简称ECDLP)。
❖ 单向陷门函数 对于一个单向函数 f (x) ,如果其逆函数 f 1(y) 在已知某些 辅助信息的情况下容易求解得出,则称该单向函数 f (x) 为 单向陷门函数。
❖ 构造公钥密码系统的关键是如何在求解某个单向函数的逆函 数的NP完全问题中设置合理的“陷门”。
单向函数举例
❖ 例1:y=anxn+an-1xn-1+…+a1x+a0
❖ 例2:设n是两个大素数p和q的乘积,b是一个正整数,对
x∈Zn ,令 f(x)≡xb(mod n),即 f(x) 等于被n除所得的余数,
人们认为 f(x) 是一个从Zn到Zn的单向函数
5.公钥算法的特点
❖公开密钥算法设计需要有以下基本要求:
不 可能或自少是不可行的 ③ 直到算法和若干密文不足以确定
密钥
① 两个密钥之一必须是保密的 ② 若没有其他信息,则解密消息是
不可能或至少是不可行的 ③ 知道算法和其中一个密钥以及若
干不足以确定另一密钥
有关公钥密码的几种常见误解
❖ 从密码分析的角度看,公钥密码比传统密码更安全。 ❖ 公钥密码是一种通用的方法,传统密码已经过时。 ❖ 传统密码中与密钥分配中心的握手是一件异常麻烦的事情,
❖ 一个密钥加密的数据只能用另一个密钥解密
Alice
加密
Bob的公钥
因特网
Bob私钥
解密 Bob
公私钥加解密举例
❖ 设若甲有一份需保密的数字商业合同发给乙签署。经过如下 步骤:
1. 甲用乙的公钥对合同加密。 2. 密文从甲发送到乙。 3. 乙收到密文,并用自己的私钥对其解密。 4. 解密正确,经阅读,乙用自己的私钥对合同进行签署。 5. 乙用甲的公钥对已经签署的合同进行加密。 6. 乙将密文发给甲。 7. 甲用自己的私钥将已签署合同解密。 8. 解密正确,确认签署。
第4讲 公钥密码体制
1
主要内容
1
基本思想
2
数论简介
3
RSA算法
4
椭圆曲线密码体制
1.背景
4.1基本思想
❖ 对称密钥编码所面临的难题
密钥分配:通信密钥太多,管理和分发困难。
数字签名和认证。
❖ 密码体制上的突破
Diffie & Hellman, “New Direction in Cryptography”, 1976。
与之相比,用公钥密码实现密钥分配则非常简单。
4.公钥密码算法基础
❖ 单向函数
对于一个函数 f (x),如果对于其定义域上的任意 x,f (x)都容易计算,
同时, 对于其值域中几乎所有的取值 y ,计算其逆函数
都f 1是( y)
不可行的,则函数 f被(x称) 为单向函数。
❖ 可以提供单向函数的三大数学难题
❖ 乘法逆元:设 a Zn ,如果存在 x Zn 满足 ax 1(modn),则称 x是a的模n乘法逆元,记为 a-1 (mod DSA是三种最常用的公钥算法。
Diffie-Hellman仅适用于密钥交换。 RSA算法适用于数字签名和数据加密。 DSA算法仅适用于数字签名。
❖ ECC具有发展前途,可用于密钥交换、数字签名、数据加密。
4.2 数论简介
1. 数论相关术语
❖ 最大公因子:任意有限个整数 a1, a2 , , an的公因子中的最大 一个。必然存在并且惟一,记为 gcd(a1, a2 , , an )。
Bob的公钥
密文传输 因特网
Bob私钥
Bob
会话密钥
对称密码和公钥密码
对称密码
公钥密码
一般要求 ① 加密和解密使用相同的密钥 ② 收发双方必须共享密钥
一般要求
① 同一算法用于加密和解密,但加 密和解密使用不同密钥
② 发送方拥有加密或解密密钥,而 接收方拥有另一密钥
安全性要求
安全性要求
① 密钥必须是保密的 ② 若没有其他信息,则解密消息是
❖
最小公倍数:任意有限个整数
a1
,
a
2
,
,
a
的公倍数中的最小
n
一个 。必然存在并且惟一,记为 lcm(a1, a2 , , an ) 。
❖ 同余式 :设n是一个正整数,a,b Z 如果 a modn b modn,
则称a和b模n同余,记作:a b(modn) ,称整数n为同余模。
❖ 加法逆元:设a Zn ,如果存在 x Zn 满足 x a 0(modn),则称 x是a的模n加法逆元。