当前位置:首页 » 密码管理 » 公钥密码学核心是什么
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

公钥密码学核心是什么

发布时间: 2022-10-11 01:06:01

⑴ 什么是公钥加密解释加密技术如何保护信息。

公钥加密,属于通信科技下的网络安全二级学科,指的是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。

它解决了密钥的发布和管理问题,是商业密码的核心。在公钥加密体制中,没有公开的是私钥,公开的是公钥。

⑵ 公钥理论是什么

要理解公钥就要先理解密钥.在网络上,密钥定义为一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据.密钥分为两类,一为公钥,另一中为私钥.私钥是自己保留的一个解密数据,而公钥则是对外公开的.公钥和私钥是通过一种算法得到的一个密钥对,公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密. 至于其他的...似乎满多的,我就不一一详解了.毕竟密钥理论是整个密码学的基础.如果要全部详解,就可以写本书出来了

⑶ 什么是公钥密码算法


20世纪70年代,美国学者Diffie和Hellman,以及以色列学者Merkle分别独立地提出了一种全新的密码体制的概念。Diffie和Hellman首先将这个概念公布在1976年美国国家计算机会议上,几个月后,他们这篇开创性的论文《密码学的新方向》发表在IEEE杂志信息论卷上,由于印刷原因,Merkle对这一领域的贡献直到1978年才出版。他们所创造的新的密码学理论,突破了传统的密码体制对称密钥的概念,竖起了近代密码学的又一里程碑。



不同于以前采用相同的加密和解密密钥的对称密码体制,Diffie和Hellman提出了采用双钥体制,即每个用户都有一对选定的密钥:一个是可以公开的,另一个则是秘密的。公开的密钥可以像电话号码一样公布,因此称为公钥密码体制或双钥体制。
公钥密码体制的主要特点是将加密和解密的能力分开,因而可以实现多个用户的信息只能由一个用户解读;或只能由一个用户加密消息而由多个用户解读,前者可以用于公共网络中实现保密通信,而后者可以用于认证系统中对消息进行数字签名。
公开密钥密码的基本思想是将传统密码的密钥一分为二,分为加密密钥Ke和解密密钥Kd,用加密密钥Ke控制加密,用解密密钥Kd控制解密。而且由计算复杂性确保加密密钥Ke在计算上不能推导出解密密钥Kd。这样,即使将Ke公开也不会暴露Kd,也不会损害密码的安全。于是便可以将Ke公开,而只对Kd保密。由于Ke是公开的,只有Kd是保密的,因此从根本上克服了传统密码在密钥分配上的困难。


公开密钥密码满足的条件
根据公开密钥密码的基本思想,可知一个公开密钥密码应当满足下面三个条件:



  1. 解密算法D和加密算法E互逆,即对所有明文M都有,D(E(M,Ke),Kd)=M。
  2. 在计算上不能由Ke推导出Kd。
  3. 算法E和D都是高效的。

条件1是构成密码的基本条件,是传统密码和公开密钥密码都必须具备的起码条件。
条件2是公开密钥密码的安全条件,是公开密钥密码的安全基础,而且这一条件是最难满足的。目前尚不能从数学上证明一个公开密钥密码完全满足这一条件,而只能证明它不满足这一条件。
条件3是公开密钥密码的工程实用条件。因为只有算法E和D都是高效的,密码才能实用。否则,密码只有理论意义,而不能实际应用。
满足了以上三个条件,便可构成一个公开密钥密码,这个密码可以确保数据的秘密性。然而还需要确保数据的真实性,则还需满足第四个条件。
4.对于所有明文M都有E(D(M,Kd),Ke)=M。
条件4是公开密钥密码能够确保数据真实性的基本条件。如果满足了条件1、2、4,同样可以构成一个公开密钥密码,这个密码可以确保数据的真实性。
如果同时满足以上四个条件,则公开密钥密码可以同时确保数据的秘密性和真实性。此时,对于所有的明文M都有D(E(M,Ke),Kd)= E(D(M,Kd),Ke)=M。
公开密钥密码从根本上克服了传统密码在密钥分配上的困难,利用公开密钥密码进行保密通信需要成立一个密钥管理机构(KMC),每个用户将自己的姓名、地址和公开的加密密钥等信息在KMC登记注册,将公钥记入共享的公开密钥数据库。KMC负责密钥的管理,并对用户是可信赖的。这样,用户利用公开密钥密码进行保密通信就像查电话号码簿打电话一样方便,再也不需要通信双方预约密钥,因此特别适合计算机网络应用,而且公开密钥密码实现数字签名容易,所以特别受欢迎。
下图是公钥密码体制的框图,主要分为以下几步:



  1. 网络中要求接收消息的端系统,产生一对用来加密和解密的密钥,如图中的接收者B,产生一对密钥PKB,SKB,其中PKB是公开钥,SKB是秘密钥。
  2. 端系统B将加密密钥(图中的PKB)存储在一个公开的寄存器或文件中,另一密钥则被保密(图中个SKB)。
  3. A要想向B发送消息m,则使用B的公开钥加密m,表示为 c=EPKB[m] 其中,c是密文,E是加密算法。
  4. B收到密文c后,用自己的秘密钥SKB解密,表示为 m=DSKB[c] 其中,D是解密算法。因为只有B知道SKB,所以其他人无法对c解密。

