非对称加密和对称加密的区别

今日头条

1109人已加入

描述

当今世界,网络安全问题比以往任何时候都更需认真对待。 本文是属于《网络安全》系列文章之一,我们将详细阐述了安全性的基础知识。在本文中,我们将阐述非对称加密的原理,这是确保真实性、完整性和保密性的唯一方法。

不对称加密的加密技术和签名: 2000多年前,凯撒通过加密来保护其军事信息。现如今就轻而易举了吗?

在我们最近的一篇博客中,我们看到了对称加密即使在一定程度上满足了保密性,也不足以确保真实性和完整性。那么,非对称加密如何破解这个方程呢?

我们举个例子,将想要交换机密消息的两个人命名为Alice和Bob。每人都有一个公钥和对应的私钥。

作为假设,有必要了解以下内容: 用公钥加密的消息只能用相应的私(秘)钥解密。用私钥加密的消息只能用相应的公钥解密(我们将在本文后面看到这一点的好处)。

基于上述情况,Alice想给Bob发送消息,将使用Bob的公钥对其进行加密。在此情况下,只有Bob能用自己的密钥对消息进行解密。

以上只是解决了保密性需求而已。

但是Bob如何能确定是Alice给他发来的信息呢?他如何确定消息在传输过程中没有被修改?为了解决这个问题,Alice还需使用签名机制。

说到签名之前,我们必须引入散列函数的概念。“散列函数”是将文本转换为签名(也称为指纹)的“加工厂”。

这个“加工厂”有5个特性:

对于相同的函数,指纹中的字符数总是相同,

指纹不允许重建原始文本,

指纹不可预测,

相同的数据会产生相同的指纹,

不同的数据会产生完全不同的指纹。

“MD5”和“SHA” 是两个众所周知的散列函数。使用MD5时,文本“Ewon: Leading IIoT for 20 years”被转换成32个字符的密链: “5b184c5cafcad9ef410afbcb0fab5518”。维基百科的完整内容也会生成32个字符的(完全不同的)密链。

单向转换最为轻而易举:只需使用互联网上容易找到的一款在线工具即可。毋庸置疑,反向转换并非易事

考虑到上述情况,回到我们之前的例子:

为了签署一份文档,Alice首先使用散列函数(如https://www.md5hashgenerator.com/ 或其他任何能在互联网上找到的函数)生成文件指纹。之后,她使用自己的私钥加密这个指纹。她在自己的文档上获得了一个签名,可将该签名与原始文档一起发送给Bob。

然后,Bob需使用Alice的公钥解密签名。如果不起作用,则是因为文档不是由Alice发送的(Alice是唯一拥有私钥的人)。如果解密成功,他便可以确定是Alice在信息上签名了。

因此,他获得了文档的第一个指纹。

一旦完成了这一步,Bob就需使用与Alice相同的散列函数生成所收原始文档的指纹。

如果两个指纹完全相同,那么他完全可以肯定,在Alice发送和他接收期间,文档没有被修改过。

加密和签名的结合,是同时对文档进行编码和签名并确保消息的机密性、完整性和真实性的唯一方法。

这种做法是很不错,但可能还有最后一个问题: 事实上,当Alice加密一条消息时,她怎么能确定自己使用的是Bob的公钥呢?事实上,如果一个黑客(我们称他为Eve)也生成一对密钥(私钥/公钥),然后让Alice相信它们是Bob的密钥,将它们传输给Alice,则Alice会继续加密消息并将其传输给Bob。在此情况下,只有Eve才能破译和读取这些信息……

因此,Alice需要能在使用Bob的公钥之前验证Bob的真实性。为此,Bob可以让证书颁发机构(CA)认可他的公钥,确保他是该公钥的所有者。这种保障方法采用的是CA将证书颁发给Bob的形式。该证书包含识别Bob及其公钥的信息。又由证书颁发机构签署,确保其合法性。

这样一来,Alice可以联系该机构,确认她正在使用的公钥属于Bob。

想要做的更好很难!

与对称加密相比,非对称加密只有一个缺点:比较慢。为了提高速度,安全的连接使用对称和非对称两种加密方式。

当网络浏览器与服务器建立安全连接时,将首先生成一个对称会话(临时)密钥。而后,使用服务器的公钥(其真实性和有效性通过其证书得到验证)来加密该会话密钥,并将其发回服务器,解密后,将能以对称方式与浏览器进行通信。

这种方法解决了长达2000年之久的凯撒难题。得益于此,两个互不相识的实体可以交换秘密,而无需事先在加密/解密的密钥问题上达成一致。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分