第四章公钥密码学技术
2084公钥密码基础

设(x)是小于x的素数的个数,则
(x)
x ,且当x lnx
,(xx)
1
lnx
在各种应用中,我们需要大的素数,如100位的素数
素数是构成整数的因子,每一个整数都是由一个或几个素数 的不同次幂相乘得来的。
6
3.最大公约数
a和b的最大公约数是能够同时整除a和b的最大正整 数,记为gcd(a,b)。 – 如:gcd(20,24)=4 , gcd (15,16)=1
20
离散对数(指标)
某素数p,有本原根a,且: X1=a1mod p,X2=a2mod p ,…,Xp-1=ap-1mod p, 则:x1≠x2≠…≠ xp-1 令:S={x1,x2,…, xp-1},T={1,2,…,p-1} 则:S=T 对于任意整数b,有b≡r (mod p) (0≤r≤p-1) 所以,对于b和素数p的本原根a,有唯一的幂i,使得:
10
5.除法
设整数a,b,c,n(n ≠0),且gcd(a,n)=1。 如果ab≡ac (mod n),那么b≡c (mod n)
11
4.2.2 欧几里德算法(Euclid)
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最 大公约数。
其计算原理依赖于下面的定理: gcd(a,b) = gcd(b,a mod b)
推论:给定两个素数p, q,两个整数 n,m,使得n=pq, 0<m<n ;则对于任意整数k ,下列关系成立: m kф(n)+1 ≡ m (mod n)
例如:p=2,q=3,n=6,m=4 ,ф(6)=2
(42×2+1 = 45=1024 )≡4 (mod 6),k=2 18
4.2.6 离散对数
公钥密码技术理论及应用介绍

公钥密码技术理论及应用介绍公钥密码技术是现代密码学中的重要分支,它采用了一种非对称加密的方式,使得加密和解密的操作可以使用不同的密钥进行。
这种技术的应用非常广泛,涉及到网络通信、数字签名、身份认证等领域。
本文将对公钥密码技术的理论基础以及其在实际应用中的具体场景进行介绍。
公钥密码技术的理论基础主要建立在数论和复杂性理论的基础之上。
其中最为重要的基础是大数分解问题和离散对数问题。
大数分解问题是指将一个大的合数分解为其素数因子的问题,而离散对数问题则是指在一个有限域中找到一个数的离散对数的问题。
这两个问题的困难性是公钥密码技术的基础,因为只有在这些问题难以解决的情况下,公钥密码技术才能够保证其安全性。
在公钥密码技术中,每个用户都有一对密钥,分别是公钥和私钥。
公钥可以公开给其他用户使用,而私钥则只有用户自己知道。
当用户想要向其他用户发送加密的消息时,他可以使用接收者的公钥对消息进行加密,而只有接收者拥有对应的私钥才能够解密消息。
这种非对称加密的方式使得通信双方可以在不共享密钥的情况下进行安全的通信。
除了加密和解密的功能之外,公钥密码技术还可以用于数字签名和身份认证。
数字签名是指用户可以使用自己的私钥对消息进行签名,而其他用户可以使用发送者的公钥来验证签名的有效性。
这样可以确保消息的完整性和真实性。
而在身份认证中,用户可以向其他用户证明自己的身份,只需要使用自己的私钥对一些特定的信息进行签名,而其他用户可以使用发送者的公钥来验证签名的有效性,从而确认发送者的身份。
公钥密码技术在实际应用中有着广泛的应用。
在网络通信中,公钥密码技术可以用于保护数据的机密性和完整性。
用户可以使用对方的公钥对通信内容进行加密,从而确保只有对方能够解密消息。
在电子商务中,公钥密码技术可以用于保护交易的安全性,防止信息被窃取或篡改。
在数字签名中,公钥密码技术可以用于保证文件的完整性和真实性,防止文件被篡改。
在身份认证中,公钥密码技术可以用于验证用户的身份,防止冒充他人进行非法操作。
公钥密码技术及其应用