这就是公开密钥的原理~


(转载需向本人获取权限)

⑷ 什么是公钥密码体制

自从1976年公钥密码的思想提出以来,国际上已经提出了许多种公钥密码体制。用抽象的观点来看,公钥密码就是一种陷门单向函数。
我们说一个函数f是单向函数,即若对它的定义域中的任意x都易于计算f(x),而对f的值域中的几乎所有的y,即使当f为已知时要计算f-l(y)在计算上也是不可行的。若当给定某些辅助信息(陷门信息)时则易于计算f-l(y),就称单向函数f是一个陷门单向函数。公钥密码体制就是基于这一原理而设计的,将辅助信息(陷门信息)作为秘密密钥。这类密码的安全强度取决于它所依据的问题的计算复杂度。

目前比较流行的公钥密码体制主要有两类:一类是基于大整数因子分解问题的,其中最典型的代表是RSA体制。另一类是基于离散对数问题的,如ElGamal公钥密码体制和影响比较大的椭圆曲线公钥密码体制。

公钥密码
一般要求:
1、加密解密算法相同,但使用不同的密钥
2、发送方拥有加密或解密密钥,而接收方拥有另一个密钥
安全性要求:
1、两个密钥之一必须保密
2、无解密密钥,解密不可行
3、知道算法和其中一个密钥以及若干密文不能确定另一个密钥

⑸ Hello,密码学:第三部分,公钥密码(非对称密码)算法

在 《Hello,密码学:第二部分,对称密码算法》 中讲述了对称密码的概念,以及DES和AES两种经典的对称密码算法原理。既然有对称密码的说法,自然也就有非对称密码,也叫做公钥密码算法。 对称密码和非对称密码两种算法的本质区别在于,加密密钥和解密密钥是否相同

公钥密码产生的初衷就是为了解决 密钥配送 的问题。

Alice 给远方的 Bob 写了一封情意慢慢的信,并使用强悍的 AES-256 进行了加密,但她很快就意识到,光加密内容不行,必须要想一个安全的方法将加密密钥告诉 Bob,如果将密钥也通过网络发送,很可能被技术高手+偷窥癖的 Eve 窃听到。

既要发送密钥,又不能发送密钥,这就是对称密码算法下的“密钥配送问题”

解决密钥配送问题可能有这样几种方法:

这种方法比较高效,但有局限性:

与方法一不同,密钥不再由通信个体来保存,而由密钥分配中心(KDC)负责统一的管理和分配。 双方需要加密通信时,由 KDC 生成一个用于本次通信的通信密钥交由双方,通信双方只要与 KDC 事先共享密钥即可 。这样就大大减少密钥的存储和管理问题。

因此,KDC 涉及两类密钥:

领略下 KDC 的过程:

KDC 通过中心化的手段,确实能够有效的解决方法一的密钥管理和分配问题,安全性也还不错。但也存在两个显着的问题:

使用公钥密码,加密密钥和解密密钥不同,只要拥有加密密钥,所有人都能进行加密,但只有拥有解密密钥的人才能进行解密。于是就出现了这个过程:

密钥配送的问题天然被解决了。当然,解密密钥丢失而导致信息泄密,这不属于密钥配送的问题。

下面,再详细看下这个过程。

公钥密码流程的核心,可以用如下四句话来概述:

既然加密密钥是公开的,因此也叫做 “公钥(Public Key)”
既然解密密钥是私有的,因此也叫做 “私钥(Private Key)

