龙空技术网

密码学简单入门:对称加密与非对称加密到底是什么?

万向区块链 112

前言:

眼前各位老铁们对“非对称加密的定义”都比较关心,兄弟们都需要知道一些“非对称加密的定义”的相关内容。那么小编在网摘上网罗了一些有关“非对称加密的定义””的相关资讯,希望姐妹们能喜欢,大家一起来学习一下吧!

本文摘自Hackernoon博文《How Does Symmetric and Asymmetric Public KeyCryptography Work?》,作者:Shiva Sai Kumar B。原文链接:

我们一直都说区块链能够保护数据的隐私安全,这是怎么办到的呢?靠密码学。

密码学使用先进的数学原理方法传输和存储数据,这种存储方式使得只有掌握编译规则的人才能读取和处理数据。

在了解区块链相关概念时,我们经常会看到一个术语“非对称加密”。这个有点拗口的术语是什么意思?它的原理是什么?下文将用简单易懂的例子来为大家科普什么是非对称加密。

加密是密码学中的核心概念,它以一种“除接收者外任何人都无法解密的方式”对消息进行编码,其他人无法读取和理解数据格式,以此来保护数据免受攻击。

据传,第一个使用密码学技术的是古罗马恺撒大帝,他发明了“凯撒密码(Caesar cipher)”来保护重要的军事情报。凯撒密码先将正常的文本内容通过一套规则编译成密码文本,然后通过通信渠道发送出去,接收者再用这套规则对密文进行解密。凯撒密码的编译规则是通过将字母按顺序推后3位来起到加密作用的,如将字母A换作字母D,将字母B换作字母E。只有掌握这套密码规则的接收者才能理解文本内容,其他人即使拿到了文件也理解不了是什么意思。

密码学技术有两种类型:

1、对称加密

2、非对称加密

对称加密

对称加密与凯撒密码技术相同,发送者和接收者使用同一套规则来对数据进行加密和解密。如下图所示:

但对称加密技术不是完美的,它有一些缺点。

首先,发送者和接收者都是用同一个密钥(即同一套编译规则)。使用同一个密钥没问题,问题在于,如果我们想从从“窃听者”手里共享密钥,就会变得很难。

其次,我们使用对称加密技术来保证数据安全传输的同时,也必须将密钥共享给接收者。但是怎么把这个“密钥”安全地分享给接收者呢?这又是一个问题。

为了解决这个问题,于是有了“非对称加密”,这也是区块链里常用的密码学技术。

非对称加密

非对称加密比对称加密复杂一些,它们之间的主要区别是:对称加密使用共享密钥来解密数据,而非对称加密使用“密钥对”来解密数据。

密钥对包含两部分:一个公钥,一个私钥。

以发送邮件为例,假如我们使用邮箱给其他人发送邮件,首先需要有一个邮箱账号,并设置一个密码;接下来,输入收件人的邮箱账号;最后,收件人收到邮件并读取信息。

非对称加密的流程也和发送邮件一样。

每个用户都有一个公钥,和邮箱用户名一样,其他人可以看到或者获取这个“用户名”,但无法访问这个账户里的数据。私钥就和密码一样,只有账户拥有者知道。

发送数据时,我们需要使用私钥(即密码)和接收者公钥(即用户名)。接收者则使用他的私钥(密码)和发送者的公钥(用户名)来解密数据。整个流程如下图所示:

区块链不同于邮箱的地方在于:邮箱有一个中心化的数据库,如果我们丢失了密码,还可以通过数据库找回;区块链则是去中心化的,私钥一旦丢失就无法找回。

数字签名

发送邮件后,收件人看到我的邮箱账号就知道是我发送的。但有一个前提是,如果发送人没有密码,就无法发送信息。同样地,在非对称加密中,没有私钥,就没有人可以通过你的公钥发送消息。

当使用私钥发送数据时,它由我们的“数字签名”进行签名。数字签名(又称公钥数字签名)是只有信息的发送者才能产生的、别人无法伪造的一段数字串,这段数字串同时也是对信息发送者发送信息真实性的一个有效证明。

简单一句话总结就是:信息发送者发信息时,会产生一串数字签名,根据数字签名,你无法否认这条信息不是你发的。

标签: #非对称加密的定义