公钥密码技术及其应用
公钥密码技术是一种加密和解密的方法,使用一对密钥:一个公钥用于加密,另一个私钥用于解密。
其优点在于公钥可以公开分发,使得密钥分发的难题得到解决。
公钥密码技术有两个主要的用途:加密和数字签名。
当用于加密时,信息发送者用公钥对明文信息进行加密,信息接受者用私钥解密。
公钥密码技术能够满足保密性的需求。
另一方面,数字签名可以用于验证数字信息或文档的真实性。
数字签名可以用来满足完整性、身份验证以及不可抵赖性的需求,例如,可以用来验证数字信息或文档是否被篡改过,或者确认其来源是否可靠。
此外,公钥密码体制还可以用于密钥交换。
通信双方可以交换会话密钥,这有几种不同的方法,这些方法都使用通信一方或双方的私钥。
以上内容仅供参考,如需更多信息,建议查阅公钥密码技术相关论文或咨询密码学专家。
公钥加密技术名词解释

公钥加密技术名词解释
公钥加密技术,也称为非对称密钥加密,是一种使用一对唯一性密钥进行加密和解密的方法。
这两把密钥分别是公钥和私钥,它们在数学上相关联,使得使用公钥加密的信息只能用私钥解密,反之亦然。
这种技术的特点是加密和解密使用的是两个不同的密钥,因此被称为非对称加密算法。
在公钥加密体制中,公钥是公开的,任何人都可以使用公钥对信息进行加密处理后发送给另一个人。
接收者使用自己的私钥进行解密。
这样,任何人都能够发送加密信息,但只有拥有相应私钥的人才能解密和阅读信息。
公钥加密技术在保障信息安全方面起着重要的作用,例如在Internet上交换敏感数据报文时,发送者使用接收者的公钥对数据进行加密,只有接收者使用自己的私钥才能解密。
此外,公钥加密技术还解决了密钥的发布和管理问题,是商业密码的核心。
常见的公钥加密算法有RSA算法(由Rivest、Shamir和Adleman姓氏首字母缩写而来)、ElGamal和背包算法等。
第四章公钥密码体制

RSA公钥密码算法(续)
如果A要发送信息M给B,A和B之间用以 下方式进行通信: 计算密文 C = EK p (M ) →发送C给B→从A 接收C→计算明文 M = DKs (C) . 一般要求p,q为安全质数,现在商用的 安全要求为n的长度不少于1024位 。
B
B
RSA公钥密码算法(续)
算法的安全性分析 1. 如果密码分析者能分解 n 的因子 p 和 q ,他就可以 求出φ (n ) 和解密的密钥 d ,从而能破译RSA,因此破 译RSA不可能比因子分解难题更困难。 2. 如果密码分析者能够不对 n 进行因子分解而求得,则 可以根据 de ≡ 1 mod φ (n ) 求得解密密钥 d ,从而破译RSA。因为 2 p + q = n − φ (n ) + 1 p − q = ( p + q) − 4n 所以知道φ (n ) 和 n 就可以容易地求得 p 和 q ,从而成 功分解 n ,因此,不对 n 进行因子分解而直接计算 φ (n ) 并不比对 n 进行因子分解更容易。
椭圆曲线算法
1985年Koblitz和Miller提出在密码学中应用椭 圆曲线的思想,使其成为构造公开密钥密码系 统的一个有利工具。其安全性是基于椭圆曲线 上的离散对数计算的困难性。 优点:椭圆曲线上离散对数的计算要比有限域 上离散对数的计算更困难。与RSA相比,椭圆 曲线密码体制能用较短的密钥达到较强的安全 性,这样实现上能节省系统资源。
RSA公钥密码算法
RSA是Rivet,Shamir和Adleman于1978年在美 国麻省理工学院研制出来的,它是一种比较典 型的公开密钥加密算法。 基础 大数分解和素性检测——将两个大素数相乘在 计算上很容易实现,但将该乘积分解为两个大 素数因子的计算量是相当巨大的,以至于在实 际计算中是不能实现的。
密码学中的公钥密码算法及其应用

