公钥密码学及RSAPPT课件

合集下载

公钥密码学及RSA

公钥密码学及RSA
23×7=161= 1×160+1 故取 d=23 6. 所得的公钥 KU={7,187} 7. 私钥 KR={23,187}
给定 M = 88 加密:
C = 887mod 187 =(884 mod187)(882 mod187 ) (881mod187) =11
解密:
M = 1123 mod 187=88
公钥密码体制的加密
公钥密码体制的认证
A向B发送消息X A的公钥为KUa,私钥为KRa “加密”: Y = EKRa(X) (数字签名) “解密”: X = DKUa(Y) 思考:能保证消息的保密性吗? 请问:利用公钥密码体制,n个用户通信
需要多少个密钥?
公钥密码体制的认证
具有保密与认证的公钥体制
除了要指定n的大小外,研究者还提出了 其他一些限制条件,为了防止可以很容 易地分解n,RSA算法的发明者建议p 和q还应满足下列条件
1. P和q的长度应仅相差几位。这样对 1024位的密钥而言,p和q都应约在 1075到10100之间
2. (p-1)和(q-1)都应有一个大的素因子。
3. gcd(p-1, q-1)应该比较小
关于公钥密码的几种误解
公钥密码比传统密码安全? ➢ 事实上,任何加密方法的安全性依赖于密
钥的长度和破译密文所需要的计算量。 从抗密码分析的角度看,原则上不能说 传统密码优于公钥密码,也不能说公钥 密码优于传统密码
公钥密码是通用方法,所以传统密码已经 过时?
➢ 由于现有的公钥密码方法所需的计算量 大,所以取缔传统密码似乎不太可能
三种数学攻击方法
分解 N=p.q, 因此可计算出 ø(N),从而确定d 直接确定ø(N),然后找到d 直接确定d
由N确定ø(N)等价于因子分解

RSA和DES加密算法详解 ppt课件

RSA和DES加密算法详解  ppt课件
bool pd; int i; for(i = 2;i < m;i++)
if(m % i ==0) break;
if(m == i) pd = 1;
else pd = 0;
return pd;
ppt课件
4
Part 3 R S A 编 程 实 现 ( C 语 言 )
4、选择一个与φ(n)互质的量e
/* 求最大公约数 */ Elemtype gcd(Elemtype a, Elemtype b)
6
Part 3 R S A 编 程 实 现 ( C 语 言 )
6.明文X的值应在 0至n-1之间,计算 Xe (mod n)产生密 文Y,完成加密操 作
void encrypt() {
if(flag == 0) {
cout<<"setkey first:"<<endl; produce_key(); } cout<<"请输入明文:"; cin>>m; c = modular_multiplication(m,pu.e,pu.n); cout<<"密文 is:"<<c<<endl; cout<<"请输入下一步操作 "; }
容易,但是想要对其乘积进行因式分解却极其困难,因此可以
将乘积公开作为加密密钥。
ppt课件
2
Part 2 R S A 算 法 描 述
1.随机选择两个秘密的质数p、q 2.计算公开的模数,n=p*q 3.计算秘密的φ(n)=(p-1)*(q-1) 4.选择一个与φ(n)互质的量e 5.求K的乘法逆元素,用扩展欧几里得算法,模为φ(n) 6.明文X的值应在0至n-1之间,计算Xe (mod n)产生密 文Y,完成加密操作 7.计算Yd(mod n)产生明文X,完成解密操作

【优】RSA 加密算法最全PPT

