第5章 公钥密码算法20091107

合集下载

公钥密码算法

公钥密码算法

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

公钥密码算法的基本原理是:用户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的加密算法利用的是大数质因数分解困难的特点,其数学原理十分简单。

{(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)椭圆曲线的对数问题等。

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

第5章[第2部分]公钥密码及背包公钥密码算法

第5章[第2部分]公钥密码及背包公钥密码算法
质量为70kg的一个背包,质量序列为: 2,3,6,13,27,52。 解:(1)最大的质量为52kg,小于70kg,所以52kg在背包中。 (2)用70kg减掉52kg剩18kg,下一个质量27kg比18kg大, 所以27kg不在背包中。 (3)再下一个质量13kg小于18kg,所以13kg在背包中。 (4)从18kg中减去13kg剩5kg,再下一个质量6kg比5kg大, 所以6kg不在背包中。 (5)继续这个过程将得出2kg和3kg都在背包中。 因此,我们得到的解是110101。
如果总质量大于这个数则它在背包中用背包质量减去这个数转向考查序列下一个最大的数重复直到结束如果总质量变为零那么有一个解否则无解
第5章 公钥密码体制(2) 章 公钥密码体制( )
网络工程学院
背包公钥密码算法
由Merkle和Hellman提出一个基于组合数学中背包问 题的公钥密码系统。这个背包系统称为MH背包问题。 背包问题是这样的:已知有n个物品,它们的重量分 别为a1,a2,…,an 。现在有一个重量为b的背包,装有其 … 中某些物品,问装的是哪些物品? 即为求xi=0或1,i=1,2,…, n,使满足:
网络工程学院
MH背包加密体制的证明
假定已知:d=d1d2…dn,其中d1,d2,…,dn是n位的0,1符号 串,令 c =a1d1+a2d2+…+andn c即为由背包序列a1,a2,...,an 加密明文 d=d1d2…dn 的密 文,则: t-1c= t-1 a1d1+ w-1 a2d2+…+ w-1 andn 因为ak=tbk(modk),k=1,2,...,n. 故t-1c=t-1 tb1d1 + t-1 tb2 d2+ …+ w-1 tbn dn =b1d1 + b2 d2+ …+ bndn 这是一个超递增背包问题,易解。

密码学中的公钥密码算法及其应用

密码学中的公钥密码算法及其应用

密码学中的公钥密码算法及其应用密码学是一门研究通信安全和信息保密的科学,而公钥密码学算法则是其中最为重要的一种算法。

公钥密码学算法是指在加密和解密过程中,使用不同的密钥来实现。

本文将介绍公钥密码学算法的基本概念和应用。

一、公钥密码学算法概述公钥密码学算法也称为非对称密码学算法,它是一种使用两个密钥来进行加密和解密的算法。

这两个密钥是一对,一个称为公钥,一个称为私钥。

其中,公钥是公开的,任何人都可以知道,私钥则是秘密的,只有拥有者才会知道。

公钥密码学算法的加密过程是这样的:发送方使用接收方的公钥对数据进行加密,接收方使用自己的私钥对加密数据进行解密。

这样,就可以保证通信内容的安全性和保密性。

二、公钥密码学算法的分类公钥密码学算法分为两种类型:基于离散对数问题的算法和基于椭圆曲线问题的算法。

1、基于离散对数问题的算法基于离散对数问题的算法包括RSA和DH两种算法。

RSA算法是由三位数学家Rivest、Shamir和Adleman于1977年发明的。

它主要是利用了大数分解的难度来保证信息的安全性,而公钥就是由两个大素数的乘积得出的。

DH算法是Diffie和Hellman在1976年提出来的,它主要是利用数论中离散对数问题的难度来保证信息的安全性,而公钥则是通过一定计算得出的。

2、基于椭圆曲线问题的算法基于椭圆曲线问题的算法包括ECIES和ECDSA两种算法。

ECIES算法是可扩展加密标准中的一种,它主要是利用椭圆曲线上的点运算来实现加密和解密,公钥就是椭圆曲线上的一个点。

ECDSA算法是可扩展数字签名算法中的一种,它主要是利用椭圆曲线上的点运算来实现数字签名的生成和验证。

三、公钥密码学算法的应用公钥密码学算法在信息安全领域有着广泛的应用,下面介绍几个常见的应用场景。

1、TLS/SSL协议TLS/SSL协议是一种用于保护互联网通信安全的协议。

在TLS/SSL协议中,使用公钥密码学算法来实现通信内容加密和身份认证的过程,从而保证通信的安全性和保密性。

第五章-公钥密钥

第五章-公钥密钥
只有在用户的私有密钥被破坏时,才需要进行 密钥重建;
非对称密钥加密提供了认证功能。 加密和解密较常规密钥密码体制慢。
12
常规加密与公钥密码的比较
加密解密 安全条件 加密速度
方便性 密钥数量
功能
常规加密
同一密钥 密钥必须保密 快 密钥分配不便 N(N-1)/2 加密
公开密钥加密
不同但相关的密钥 其中一个保密 慢 密钥公开方便 2N 加密、签名、密钥分配


算 法
M

PKA
密钥源
图 公钥认证模型
8
5.1概述
发送方A
发送方:C=EPKB[ESKA[M]] 接收方:C=EPKB[ESKA[M]]
接收方B
消 息M


算 法
X


算 法
C
PKB
SKA





算 法
X
算 法
M

SKB
密钥源
PKA
密钥源
图 公钥密码体制的保密和认证
9
改进的数字签名
10
5.1概述
传统密钥管理两个用户之间分别用一对密钥时则n个用户需要cn2nn12个密钥当用户量很大时密钥空间急剧增大如n100时c10024950n1000时c10002499500传统加密算法无法实现抗抵赖的需求51概述用户数和密钥量的对应关系用户数和密钥量的对应关系20000400006000080000100000120000140000用户数50040030020010050图61用户数与密钥量的对应关系1976年斯坦福大学的博士生diffie和其导师hellman在密码学的新方向中首次提出了公钥密码的观点标志着公钥密码学研究的开始

公钥密码学

公钥密码学

公钥密码学
公钥密码学是一种新型的数字复杂算法,用来保护在网络上传输的信息和数据的安全性,是一种加密算法体系,它将源信息转化成一种难以解读的形式,而且只有猜测解密密钥的对象才能够解读。

公钥密码是一种新型的加密算法,它可以简单快捷,安全可靠地实现信息的传输和存储。

公钥密码学以公钥和私钥为核心,是一种不对称的密码算法。

公钥密码利用公钥和私钥加密和解密,这两个密钥体系是独立的,公钥可以向任何人公开,而私钥则只能由它本身的持有者独享,这样就可以大大提高数据的安全性。

公钥密码的特点是可以同时实现加解密,也就是说不论是发送者还是接收者,都可以使用同一密钥进行信息的加解密,而不用降低安全性。

公钥密码学的传输过程是这样的:发送者先将信息进行加密,然后通过公钥将加密后的信息发送给接收者,接收者使用私钥将发送的信息解密,这样就可以实现无疑问的信息传输,而不被拦截或攻击。

在这个过程中,信息的安全性可以得到充分的保证。

由于公钥密码学支持广泛的应用,它已经成为当今智能设备上的一种重要的安全加密技术。

公钥密码技术可以应用于Web安全以及访问控制,可以用于电子商务安全,远程银行注册,电子签名,多人协同工作,电子邮件,数据加密及安全存储等多领域。

公钥密码学是一种抗拦截,安全可靠的加密技术,它具有传统密码技术无法提供的安全性,而且可以应用到智能设备上,被广泛应用
于各种互联网服务,可以有效地提高网络安全性和系统的可靠性。

05现代密码学之公钥密码技术

05现代密码学之公钥密码技术
1. RSA公钥密码体制及其工作过程 记ZN*={a: a∈ZN,(a, N)=1},容易证明ZN*对模
乘法构成一个交换群,称为模N乘群。
引 理 设 p 和 q 是 两 个 不 同 的 素 数 , N=pq , 则 ∀m∈ZN以及任意的非负整数k,有 mkΦ(N)+1=m mod N
证明 若p不整除m,由欧拉定理mp-1=1 mod p,有 mkΦ(N)+1=m mod p
第5部分 公钥密码技术
1976 年 W.Diffie 和 M.E.Hellman 发 表 了 杰 出 的 论 文 《密码学的新方向》,奠定了公开密钥密码体制的 基础。
区别于传统的单密钥密码体制(或称对称密钥密码体 制),公开密钥密码体制是所谓的双密钥密码体制, 加密密钥可以公开。即任何人都可以用这个公开的 密钥进行加密,而相应的脱密密钥是秘密的,任何 第三者想利用已知的公开密钥求脱密密钥是计算上 困难的。
∀m∈M,有D(E(m))=m;
(2)实现E和D的有效性 存在(低次)多项式时间算法实现加、脱密;
(3)安全性 从已知的加密变换,求得脱密变换D或与等效的D’, 使得∀m∈M’⊂M,有D’(E(m))=m在计算上是不可行 的。其中M’是M的一个足够大的子集;
(4)可行性 任何用户要构造一对加、脱密密钥是容易的,比如 说能使用某种概率多项式时间算法来实现;
5.U计算X’x modp=gxx’ modp,
V计算X’y modp=gyx’ modp,
E计算X’x modp=gxx’modp,
X’y modp=gyx’ modp。
于是,U和E共享gxx’ modp=ku, V和E共享gyx’ modp=kv,
5.1 RSA公钥密码体制

管理信息学课件5.5公钥密码算法

管理信息学课件5.5公钥密码算法

2020/10/18
管理信息学 杨善林 胡笑旋编著
第5章 信息安全与信息加密
管理信息学 杨善林 胡笑旋编著
第5章 信息安全与信息加密
管理信息学 杨善林 胡笑旋编著
RSA密码体制:互素
第5章 信息安全与信息加密
•定义5.1 设m,n是两个整数,如果正整数 d 满足: (1) d 整除 m 和 n,即 d|m,d|n; (2) 若 d’|m 且 d ’|n,则 d ’|d。
2020/10/18
管理信息学 杨善林 胡笑旋编著
RSA密码体制:举例
第5章 信息安全与信息加密
例4:设用户A选择两个素数: p = 47,q = 59,
则;n=2773, (n)=46*58=2668。 A取a=157∈Z*2773,再求出b = a-1 ( mod (n) ) = 17。
A公开n=2773和b=17,保密p,q和a。
2020/10/18
管理信息学 杨善林 胡笑旋编著
数字签名方案概述
第5章 信息安全与信息加密
•一般地,一个数字签名方案主要由签名算法S(·)和验证 算法V(·)组成。签名者使用一个只有本人知道的密钥签 一个消息 x 得 S(x),接受者使用公开的V(·)验证其签名 的真伪。
2020/10/18
管理信息学 杨善林 胡笑旋编著
现在用户B想把明文x=920∈Z2773发送给A。B加密明文x=920 得密文:y=Ek(x)≡xb(mod2773)≡92017(mod2773)=948; B在公开信道上将加密后的密文y=948发送给A, 当A收到密文y=948时,A解密可得:ya=948157≡920 (mod2773), 从而A得到B发送的明文x=920。
例3:设用户A选择两个素数:p = 5,q = 7,

公钥密码算法课件

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

管理信息学课件5.5公钥密码算法

管理信息学课件5.5公钥密码算法

公钥密码体制:陷门单向函数(troop-door one-way function)
• 如果函数 f(x) 满足:对 f (x) 的定义域中的任意 x,都容易 计算函数值 f (x) ,而对于 f (x) 的值域中的几乎所有的 y,即 使已知 f 要计算 f--1(y) 也是不可行的,则称 f (x) 是单向函数。
2020/7/10
管理信息学 杨善林 胡笑旋编著
RSA密码体制:b的求法
第5章 信息安全与信息加密
例:设a = 11, n=35,(n)=24 ,计算 b
解: ab ≡ 1(mod (n)) , 即
11b = 24k+ 1,即b = (24k + 1)/11 = 2k + (2k + 1)/11 (1)
令(2k + 1)/11 = c, 则: 2k + 1 = 11c
那么 k = (11c - 1)/2 = 5c + (c - 1)/2
(2)
此时取 c = 1(取最小整数使其能够被整除),那么k = 5 + 0 = 5
把 k = 5代入(1)式得到: b = 10 + (10 + 1)/11 = 11
管理信息学 杨善林 胡笑旋编著
5.5 公钥密码算法
第5章 信息安全与信息加密
•公钥密码体制及其设计的基本原理 •RSA密码体制
2020/7/10
管理信息学 杨善林 胡笑旋编著
第5章 信息安全与信息加密
管理信息学 杨善林 胡笑旋编著
第5章 信息安全与信息加密
管理信息学 杨善林 胡笑旋编著
第5章 信息安全与信息加密
•定义5.1 设m,n是两个整数,如果正整数 d 满足: (1) d 整除 m 和 n,即 d|m,d|n; (2) 若 d’|m 且 d ’|n,则 d ’|d。

公钥密码算法举例

公钥密码算法举例

公钥密码算法举例公钥密码算法是一种基于不同密钥的加密技术,它与对称加密算法不同,后者使用相同的密钥来加密和解密数据。

因此,公钥密码算法也被称为非对称加密算法。

该算法中,加密和解密使用不同的密钥,其中一个被公开,称为公钥;另一个则称为私钥,仅保留在接收方手中。

由于私钥保密,因此即使公钥泄露,攻击者也无法解密数据。

公钥算法有许多的应用,比如加密电子邮件、文件传输和安全联网等方面。

公钥密码算法最重要的特点之一是数字签名。

在这个过程中,发送方使用其私钥生成一些数据,并将其公开给接收方。

接收方使用发送方的公钥验证数字签名的完整性,以确保发送方发送的数据未被篡改或替换。

因此,公钥密码算法可以为数字交流提供安全保障。

以下是一些最常见的公钥算法:RSA:RSA(Rivest-Shamir-Adleman)算法是最早公开的基于公钥的加密技术之一。

它是非对称加密的典型代表,可以用于加密大量数据。

该算法的安全基于大数分解问题,即寻找两个大素数的积的唯一分解。

举个例子,假设我想向我的同事发送一份敏感数据,使用RSA加密,并将其发送给他们。

首先,我会产生一对公钥和私钥。

然后,我将我的公钥发给我的同事,他们用这个公钥来加密数据。

接着,我使用我的私钥来解密数据。

这种方式确保了数据的安全性,因为即使公钥被泄露,也无法使用该密钥解密数据。

ECDSA:椭圆曲线数字签名算法(ECDSA)是一个数字签名协议,使用椭圆曲线的离散对数问题,利用数字签名来验证信息的完整性和真实性。

该算法是非对称加密的另一个代表。

相比RSA,它需要更少的计算能力和存储空间,同时提供了类似的安全性。

以支付应用为例,电子钱包通常使用ECDSA来验证支付交易的身份和总额。

由于支付交易通常是高安全性的,因此ECDSA成为了安全支付的一种重要方式。

总之,公钥密码算法是一种重要的加密技术,用于保护密码、交易和数字通信。

它提供了一种高度安全和可信的方式,使得敏感数据可以安全地传输和存储。

第5章 公钥密码算法20091107

第5章 公钥密码算法20091107

第5章公钥密码算法本章介绍公钥密码机制的基本原理,并介绍一些常用的公钥算法,如Diffie-Hellman密钥交换算法、RSA加密算法、ElGamal加密算法、Rabin加密算法、NTRU算法、ECC体制、1:n公钥体制、(t, n)门限密码共享体制等。

5.1 公钥密码技术5.1.1 公钥密码算法基本原理尽管对称密码技术有一些很好的特性,但它也存在着明显的缺陷,主要在于其密钥的管理:A.进行安全通信前需要以安全方式进行密钥交换。

这一步骤,在某种情况下是可行的,但在某些情况下会非常困难,甚至无法实现。

B.密钥规模复杂。

举例来说,A与B两人之间的密钥必须不同于A和C两人之间的密钥,否则A给B的消息的安全性就会受到威胁。

在有10000个用户的团体中,A需要保持至少9999个密钥(更确切的说是10000个,如果他需要留一个密钥给他自己加密数据)。

对于该团体中的其他用户,此种情况同样存在。

这样,这个团体一共需要将近5000万个不同的密钥!推而广之,n个用户的团体需要2n/2个不同的密钥。

公钥密码算法是指加密和解密数据使用两个不同的密钥,即加密和解密的密钥是不对称的,这种密码系统也称为公钥密码系统PKC (Public Key Cryptosystem)。

公钥密码学的概念首先是由Diffie和Hellman两人在1976年发表的一篇著名论文:“密码学的新方向”中提出的,并引起很大的轰动。

该论文曾获得IEEE信息论学会的最佳论文奖。

与对称密码算法不同的是,公钥密码算法将随机产生两个密钥:一个用于加密明文,其密钥是公开的,称为公钥;另一个用来解密密文,其密钥是秘密的,称为私钥。

图5.1.1表示了公钥密码算法的基本原理。

如果两个人使用公钥密码算法传输机密信息,则发送者首先要获得接收者的公钥,并使用接收者的公钥加密原文,然后将密文传输给接收者。

接收者使用自己的私钥才能解密密文。

由于加密密钥是公开的,不需要建立额外的安全信道来分发密钥,而解密密钥是由用户自己保管的,与对方无关,从而避免了在对称密码系统中容易产生的任何一方单方面密钥泄露问题以及分发密钥时的不安全因素和额外的开销。

密码学第5章公钥密码

密码学第5章公钥密码
一方面公钥密码算法的基本工具不再是代换和置换, 而是数学函数; 另一方面公钥密码算法是以非对称的形式使用两个密 钥,两个密钥的使用对保密性、密钥分配、认证等都 有着深刻的意义。可以说公钥密码体制的出现在密码 学史上是一个最大的、真正的革命。
公钥密码体制的概念是在解决对称密码体制中最 难解决的两个问题时提出的,这两个问题是密钥 分配和数字签名。
认证、保密模型
公钥密码体制的认证、保密框图
认证、保密步骤
①发方首先用自己的私钥SKA对消息m加密,用于 提供数字签名。再用收方的公钥PKB进行第二次 加密,表示为 c=EPKB [ESKA [m]] ②解密过程为 m=DPKA [DSKB [c]] 即收方先用自己的私钥、再用发方的公钥对收到 的密文进行两次解密。
模运算
一般的,定义Zn为小于n的所有非负整数集合, 即Zn={0, 1,…, n1},称Zn为模n的同余类集合 。Zn中的加法(+)和乘法()都为模n运算,具有 如下性质: ①交换律 (w+x)mod n = (x+w) mod n (wx)mod n = (xw) mod n ②结合律 [(w+x)+y] mod n =[w+(x+y)] mod n [(wx)y] mod n =[w(xy)] mod n
多项式求根问题 有限域GF(p)上的一个多项式:
y f ( x) x an1 x
n
n1

a1 x a0 mod p
已知 a0 , a1 ,..., an1, p和x,求y是容易的,而 已知 a0 , a1 ,..., an1 和y,求x则是困难的。 判断Diffie-Hellman问题(decision Diffie-Hellman problem, DDHP) x a g 给定素数p,令g是的一个生成元。已知 , b g y , c g z ,判断等式:z=xy mod p 是否成 立。

(完整版)公钥密码技术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,存在唯一的

公钥私钥加密算法

公钥私钥加密算法

公钥私钥加密算法公钥私钥加密算法是现代密码学中一种常见且重要的加密方式,它在保障信息传输安全性方面发挥着重要的作用。

公钥私钥加密算法使用一对不同的密钥,分别称为公钥和私钥。

公钥用于加密数据,私钥用于解密数据。

公钥和私钥是相关联的,但是无法通过公钥推导出私钥。

这种特性使得公钥可以自由分发给任何人,而私钥则必须保密。

由于只有拥有私钥的人才能解密被公钥加密的数据,因此可以确保数据的机密性。

公钥私钥加密算法的工作原理基于数学难题,即大整数分解难题。

具体来说,该算法使用数论中的离散对数问题,通常基于大素数的乘积。

设想有两个大素数p和q,将它们相乘得到一个大数n。

然后选择一个与(p-1)(q-1)互质的数e作为公钥,再选择一个数d作为私钥。

公钥对外公开,而私钥严格保密。

加密时,通过公式c ≡ m^e (mod n)将明文消息m转化为密文c,其中^表示指数运算,mod表示取余运算。

解密时,通过公式m ≡ c^d (mod n)将密文c转化为明文消息m。

由于只拥有私钥的人才能计算出d,因此只有他可以解密密文。

公钥私钥加密算法的优点之一是能够安全地实现通信双方之间的密钥交换。

在传统的对称加密算法中,密钥必须通过安全信道传输,而这个过程可能被窃听者截获,从而破坏通信安全性。

而公钥私钥加密算法则通过使用公钥进行加密,保证了密钥交换的机密性。

只有持有私钥的通信方才能解密使用公钥加密的密钥,从而确保数据传输的机密性。

公钥私钥加密算法在实际应用中有广泛的用途。

例如,它可以用于安全的电子邮件通信,通过使用公钥对电子邮件进行加密,确保只有拥有私钥的接收方能够解密邮件内容。

此外,公钥私钥加密算法还常用于数字签名,用于验证消息的完整性和认证发送方身份。

总之,公钥私钥加密算法是一种重要的加密方式,它通过使用不同的密钥对保证了数据传输的机密性。

它的应用范围广泛,可以用于各种安全通信场景。

了解公钥私钥加密算法的原理和作用,对于保障信息传输的安全性有着重要的指导意义。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章公钥密码算法本章介绍公钥密码机制的基本原理,并介绍一些常用的公钥算法,如Diffie-Hellman密钥交换算法、RSA加密算法、ElGamal加密算法、Rabin加密算法、NTRU算法、ECC体制、1:n公钥体制、(t, n)门限密码共享体制等。

5.1 公钥密码技术5.1.1 公钥密码算法基本原理尽管对称密码技术有一些很好的特性,但它也存在着明显的缺陷,主要在于其密钥的管理:A.进行安全通信前需要以安全方式进行密钥交换。

这一步骤,在某种情况下是可行的,但在某些情况下会非常困难,甚至无法实现。

B.密钥规模复杂。

举例来说,A与B两人之间的密钥必须不同于A和C两人之间的密钥,否则A给B的消息的安全性就会受到威胁。

在有10000个用户的团体中,A需要保持至少9999个密钥(更确切的说是10000个,如果他需要留一个密钥给他自己加密数据)。

对于该团体中的其他用户,此种情况同样存在。

这样,这个团体一共需要将近5000万个不同的密钥!推而广之,n个用户的团体需要2n/2个不同的密钥。

公钥密码算法是指加密和解密数据使用两个不同的密钥,即加密和解密的密钥是不对称的,这种密码系统也称为公钥密码系统PKC (Public Key Cryptosystem)。

公钥密码学的概念首先是由Diffie和Hellman两人在1976年发表的一篇著名论文:“密码学的新方向”中提出的,并引起很大的轰动。

该论文曾获得IEEE信息论学会的最佳论文奖。

与对称密码算法不同的是,公钥密码算法将随机产生两个密钥:一个用于加密明文,其密钥是公开的,称为公钥;另一个用来解密密文,其密钥是秘密的,称为私钥。

图5.1.1表示了公钥密码算法的基本原理。

如果两个人使用公钥密码算法传输机密信息,则发送者首先要获得接收者的公钥,并使用接收者的公钥加密原文,然后将密文传输给接收者。

接收者使用自己的私钥才能解密密文。

由于加密密钥是公开的,不需要建立额外的安全信道来分发密钥,而解密密钥是由用户自己保管的,与对方无关,从而避免了在对称密码系统中容易产生的任何一方单方面密钥泄露问题以及分发密钥时的不安全因素和额外的开销。

公钥密码算法的特点是安全性高、密钥易于管理,缺点是计算量大、加密和解密速度慢。

因此,公钥密码算法比较适合于加密短信息。

在实际应用中,通常采用由公钥密码算法和对称密码算法构成的混合密码系统,发挥各自的优势。

使用对称密码算法来加密数据,加密速度快;使用公钥密码算法来加密对称密码算法的密钥,形成高安全性的密钥分发信道,同时还可以用来实现数字签名和身份验证机制。

图5.1.1 公钥密码算法基本原理在公钥密码算法中,最常用的是RSA算法。

在密钥交换协议中,经常使用Diffie-Hellman算法。

5.1.2 基本概念应用两个不同的密钥:一个是公开的,一个是秘密的。

从公开密钥(以下简称为公钥)很难推断出秘密密钥(以下简称为私钥)。

持有公钥的任何人都可以加密消息,但却无法解密。

只有持有私钥的人才能够解密。

公钥加/解密基本步骤如下:图5.1.2 加/解密基本步骤一般的情况下,网络中的用户约定一个共同的公开密钥密码系统,每个用户都有自己的公钥和私钥,并且所有的公钥都保存在某个公开的数据库中,任何用户都可以访问此数据库。

这样加密协议如下:A.Alice从公开数据库中取出Bob的公开密钥;B.Alice用Bob的公开密钥加密她的消息,然后传送给Bob;C.Bob用他的私钥解密Alice的消息。

5.1.3 公钥的优点从以上的介绍中可以看出,与对称密码技术相比较,利用非对称密码技术进行安全通信,有以下优点:A.通信双方事先不需要通过保密信道交换密钥。

B.密钥持有量大大减少。

在n个用户的团体中进行通信,每一用户只需要持有自己的私钥,而公钥可放置在公共数据库上,供其他用户取用。

这样,整个团体仅需拥有n对密钥,就可以满足相互之间进行安全通信的需求。

(实际中,因安全方面的考虑,每一用户可能持有多个密钥,分别用于数字签名、加密等用途。

事实上这也是必须的,对于同一个公、私钥对,我们不能既用于签名,又用于加密,这也是目前本领域所公认的一个规则。

此种情况下,整个团体拥有的密钥对数为n的倍数。

但即使如此,与使用对称密码技术时需要2n /2个不同的密钥相比,需要管理的密钥数量仍显著减少。

)C. 非对称密码技术还提供了对称密码技术无法或很难提供的服务:如与杂凑函数联合运用可生成数字签名(下面第6章和第7章分别介绍),可证明的安全伪随机数发生器的构造,零知识证明等。

5.1.4 基本服务公钥算法的基本服务包括以下内容:A. 加密/解密:发送方可以用接收方的公钥加密消息。

B. 数字签名:发送方用其私钥“签署”消息,通过对消息或作为消息函数的小块数据应用加密算法来进行签署。

C. 密钥交换:两方互相合作可以进行会话密钥的交换。

5.1.5 理论基础一个公开密钥密码系统必须满足的条件是:A. 通讯双方A 和B 容易通过计算产生出一对密钥(公开密钥1K ,私有密钥2K );B. 在知道公开密钥1K 和待加密报文M 的情况下,对于发送方A ,很容易通过计算产生对应的密文:k1C=E (M);C. 接收方B 使用私有密钥能够很容易地对所接收到的密文进行解密计算以恢复原来的报文:k2k2k1M=D (C)=D [E (M)];D. 除A 和B 以外的其他人即使知道公钥1K ,要确定私钥2K 在计算上也是不可行的。

E. 除A 和B 以外的其他人即使知道公钥1K 和密文C ,要想恢复原来的明文M 在计算上也是不可行的。

这些要求最终可以归结到设计一个单向陷门函数,下一节,我们将介绍单向陷门函数。

5.2 单向陷门函数公钥(双钥)体制于1976年由W. Diffie 和M. Hellman 提出,同时R. Merkle 在1978年也独立提出了这一体制。

这一体制的最大特点是采用两个密钥将加密和解密能力分开:一个公开作为加密密钥;一个为用户专用,作为解密密钥。

要从公开的公钥或密文分析出明文或秘密钥在计算上不可行。

若以公开钥作为加密密钥,以用户专用钥作为解密密钥,则可实现多个用户加密的消息只能由一个用户解读;反之,以用户专用钥作为加密密钥而以公开钥作为解密密钥,则可实现由一个用户加密的消息而使多个用户解读。

前者可用于保密通信,后者可用于数字签字。

这一体制的出现在密码学史上是划时代的事件,它为解决计算机信息网中的安全提供了新的理论和技术基础。

自1976年以来,双钥体制有了飞速发展,不仅提出了多种算法,而且出现了不少安全产品,有些已得到广泛应用。

本章将介绍其中的一些主要体制,特别是那些既有安全性,又有实用价值的算法。

双钥密码系统的安全性主要取决于构造双钥算法所依赖的数学问题。

要求加密函数具有单向性,即求逆的困难性。

因此,设计双钥体制的关键是先要寻求一个合适的单向函数。

5.2.1 单向函数定义5.2.1 令函数f 是集A 到集B 的映射,以:f A B →表示。

若对任意12x x ≠,12,x x A ∈,有12()()f x f x ≠,则称f 为单射,或11-映射,或可逆的函数。

f 为可逆的充要条件是,存在函数:g B A →,使对所有x A ∈有[()]g f x x =。

定义5.2.2 一个可逆函数:f A B →,若它满足:1o 对所有x A ∈,易于计算()f x 。

2o 对“几乎所有x A ∈”由()f x 求x “极为困难”,以至于实际上不可能做到,则称f 为一单向(One-way)函数。

定义中的“极为困难”是对现有的计算资源和算法而言。

Massey 曾称此为视在困难性(apparent difficulty),相应函数称之为视在单向函数。

以此来和本质上(Essentially)的困难性相区分。

例5.2.1 令f 是在有限域()GF p 中的指数函数,其中p 是大素数,即()x y f x α== (5-2-1)式中,()x GF p ∈,x 为满足01x p ≤≤-的整数,其逆运算是()GF p 中定义的对数运算,即l o g x x αα= 01x p ≤≤- (5-2-2)显然,由x 求y 是容易的,即使当p 很大,例如1002p ≈时也不难实现。

为方便计算以下令α=2。

所需的计算量为 lb p 次乘法,存储量为2(log )p 比特,例如1002p =时,需作100次乘法。

利用高速计算机由x 计算x a 可在0.1毫秒内完成。

但是相对于当前计算()GF p 中对数最好的算法,要从x a 计算x 所需的存储量大约为p p log )2/3(⨯比特且运算量大约为p p log )2/1(⨯。

当1002p =时,所需的计算量为7.1650101002)2/1(≈⨯⨯次,以计算指数一样快的计算机进行计算需时约10.710秒(1年=7.510秒,故约为1600年!其中假定存储量的要求能够满足)。

可见,当p 很大时,()GF p 中的(),1x f x a x p =<-是个单向函数。

Pohlig 和Hellman 在1978年对(p -1)无大素因子时给出一种快速求对数的算法。

特别是,当21n p =+时,从x a 求x 的计算量仅需2(log )p 次乘法。

对于1602p =,在高速计算机上大约仅需时10毫秒。

因此,在这种情况下,()x f x a =就不能被认为是单向函数。

由上述我们可以得出,当对素数p ,且p -1有大的素因子时,()GF p 上的函数()x f x a =是一个视在单向函数。

寻求在()GF p 上求对数的一般快速算法是当前密码学研究中的一个重要课题。

5.2.2 陷门单向函数单向函数是求逆困难的函数,而单向陷门函数(Trapdoor one-way function),是在不知陷门信息下求逆困难的函数,当知道陷门信息后,求逆是易于实现的。

这是Diffie 和Hellmam 于1976年引入的有用概念。

号码锁在不知预设号码时很难开,但若知道所设号码则容易开启。

太平门是另一例,从里面向外出容易,若无钥匙者反向难进。

但如何给陷门单向函数下定义则很棘手,因为(1) 陷门函数其实就不是单向函数,因为单向函数是在任何条件下求逆都是困难的;(2) 陷门可能不止一个,通过试验,一个个陷门就可容易地找到逆。

如果陷门信息的保密性不强,求逆也就不难。

定义 5.2.3 陷门单向函数是一类满足下述条件的单向函数: z z z f A B z Z →∈:,,Z 是陷门信息集。

(1) 对所有z Z ∈,在给定z 下容易找到一对算法z E 和z D 使对所有 x A ∈,易于计算z f 及其逆,即()()z z f x E x = (5-2-3)(())z z D f x x = (5-2-4)而且当给定z 后容易找到一种算法z F ,称其为可用消息集鉴别函数,对所有x A ∈易于检验是否()z z x A A A ∈⊂,z A 是可用的明文集。

相关文档
最新文档