密码学中的公钥密码算法及其应用密码学是一门研究通信安全和信息保密的科学,而公钥密码学算法则是其中最为重要的一种算法。
公钥密码学算法是指在加密和解密过程中,使用不同的密钥来实现。
本文将介绍公钥密码学算法的基本概念和应用。
一、公钥密码学算法概述公钥密码学算法也称为非对称密码学算法,它是一种使用两个密钥来进行加密和解密的算法。
这两个密钥是一对,一个称为公钥,一个称为私钥。
其中,公钥是公开的,任何人都可以知道,私钥则是秘密的,只有拥有者才会知道。
公钥密码学算法的加密过程是这样的:发送方使用接收方的公钥对数据进行加密,接收方使用自己的私钥对加密数据进行解密。
这样,就可以保证通信内容的安全性和保密性。
二、公钥密码学算法的分类公钥密码学算法分为两种类型:基于离散对数问题的算法和基于椭圆曲线问题的算法。
1、基于离散对数问题的算法基于离散对数问题的算法包括RSA和DH两种算法。
RSA算法是由三位数学家Rivest、Shamir和Adleman于1977年发明的。
它主要是利用了大数分解的难度来保证信息的安全性,而公钥就是由两个大素数的乘积得出的。
DH算法是Diffie和Hellman在1976年提出来的,它主要是利用数论中离散对数问题的难度来保证信息的安全性,而公钥则是通过一定计算得出的。
2、基于椭圆曲线问题的算法基于椭圆曲线问题的算法包括ECIES和ECDSA两种算法。
ECIES算法是可扩展加密标准中的一种,它主要是利用椭圆曲线上的点运算来实现加密和解密,公钥就是椭圆曲线上的一个点。
ECDSA算法是可扩展数字签名算法中的一种,它主要是利用椭圆曲线上的点运算来实现数字签名的生成和验证。
三、公钥密码学算法的应用公钥密码学算法在信息安全领域有着广泛的应用,下面介绍几个常见的应用场景。
1、TLS/SSL协议TLS/SSL协议是一种用于保护互联网通信安全的协议。
在TLS/SSL协议中,使用公钥密码学算法来实现通信内容加密和身份认证的过程,从而保证通信的安全性和保密性。
公钥密码学

公钥密码学公钥密码学是一种通用的加密技术,用于保护用户数据,保证私密性和安全性。
它是一种非对称加密技术,意思是,它使用一对密钥公开的公钥和保密的私钥来加密和解密信息。
它可以用来保护网络通信等。
公钥密码学的发明者是美国数学家兼集合理论专家Whitfield Diffie和加拿大数学家Martin Hellman于 1976年。
他们被称为Diffie-Hellman对,或仅称为Diffie-Hellman。
他们的原理是在数学上基于离散对数问题,这是一个求解以费马小定理为基础的问题,它由他们提出。
费马小定理说,在具有质数参数的数论环上,一个大整数的任意次幂都等于另一个大整数,只要它们不相等。
不同的加密系统使用一种称为“秘密双方协议”的技术,通过共享一些信息,双方可以安全地通信。
Diffie-Hellman协议使用公钥密码学来加密它们的会话,重点是发送方使用接收方的公开密钥来加密数据,而接收方使用自己的私钥解密数据。
与其他安全性算法相比,公钥密码学有许多优势。
首先,它更安全,因为它使用非对称密钥,而不是对称密钥,可以更好地保护用户数据。
其次,它提供了更高的安全性,因为攻击者无法从用户传输的信息中推断出加密的密钥。
第三,它拥有更多的功能,可以有效地实现签名功能,防止信息抵赖。
在当今日新兴网络技术领域,公钥密码学发挥着重要作用。
许多机密信息传输方案都使用公钥密码学来保护网络安全。
公钥密码学也用于互联网支付系统,以及基于手机的缴费系统,从而保护支付信息的安全性。
公钥密码学已经成为当今社会日新月异的发展的重要技术,它为社会的发展和安全安全提供了坚实的技术支持,同时也为网络传输提供了坚强的保护。
随着技术的发展,人们应该充分了解公钥密码学在社会发展中所起的作用,并一如既往地努力改进和发展这一技术,以满足当今社会的不断变化的安全需求。
信息安全概论第四章公钥密码体制

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))
信息安全公钥密码