【优】RSA 加密算法最全PPT
RSA algorithm RSA就是他们三人姓氏开头字母拼在一起组成的。
目前还没有有效的方法可以产生任意大素数,通常 取e=3,(3与20互质)则e×d≡1 mod f(n),即3×d≡1 mod 20。
迄今为止理论上最为成熟完善的公钥密码体制,该体制已得到广泛的应用。
使用的方法是:随机挑选一个期望大小的奇数,然后测 M3≡(C3)d(mod n) = 167(mod 33) = 25
C mod n=(M mod n) mod n= M mod n=M d d怎样取值呢?可以用试算的办法来寻找。
M3≡(C3)d(mod n) = 167(mod 33) = 25
e
d
ed
即:必须存在e,d,n,使Med mod n=M成立
RSA算法在计算上的可行性
加密和解密
无论是加密还是解密都需要计算某个整数的模n 整数次幂,即C= Me mod n、M= Cd mod n。但不 需要先求出整数的幂再对n取模,而可利用模运算的 性质:
2. 明文加密 设要加密的明文信息为:11,05,25。 用户A使用加密密钥(3,33) 将数字化明文分组信息加密成密文。由C≡Me(mod n)得: M1≡(C1)d(mod n) = 117(mod 33) = 11 M2≡(C2)d(mod n) = 267(mod 33) = 05 M3≡(C3)d(mod n) = 167(mod 33) = 25 因此,得到相应的密文信息为:11,26,16。 3. 明密文解密 用户B收到密文,若将其解密,只需要计算,即: M1≡(C1)d(mod n) = 117(mod 33) = 11 M2≡(C2)d(mod n) = 267(mod 33) = 05 M3≡(C3)d(mod n) = 167(mod 33) = 25 用户B得到明文信息为:11,05,25。

公钥密码学和RSA

公钥密码学和RSA
且e与φ(n)互质. (5)计算d, 满足 de ≡ 1 (mod φ(n) ),
(k为某个正整数). (6)n与e决定公钥, n与d决定私钥.
2、加密过程
(1)取两个素数p和q(p,q保密);
(2)计算n=p*q(公开),φ(n)=(p-1) (q-1);
(3)随机选取整数e满足 gcd(e,φ(n))=1 (e公开),gcd为求最大公约数;
证: E(S) S eA mod N A m
5.3.7 RSA算法的优点
(1)数学表达式简单。 (2)RSA的安全性基于大数分解的困难性。 (3)RSA公钥密码体制具有一些传统密码体制
不能实现的一些功能,如认证、鉴别和数字签 名等,特别适合于现代密码通信。
5.3.8 RSA算法的技术难题
(3)假设网络中每对用户使用不同的密钥,则密钥总 数随着用户数的增加迅速以N平方次递增。N个用户的 网络需要 N(N-1)/2个密钥。若n=1000,则NK500 000。 如此众多的密钥如何建立,如何保存?
5.3 非对称密码体制
是密码学一次伟大的革命 1976年,Diffie和Hellman 在“密码学新方
5.3.5 RSA算法的安全性
RSA体制的安全性基于数论中的Euler 定理和计算复杂性理论中的下述论断:求 两个大素数的乘积是很容易计算的,但要 分解两个大素数的乘积,求出它们的素因 子则是非常困难的。
因式分解的计算量
5.3.6 RSA系统的应用
1、数据加密 设B欲秘密传递明文m给A,则B首先由公开
非对称密码体制(公钥密码体制)
用于加密的密钥与用于解密的密钥是不同的,而且从加密 的密钥无法推导出解密的密钥。
用公钥KP对明文加密可表示为:EKP(M)=C 用相应的私钥KS对密文解密可表示为:DKS(C)=M

第9讲公钥密码概述ppt课件

第9讲公钥密码概述ppt课件

解密用户V发给用户U的密钥.
具体方法
攻击者截获用户U发给V的密文后,不传给用户V, 而是解读出明文后再将明文用W与V的密钥加 密后传给V.
备注: 中间人攻击中可选择xw1=xw2. 对付中间人攻击的方法: 中间人攻击利用了D-H协议中与双方的身份信
息无关这个缺点,因而必须利用对方的身份信息 进行对之进行身份认证.
▪ 用户拥有自己的密钥对(KU,KR) ▪ 公钥 KU公开,私钥KR保密
A B :Y EKUb (X ) B : DKRb (Y ) DKRb (EKUb ( X )) X
基于公开密钥的鉴别过程
用公钥密码实现鉴别
条件:两个密钥中任何一个都可以用作加密而另外
一个用作解密
▪ 鉴别:
A ALL :Y EKRa (X )
保密的负担. 前提条件: 必须进行身份认证,确保不是与假冒的用户进行
密钥交换,否则不能抵抗中间人攻击.
中间人攻击
----攻击者W在信道中间,假冒U与V进行密 钥交换,同时假冒V与U进行密钥交换.致使 看似U与V交换的密钥,实际上都是与攻击 者交换的密钥.
具体攻击
具体方法
攻击者W在信道上截获 xu mod和p
▪ 加密与解密由不同的密钥完成
加密:X Y :Y EKU (X )

