第4章 公钥密码算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
公钥密码体制,又称为双钥或非对称密码体制 密码系统有两个密钥,即加密密钥和解密密钥不同,从一 个难于推出另一个。这两个密钥一个是公开的,一个是秘密 的,分别称为公开密钥和私有密钥,公开密钥是对外公开的, 即所有的人都可知,私有密钥是只有特定的用户方能拥有。
1
公钥密码体制概述
• 公钥密码体制与私钥密码体制的最大不同点就是:加 密密钥和解密密钥不同,从一个难于推出另一个。在 公钥密码体制中,将这两个不同的密钥区分为公开密 钥PK(Public Key)和私有密钥SK(Secrete Key)。
公钥密码体制加解密过程
假设网络上的两个用户Alice和Bob需要进行秘密
通信,为了防止攻击者Eve窃听信息,Alice和Bob 选择使用公钥密码体制加密传输的信息。Alice是 信息的发送方;Bob是信息的接收方。
10
公钥密码体制加解密过程
• ⑴ Alice与Bob产生公钥/私钥对:PKA/SKA,PKB/SKB。 • ⑵ Alice与Bob通过某种机制公布各自的公钥PKA与PKB,例如将 公钥放到一个公共的服务器,供其他用户查询。 • ⑶ Alice通过查询公共服务器获得Bob的公钥PKB。如果Alice欲 给Bob发送报文M,他就用Bob的公钥PKB加密报文。已知待加密 的明文M以及Bob的公钥PKB,Alice很容易通过加密算法E计算出 密文,即 C = EPKB(M)。 • (4)接收方Bob收到Alice发送的信息之后,使用自己的私钥 SKB解密报文。已知密文C和私钥SKB,Bob很容易通过解密算法 计算出明文M,即 M=DSKB(C)。 假设攻击者Eve窃听到Alice发送的报文,虽然Eve可查询获得 Bob的公钥PKB,但从PKB确定Bob的私钥SKB 在计算上是不可行的, 因此Eve无法获知Bob的私钥 SKB ;仅知道公开密钥和密文,无 法计算出明文M。因此攻击者Eve无法得到Alice发给Bob的密码 信息。 11
• ElGamal体制:基于有限域上的离散对数问题,目前认为有一 定安全性。
• Chor-Rivest背包体制:基于子集和问题,目前认为是安全的。
• 椭圆曲线密码:基于椭圆曲线上的离散对数问题,是对 ElGamal体制的改进,目前认为是安全的。
• 有限自动机密码:基于有限自动机的求逆问题,目前认为有一 定安全性。
• 重要特点
–仅根据密码算法和加密密钥来确定解密密钥在计算上不可行。
• 有些算法如RSA还具有:两个密钥中的任何一个都可用来加密, 另一个用来解密。 • 优点:能很好解决私钥加密中由于密钥数量过多导致的管理难 和费用高等问题,也不用担心传输中的私钥泄漏,保密性能优 于私钥加密。 • 缺点:加密算法复杂,加密速度难以达到理想状态。 4
17
RSA算法依赖的数学问题
• ⑵ 费马定理:
–如果p是素数,a是不能被p整除的正整数, 则: ap-1 ≡ 1 mod p
• 例如:
P=7, a=2, 则27-1 =26 = 64,64 mod 7 = 1
18
RSA算法依赖的数学问题
• ⑶ 欧拉函数:正整数n的欧拉函数是指小于n且与n互素的正整 数个数,通常记为Ø(n)。 • 对于任一素数p,显然有:Ø(p) = p – 1, • 例如: –设p=3,小于3且与3互素的正整数为1,2,因此Ø(3) = 2; 类似地,当p=7时,小于7且与7互素的正整数为1,2,3,4, 5,6,因此Ø(7) = 6。 • 假定有两个不同的素数p和q,n是p与q之积,即 n = p × q, 则有如下公式关系: Ø(n)=Ø(pq)= Ø(p)×Ø(q)=(p-1)×(q-1) • 例如: –取n=21,Ø(21) = Ø(3) × Ø(7) = (3-1) × (7-1) = 2 × 6 = 12,其中这12个整数是{1,2,4,5,8,10,11, 13,16,17,19,20 } 。 19
公钥密码体制依赖的基础
• 传统的对称密码体制依赖的基础是替代和置换两 种转换思想。与对称密码体制不同的是,公钥密 码体制依赖的基础是数学上的某类问题的求解困 难。
• 经典的公钥密码算法RSA、椭圆曲线密码算法ECC 等都是依赖某类数学问题的,它们共同的特点是 基于某个单向陷门函数。单向陷门函数 y=fk(x) 是指同时满足下列条件的一类可逆函数:
7
公钥密码系统的特征
• ⑴ 密钥。要满足两点要求:公钥/私钥
(PK/SK)对容易产生,且私钥除了生成密钥
的用户自己知道之外,其他任何人都不可
知;已知公钥PK,无法计算出私钥SK,即
公钥密码系统所要满足的基本条件之一是 从公开密钥无法通过计算得到私有密钥。
8
公钥密码系统的特征
• ⑵ 加密算法E。要满足两点要求:已知公钥PK,对任何明文M, 由E计算出密文C非常容易,即C = EPK(M) 易计算,或者已知 私钥SK,对任何信息M,由E计算数字签名也非常容易,即 C = ESK(M) 易计算。 • ⑶ 解密算法D。要满足两点要求:已知私钥SK,对任何密文C, 由D容易计算出明文M,或者已知公钥PK,对任何用SK所做的 数字签名C,容易通过D计算,得到签名前的信息;但是已知 公钥PK、密文C,以及解密算法D,无法由三者推导出明文M或 者私钥SK。即由公钥、密文和解密算法 ,推导明文和解密密 钥都是计算不可行的。 • 一个设计良好的密码系统,加密算法E和解密算法D应该都是 公开的,该原则同样适用于公钥密码系统,公钥密码系统中 唯一需要保密的就是私钥SK。 9
◆基于有限域离散对数问题的公钥系统,典型算法是DSA。
14
若干较有影响的公钥加密算法
• RSA算法:基于大整数素因子分解问题,目前认为是安全的。 • Merkle-Hellman背包体制:基于子集和问题,已证明不安全。 • McEliece体制:基于余代数编码中的线性解码问题,目前认为 是安全的。
法是被使用最多的公钥密码方案。
16
RSA算法依赖的数学问题
• RSA 算法基于“大整数质因子分解”非常困难这 一数学难题,这里大整数通常有几百位长。 RSA 算法依赖以下几个数论定理: • ⑴ 模运算的性质: –正整数n是素数,集合Zn = {0,1,2….,(n1)} 表示小于n的所有非负整数集合,则对于集 合Zn 中的每一个非零整数wZn,均存在一个z, 满足公式 w × z = 1 mod n,我们称z是w的乘 法逆元,且n是它们的模。
• 六个组成部分:
–明文、密文;公钥、私钥; –加密算法、解密算法
2
公钥密码体制模型
B的公钥 明文 A
加密
B的私钥
明文
A的私钥
明文 A
A的公钥
明文
密文 B
解密
加密
密文 B
解密
加密模型
认证模型
3
公钥密码体制的特点
• 加密和解密能力分开。 • 可以实现多个用户加密的消息只能由一个用户解读(用于公共 网络中实现保密通信)。 • 可实现只能由一个用户加密消息而使多个用户可以解读(可用 于认证系统中对消息进行数字签字)。 • 无需事先分配密钥。
15
RSA算法
1976年Deffie和Hellman提出公钥密码系统思想之
后,1977年麻省理工学院的Ron Rivest、Adi Shamir和Len Adleman三位学者研制了 RSA(Rivest-Shamir-Adleman)公钥密码方案,该 方案于1978年首次发表,从那以后至今,RSA算
公钥密码体制概述
• 1976年Diffie和Hellman的“New directions in cryptography” 导致了密码学上的一场革命,开创了公钥密码学的新纪元。 他们首次证明了在发送端和接收端无密钥传输的保密通信是 可能的。 • 1977年Rivest,Shamir和Adleman提出了RSA公钥密码算法。 • 90年代逐步出现椭圆曲线密码等其他公钥算法。
• (5)欧几里德(Euclid)算法:
–该算法主要的思想是:用一个简单的方法确定两个正整数的 最大公因子,并且如果这两个整数互素,通过扩展该算法能 确定它们各自的乘法逆元。
21
欧几里德(Euclid)算法
设a≥n,求a和n的最大公因子(a,n)以及(a, n)=sa+tn中的s与t。 – 令r0=a, r1=n,利用辗转相除法可得: r0 = r1q1 + r2, 0 ≤ r2 < r1 r1 = r2q2 + r3, 0 ≤ r3 < r2 … rm-2 = rm-1qm-1 + rm, 0 < rm < rm-1 rm-1 = rmqm + rm+1, rm+1 = 0 (a,n) = (r0, r1) = (r1, r2) = … = (rm-1, rm) = (rm, 0) = rm. – 由上述关系式可以得到(a,n)=sa+tn中的 s与t
5
公钥密码体制依赖的基础
• ⑴ 函数是一一映射关系,也就是说,对于每个函数值y,只有 唯一的一个原象x与之对应; • ⑵ 给定x与关键参数ቤተ መጻሕፍቲ ባይዱ,函数y=fk(x)很容易计算; • ⑶ 给定y,存在某个关键参数k’,在未知k’时,由y计算出x 非常困难,即在未知k’的条件下,逆函数x=f-1k’(y)的计算相 当复杂,实际上是不可行的;在已知k’时,对给定的任何y, 则逆函数x=f-1k’(y)很容易计算;
• ⑷ 给定y和参数k,无法从函数y=fk(x)推导出影响其逆函数f-1 的关键参数k’。
• 设计任何一种公钥密码方案,所要做的工作就是寻找 这样的单向陷门函数,其中陷门信息就是私钥,也就 是上面所列举的关键参数k’。 6
公钥密码系统的特征
根据密码系统的组成以及公钥密码体制自身的特
点,一个公钥密码系统可以表示为:加密算法E、 解密算法D、公钥/私钥(PK/SK)对、明文M、密文C 六个元素,且各元素必须要满足以下条件:
RSA算法依赖的数学问题
• ⑷ 欧拉定理:
– 任何两个互素的整数a和n,有如下关系: aØ(n)
≡
1 mod n
• 例如:
a = 3;n=8;由(3)欧拉函数的定义,Ø(8) = 4; 则
aØ(n) = 34 = 81 =10×8 +1 ≡ 1 mod 8 ≡ 1 mod n
20
RSA算法依赖的数学问题
22
欧几里德(Euclid)算法
23
欧几里德(Euclid)算法
24
欧几里德(Euclid)算法
25
欧几里德(Euclid)算法
26
RSA算法密钥产生过程
• ⑴ 随机选择两个秘密的大素数 p与q,且p × q = n。 为了增强算法的安全性,避免攻击者通过数学攻击的方法找 到n的欧拉函数Ø(n),从而攻破RSA密码方案,RSA算法的 设计者建议: 1. p与q长度应该只差几个数字,这样对于1024位的密钥来说, p与q都应该约位于区间[1075 ,10100]内; 2. p-1 与 q-1 都应有一个大的素因子; 3. gcd(p-1,q-1)应该较小。
公钥密码体制
• 有些算法可用于上述三种应用,而其他一 些算法则只适用其中一种或两种应用。
算法 加密/解密 数字签名 密钥交换
RSA
椭圆曲线密 码
是
是
是
是 否
是
是 是
Diffie-Hellman 否
DSS
否
是
否
13
公钥密码体制
自1976年提出公钥密码系统以来,密码专家们已设计出多种 公钥密码算法,这些算法的共同点都是基于某类数学难题, 通过找到该类问题的某个单向陷门函数实现对数据的加密 和解密。 依据所依赖的数学难题类别划分,主要有以下3类系统: ◆基于大整数因子分解问题的公钥系统,典型代表是RSA算法; ◆基于有限域椭圆曲线离散对数问题的公钥系统,典型代表是 ECC算法;
公钥密码体制
• 公钥密码技术的主要价值是解决下列问题:
– 1)密钥分发;
– 2)大范围应用中,数据的保密性和完整性; – 3)实体鉴别;
– 4)不可抵赖性;
• 公钥密码体制的应用可分为3类:
– a)加密/解密:发送方用接收方的公钥对消息加密。
– b)数字签名:发送方用其私钥对消息签名。签名可以对 整条消息加密或对消息的一个小的数据块加密来产生,其 中该小的数据块是整条消息的函数。 – c)密钥交换:通信双方交换会话密钥。有几种不同的方 法可用于密钥交换,这些方法都使用了通信一方或双方的 私钥。 12