第4章 公钥密码算法

合集下载

第4章公钥密码体制

第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

公钥密码算法

公钥密码算法

公钥密码算法
公钥密码算法是一种非对称加密算法,它使用一对公钥和私钥来加密和解密信息。

公钥密码算法的基本原理是:用户A将
要发送的信息使用用户B的公钥进行加密,然后发送给用户B,用户B收到信息后,使用自己的私钥进行解密,从而获得
原始信息。

公钥密码算法的安全性主要取决于公钥和私钥的安全性,因此,在使用公钥密码算法之前,需要先生成公钥和私钥。

一般来说,生成公钥和私钥的过程可以分为以下几个步骤:
1. 选择一个大质数p和一个小质数q,并计算出n=pq;
2. 选择一个大于1小于n的整数e,使得e与(p-1)(q-1)互质;
3. 计算出d,使得ed=1 mod (p-1)(q-1);
4. 将公钥(n,e)和私钥(n,d)发布出去。

在使用公钥密码算法进行加密时,可以使用以下步骤:
1. 将要发送的信息m转换成一个整数M,使得0<M<n;
2. 计算出密文C,C=M^e mod n;
3. 将密文C发送给接收方。

在使用公钥密码算法进行解密时,可以使用以下步骤:
1. 接收方收到密文C后,计算出明文M,M=C^d mod n;
2. 将明文M转换成原始信息m。

公钥密码算法的安全性取决于公钥和私钥的安全性,因此,在使用公钥密码算法时,应该采取有效的措施来保护公钥和私钥,以防止被攻击者破解。

例如,可以采用数字签名技术来验证公钥和私钥的真实性,以及采用加密技术来保护公钥和私钥,以防止被攻击者窃取。

RSA公钥密码算法

RSA公钥密码算法

RSA公钥密码算法RSA公钥密码算法是一种常见的加密算法,常用于网络通信、数据传输等领域,它采用公钥与私钥相结合的方式进行加密解密,具有高度的安全性和可靠性。

下面我们将详细介绍RSA公钥密码算法的原理和实现。

RSA公钥密码算法中,每个用户都有一对不同的密钥,公钥和私钥。

公钥是公开的,可以向所有人公开,而私钥只有用户本人知道,保密性极高。

加密时使用公钥进行加密,解密时使用私钥进行解密。

RSA公钥密码算法的原理主要涉及到以下几个方面:1. 随机选择两个素数p和qRSA公钥密码算法的核心是基于数学难题,即大数分解问题。

在算法中,首先需要随机选择两个大质数p和q,它们是算法的核心秘密。

p和q不能太小,否则易被破解,也不能太大,否则计算量太大。

通常,取素数的位数越多,安全性越高。

当p和q选好后,计算N=pq。

2. 计算N和欧拉函数在算法中,N和欧拉函数φ(N)是两个重要的参数。

N=pq是两个质数的积,φ(N)表示小于N的正整数中与N互质的数目。

当p和q是不同的质数时,φ(N)=(p-1)(q-1)。

在实际应用中,我们通常选择的是越大的质数越好。

3. 选择加密密钥e在算法中,需要选定一个加密密钥e,它必须满足1<e<φ(N),且e与φ(N)互质。

加密密钥e可以公开,任何人都可以知道。

4. 计算解密密钥d在算法中,需要计算一个解密密钥d,它必须满足ed mod φ(N)=1。

解密密钥d只有用户本人知道,保密性极高。

根据扩展欧几里得算法,可以求得模φ(N)下e的逆元d。

5. 加密和解密过程在加密时,明文M先被转化为一个整数m,然后计算出密文C=me mod N,其中e是加密密钥,N是公钥中的参数。

在解密时,密文C首先被解密为明文m=Cd mod N,其中d是解密密钥,N是公钥中的参数。

6. 安全性分析RSA公钥密码算法基于大质数分解问题,因此,只有在分解N为p和q这两个质数的乘积时,才有可能破解该算法。

公钥密码算法

公钥密码算法

公钥密码算法公钥密码算法是现代密码体系最通用的加密算法,称为非对称加密方式,公钥和私钥总是成对出现的,用公钥加密则私钥可以用来解密,或者反过来。

