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

Posted GACHAIN

tags:

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


非对称加密简介


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


与非对称加密算法相对的是对称加密算法。对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。


1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。


与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法。


非对称加密体系不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖,因此,更适合网络通信中的保密通信要求。


非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。

 

当前最主要的非对称加密算法有RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。其中,使用最广泛的是RSA算法,Elgamal是另一种常用的非对称加密算法。


 

举个简单易懂的例子



美国的A程序员发了一个快递到中国广东的程序员B,途中经过了北京,北京快递中心出现了一个黑客H,他偷偷打开了B给A的快递,然后偷偷把里边的文件破坏掉,再按照原样包装好发往广东,可以看到对于这样简单包装的传输在中途是可以偷偷修改里边的东西。


HTTP的TCP/IP协议下的数据包是明文传输,也即是如果中途某个黑客嗅探到这个HTTP包,他可以偷偷修改里边包的内容,至于A和B都是无法察觉这个动作的,因此我们必须要有一个方案来防止这种不安全的篡改行为,有个方法就是加密。



这里保护的手段就是A对物品进行加密,同时给了告诉B解密的方法。


那如果现在要求A的密码只能通过快递传给B呢?如果A直接传密码给B,H如果嗅探到这个快递,那H也知道密码了,这就无法保护快递的安全性了。因此还需要有个方案,让A能够告诉B密码的同时,H又无法查看到A跟B通信的数据。非对称加密在这个时候就发挥作用了,来看看怎么回事:A拥有两把钥匙,一把叫做公钥,一把叫做私钥。公钥是公开让全社会都知道,并且A告诉所有人,你们要传递数据给我的时候请先用这个密钥(公钥)去加密一下你们的数据,加密后的数据只能通过A私自藏着的私钥才能解密。


回到刚刚例子,A先发给保险柜(A公钥)给B,接着B把自己的保险柜(B公钥)放到A的保险柜(即使用A的公钥加密B的公钥)里边发还给A,接着A拿到B的数据包后,用自己的私钥解开了外层保险柜(A的公钥),拿到了里边B保险柜(B的公钥)。此时B跟A都有了各自的公钥(并且都有他们自己的私钥),接着只要保证每次互相传递数据的时候,把数据放在对方的保险柜里边即可(即每次都用对方的公钥加密数据),这样无论如何,H都无法解开保险柜(因为只有各自的私钥才能解开各自的保险柜)。

 

部分内容来自:三人行博客



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

区块链中的非对称加密技术

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

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

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

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

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