vlambda博客
学习文章列表

区块链科普篇——【非对称加密】





谈到非对称加密就绕不开对称加密。

对称加密

在进行网络通信的时候,通信安全是一定要考虑的,也就要对信息进行加密与解密处理。
1976年以前,所有的加密方法都是同一种模式:
(1)甲方选择某一种加密规则,对信息进行加密;
(2)乙方使用同一种规则,对信息进行解密。
A对信息m用密钥进行了加密处理得到密文c,这个过程中,密文是可以放心的在互联网上传播的,被窃听了也没人能看懂。

B收到后用同样的方式进行解密(-e)就可得到A发送的信息m。这个e就可以理解为密钥。
区块链科普篇——【非对称加密】

因为加密和解密使用的方式是一样的,用的都是e,所以又叫对称加密


我们再进一步思考:这种方式真的好吗?安全吗?

这种方式本身没问题,但是核心问题点是:A如何只让B知道秘钥e,而不让其他人知道?有两种方法
1:私下找到B亲口悄悄的告诉他,并嘱咐他:千万不要对别人说哟。
这种方法能保证绝对的安全,但是在高速发展的互联网时代,明显是不现实的。
2:通过网络传给B。
问题点在于,如何安全的把秘钥e传给B,安全不让第三者知道,这是最大的前提。那又怎么可能安全的传递密钥呢?因此非对称加密被发明出来,就是为了解决对称加密的这个最为致命的痛点。

非对称加密

非对称加密就是说加密的密钥和解密的密钥不一样。


区块链科普篇——【非对称加密】

流程
接收方B利用RSA算法,产生一对儿密钥,用来放在网络上传输的我们叫公钥,自己保管的叫私钥


B将公钥传递给A
A拿到公钥后对要发送的信息进行加密
加密的密文再传递给B【传输过程中密文即使被捕获了也无法破解,因为只能用私钥破解,而私钥无法获得】
B用自己的私钥就能破解并获得A发送的信息。
这种方式就有效的解决了加密数据通信得问题。

数字签名

在解决了加密通信问题之后,又会出现个问题:就是B接收到了A发送的信息,可如何证明这信息就是A发出的呢?又如何证明这个信息没有被别人篡改呢?这时候就用到了数字签名。类比到现在生活中,就像我们在一个文件上签名了就证明这个文件是你发出来的,数字签名逻辑也是一样。



A自己利用RSA算法产生一对儿密钥(公钥和私钥)。

为了防止信息被篡改,A对传递的信息m进行散列算法处理(Hash哈希处理),产生一个固定长度的字符串。【一旦原文内容有变化,那么散列算法处理后的结果会完全不一样的】

随后A利用自己的私钥对这个散列后的字符串进行加密就得到了数字签名。

A将原文信息经过对称加密和数字签名一起传递给B。

B接收后,先对原文信息解密,随后对解密的信息也进行散列化处理并得到散列字符串。

B利用A给的公钥对A传递的数字签名进行解密就得到了原信息的散列值。

B将自己散列化处理的字符串和对数字签名解密后的字符串进行对比,如果一样就能证明两件事:第一、信息没有被篡改【因为信息散列值一样(哈希一样)】第二、信息确实是A发送的【因为你能用A的公钥解密她加密的数字签名】

相信详细看完本文,一定会对加密通信全过程有个非常清晰的认识。