标准的RSA的加密算法利用的是大数质因数分解困难的特点,其数学原理十分简单。

{(XQ−1)P−1≡1(modP)(XP−1)Q−1≡1(modQ)⇒X(P−1)×(Q −1)≡1(modPQ)⇒XM≡1(modN)⇒XE×D≡X(modN)⇒YD≡X(mod N)其中密文Y、公钥E和大数N都是公开的,但是没有私钥D就无法得到X,破解需要对N进行质因数分解反推出P和Q,因为大数质因数分解需要穷举,因此密码在很长的时限内都是安全的。

从原理可以看出,加密和解密是完全对称的,如果用私钥加密,而用公钥解密的过程称为电子签名,因为别人没有私钥,就无法伪造签名者的消息和身份信息了。

一般网银和网上交易等金融相关的密码体系采用加密和电子签名相结合的方式,对用户密码用银行等服务端的公钥加密后再和用户名等信息一起用用户的私钥进行电子签名,服务端再分别用用户的公钥和银行的私钥解密,用数字证书的方式传递公钥。

而一般的网站登录多采用MD5值来存储和比对密码,虽然理论上从MD5值无法得到密码的明文,但仍然存在撞库的风险,黑客收集普通人常用的一些密码组合转换为MD5值来反推,因此尽量不要使用电话号码、名字缩写、生日组合之类的简单密码,网银密码用单独的密码不要和其他网站的密码一样。

RSA是目前最常用的公钥加密算法,但并没有从理论上证明破译RSA的难度与大数分解难度等价,有数学家认为RSA密码存在漏洞,而且在计算能力越来越强的计算机面前,仍然需要寻找更安全的加密方式。

ECC(Elliptic Curves Cryptography椭圆曲线密码)也是一种公钥密码算法,ECC能用更短的密钥长度来提供同等或更高的安全级别,其数学原理比较复杂,简单的说是利用椭圆曲线上点群的离散对数问题的困难性(并不懂这句话的意思),有机会再慢慢学习吧。

公钥密码算法

公钥密码算法

公钥密码算法学号:0900250114 姓名:李荣亮摘要:古往今来,通信中的安全保密问题一直受到广泛关注。

历史上,交战双方在通信安全、保密和密码破译方面的优势均被认为是取得战争胜利的关键因素之一。

今天,随着互联网的发展,人类进入信息化时代,现代通信涉及各个行业,信息安全已成为人人都关心的问题,敏感信息的安全传输越来越受到人们的关注,这就促使密码学揭去了神秘的面纱,为更广泛的领域和大众服务。

一、公钥密码学概述。

公开密钥密码算法的提出是整个密码学历史上最大的而且也许是最唯一真正的变革。

从最初一直到现代,几乎所有密码系统都建立在基本的替代和置换工具的基础上。

在用了数千年的本质上可以手算完成的算法之后,常规的密码学随着转轮加密/解密机的发展才出现了一个重大进步。

机电式变码旋转软件使得极其复杂的密码系统被研制出来。

有了计算机后,更加复杂的系统被设计出来。

但是不管是转轮机还是后来的DES(数据加密标准),虽然代表了重要的进展,却仍然依赖于替代和置换这样的基本工具。

公钥密码学则与以前的所有方法都截然不同。

一方面公开密钥算法基于数学函数而不是替代和置换,更重要的是,公开密钥密码学是非对称的,它用到两个不同的密钥,而对称的常规加密则只使用一个密钥。

使用两个密钥对于保密通信,密钥分配和鉴别等领域都有着深远的影响。

公钥密码算法中的密钥依性质划分,可分为公钥和私钥两种。

用户或系统产生一对密钥,将其中的一个公开,称为公钥;另一个自己保留,称为私钥。

任何获悉用户公钥的人都可用用户的公钥对信息进行加密与用户实现安全信息交互。

由于公钥与私钥之间存在的依存关系,只有用户本身才能解密该信息,任何未受授权用户甚至信息的发送者都无法将此信息解密。

在近代公钥密码系统的研究中, 其安全性都是基于难解的可计算问题的。

如:(1)大数分解问题;(2)计算有限域的离散对数问题;(3)平方剩余问题;(4)椭圆曲线的对数问题等。

基于这些问题, 于是就有了各种公钥密码体制。

第四章公钥密码体制

第四章公钥密码体制

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协议中,使用公钥密码学算法来实现通信内容加密和身份认证的过程,从而保证通信的安全性和保密性。

信息安全概论第四章公钥密码体制

信息安全概论第四章公钥密码体制

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))