公钥密码体制的概念
3、应用三:同时实现保密性和身份 鉴别
如果两次使用公钥密码算法,则可以既实现 保密通 信,又实现身份鉴别。其主要步骤如下: (1)发送方A先用自己的私钥KRa对消息进行签 名,然后再用接收方B的公钥KUb加密, A->B: Z=EKUb(EKRa(X)) (2)接收方B收到密文,先用自己的私钥KRb解 密,再用A的公钥 KUa验证签名的正确性, DKUa(DKRb(Z))=X
2
电子工业出版社,《信息安全原理与应用》,2010.1 ©版权所有,引用请注明出处
概述
• 公钥密码学的发展是整个密码学发展史上 最伟大的一次革命。公钥密码学与之前的 密码学完全不同。首先,公钥算法是基于 数学函数而不是基于代替和置换,更重要 的是,与只使用一个密钥的对称密钥密码 不同,公钥密码是非对称的,它使用两个 独立的密钥。使用两个密钥在消息的保密 性、密钥分配和认证领域有着重要的意义
电子工业出版社,《信息安全原理与应用》,2010.1 ©版权所有,引用请注明出处
公钥密码体制的概念
• 公钥密码算法的特点
(1)加密与解密由不同的密钥完成。其中,KU是公开 的,称为“公钥”(public key);KR是保密的, 称为“私钥”(private key)。 加密:X->Y: Y = EKU(X) 解密:Y->X: X = DKR(Y) = DKR(EKU(X)) (2)知道加密算法,从加密密钥得到解密密钥在计算 上是不可行的。 (3)两个密钥中任何一个都可以用作加密而另一个则 用作解密。 (4)加密和解密的顺序可以调换。 X=DKR(EKU(X))=EKU(DKR(X))
第四章 公钥密码体制.

