区块链中的密码学:非对称加密

Posted 今朝浅谈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链中的密码学:非对称加密相关的知识,希望对你有一定的参考价值。

本文由币乎(bihu.com)优质内容计划支持

在区块链世界中,我们都能经常看到一个词,叫非对称加密,究竟什么是非对称加密呢?

非对称加密,又称为公开密钥加密,是密码学的一种算法,它需要两个密钥,一个是公开密钥,另一个是私有密钥;一个用作加密的时候,另一个则用作解密;

由私钥可以推算出公钥,但是知道公钥,在实际情况中不可能推算出私钥,所以公钥是公开的,而私钥由用户自行秘密保管。

非对称加密类似于一个公开的邮箱,投递口是任何人都可以寄信进去的,这可视为公钥;而只有邮箱主人拥有钥匙可以打开邮箱,这就视为私钥。

在了解非对称加密前,我们需要了解什么是对称加密?

对称加密,也称为单密钥加密,是指采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密。

用一个现实世界上的例子是,一个传统保管箱,开门和关门都是使用同一条钥匙,这是对称加密;

但是对称加密在互联网中传输信息,就会产生两个问题:

  1. 没有创建安全通道前,如何实现安全通讯?

这是一个先有鸡还是先有蛋的问题,如果在先发送加密数据,但是不知道解密密钥,无法正确解密数据;如果先明文发送密钥,这种加密又有什么意义呢?

  1. 如何确保是由发送人发出的信息?

在这个虚拟的互联网中,就算把数据加密,但是如果黑客劫持了你的网络,发送加密信息,这种数据又有什么意义呢?

为了解决这两个问题,所以产生了非对称加密,这个加密思想是 1974 年由 Merkle 提出,1976 年由斯坦福大学的两位教授 Diffie 和 Hellman 完善。

我们先来看看第一个问题,如何实现安全通讯?

维基百科上举了一个爱丽丝与鲍伯的例子:

  1. 爱丽丝与鲍伯事先互不认识,也没有可靠安全的沟通渠道,但爱丽丝现在却要通过不安全的互联网向鲍伯发送信息

  2. 爱丽丝撰写好原文,原文在未加密的状态下称之为明文 x

  3. 鲍伯使用密码学伪随机数产生一对密钥,其中一个作为公钥为 c,另一个作为私钥 d

  4. 鲍伯可以用任何方法发送公钥 c 给爱丽丝,即使黑客在中间窃听到 c 也没问题

  5. 爱丽丝用公钥 c 把明文 x 进行加密,得到密文 c(x)

  6. 爱丽丝可以用任何方法传输密文 c(x) 给鲍伯,即使伊夫在中间窃听到密文 c(x) 也没问题

  7. 鲍伯收到密文,用私钥 d 对密文进行解密 d(c(x)),得到爱丽丝撰写的明文 x

  8. 由于黑客没有得到鲍伯的私钥 d,所以无法得知明文 x

这个过程简单来说就是公钥加密明文 c(x) 只有用私钥才能解密,即 d(c(x)),最终得出了明文 x。

我们再来看第二个问题,如何确保是由发送人发出的信息?

如果某一用户使用他的私钥加密明文,任何人都可以用该用户的公钥解密密文;由于私钥只由该用户自己持有,故可以肯定该文件必定出自于该用户。

这就引申了一个概念叫:数字签名,即只有信息的发送者才能产生的,别人无法伪造的数据,这段数据同时也是对信息的发送者,发送信息真实性的一个有效证明。

由此可见非对称加密的优点:

  1. 创建了一个信息安全通道

  2. 为信息发送者提供数字身份的认证

但是缺点也很明显,计算太复杂,性能欠佳。

常见的公钥加密算法有:RSA、椭圆曲线加密算法、ElGamal等等,使用最广泛的是RSA算法。

由公钥为什么不能推算出私钥呢?RSA 算法又究竟是怎么实现的呢?这个问题比较复杂,有兴趣可以去看一下,华南理工大学的计算机网络安全课程 公开密钥密码学。


以上是关于区块链中的密码学:非对称加密的主要内容,如果未能解决你的问题,请参考以下文章

区块链中的密码学:非对称加密

区块链科普系列1——非对称加密

区块链科普:非对称加密椭圆曲线加密算法

百科技:区块链中的密码学——哈希算法和非对称加密!

干货!区块链从业者必备知识!——科普:非对称加密椭圆曲线加密算法

如何轻松理解区块链中的非对称加密?