非对称密码体制-第四章网络09

非对称密码体制-第四章网络09

11
4.2.1 RSA算法 算法
2、加密过程 、 的公钥: (1)在公钥库中查得用户 的公钥:PU={e, n}; )在公钥库中查得用户U的公钥 ; 使得0≤mi<n,i=1, (2)将明文分组 )将明文分组m=m1m2…mr,使得 , , 2,… ,r; , ; (3)对明文分组 i作加密变换: )对明文分组m 作加密变换: ci=E(mi) ≡ mie mod n, i=1,2,… ,r n, i=1,2, 传送给用户U。 (4)将密文 1 c2…cr传送给用户 。 )将密文c 3、解密过程 、 (1)先对每组密文做解密变换: )先对每组密文做解密变换: mi=D(ci) ≡cid mod n (2)合并分组得到明文 )合并分组得到明文m=m1m2…mr。
12
图4-3 RSA算法 算法
选取大素数p和q 令n=p*q,计算φ(n)
随机选取整数e 由e*d≡1(mod φ(n))计算d
将(n,e)作为公钥公开 将(p,q,d)作为私钥保密
用公钥加密 ci=E(mi)≡(mie mod n)
用私钥解密 mi=D(ci)≡(cid mod n)
13
【例4-1】选择素数: p=47 和 q=71,求出RSA 】选择素数: ,ห้องสมุดไป่ตู้出 算法的公钥和私钥。 算法的公钥和私钥。
2
4.1 公钥密码体制的基本概念
Diffie和Hellmna于1976年在《密码学的新方向》中 和 年在《 于 年在 密码学的新方向》 首次提出了公钥密码的观点, 首次提出了公钥密码的观点,即为每个用户分配两 个相互匹配又相互独立的密钥,其中: 匹配又相互独立的密钥 个相互匹配又相互独立的密钥,其中: 一个密钥被公开,称为公开密钥(公钥), ),用于 一个密钥被公开,称为公开密钥(公钥),用于 加密, 加密, 另一个密钥被保密,称为私有密钥(私钥), ),用 另一个密钥被保密,称为私有密钥(私钥),用 解密。 于解密。 所有用户的公钥均登记在类似电话号码簿的密钥本 当要给用户A发送加密信息时 发送加密信息时, 上。当要给用户 发送加密信息时,需要在密码本上 查找A用户的公钥 然后加密信息,并发给用户A。 用户的公钥, 查找 用户的公钥,然后加密信息,并发给用户 。 用户A接收到密文之后 接收到密文之后, 用户 接收到密文之后,用自己的私钥进行解密即可 得到明文。 得到明文。 1977年由 年由Rivest(李维斯特)、 )、Shamir(沙米尔) 年由 (李维斯特)、 (沙米尔) 和Adleman(埃德曼)共同提出了第一个公钥密码 (埃德曼) 算法( 密码体制), 算法(即RSA密码体制),是公钥密码中最优秀的 密码体制),是公钥密码中最优秀的 加密算法,被誉为密码学发展史上的里程碑之一。 里程碑之一 加密算法,被誉为密码学发展史上的里程碑之一。 此后, 此后,人们基于不同的计算问题提出了大量的公钥 密码算法。 密码算法。

第4章公钥密码算法