公钥和私钥是一一对应的,称为 “密钥对” ,他们好比相互纠缠的量子对, 彼此之间通过严密的数学计算关系进行关联 ,不能分别单独生成。

在公钥密码体系下,再看看 Alice 如何同 Bob 进行通信。

在公钥密码体系下,通信过程是由 Bob 开始启动的:

过程看起来非常简单,但为什么即使公钥被窃取也没有关系?这就涉及了上文提到的严密的数学计算关系了。如果上一篇文章对称密钥的 DES 和 AES 算法进行概述,下面一节也会对公钥体系的数学原理进行简要说明。

自从 Diffie 和 Hellman 在1976年提出公钥密码的设计思想后,1978年,Ron Rivest、Adi Shamir 和 Reonard Adleman 共同发表了一种公钥密码算法,就是大名鼎鼎的 RSA,这也是当今公钥密码算法事实上的标准。其实,公钥密码算法还包括ElGamal、Rabin、椭圆曲线等多种算法,这一节主要讲述 RSA 算法的基本数学原理。

一堆符号,解释下,E 代表 Encryption,D 代表 Decryption,N 代表 Number。

从公式种能够看出来,RSA的加解密数学公式非常简单(即非常美妙)。 RSA 最复杂的并非加解密运算,而是如何生成密钥对 ,这和对称密钥算法是不太一样的。 而所谓的严密的数学计算关系,就是指 E 和 D 不是随便选择的

密钥对的生成,是 RSA 最核心的问题,RSA 的美妙与奥秘也藏在这里面。

1. 求N

求 N 公式:N = p × q

其中, p 和 q 是两个质数 ,而且应该是很大又不是极大的质数。如果太小的话,密码就容易被破解;如果极大的话,计算时间就会很长。比如 512 比特的长度(155 位的十进制数字)就比较合适。

这样的质数是如何找出来的呢? 需要通过 “伪随机数生成器(PRNG)” 进行生成,然后再判断其是否为质数 。如果不是,就需要重新生成,重新判断。

2. 求L

求 L 公式:L = lcm(p-1, q-1)

lcm 代表 “最小公倍数(least common multiple)” 。注意,L 在加解密时都不需要, 仅出现在生成密钥对的过程中

3. 求E

E 要满足两个条件:
1)1 < E < L
2)gcd(E,L) = 1

gcd 代表 “最大公约数(greatest common divisor)” 。gcd(E,L) = 1 就代表 “E 和 L 的最大公约数为1,也就是说, E 和 L 互质 ”。

L 在第二步已经计算出来,而为了找到满足条件的 E, 第二次用到 “伪随机数生成器(PRNG)” ,在 1 和 L 之间生成 E 的候选,判断其是否满足 “gcd(E,L) = 1” 的条件。

经过前三步,已经能够得到密钥对种的 “公钥:{E, N}” 了。

4. 求D

D 要满足两个条件:
1)1 < D < L
2)E × D mod L = 1

只要 D 满足上面的两个条件,使用 {E, N} 进行加密的报文,就能够使用 {D, N} 进行解密。

至此,N、L、E、D 都已经计算出来,再整理一下

模拟实践的过程包括两部分,第一部分是生成密钥对,第二部分是对数据进行加解密。为了方便计算,都使用了较小的数字。

第一部分:生成密钥对

1. 求N
准备两个质数,p = 5,q = 7,N = 5 × 7 = 35

2. 求L
L = lcm(p-1, q-1) = lcm (4, 6) = 12

3. 求E
gcd(E, L) = 1,即 E 和 L 互质,而且 1 < E < L,满足条件的 E 有多个备选:5、7、11,选择最小的 5 即可。于是,公钥 = {E, N} = {5, 35}

4. 求D
E × D mod L = 1,即 5 × D mod 12 = 1,满足条件的 D 也有多个备选:5、17、41,选择 17 作为 D(如果选择 5 恰好公私钥一致了,这样不太直观),于是,私钥 = {D, N} = {17, 35}

至此,我们得到了公私钥对:

第二部分:模拟加解密

明文我们也使用一个比较小的数字 -- 4,利用 RSA 的加密公式:

密文 = 明文 ^ E mod N = 4 ^ 5 mod 35 = 9
明文 = 密文 ^ D mod N = 9 ^ 17 mod 35 = 4