解密:Y X : X DKR (Y ) DKR (EKU (X ))
知道加密算法,从加密密钥得到解密密钥在计算上是
不可行的
▪ 两个密钥中任何一个都可以作为加密而另一个用作解
密(不是必须的)
基于公开密钥的加密过程
用公钥密码实现保密
P), 易见,K = K =g xy (mod P)
▪ 由(4)知,Alice和Bob已获得了相同的秘密值K ▪ 双方以K作为加解密钥以传统对称密钥算法进行保密通信

公钥密码体制 PPT课件

公钥密码体制 PPT课件
其他任何人都可以获得Ea,因此,任何人 都可以对s解密(加密、验证);只有A才有 Da,因此,只有A才可以加密(解密、签 名)
公钥密码体制 – RSA体制
RSA公钥密码体制 – 简介
1978年,Rivest、Shamir、Adleman一 起提出RSA公钥密码体制
RSA基于大整数分解难题 n是由两个素数相乘得到,已知n,不存在
RSA公钥密码体制 – 算法
加密:
◦ 设消息m < n, c = m e mod n
解密:
◦ m = c d mod n
解密证明:
◦ c d mod n = m ed mod n = m 1 mod φ(n) mod n = m k* φ(n) + 1 mod n
◦ m与n互素时,由欧拉定理 m k* φ(n) + 1 mod n = m k* φ(n) * m mod n = = m (φ(n))k * m mod n = m mod n , (m φ(n) mod n = 1)
公钥密码体制概念
公钥密码体制的建立是依据数学难问题 寻找一个单向陷门函数f:XY,其中
计算y = f(x)很容易,但如果不知道陷 门,则计算x = f-1(y)很难 现阶段公开且未解决的数学难题:
◦ 大整数分解难题(RSA) ◦ Zp域上的离散对数问题(DH) ◦ EC上点域的离散对数问题(EC)
安全的RSA通常认为需要使用1024比 特以上
国际上建议采用2048、4096比特密钥 长度
RSA用于密钥交换的功能正在被ECDH 所取代
RSA用于数字签名的功能正在被 ECDSA所取代
RSA公钥密码体制 – 数学基础
模运算 缩余系 费马小定理 a p-1 = 1 mod p 欧拉函数 φ(n) 欧拉定理 a φ(n) = 1 mod n 中国剩余定理(加速解密) 二次剩余(RSA参数选取) 欧几里德算法(逆的计算) 模幂的计算

公钥密码技术全解PPT课件

公钥密码技术全解PPT课件
加密算法E和解密算法D可逆
方案1:c=E(m,PK), m=D(c, SK) 方案2:c=E(m,SK), m=D(c, PK)
2020年9月28日
5
公开密钥密码的优点
简化密钥管理 实现数字签名
签名需要有无法被他人获悉的能代表自身的 秘密信息
签名验证时不会泄漏上述秘密信息
密钥交换
实现通过公开网络环境下的密钥协商
新技术
双密钥:ke≠kd 非对称加密:使用其中一个密钥加密,使用另一个密钥解密 可公开一个密钥:仅知道密码算法和公钥要确定私钥在计算
上是不可行的
2020年9月28日
4
公钥密码体制的原理
五元组(M,C,K,E,D)
双密钥K=< Ke,Kd>
Ke ≠ Kd且由Ke 不能计算出 Kd ; Ke可公开, Kd保密K=(PK, SK) PK为公钥,SK为私钥 SK严格保密,可作为个人的身份指纹
2020年9月28日
13
RSA算法示例
加密与解密
公钥PK={e, n}={7,187} 私钥SK={d,p,q}={23,17,11} 明文m = 88 加密
c=me mod n= 887 mod 187 = 11 解密
m =cd mod n= 1123 mod 187 = 88
2020年9月28日
K(n, p,q,a,d) n,a,公开;p,q,d保密
加 密 过 程 :mamodnc,加 密 密 钥 a
解 密 过 程 :cdmodnm,解 密 密 钥 a
2020年9月28日
11
RSA算法验证
E和D的可逆性
c=E(m,e)=me mod n D(c,d)=cd mod n=(me)dmod n ed=1 modφ(n) D(c,d)=(me)dmod n=m tφ(n)+1