第4章公钥密码算法
6
公钥密码体制依赖的基础
• ⑴ 函数是一一映射关系,也就是说,对于每个函数值y,只有 唯一的一个原象x与之对应; • ⑵ 给定x与关键参数k,函数y=fk(x)很容易计算; • ⑶ 给定y,存在某个关键参数k’,在未知k’时,由y计算出x 非常困难,即在未知k’的条件下,逆函数x=f-1k’(y)的计算相 当复杂,实际上是不可行的;在已知k’时,对给定的任何y, 则逆函数x=f-1k’(y)很容易计算;
8
公钥密码系统的特征
• ⑴ 密钥。要满足两点要求:公钥/私钥
(PK/SK)对容易产生,且私钥除了生成密钥
的用户自己知道之外,其他任何人都不可
知;已知公钥PK,无法计算出私钥SK,即
公钥密码系统所要满足的基本条件之一是 从公开密钥无法通过计算得到私有密钥。
9
公钥密码系统的特征
• ⑵ 加密算法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。 10
公钥密码体制加解密过程
假设网络上的两个用户Alice和Bob需要进行秘密
通信,为了防止攻击者Eve窃听信息,Alice和Bob 选择使用公钥密码体制加密传输的信息。Alice是 信息的发送方;Bob是信息的接收方。

公钥密码算法

公钥密码算法

Security in September 2013 issued an advisory recommending that its
customers discontinue using any software based on Dual_EC_DRBG. In the
wake of the exposure of Dual_EC_DRBG as "an NSA undercover operation",
y2 x3 ax b, 其中a,b满足 16(4a3 27b2 ) 0
演示:参数变化
椭圆曲线密码算法
运算规则:加法
无穷远点记为 O
椭圆曲线密码算法
加法运算
设P (x1, y1), Q ( x2 , y2 ) 1.如果x2 =x1且y2 =-y1,则P Q O 2.否则P Q=(x3 , y3 )
1978,Merkle-Hellman背包算法已破译 回忆:背包问题(子集和问题)
Merkle-Hellman背包加密
NP完全问题
➢ 特例
Superincreasing knapsack problem
k 1
如果正整数序列s1, s2,..., sn满足 si sk ,其中2 k n
C模p的两个平方根是
C ( p1) 4 mod p
Rabin 加密算法
解密
类似地,模q的两个平方根是 C( p1) 4 mod q 因此(CRT),令 m1 C( p1) 4 mod p; m2 ( p C( p1) 4 ) mod p; m3 C( p1) 4 mod q; m4 (q C ( p1) 4 ) mod q
Random Bit Generation (or Dual_EC_DRBG) had been included as a NIST

公钥密码算法分析

公钥密码算法分析

一个新用户 申请证书
公钥密码算法分析
建设PKI的必要性
▪ 保证业务用户或者是系统服 务器的身份认证
▪ 保证业务数据的保密性 ▪ 保证业务操作的不可抵赖性 ▪ 保证数据的完整性 ▪ 结合业务逻辑方便的实现访
问控制
数字证书 数据加密 数据签名+数字时间戳 数据签名 数字证书扩展应用
公钥密码算法分析
PKI技术的应用介绍
通信双方能互相验证对方的身份,确认对方确实是他所 声明的身份
公钥密码算法分析
三、RSA系统分析 1. 安全性 2. RSA与因子分解 3. 参数选取(p,q, e,d) 4. 效率分析
公钥密码算法分析
三、RSA系统分析
从(n,e)计算d是不可行的:归约为 数学难题“大整数分解”。
注:没有分解RSA模数是困难的证明, 即当我们取p,q为大素数时,至今无
PKI系统标准结构
KMC
CA
PKIX CMP, Cert
Cross Certification
CA
D/B
HSM
LDAPv3, DAP
Signing Algorithms RSA, DSA, ECDSA
Directory Services
LDAP
CA
D/B
HSM
PKIX
CA
D/B
HSM
PKI enabled applications
❖ 姓名:王明 ❖ 编号: ❖ 签发者:北京市公安局海
淀分局 ❖ 发布时间:2000-04-05 ❖ 有效期:20年 ❖ 住址:北京市海淀区中科
院南路6号
公钥密码算法分析
二、PKI技术的典型应用
身份认证 身份认证是鉴别资源的访问者的合法性 的基础手段

05_密码学基础(四)_公开密钥密码算法

05_密码学基础(四)_公开密钥密码算法

密钥分配
使用对称密码算法 保密通信双方需共享密钥:A&B,B&C,C&A N个用户集需要N(N-1)/2个共享密钥 共享密钥需要经常更换,更换方式有