从这个模拟的小例子能够看出,即使我们用了很小的数字,计算的中间结果也是超级大。如果再加上伪随机数生成器生成一个数字,判断其是否为质数等,这个过程想想脑仁儿就疼。还好,现代芯片技术,让计算机有了足够的运算速度。然而,相对于普通的逻辑运算,这类数学运算仍然是相当缓慢的。这也是一些非对称密码卡/套件中,很关键的性能规格就是密钥对的生成速度

公钥密码体系中,用公钥加密,用私钥解密,公钥公开,私钥隐藏。因此:

加密公式为:密文 = 明文 ^ E mod N

破译的过程就是对该公式进行逆运算。由于除了对明文进行幂次运算外, 还加上了“模运算” ,因此在数学上, 该逆运算就不再是简单的对数问题,而是求离散对数问题,目前已经在数学领域达成共识,尚未发现求离散对数的高效算法

暴力破解的本质就是逐个尝试。当前主流的 RSA 算法中,使用的 p 和 q 都是 1024 位以上,这样 N 的长度就是 2048 位以上。而 E 和 D 的长度和 N 差不多,因此要找出 D,就需要进行 2048 位以上的暴力破解。即使上文那个简单的例子,算出( 蒙出 ) “9 ^ D mod 35 = 4” 中的 D 也要好久吧。

因为 E 和 N 是已知的,而 D 和 E 在数学上又紧密相关(通过中间数 L),能否通过一种反向的算法来求解 D 呢?

从这个地方能够看出,p 和 q 是极为关键的,这两个数字不泄密,几乎无法通过公式反向计算出 D。也就是说, 对于 RSA 算法,质数 p 和 q 绝不能被黑客获取,否则等价于交出私钥

既然不能靠抢,N = p × q,N是已知的,能不能通过 “质因数分解” 来推导 p 和 q 呢?或者说, 一旦找到一种高效的 “质因数分解” 算法,就能够破解 RSA 算法了

幸运的是,这和上述的“离散对数求解”一样,当下在数学上还没有找到这种算法,当然,也无法证明“质因数分解”是否真的是一个困难问题 。因此只能靠硬算,只是当前的算力无法在可现实的时间内完成。 这也是很多人都提到过的,“量子时代来临,当前的加密体系就会崩溃”,从算力的角度看,或许如此吧

既不能抢,也不能算,能不能猜呢?也就是通过 “推测 p 和 q 进行破解”

p 和 q 是通过 PRNG(伪随机数生成器)生成的,于是,又一个关键因素,就是采用的 伪随机数生成器算法要足够随机

随机数对于密码学极为重要,后面会专门写一篇笔记

前三种攻击方式,都是基于 “硬碰硬” 的思路,而 “中间人攻击” 则换了一种迂回的思路,不去尝试破解密码算法,而是欺骗通信双方,从而获取明文。具体来说,就是: 主动攻击者 Mallory 混入发送者和接收者之间,面对发送者伪装成接收者,面对接收者伪装成发送者。

这个过程可以重复多次。需要注意的是,中间人攻击方式不仅能够针对 RSA,还可以针对任何公钥密码。能够看到,整个过程中,公钥密码并没有被破译,密码体系也在正常运转,但机密性却出现了问题,即 Alice 和 Bob 之间失去了机密性,却在 Alice 和 Mallory 以及 Mallory 和 Bob 之间保持了机密性。即使公钥密码强度再强大 N 倍也无济于事。也就是说,仅仅依靠密码算法本身,无法防御中间人攻击

而能够抵御中间人攻击的,就需要用到密码工具箱的另一种武器 -- 认证 。在下面一篇笔记中,就将涉及这个话题。

好了,以上就是公钥密码的基本知识了。

公钥密码体系能够完美的解决对称密码体系中 “密钥配送” 这个关键问题,但是抛开 “中间人攻击” 问题不谈,公钥密码自己也有个严重的问题:

公钥密码处理速度远远低于对称密码。不仅体现在密钥对的生成上,也体现在加解密运算处理上。

因此,在实际应用场景下,往往会将对称密码和公钥密码的优势相结合,构建一个 “混合密码体系” 。简单来说: 首先用相对高效的对称密码对消息进行加密,保证消息的机密性;然后用公钥密码加密对称密码的密钥,保证密钥的机密性。