第9讲 公钥密码学与RSA

第9讲 公钥密码学与RSA
是不可能或至少是不可行的 3. 知道算法和若干密文不足以确
定密钥
安全性要求 1. 两个密钥之一必须是保密的 2. 若没有其他信息,则解密消息
是不可能或至少是不可行的 3. 知道算法和其中的一个密钥以
及若干密文不足以确定另一密 钥
12
公钥密码体制:保密性
13
公钥密码体制:认证
14
公钥密码体制:保密性和认证
之前对明文进行杂凑处理或者单向变换,以此破坏RSA 算法的同态性质
37
RSA 的性能
硬件实现:比 DES 慢 1000 倍 软件实现:比 DES 慢 100 倍
38
RSA的缺点
RSA的缺点主要有:
产生密钥很麻烦,受到素数产生技术的限制,因而 难以做到一次一密
分组长度太大,为保证安全性,n 至少也要 600比 特以上,使运算代价很高,尤其是速度较慢,较对 称密码算法慢几个数量级;且随着大数分解技术的 发展,这个长度还在增加,不利于数据格式的标准 化
30
RSA算法实现步骤
1. 生成两个大素数 p 和 q ;
2. 计算 n p q ,f (n) ( p 1)(q 1) ;
3. 选择随机数 e(即加密密钥), 使之满 足 0 e f (n) , gcd(e, f (n)) 1;
4. 计算解密密钥 d e1 mod f (n);
用加密密钥生成的密文只有使用其对应的解密密钥 才能解密。
公钥密码算法可以用来保密,认证或者上述两 者的功能
4
应用最广泛的公钥密码体制是RSA。其攻击 RSA的困难,是基于寻找大合数的素因子的困 难性
5
关于公钥密码的三个误解
第一个误解:从密码分析角度看,公钥密码比传 统密码更安全

第八讲 公钥密码学与RSA

第八讲 公钥密码学与RSA
参数 •n : RSA 的模 •k0 , k1:协议参数 •m :明文,长 (n − k0 − k1) bit •G , H :Hash函数. 加密 •对m进行k1个0填充 •r 是随机的 k0比特 •G:将 r 扩展为to n − k0 bit •X = m00..0 ⊕ G(r) •H:将X压缩到k0 bits. •Y = r ⊕ H(X) •W=X||Y •C≡We(mod n) 评价: •具有可证安全性 •相当于两轮的Feistel结构 •目前进入工业标准的为OAEP+ 解密 •对C解密得到X和Y •r = Y ⊕ H(X) •m00..0 = X ⊕ G(r) •返回m
C
≡ (Me)d (mod n) ≡ M (mod n)
因为0<M<n,因此M
= Cd (mod n)
RSA公钥算法举例
密钥生成 选素数p=47和q=71,得n=3337, (n)=(p-1)(q-1)=46×70=3220; 选择e=79,求得私钥 d=e -1 1019(mod 3220)。 公开n=3337和e=79. 加密 要发送明文688 计算:
RSA算法(教科书版)
Diffie和Hellman开创性的论文为密码学带来新的方
法和挑战。
RSA公钥算法是由Rivest,Shamir和Adleman在1978
年提出来的
Communications of the ACM. Vol.21.No.2.
Feb.1978, PP.120-126)
该算法的数学基础是初等数论中的Euler定理,并
建立在大整数因子分解问题(NP问题)的困难性 之上
RSA是最早的公钥体制的挑战响应者,也是最受
广泛接受和实现的公钥体制