A选择密钥并手工传递给B 第三方C选择密钥分别手工传递给A,B 用A,B原有共享密钥传送新密钥 与A,B分别有共享密钥的第三方C传送新密钥给A和/ 或B
数论简介
欧拉定理 表述1: 将Z/(n)表示为 Zn,其中n=pq; p,q为素数且相异。 若Z*n={g∈ Zn|gcd(g,n)=1},易见Z*n为(n)阶的乘 法群,且有 g(n)1(mod n),而 (n)=(p-1)(q-1)。 表述2: 若整数g和n互素,则g(n) ≡1(mod n);其中(n)为比 n小,但与n互素的正整数个数, 称为(n)的欧拉函数 表述3: 给定两个素数p和q,以及两个整数m、n,使得n=pq ,且0<m<n,对于任意整数k下列关系成立,
公钥密码学的历史


76年Diffie和Hellman发表了“密码学的新方向 ”,奠定了公钥密码学的基础 公钥技术是二十世纪最伟大的思想之一

改变了密钥分发的方式 可以广泛用于数字签名和身份认证服务

78年,RSA算法 PKI
公钥加密模型
公开密钥的加密
公开密钥密码的重要特性 加密与解密由不同的密钥完成 加密: X –>Y:Y = EKU(X) 解密: Y –>X: X = DKR(Y) = DKR(EKU(X)) 知道加密算法,从加密密钥得到解密密钥在计算上是 不可行的; 两个密钥中任何一个都可以用作加密而另一个用作解 密 X = DKR(EKU(X)) = EKU(DKR(X))

SM9_4 密钥封装机制和公钥加密算法

SM9_4 密钥封装机制和公钥加密算法
1.9
加密主密钥 encryption master key 处于标识密码密钥分层结构最顶层的密钥,包括加密主私钥和加密主公钥,其中加密主公钥公开, 加密主私钥由 KGC 秘密保存。KGC 用加密主私钥和用户的标识生成用户的加密私钥。在标识密码中,加 密主私钥一般由 KGC 通过随机数发生器产生,加密主公钥由加密主私钥结合系统参数产生。
1
SM9 标识密码算法 第 4 部分:密钥封装机制和公钥加密算法
本部分规定了用椭圆曲线对实现的基于标识的密钥封装机制和公钥加密与解密算法,并提供相应的 流程。利用密钥封装机制可以封装密钥给特定的实体。公钥加密与解密算法即基于标识的非对称密码算 法,该算法使消息发送者可以利用接收者的标识对消息进行加密,唯有接收者可以用相应的私钥对该密 文进行解密,从而获取消息。
1.6 解密 decipherment 加密对应的逆过程。
1.7 密钥派生函数 key derivation function 通过作用于共享秘密和双方都知道的其它参数,产生一个或多个共享秘密密钥的函数。
2
1.8
消息认证码 message authentication code;MAC 一种认证算法作用于特定的密钥和消息比特串所得出的一段码字,可用来鉴别数据的来源和检验数 据的完整性。用于求取消息认证码的函数称作消息认证码函数。
3.1 总则....................................................................................................................................................... 4 3.2 系统参数组...........................................................................................................................................4 3.3 系统加密主密钥和用户加密密钥的产生.......................................................................................... 4 3.4 辅助函数...............................................................................................................................................5

第四章公钥密码学技术

第四章公钥密码学技术
精品课件
基于公钥算法的密钥交换
公钥基本结构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,可以得到私钥

公钥密码算法课件