下面是混合密码体系的加解密流程图。整个体系分为左右两个部分:左半部分加密会话密钥的过程,右半部分是加密原始消息的过程。原始消息一般较长,使用对称密码算法会比较高效;会话密钥一般比较短(十几个到几十个字节),即使公钥密码算法运算效率较低,对会话密钥的加解密处理也不会非常耗时。

着名的密码软件 PGP、SSL/TLS、视频监控公共联网安全建设规范(GB35114) 等应用,都运用了混合密码系统。

好了,以上就是公钥密码算法的全部内容了,拖更了很久,以后还要更加勤奋一些。

为了避免被傻啦吧唧的审核机器人处理,后面就不再附漂亮姑娘的照片(也是为了你们的健康),改成我的摄影作品,希望不要对收视率产生影响,虽然很多小伙儿就是冲着姑娘来的。

就从喀纳斯之旅开始吧。

⑹ 公钥密码体制是什么它的出现有何重要意义它与对称密码体制的异同有哪些

公开密钥密码体制是现代密码学的最重要的发明和进展。公开密钥密码体制对信息发送与接收人的真实身份的验证、对所发出/接收信息在事后的不可抵赖以及保障数据的完整性有着重要意义。

公钥密码体制与对称密码体制都是密码体制中的一种。

公钥密码体制与对称密码体制的主要区别如下:

一、性质不同

1、公钥密码体制:是现代密码学的最重要的发明和进展。

2、对称密码体制:是一种传统密码体制,也称为私钥密码体制。

二、作用不同

1、公钥密码体制:努力使互联网安全可靠,旨在解决DES算法秘密密钥的利用公开信道传输分发的难题。

2、对称密码体制:由于对称加密系统仅能用于对数据进行加解密处理,提供数据的机密性,不能用于数字签名。因而人们迫切需要寻找新的密码体制。

三、特点不同

1、公钥密码体制:由于公钥算法不需要联机密钥服务器,密钥分配协议简单,所以极大简化了密钥管理。除加密功能外,公钥系统还可以提供数字签名。

2、对称密码体制:计算开销小,加密速度快,是用于信息加密的主要算法。

⑺ 公钥密码学的内容简介

《公钥密码学:设计原理与可证安全》重点介绍公钥密码的可证安全理论和旁道攻击技术,内容包括公钥密码基础理论、公钥密码的可证安全理论和旁道攻击三个部分。第一部分为公钥密码学基础理论,介绍了公钥密码体制的提出和特点、公钥密码与杂凑函数、公钥基础设施以及基本体制;第二部分为公钥密码体制的可证安全理论,重点论述加密体制的可证安全、签名体制的可证安全以及混合加密体制的可证安全性分析;第三部分概略介绍公钥密码的旁道攻击技术。
《公钥密码学:设计原理与可证安全》适合高等学校计算机、信息安全、电子信息与通信、信息与计算科学等专业的研究生以及相关专业的研究人员使用。

⑻ 公钥密码→RSA详解

在对称密码中,由于加密和解密的密钥是相同的,因此必须向接收者配送密钥。用于解密的密钥必须被配送给接收者,这一问题称为 密钥配送问题 ,如果使用公钥密码,则无需向接收者配送用于解密的密钥,这样就解决了密钥配送问题。可以说公钥密码是密码学历史上最伟大的发明。

解决密钥配送问题的方法

在人数很多的情况下,通信所需要的密钥数量会增大,例如:1000名员工中每一个人都可以和另外999个进行通信,则每个人需要999个通信密钥,整个密钥数量:
1000 x 999 ÷ 2 = 499500
很不现实,因此此方法有一定的局限性

在Diffic-Hellman密钥交换中,进行加密通信的双方需要交换一些信息,而这些信息即便被窃听者窃听到也没有问题(后续文章会进行详解)。

在对称密码中,加密密钥和解密密钥是相同的,但公钥密码中,加密密钥和解密密钥却是不同的。只要拥有加密密钥,任何人都可以加密,但没有解密密钥是无法解密的。

公钥密码中,密钥分为加密密钥(公钥)和解密密钥(私钥)两种。

公钥和私钥是一一对应的,一对公钥和私钥统称为密钥对,由公钥进行加密的密文,必须使用与该公钥配对的私钥才能够解密。密钥对中的两个密钥之间具有非常密切的关系——数学上的关系——因此公钥和私钥是不能分别单独生成的。

发送者:Alice      接收者:Bob      窃听者:Eve
通信过程是由接收者Bob来启动的

公钥密码解决了密钥配送的问题,但依然面临着下面的问题