扩展的欧几里德算法
(s*n)+(b*t)=gcd(n,b),如果b的乘法逆存在,则gcd(n,b)=1 r1←n;r2←b; t1←0;t2←1; 如果r2>0 {
q←r1/r2; r ←r1-q*r2; r1 ←r2;r2 ←r; t ←t1-q*t2; t1 ←t2;t2 ←t;
数为k=2,求明文m=30 所对应的密文 (2) 如果用相同的k=2 加密另外一个明文m,加密后的密文为
C= (49,13),求m 4、椭圆曲线y2mod p=(x3+ax+b)mod p,其中a=1, b=1, p=23。取
曲线上的P=(3,10), Q=(9,7),分别计算P+Q和2P
主要内容
= p * b +q * (a – a / b * b) = q * a + (p – a / b*q) * b 这样它就将 a b 的线性组合就化简为 b 与 a % b 的线性组合。 a b 都在减小,当 b 减小到 0 时,我们就可以得出 p = 1 ,q = 0 然后递归回去就可以求出 最终的 p ,q 了
实际应用中的加密方式
举例:假设Alice与Bob进行保密通信,过程如下:
Alice
Bob的公钥
密文传输 因特网
Bob私钥
Bob
会话密钥
对称密码和公钥密码
对称密码
公钥密码
一般要求 ① 加密和解密使用相同的密钥 ② 收发双方必须共享密钥
一般要求
① 同一算法用于加密和解密,但加 密和解密使用不同密钥
② 发送方拥有加密或解密密钥,而 接收方拥有另一密钥
整除:设整数a和b,如果存在整数k,使b=ak,则说b能被a整 除,记作:a|b。例:3|15,-15|60 整除性质: 对所有整数a≠0, a|0、 a|a成立 对任意整数b, 1|b成立
公钥密码学

公钥密码学
公钥密码学是一种新型的数字复杂算法,用来保护在网络上传输的信息和数据的安全性,是一种加密算法体系,它将源信息转化成一种难以解读的形式,而且只有猜测解密密钥的对象才能够解读。
公钥密码是一种新型的加密算法,它可以简单快捷,安全可靠地实现信息的传输和存储。
公钥密码学以公钥和私钥为核心,是一种不对称的密码算法。
公钥密码利用公钥和私钥加密和解密,这两个密钥体系是独立的,公钥可以向任何人公开,而私钥则只能由它本身的持有者独享,这样就可以大大提高数据的安全性。
公钥密码的特点是可以同时实现加解密,也就是说不论是发送者还是接收者,都可以使用同一密钥进行信息的加解密,而不用降低安全性。
公钥密码学的传输过程是这样的:发送者先将信息进行加密,然后通过公钥将加密后的信息发送给接收者,接收者使用私钥将发送的信息解密,这样就可以实现无疑问的信息传输,而不被拦截或攻击。
在这个过程中,信息的安全性可以得到充分的保证。
由于公钥密码学支持广泛的应用,它已经成为当今智能设备上的一种重要的安全加密技术。
公钥密码技术可以应用于Web安全以及访问控制,可以用于电子商务安全,远程银行注册,电子签名,多人协同工作,电子邮件,数据加密及安全存储等多领域。
公钥密码学是一种抗拦截,安全可靠的加密技术,它具有传统密码技术无法提供的安全性,而且可以应用到智能设备上,被广泛应用
于各种互联网服务,可以有效地提高网络安全性和系统的可靠性。
杨波,_《现代密码学(第2版)》第四章 4.1节

交换律: ① 交换律: (w+x) mod n=(x+w) mod n (w×x) mod n=(x×w) mod n × × 结合律: ② 结合律: [(w+x)+y] mod n=[w+(x+y)] mod n [(w×x)×y] mod n=[w×(x×y)] mod n × × × × 分配律: × × × ③ 分配律: [w×(x+y)] mod n=[w×x+w×y] mod n 单位元: ④ 单位元: (0+w) mod n=w mod n (1×w) mod n=w mod n × 加法逆元: 存在z∈ 使得w+z≡0 ∈ ⑤ 加法逆元: 对w∈Zn,存在 ∈Zn,使得 mod n,记z = -w。 , 。
整数具有以下性质: 整数具有以下性质: ① a|1,那么a=1。 ,那么 。 ② a|b且b|a,则a=b。 且 , 。 对任一b ③ 对任一 (b≠0),b|0。 , 。 ④ b|g,b|h,则对任意整数 、n有 b|(mg+nh)。 , ,则对任意整数m 有 。 性质④的证明: 性质④的证明: 由b|g,b|h知,存在整数 1、h1, , 知 存在整数g 使得g=bg1, h=bh1所以 使得 mg+nh=mbg1+nbh1=b(mg1+nh1), 因此 因此b|(mg+nh)。 。
例4.1 设Z8={0, 1,…, 7},考虑 8上的模加法和模乘 ,考虑Z 法。
从加法结果可见,对每一 ,都有一y, 从加法结果可见,对每一x,都有一 ,使得 x+y≡0 mod 8。如对 ,有6,使得 。如对2, ,使得2+6≡0 mod 8,称 , 加法逆元。 y为x的负数,也称为加法逆元。 的负数, 为 的负数 也称为加法逆元 对x,若有 ,使得 ×y≡1 mod 8,如3×3≡1 ,若有y,使得x× , × mod 8,则称 为x的倒数,也称为乘法逆元。本例 的倒数, ,则称y为 的倒数 也称为乘法逆元。 可见并非每一 都有乘法逆元。 并非每一x都有乘法逆元 可见并非每一 都有乘法逆元。 一般地,定义 为小于n的所有非负整数集合 的所有非负整数集合, 一般地,定义Zn为小于 的所有非负整数集合, 为模n的同余类集合 的同余类集合。 即Zn={0, 1, …, n-1},称Zn为模 的同余类集合。其 , 上的模运算有以下性质 性质: 上的模运算有以下性质:
RSA公钥密码

(2)任取 a {2,3,, n 2}
且(a,n)=1
(3)如果, n pn 则判n是素数;
否则判n是合数,重新选取n重复上过程。
Rabin证明了由上述算法所产生的素数的误判概率: 由此,我们将算法中的第(2)和(3)步骤重复k次, 这样判定n为素数的误判概率小于等于(1/4)k。 计算复杂度为:O((log2n)3)
12
RSA算法论证
②加密和解密运算的可交换性
D(E(M))=(Me)d =Med =(Md))e =E(D(M)) mod n 所以,RSA密码可同时确保数据的秘密性和数据的
真实性。
13
RSA算法论证
③加解密算法的有效性
RSA密码的加解密运算是模幂运算,有比较有效 的算法。
14
RSA算法论证
④在计算上由公开密钥不能求出解密钥 小合数的因子分解是容易的,然而大合数的因子分
el 2 2l 4
m m ) m ) m
(mod N )
(mod N )
((mel1 )2 mel2 )2 me1 )2 me0
((m2 mel2 )2 me1 )2 me0
(mod N )
当要对明文进行加密时,可先进行预处理, 计算出m2、m3等,这种方法我们称之为窗口法。
8
RSA算法论证
9
RSA算法论证
不妨设M=ap 。
又因q为素数,且M不包含q,故有(M,q)=1, 于是有,M φ(q) =1 mod q 。 进一步有,M t(p-1)φ(q) =1 mod q。 因为q是素数,φ(q)=(q-1),所以t(p-1)φ(q) =tφ(n),
所以有
M tφ(n) =1 mod q。
公钥密码技术