公钥密码算法课件
历史
随着计算机科学和数学的发展,公钥密码算法将不断得到改进和完善,以适应不断变化的安全威胁和需求。同时,随着区块链、云计算和物联网等技术的普及,公钥密码算法的应用场景也将不断扩展。
发展
02
公钥密码算法的种类
总结词:RSA算法是一种非对称加密算法,使用一对密钥进行加密和解密操作。
总结词
ECC算法是一种基于椭圆曲线理论的公钥密码算法。
公钥密码算法是保障信息安全的重要手段之一,能够实现数据的机密性、完整性和不可否认性。
保障信息安全
促进电子商务发展
保护个人隐私
公钥密码算法能够实现数字签名和身份认证,为电子商务的发展提供了安全保障。
公钥密码算法能够实现匿名通信和数字现金等应用,保护个人隐私和财产安全。
03
02
01
公钥密码算法的发展经历了从RSA算法、Diffie-Hellman密钥交换协议到椭圆曲线密码算法等阶段。
密钥管理不善导致密钥泄露。
实现漏洞
算法实现过程中存在错误或缺陷。
协议漏洞:协议设计不合理导致安全性不足。
采用安全的密钥交换协议和存储方式。
加强密钥管理
对算法实现进行严格审查和测试,确保实现正确性。
代码审查与测试
对协议进行重新设计,提高安全性。
协议优化
05
公钥密码算法的前沿研究与未来发展
随着量子计算技术的发展,现有的公钥密码算法可能面临被量子计算机破解的风险。
公钥密码算法课件
公钥密码算法概述公钥密码算法的种类公钥密码算法的应用公钥密码算法的安全性分析公钥密码算法的前沿研究与未来发展
01
公钥密码算法概述
定义
公钥密码算法是一种非对称加密算法,使用一对密钥进行加密和解密操作。其中,一个密钥是公开的,称为公钥,另一个密钥是保密的,称为私钥。

密码学公钥密码-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年公布 就是一种分组加密算法

RSA公钥密码算法的加密和解密

RSA公钥密码算法的加密和解密
假设m为要传送的报文。
(1)选取两个大素数 p, q (2) 计算n=pq, (n)=(p-1)(q-1) (3) 随机选取e: 1<e<(n),与(n)互素 (4) 使用扩展欧几里德算法计算 即ed = 1 mod (n) (5)以(e,n)为公钥,(d,n)为密钥
加密算法
发送方:
a a
m
(
bi 0
2i )
a
bi 0
( 2i )
a modn ( a
m bi 0
( 2i )
) modn ( [a
bi 0
( 2i )
modn]) modn
密钥产生
确定两个素数p和q 选择e或d计算另外一个
素数选取
为了避免攻击者用穷举法求出p和q,应该从足够 大的集合中选取p和q。即p和q必须是大素数。 没有产生任意的大素数的有效技术,通常的作法 是随机选取一个需要的数量级的奇数并检验这个 数是否是素数。若不是则挑选下一个随机数直至 检测到素数为止。
(1)获取公钥e,对明文m加密 (2)计算密文 c≡me mod n
(3)发送密文)利用私钥d解密,恢复明文m m≡cd mod n
例子
已知p=3,q=11,明文m. (1) 求密钥; (2) 写出相应的加密算法和解密算法; (3) 对明文m=8加密,解密。 解: n=p×q=33,且(n)=(p-1)(q-1)=20 取e=7,e满足满足1<e<(n),且gcd((n),e)=1 可解模方程 ed mod (n)=1, 即 7d mod20=1 得到d=3
RSA的安全性
对RSA的攻击方法主要有以下三种: 1. 强力攻击(穷举法):尝试所有可能的私有密 钥 2. 数学分析攻击:有多种数学攻击方法,其本质 等价于试图分解两个素数的乘积 3. 计时攻击:记录计算机解密消息所用的时间。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