RSA是目前使用最广泛的公钥密码算法,名字是由它的三位开发者,即Ron Rivest、Adi Shamir和Leonard Adleman的姓氏的首字母组成的(Rivest-Shamir-Adleman)。RSA可以被使用公钥密码和数字签名(此文只针对公钥密码进行探讨,数字签名后续文章敬请期待)1983年在美国取得了专利,但现在该专利已经过期。

在RSA中,明文、密钥和密文都是数字,RSA加密过程可以用下列公式来表达

密文 = 明文 E mod N

简单的来说,RSA的密文是对代表明文的数字的 E 次方求mod N 的结果,换句话说:将明文和自己做 E 次乘法,然后将结果除以 N 求余数,这个余数就是密文。

RSA解密过程可以用下列公式来表达

明文 = 密文 D mod N
对表示密文的数字的 D 次方求mod N 就可以得到明文,换句话说:将密文和自己做 D 次乘法,在对其结果除以 N 求余数,就可以得到明文
此时使用的数字 N 和加密时使用的数字 N 是相同的,数 D 和数 N 组合起来就是RSA的解密密钥,因此 D N 的组合就是私钥 。只要知道 D N 两个数的人才能够完成解密的运算

根据加密和解密的公式可以看出,需要用到三个数—— E D N 求这三个数就是 生成密钥对 ,RSA密钥对的生成步骤如下:

准备两个很大的质数 p q ,将这两个数相乘,结果就是 N
N = p x q

L p-1 q-1 的最小公倍数,如果用lcm( X , Y )来表示 “ X Y 的最小公倍数” 则L可以写成下列形式
L = lcm ( p - 1, q - 1)