20/26
Z11 上椭圆曲线y2= x3+x+6 (mod 11)中的点 x 0 1 2 3 4 y2= x3+x+6 (mod 11) 6 8 5 3 8 是否模11的平方剩余 不是 不是 是 是 不是 y —— —— 4 ,7 5 ,6 ——
17/26
(3) ECC上的点加定义: 对ECC上 x 坐标不同的两点P、Q, 由 P + Q + R = O 有: P+Q =-R (4) ECC上的倍点运算定义: P + P = 2P = ? P
y
R
x
-R= 2P 在ECC上点P做一条切线,设切线与对ECC交于点R, 定义: 2P = P + P = -R 类似有,3P= P + P + P , kP= P + P + P + …+ P
11/26
4.3 ElGamal公钥密码体制(续)
2. 加密:
(1) 用户A先把明文M编码为一个在 0 到(p-1)之间的整数m 作为传输的明文; (2) 用户A挑选一个秘密随机数 r ( 2≤ r ≤ p-2 ), 并计算: c1= gr (mod p);
(3)用户A计算: c2 = m· yr (mod p),其中y是用户B的公开密 钥;
(公式)
(3 2 2 1)(2 7) 1 mod11
2 31 mod11 2 4 mod11 8
15/26
4.4.2 椭圆曲线的概念与运算 椭圆曲线由一个二元三次方程定义的,但不同数域上的椭圆 曲线的表示形式是不一样的,甚至其上的运算也不一样。对于椭 圆曲线上的密码体制,最常使用有限域GF(p)上的椭圆曲线和有 限域GF(2m)上的椭圆曲线。 设 p>3是一个素数。有限域 Zp 上的椭圆曲线是: y2= x3+ax+b (mod p) 其中a,b∈Zp, 4a3+27b2≡0 (mod p)
04公钥密码学技术

PGP的实现过程主要由信息的加密、解密过程 和签名、验证过程组成。 (1)PGP加密、解密过程
PGP 系统通过RSA 算法密钥生成模块,产生出一个公 钥和另一个与之相关联的私钥。 PGP创建一个会话密钥(session key) 会话密钥和IDEA加密算法加密明文以产生密文。 数据加密后,用加密接收者的公钥加密会话密钥,该由 公钥加密的会话密钥将随着密文传送到接收者端。 PGP 系统文件解密是加密的逆过程
RSA练习题
1.
2.
在使用RSA密码体制中,已截获发给某用户 的密文c=10,该用户的公钥e=5,n=35,那么 明文m是多少? 利用RSA算法运算,如果p=11,q=13,e=103, 对明文3进行加密。求私钥d及密文。
公开密码学概述 Diffie-Hellman密钥交换算法(略) RSA 算法 DSA算法(略) PGP技术 公开密钥基础设施PKI 密钥管理 工具介绍
PGP 原理
PGP是一软件加密程序,为消息和数据文件提供数据 完整性服务。使用了加密、压缩和信任网(web of trust)的技术。 它对信息的加密使用IDEA对称算法,相应的加密密 钥的管理和发布则由RSA算法实现。 PGP让用户自己建立自己的信任网,即信任是双方直 接的关系,或者是通过第三者、第四者的间接关系, 但任意两方之间是对等的,整个信任关系构成网状结 构。
RSA算法举例:
现在设明文 X为19。公开密钥={5,119},私有密钥 ={77,119}
明文 19 195= 2476099 119 =20807 及余数 66
加 密
密文
解 密
密文 66
1.27…×10140 6677=
第四章公钥密码学技术