公钥密码体制
• 公钥密码技术的主要价值是解决下列问题:
– 1)密钥分发;
– 2)大范围应用中,数据的保密性和完整性; – 3)实体鉴别;
– 4)不可抵赖性;
• 公钥密码体制的应用可分为3类:
– a)加密/解密:发送方用接收方的公钥对消息加密。
– b)数字签名:发送方用其私钥对消息签名。签名可以对 整条消息加密或对消息的一个小的数据块加密来产生,其 中该小的数据块是整条消息的函数。 – c)密钥交换:通信双方交换会话密钥。有几种不同的方 法可用于密钥交换,这些方法都使用了通信一方或双方的 私钥。 12
• 重要特点
–仅根据密码算法和加密密钥来确定解密密钥在计算上不可行。
• 有些算法如RSA还具有:两个密钥中的任何一个都可用来加密, 另一个用来解密。 • 优点:能很好解决私钥加密中由于密钥数量过多导致的管理难 和费用高等问题,也不用担心传输中的私钥泄漏,保密性能优 于私钥加密。 • 缺点:加密算法复杂,加密速度难以达到理想状态。 4
• ⑷ 给定y和参数k,无法从函数y=fk(x)推导出影响其逆函数f-1 的关键参数k’。
• 设计任何一种公钥密码方案,所要做的工作就是寻找 这样的单向陷门函数,其中陷门信息就是私钥,也就 是上面所列举的关键参数k’。 6
公钥密码系统的特征
根据密码系统的组成以及公钥密码体制自身的特
点,一个公钥密码系统可以表示为:加密算法E、 解密算法D、公钥/私钥(PK/SK)对、明文M、密文C 六个元素,且各元素必须要满足以下条件:
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
椭圆曲线密 码



是 否

是 是
Diffie-Hellman 否
DSS



13
公钥密码体制
自1976年提出公钥密码系统以来,密码专家们已设计出多种 公钥密码算法,这些算法的共同点都是基于某类数学难题, 通过找到该类问题的某个单向陷门函数实现对数据的加密 和解密。 依据所依赖的数学难题类别划分,主要有以下3类系统: ◆基于大整数因子分解问题的公钥系统,典型代表是RSA算法; ◆基于有限域椭圆曲线离散对数问题的公钥系统,典型代表是 ECC算法;
5
公钥密码体制依赖的基础
• ⑴ 函数是一一映射关系,也就是说,对于每个函数值y,只有 唯一的一个原象x与之对应; • ⑵ 给定x与关键参数k,函数y=fk(x)很容易计算; • ⑶ 给定y,存在某个关键参数k’,在未知k’时,由y计算出x 非常困难,即在未知k’的条件下,逆函数x=f-1k’(y)的计算相 当复杂,实际上是不可行的;在已知k’时,对给定的任何y, 则逆函数x=f-1k’(y)很容易计算;
公钥密码体制概述
• 1976年Diffie和Hellman的“New directions in cryptography” 导致了密码学上的一场革命,开创了公钥密码学的新纪元。 他们首次证明了在发送端和接收端无密钥传输的保密通信是 可能的。 • 1977年Rivest,Shamir和Adleman提出了RSA公钥密码算法。 • 90年代逐步出现椭圆曲线密码等其他公钥算法。
• 六个组成部分:
–明文、密文;公钥、私钥; –加密算法、解密算法
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算

公钥密码体制,又称为双钥或非对称密码体制 密码系统有两个密钥,即加密密钥和解密密钥不同,从一 个难于推出另一个。这两个密钥一个是公开的,一个是秘密 的,分别称为公开密钥和私有密钥,公开密钥是对外公开的, 即所有的人都可知,私有密钥是只有特定的用户方能拥有。
1
公钥密码体制概述
• 公钥密码体制与私钥密码体制的最大不同点就是:加 密密钥和解密密钥不同,从一个难于推出另一个。在 公钥密码体制中,将这两个不同的密钥区分为公开密 钥PK(Public Key)和私有密钥SK(Secrete Key)。
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算法依赖的数学问题
法是被使用最多的公钥密码方案。
16
RSA算法依赖的数学问题
• RSA 算法基于“大整数质因子分解”非常困难这 一数学难题,这里大整数通常有几百位长。 RSA 算法依赖以下几个数论定理: • ⑴ 模运算的性质: –正整数n是素数,集合Zn = {0,1,2….,(n1)} 表示小于n的所有非负整数集合,则对于集 合Zn 中的每一个非零整数wZn,均存在一个z, 满足公式 w × z = 1 mod n,我们称z是w的乘 法逆元,且n是它们的模。
公钥密码体制加解密过程
假设网络上的两个用户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
公钥密码体制依赖的基础
• 传统的对称密码体制依赖的基础是替代和置换两 种转换思想。与对称密码体制不同的是,公钥密 码体制依赖的基础是数学上的某类问题的求解困 难。
• 经典的公钥密码算法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
相关文档
最新文档