E 是一个比1大、比 L 小的数。 E L 的最大公约数必须为1,如果用gcd( X , Y )来表示 X Y 的最大公约数,则 E L 之间存在下列关系:
1 < E < L
gcd( E , L ) = 1 (是为了保证一定存在解密时需要使用的数 D

1 < D < L
E x D mod L = 1

p = 17
q = 19
N = p x q = 17 x 19 = 323

L = lcm ( p - 1, q - 1) = lcm (16,18) = 144

gcd( E , L ) = 1
满足条件的 E 有很多:5,7,11,13,17,19,23,25,29,31...
这里选择5来作为 E ,到这里我们已经知道 E = 5    N = 323 这就是公钥

E x D mod L = 1
D = 29 可以满足上面的条件,因此:
公钥: E = 5     N = 323
私钥: D = 29    N = 323

要加密的明文必须是小于 N 的数,这是因为在加密运算中需要求 mod N 假设加密的明文是123
明文 E mod N = 123 5 mod 323 = 225(密文)

对密文225进行解密
密文 D mod N = 225 29 mod 323 = 225 10 x 225 10 x 225 9 mod 323 = (225 10 mod 323) x (225 10 mod 323) x (225 9 mod 323) = 16 x 16 x 191 mod 323 = 48896 mod 323 = 123(明文)

如果没有mod N 的话,即:

明文 = 密文 D mod N

通过密文求明文的难度不大,因为这可以看作是一个求对数的问题。
但是,加上mod N 之后,求明文就变成了求离散对数的问题,这是非常困难的,因为人类还没有发现求离散对数的高效算法。

只要知道 D ,就能够对密文进行解密,逐一尝试 D 来暴力破译RSA,暴力破解的难度会随着D的长度增加而加大,当 D 足够长时,就不能再现实的时间内通过暴力破解找出数 D

目前,RSA中所使用的 p q 的长度都是1024比特以上, N 的长度为2048比特以上,由于 E D 的长度可以和N差不多,因此要找出 D ,就需要进行2048比特以上的暴力破解。这样的长度下暴力破解找出 D 是极其困难的

E x D mod L = 1           L = lcm ( p - 1, q - 1)
E 计算 D 需要使用 p q ,但是密码破译者并不知道 p q

对于RSA来说,有一点非常重要,那就是 质数 p q 不能被密码破译这知道 。把 p q 交给密码破译者与把私钥交给密码破译者是等价的。

p q 不能被密码破译者知道,但是 N = p x q 而且 N 是公开的, p q 都是质数,因此由 N p q 只能通过 N 进行质因数分解 ,所以说:
一旦发现了对大整数进行质因数分解的高效算法,RSA就能够被破译

这种方法虽然不能破译RSA,但却是一种针对机密性的有效攻击。

所谓中间人攻击,就是主动攻击者Mallory混入发送者和接收者的中间,对发送者伪装成接收者,对接收者伪装成发送者的攻击,在这里,Mallory就是“中间人”

这种攻击不仅针对RSA,而是可以针对任何公钥密码。在这个过程中,公钥密码并没有被破译,所有的密码算法也都正常工作并确保了机密性。然而,所谓的机密性并非在Alice和Bob之间,而是在Alice和Mallory之间,以及Mallory和Bob之间成立的。 仅靠公钥密码本身,是无法防御中间人攻击的。

要防御中间人攻击,还需要一种手段来确认所收到的公钥是否真的属于Bob,这种手段称为认证。在这种情况下,我们可以使用公钥的 证书 (后面会陆续更新文章来进行探讨)

网络上很多服务器在收到格式不正确的数据时都会向通信对象返回错误消息,并提示“这里的数据有问题”,然而,这种看似很贴心的设计却会让攻击者有机可乘。 攻击者可以向服务器反复发送自己生成的伪造密文,然后分析返回的错误消息和响应时间获得一些关于密钥和明文的信息。

为了抵御这种攻击,可以对密文进行“认证”,RSA-OAEP(最优非对称加密填充)正是基于这种思路设计的一种RSA改良算法。

RSA-OAEP在加密时会在明文前面填充一些认证信息,包括明文的散列值以及一定数量的0,然后用RSA进行加密,在解密的过程中,如果解密后的数据的开头没有找到正确的认证信息,则可以判定有问题,并返回固定的错误消息(重点是,不能将具体的错误内容告知开发者)
RSA-OAEP在实际应用中,还会通过随机数使得每次生成的密文呈现不同的排列方式,从而进一步提高安全性。

随着计算机技术的进步等,以前被认为是安全的密码会被破译,这一现象称为 密码劣化 ,针对这一点:

⑼ 密码学的主要思想是什么

公钥密码体制的思想是基于陷门单向函数公钥用于该函数的正向(加密)计算私钥用于该函数的反向(解密计算)。

加密算法的设计
设计加密算法的思想往往是:构造一个称为某种网络的固定结构,然后以该种网络的若干次迭代来对明文及密钥数据提供必要的混乱和扩散。
一个完整的网络应使每一输入比特经其变换以后都可能使形态改变至少一次。此外,按照Feistel构造中m与n是否相等可把Feistel网络分为平衡与非平衡的。
最基本的要素:S-盒、P-置换、以及结构(轮)函数

⑽ 什么是公钥加密

什么是公钥加密

公钥加密,也叫非对称(密钥)加密(public key encryption),属于通信科技下的网络安全二级学科,指的是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。它解决了密钥的发布和管理问题,是目前商业密码的核心。在公钥加密体制中,没有公开的是明文,公开的是密文,公钥,算法。
常见算法
RSA、ElGamal、背包算法、Rabin(Rabin的加密法可以说是RSA方法的特例)、Diffie-Hellman (D-H) 密钥交换协议中的公钥加密算法、Elliptic Curve Cryptography(ECC,椭圆曲线加密算法)。使用最广泛的是RSA算法(由发明者Rivest、Shmir和Adleman姓氏首字母缩写而来)是着名的公开金钥加密算法,ElGamal是另一种常用的非对称加密算法。

缘起
该思想最早由雷夫·莫寇(Ralph C. Merkle)在1974年提出,之后在1976年。狄菲(Whitfield Diffie)与赫尔曼(Martin Hellman)两位学者以单向函数与单向暗门函数为基础,为发讯与收讯的两方创建金钥。

非对称
是指一对加密密钥与解密密钥,这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥。

如果加密密钥是公开的,这用于客户给私钥所有者上传加密的数据,这被称作为公开密钥加密(狭义)。例如,网络银行的客户发给银行网站的账户操作的加密数据。

如果解密密钥是公开的,用私钥加密的信息,可以用公钥对其解密,用于客户验证持有私钥一方发布的数据或文件是完整准确的,接收者由此可知这条信息确实来自于拥有私钥的某人,这被称作数字签名,公钥的形式就是数字证书。例如,从网上下载的安装程序,一般都带有程序制作者的数字签名,可以证明该程序的确是该作者(公司)发布的而不是第三方伪造的且未被篡改过(身份认证/验证)。