第九章公钥密码学-PPT课件

第九章公钥密码学-PPT课件

3.公钥加密方案
4.公钥密码理论




由私钥及其他密码信息容易计算出公开密钥 (a polynomial time (P-time) problem) 由公钥及算法描述,计算私钥是难的 (an NPtime problem) 因此,公钥可以发布给其他人(wishing to communicate securely with its owner ) 密钥分配问题不是一个容易的问题(the key distribution problem )





public-key/two-key/asymmetric 包 括两个密钥: 公开密钥(a public-key), 可以被任何人知 道, 用于加密或验证签名 私钥( private-key), 只能被消息的接收者 或签名者知道,用于解密或签名 加密或验证签名者不能解密或多或生成签 名. 是密码学几千年历史中最有意义的结果
例子: 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

Signature Schemes
用于生成对某消息的数字签名 私钥的拥有者生成数字签名 任何人可以用公钥验证签名
6.公钥的安全性



依赖于足够大大的困难性差别 类似与对称算法,穷搜索在理论上是能够破解公 钥密码 exhaustive search 但实际上,密钥足够长 (>512bits) 一般情况下,有一些已知的困难问题(hard problem” 要求足够大的密钥长度 (>512 bits) 导致加密速度比对称算法慢

密码学公钥密码-PPT

密码学公钥密码-PPT

RSA算法得论证
假设截获密文C, 从中求出明文M。她知道 M≡Cd mod n,
因为n就是公开得,要从C中求出明文M,必须先求出d,而d 就是保密得。但知道,
ed≡1 mod Ø(n), E就是公开得,要从中求出d,必须先求出Ø(n),而Ø(n)就是 保密得。
RSA算法得论证
在计算上由公开密钥不能求出解密密钥 但知道,Ø(n)=(p-1)(q-1) 要从中求出Ø(n),必须先求出p与q,而p与q就是保密得。 知道 n=pq,要从n求出p与q,只有对n进行因子分解。 而当n足够大时,这就是很困难得。 只要能对n进行因子分解,便可攻破RSA密码。由此可以 得出,破译RSA密码得困难性<=对n因子分解得困难性。 目前尚不能证明两者就是否能确切相等,因为不能确知除 了 对n进行因子分解得方法外,就是否还有别得更简捷得破译 方法。 目前只有Rabin密码具有:
注:严格来说,公开钥为 e,秘密钥为 d, n 算做公开信息,p,q 为保密信息
2. 加密 先将明文比特串分组,使得每个分组对应的十进制数小于 n,
即分组长度小于 log2n,设分组大小为 k, 2k < n ≤ 2k+1。 然后对每个明文分组 m,作加密运算: c≡me mod n
3. 解密 对密文分组的解密运算为: m≡cd mod n
见:第8章 数论入门、
经典例子
RSA算法 Diffe-Hellman密钥交换算法 ElGamal密码体制 椭圆曲线密码体制ECC
RSA公开密钥算法
RSA算法描述 RSA得实现问题 RSA得安全性
RSA公开密钥算法
1977年由Ron Rivest、Adi Shamir与Len Adleman发明,1978年公布 就是一种分组加密算法

(完整版)公钥密码技术PPT课件

 (完整版)公钥密码技术PPT课件
12
5.1.3 RSA算法实现中的计算问题
如何快速进行模指数运算?
• 模幂运算满足分配律 [ (a mod n) × (b mod n)] mod n = (a × b) mod n 利用中间结果对n取模,即降低了存储要求,并可实现高 效算法。
• 递进式指数计算
例如计算ad (mod n),为了便于计算机实现,其中指数d可
A计算会话密钥K=YBa mod p。
B计算会话密钥K=YAb mod p。
模 素 数 p=23 , 原 根 g=5 。
则可以由两个用户对同一个明文的不同加密结果,恢复出原始明文。 设 c1 me1 (modn) 、c2 me2 (modn) ,若攻击者获得这两个密文,
根据中国剩余定理推论: 存在 s、t,使得 t e1 s e2 1,使得 c1t c2s m(modn) ,从而恢
复出明文。
18
5.1.4 RSA体制安全性分析
• 由明密文对 (m0 ,c0 ) ,可以获得对 m0r 的加密结果,因为 (m0r )e c0r (mod n)
• 此外, 能够获得 (c 2e )(mod n) 的解密结果,就可以恢复 出c对应的明文。
17
5.1.4 RSA体制安全性分析
(5)共模攻击 通信系统中使用相同的 n,且存在两个用户的公钥 e1 和 e2 互素,
理,有: • med ≡ m1+kφ(n) ≡ m(mφ(n)) k ≡ m (mod n)
8
5.1.2 RSA加密算法的数论基础
• 定义1(同余):设a、b、m是正整数,如果m|(a-b),即
m整除(a-b),则称a和b模m同余,记为 a b(mod m)
• 定理1:(素数分解定理):对任意正整数n,存在唯一的

精品PPT课件----RSA公钥密码48页PPT

精品PPT课件----RSA公钥密码48页PPT

60、生活的道路一旦选定,就要勇敢地 走到底 ,决不 回头。 ——左
精品PPT课件----RSA公钥密码
ቤተ መጻሕፍቲ ባይዱ51、山气日夕佳,飞鸟相与还。 52、木欣欣以向荣,泉涓涓而始流。
53、富贵非吾愿,帝乡不可期。 54、雄发指危冠,猛气冲长缨。 55、土地平旷,屋舍俨然,有良田美 池桑竹 之属, 阡陌交 通,鸡 犬相闻 。
56、书不仅是生活,而且是现在、过 去和未 来文化 生活的 源泉。 ——库 法耶夫 57、生命不可能有两次,但许多人连一 次也不 善于度 过。— —吕凯 特 58、问渠哪得清如许,为有源头活水来 。—— 朱熹 59、我的努力求学没有得到别的好处, 只不过 是愈来 愈发觉 自己的 无知。 ——笛 卡儿
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意 ø(N)=(p-1)(q-1)
选择 e使得1<e<ø(N),且gcd(e,ø(N))=1 解下列方程求出 d
e.d=1 mod ø(N) 且 0≤d≤N
公布公钥: KU={e,N} 保存私钥: KR={d,p,q}
RSA 的使用
发送方要加ห้องสมุดไป่ตู้明文M:
获得接收方的公钥 KU={e,N} 计算: C=Me mod N, where 0≤M<N
择 e=7 5. 确定 d: 使得de=1 mod 160 且d < 160 因
为 23×7=161= 1×160+1 故取 d=23 6. 所得的公钥 KU={7,187} 7. 私钥 KR={23,187}
给定 M = 88 加密:
C = 887mod 187 =(884 mod187)(882 mod187 ) (881mod187) =11
公钥密码体制的加密
公钥密码体制的认证
A向B发送消息X A的公钥为KUa,私钥为KRa “加密”: Y = EKRa(X) (数字签名) “解密”: X = DKUa(Y) 思考:能保证消息的保密性吗? 请问:利用公钥密码体制,n个用户通信
需要多少个密钥?
公钥密码体制的认证
具有保密与认证的公钥体制
对称密码 码
公钥密
一般要求: 1、加密解密用相同的密钥 2、收发双方必须共享密钥
安全性要求: 1、密钥必须保密 2、没有密钥,解密不可行 3、知道算法和若干密文不足 以确定密钥
一般要求:
1、加密解密算法相同,但使 用不同的密钥
2、发送方拥有加密或解密密 钥,而接收方拥有另一个密钥
公钥密码体制
重要特点
仅根据密码算法和加密密钥来确定解密密钥 在计算上不可行
两个密钥中的任何一个都可用来加密,另一 个用来解密。
六个组成部分:
明文、密文;公钥、私钥; 加密、解密算法
公钥密码体制
公钥密码体制的加密功能
A向B发消息X, B的公钥为KUb,私钥为KRb 加密 Y = EKUb(X) 解密 X = DKRb(Y)
因此我们在选择RSA的密钥大小时应谨慎 小心。在现阶段,密钥大小取在1024到 2048位是合适的
除了要指定n的大小外,研究者还提出 了其他一些限制条件,为了防止可以很 容易地分解n,RSA算法的发明者建议p 和q还应满足下列条件
1. P和q的长度应仅相差几位。这样对 1024位的密钥而言,p和q都应约在1075 到10100之间
为什么要提出公钥密码体制
是为了解决传统密码中最困难的两个问 题而提出的—密钥分配问题以及数字签 名问题
RSA算法
由MIT的 Rivest, Shamir & Adleman 在 1977 提出
最著名的且被广泛应用的公钥加密体制 明文、密文是0到n-1之间的整数,通常n
的大小为1024位或309位十进制数
公钥密码学与RSA
公钥密码学
是密码学一次伟大的革命 使用两个密钥:公密钥、私密钥 加解密的非对称性 利用数论的方法 是对对称密码的重要补充
公钥密码学解决的基本问题
密钥交换
对称密码进行密钥交换的要求:
已经共享一个密钥 利用密钥分配中心
数字签名
与传统手写的签名比较
因此 Cd = (Me)d = M1+k.ø(N) = M mod N
RSA Example
1. 选择两个素数: p=17 & q=11 2. 计算 n = pq =17×11=187 3. 计算 ø(n)=(p–1)(q-1)=16×10=160
4. 选择e 使其gcd(e,160)=1,且<160; 这里选
RSA算法描述
加密: C=Me mod N, where 0≤M<N 解密: M=Cd mod N 公钥为(e,N), 私钥为(d,N) 必须满足以下条件:
Med = M mod N 计算Me和Cd是比较容易的 由e和n确定d是不可行的
RSA 密钥产生过程
随机选择两个大素数 p, q 计算 N=p.q
解 时间攻击:依赖解密算法的运行时间
因子分解问题
三种数学攻击方法
分解 N=p.q, 因此可计算出 ø(N),从而确 定d
直接确定ø(N),然后找到d 直接确定d
由N确定ø(N)等价于因子分解
使用RSA几个注意点
计算能力的不断增强和因子分解算法的 不断改进,给大密钥的使用造成威胁。
安全性要求:
1、两个密钥之一必须保密 2、无解密密钥,解密不可行 3、知道算法和其中一个密钥 以及若干密文不能确定另一个 密钥
关于公钥密码的几种误解
公钥密码比传统密码安全? 事实上,任何加密方法的安全性依赖于
密钥的长度和破译密文所需要的计算量。 从抗密码分析的角度看,原则上不能说 传统密码优于公钥密码,也不能说公钥 密码优于传统密码
接收方解密密文C:
使用自己的私钥 KR={d,N} 计算: M=Cd mod N
注意:M必须比N小
SUCCESS
THANK YOU
2019/8/25
为什么RSA 可以加解密
因为 Euler 定理的一个推论: Mkø(n)+1 = M mod N
RSA 中: N=p.q ø(N)=(p-1)(q-1) 选择 e & d 使得ed=1 mod ø(N) 因此 存在k使得e.d=1+k.ø(N)
公钥密码是通用方法,所以传统密码已 经过时?
由于现有的公钥密码方法所需的计算量 大,所以取缔传统密码似乎不太可能
公钥密码实现密钥分配非常简单?
事实上,使用公钥密码也需要某种形式 的协议,该协议通常包含一个中心代理, 并且它所包含的处理过程既不必传统密 码中的那些过程更简单,也不比之更有 效
解密:
M = 1123 mod 187=88
RSA 密钥生成
必须做
确定两个大素数: p, q 选择e或者d,并计算d或者e
素数测试是重要的算法 由e求d要使用到扩展Euclid算法
RSA 的安全性
三种攻击 RSA的方法:
强力穷举密钥 数学攻击 :实质上是对两个素数乘积的分
相关文档
最新文档