当前位置:   article > 正文

对称加密和非对称加密_非对称加密有多少公

非对称加密有多少公

1. 对称加密

加密和解密使用同一个秘钥,所以叫做对称加密。常见的对称加密算法:DESAES等。

其过程可以描述为:

  • 加密:原文 + 密匙 = 密文
  • 解密:密文 - 密匙 = 原文

对称加密通常使用的是相对较小的密钥,一般小于256 bit。如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off

面临的最大的问题为:秘钥的分发。就是说,解密方如何获得加密方的秘钥呢?在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。

1.1 DES

全称为Data Encryption Standard,即数据加密标准。1977年被美国联邦政府的国家标准局确定为联邦资料处理标准,并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。

DES的密钥长度为64位,由于第n*8(n=1,2,…8)是校验位,因此实际参与加密的长度为56位,密钥空间含有2^56个密钥。

DES算法是一种分组加密机制,将明文分成N个组,然后对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。

DES加密算法在计算机速度提升后的今天被认为是不安全的。(可破解)

1.2 AES

全称为Advanced Encryption Standard,即高级加密标准。又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES

AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同,如下表所示:

在这里插入图片描述

2. 非对称加密

非对称加密之所以不对称,指的就是加密用一个密钥,而解密的时候用的是另外一个密钥。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。

(1) A 要向 B 发送信息,A 和 B 都要产生一对用于加密和解密的公钥和私钥。
(2) A 的私钥保密,A 的公钥告诉 B;B 的私钥保密,B 的公钥告诉 A。
(3) A 要给 B 发送信息时,A 用 B 的公钥加密信息,因为 A 知道 B 的公钥。
(4) A 将这个消息发给 B (已经用 B 的公钥加密消息)。
(5) B 收到这个消息后,B 用自己的私钥解密 A 的消息。其他所有收到这个报文的人都无法解密,因为只有 B 才有 B 的私钥。

上面流程来自博客:加解密篇 - 非对称加密算法 (RSA、DSA、ECC、DH)

也就是说,在网上所传递的只是公钥,而对于传递的数据来说,一般都使用(对方)公钥加密、(自己)私钥解密,而私钥自由自己知道,故而可以保证信息不被破解

虽然信息可以保证不被破解,但是因为其双方公钥公开,故而可以尝试伪造数据。也就是,报文在发送中途存在着被替换的风险,对于A而言我们需要确保这个数据确实是B发过来的,而这里就需要使用到数字签名

2.1 数字签名

我们知道hash算法不可逆,比如MD5。对于任意文件或者数据,我们都可以得到一个摘要,即hash值。

首先可以A将要发送信息进行Hash函数,生成信件的摘要。再将摘要用私钥加密,这个加密后的摘要就是数字签名。注意数字签名是用私钥进行加密的,而不是用公钥。

然后将发送信息和数字签名发给BB数字签名A的公钥解密进行解密,得到信件的摘要。再对发送信息使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

再用A的公钥对数字签名进行解密。然后将解密后的文件用hash得出摘要,再与数字签名的结果进行对比如果摘要相同,就证明是A发的。

但这个对比是基于A已经确保收到的公钥确实是B的前提,但是这个过程如果存在一个中间人,也给A发送自己的公钥,那么如何确保A收到的就是B的公钥?(无法确定公钥是否真的属于目标对象。)

2.2 数字证书

显然,我们需要一种技术来确保发送发获取的公钥是目标对象的公钥。也就是:数字证书(Digital Certificate

两人无法互相相信时,此时就需要一个权威的第三者,这是一个签发数字证书的权威机构,叫”证书中心"(certificate authority,简称CA)。

要有这个机构的数字证书,不仅包括了公钥,还包括了域名签发机构有效期签名等,CA机构的认证很严格,跟我们的身份认证一样,因此可以相信。

数字证书就像身份证,CA机构就是派出所。

A作为服务器一端,需要把自己的证书给B看。然后BCA查看此证书是否是真实的。

那么,如何确保这个CA不是第三方伪造的呢?

答案是:直接把最权威的几个CA机构证书放到用操作系统中。其实,之后只需要使用信任链,即机构1说机构2可以信任,那我们就可以信任2,机构2说机构3信任,那我们就可以信任机构3。这样我们就可以信任很多个CA机构分发的证书了。

2.3 常见的非对称加密算法

常见的非对称加密算法有RSADSA

2.3.1 RSA

RSA 是一种目前应用非常广泛、历史也比较悠久的非对称秘钥加密技术,在1977年被麻省理工学院的罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼三位科学家提出,由于难于破解,RSA 是目前应用最广泛的数字加密和签名技术,比如国内的支付宝就是通过RSA算法来进行签名验证。

它的安全程度取决于秘钥的长度,目前主流可选秘钥长度为 1024位、2048位、4096位等,理论上秘钥越长越难于破解。支付宝的官方文档上推荐也是2048位,当然更长的秘钥更安全,但也意味着会产生更大的性能开销。

2.3.2 DSA

Digital Signature Algorithm,数字签名算法,他是由美国国家标准与技术研究所(NIST)与1991年提出。和 RSA 不同的是 DSA 仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快。


3. 对比总结

  • 对称加密技术的优点加密一计算量小,速度。缺点是,加密方和解密方必须协商好秘钥,且保证秘钥安全,如果一方泄露了秘钥整个通信就会被破解,加密信息就不再安全了。
  • 非对称机密技术使用两个秘钥进行加解密,一个叫做公钥,一个叫做私钥,私钥自己来保管,公钥可以公开,使用公钥加密的数据必须使用私钥解密,反之亦然。非对称加密技术安全性更好,但性能更

4. 混合加密

前文提到了:

  • 对称加密运算快,但是秘钥的分发问题确是其难点;
  • 非对称加密运算慢,但是安全性能通过公私钥对、数字签名、数字证书等可以得到保证,但是速度慢;

在混合加密机制中,交换密钥的环节使用非对称加密,之后的通信则使用对称加密

也就是说只要保证了在对称加密中的密钥的安全性,就可以使用更加快速的对称加密技术来进行消息的通信。

混合加密(hybrid encryption)是2018年全国科学技术名词审定委员会公布的计算机科学技术名词。

具体的实现思路是先使用对称加密算法对数据进行加密,然后使用非对称加密算法对对称加密的密钥进行非对称加密,之后再把加密后的密钥和加密后的数据发送给接收方。


Thanks

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/898267
推荐阅读
相关标签
  

闽ICP备14008679号