基于公钥算法的密钥交换
公钥基本结构PKI定义基于公钥的密钥交换步骤如下: ①发件人获得收件人的公钥; ②发件人创建一个随机机密密钥(在对称密钥加密中使
用的单个密钥); ③发件人使用机密密钥和对称密钥算法将明文数据转换
为密文数据; ④发件人使用收件人的公钥将机密密钥转换为密文机密
密钥; ⑤发件人将密文数据和密文机密密钥一起发给收件人; ⑥收件人使用其私钥将密文机密密钥转换为明文; ⑦收件人使用明文机密密钥将密文数据转换为明文数据。
➢ 他们交换了公开密钥之后,计算共享密钥如下: A:K=(YB) XA mod q=4436 mod 97=75 B:K=(YA) XB mod q=5058 mod 97=75
精品课件
1.公开密码学概述 2.RSA 算法 3.Diffie-Hellman密钥交换算法 4.公开密钥基础设施PKI 5.密钥管理
用户B计算密钥的方式:KB=(YA) XB mod q KB= (XA mod q)XB mod q = (XA)XB mod q
=XAXB mod q
可见: KA= KB 这样双方已经交换了一个密钥K。由于XA和XB是保密 的,而第三方只有q、、YB、YA可以利用,只有通 过取离散对数来确定密钥,但对于大的素数,计算
精品课件
常规加密和公开密钥加密的比较
特征 加密/解密使用的密钥 加密/解密的速度 得到的密文长度 密钥协定和密钥交换 所需密钥数和消息参 与
快
通常等于或小于明文 长度
大问题
大约为参与者个数的 平方,因此伸缩性不 好 N(N-1)/2
主要用于加密/解密 (保密性),不能用于 数字签名(完整性与 不可抵赖性)
①φ(n)=(7-1)(17-1)=96,选择e=5, gcd(5,96)=1, ②在这里选择公钥Pk=5; ③计算d,d*e=1 mod 96;d=77,可以得到私钥
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于公钥算法的密钥交换
公钥基本结构PKI定义基于公钥的密钥交换步骤如下: ①发件人获得收件人的公钥; ②发件人创建一个随机机密密钥(在对称密钥加密中使
用的单个密钥); ③发件人使用机密密钥和对称密钥算法将明文数据转换
为密文数据; ④发件人使用收件人的公钥将机密密钥转换为密文机密
密钥; ⑤发件人将密文数据和密文机密密钥一起发给收件人; ⑥收件人使用其私钥将密文机密密钥转换为明文; ⑦收件人使用明文机密密钥将密文数据转换为明文数据。
①φ(n)=(7-1)(17-1)=96,选择e=5, gcd(5,96)=1, ②在这里选择公钥Pk=5; ③计算d,d*e=1 mod 96;d=77,可以得到私钥
Sk=77。 ④如果明文m=19,根据计算的公钥Pk=5和私钥
Sk=77,我们可以对明文进行加密和解密: ⑤加密:195 mod 119 = 66;66是被加密的密文; ⑥解密:6677 mod 119 = 19;19是被解密的明文。
精品课件
非对称密钥加密 加密/解密使用的密钥 不相同 慢
大于明文长度
没问题
等于参与者个数,因此 伸缩性好
可以用于加密/解密(保 密性)和用于数字签名 (完整性与不可抵赖性)
理想的加密机制 解决方案安全完全 加密/解密速度快 生成的密文长度要小 伸缩性好,不能引入更多复杂性 要解决密钥发布问题
精品课件
常规加密和公开密钥加密的比较
特征 加密/解密使用的密钥 加密/解密的速度 得到的密文长度 密钥协定和密钥交换 所需密钥数和消息参 与者个数的关系
用法
对称加密
加密/解密使用的密 钥相同
快
通常等于或小于明文 长度
大问题
大约为参与者个数的 平方,因此伸缩性不 好 N(N-1)/2
主要用于加密/解密 (保密性),不能用于 数字签名(完整性与 不可抵赖性)
仅仅知道密码算法和加密密钥而要确定解密密钥,在 计算上是不可能的。
两个相关密钥中任何一个都可以用作加密而让另外一 个用作解密。(某些算法,比如RSA,具有的特性)
精品课件
非对称密钥加密算法的特点: 非对称密钥加密算法算法基于数学函数而不是替代
和置换。 非对称密钥加密算法中的密钥是非对称的,它用到
解密 B收到这个报文后就用他的私有密钥(保密密钥)解密报文。 其他所有收到这个报文的人都无法解密它,因为只有 B 才有 B的私有密钥。 P=DKRB[c]
精品课件
非对称密钥加密算法用于加密:
精品课件
非对称密钥加密算法用于鉴别: 1. 如果A想给B发送一个签名报文,他就用自己的私有(保
密)密钥加密这个报文。 2. B收到这个报文后就用A的公开密钥鉴别该报文。
精品课件
RSA算法实现的步骤如下: 假设甲为实现者 甲寻找两个大素数p和q (2)甲计算n=p·q 和φ(n)=(p-1)(q-1) (3)甲选择一个随机数e (0<e< φ(n)),满足
gcd(e,φ(n))=1 (4) 甲使用辗转相除法计算d=e-1 modφ(n)
精品课件
RSA算法举例: 设 p=7,q=17,n=7*17=119,因此参数T定义为 T={n=119}。由此可以计算:
精品课件
RSA加密/解密算法 RSA加密: 将明文数字化并分组,使明文分组m满足: 0≤m<n。
对每块进行加密变换:c=EKU(m)=me mod n 解密过程: m=DKR(c)=cd mod n RSA体制下,加密算法和解密算法之间,有下面的关系
成立: DKR(EKU(m))=(me)d=m mod n EKU(DKR(m))=(md)e=m mod n
精品课件
非对称密钥加密过程中的重要步骤如下: 产生密钥
网络中的每个端系统都产生一对用于它将报文进行加密 和解密的密钥。 公开密钥 每个系统都通过把自己的加密密钥放进一个登记本或者 文件来公布它。另一个密钥则是私有的(保密)。
精品课件
加密 如果A想给B发送一个报文,他就用B的公开密钥加密这 个报文。 C=EKUB[p]
两个不同的密钥,这对于保密通信、密钥分配和鉴 别等领域都有着深远的影响。 非对称密钥加密算法成功地解决了计算机网络安全 的身份鉴别、数字签名等问题,推动了包括电子商 务在内的一大批网络应用的不断深入发展。 使密钥管理变得容易了,用户可以容易地从对称密码 系统中删除。 加密和解密较对称密钥加密算法慢。
RSA是分组密码体制。 RSA是基于整数分解难题的算法体制,即两个大素数
很容易相乘,而对得到积因子则很难。RSA中的私钥 和公钥基于大素数(100位以上),算法本省很简单, 但实际难度在于RSA选择和生成私钥和公钥。
精品课件
生成密钥 ①首先任意选取两个大素数p、q,使:n=pq n称为模 则欧拉函数φ(n)为:φ(n)=(p-1)(q-1) ②然后,任意选取一个与φ(n)互素的小整数e作为公开的 加密指数。 ③由e求出秘密的解密指数d: de = k(φ(n))+1 = 1 mod φ(n) ④ 公钥(n,e); 私钥(n,d) 因子p、q与私钥一起保存或销毁。
第4章 公钥密码学技术
精品课件
1.公开密码学概述 2.RSA 算法 3.Diffie-Hellman密钥交换算法 4.公开密钥基础设施PKI 5.密钥管理
精品课件
公钥密码学是1976年由Diffie和Hellman在其 “密码学新方向”一文中提出 。
精品课件
公开密钥密码系统的原理 公开密钥算法要求每个参与方拥有用一对密钥,一个公开, 另一个保密。用一个密钥进行加密,而用另一个不同但是 有关的密钥进行解密。这些算法有以下重要特性:
精品课件
1.公开密码学概述 2.RSA 算法 3.Diffie-Hellman密钥交换算法 4.公开密钥基础设施PKI 5.密钥管理
精品课件
RSA公钥算法是由Rivest, Shamir和Adleman在1978 年提出来的。RSA是公开密钥密码系统中最常用的是 RSA算法(Rivest,Shamir源自Adleman)。精品课件
RSA算法的安全性分析
建议选择p和q大约是100位的十进制素数,模n的长 度要求至少是512比特。