对称加密和非对称加密

改变自己 2019-08-29

github首页:区块链学习有用链接和25本区块链书籍可免费阅读,觉得有用就fork或是star

地址:https://github.com/cancerts/study-blockchain-referrence 点击这

数据加密算法主要分为两大类:对称加密和非对称加密

下面我们来看一下他们的区别的各自的作用

下面详细介绍两种加密方式的具体过程

(1)交易加密或者区块加密(对称加密)

为了让区块链中的交易信息或者账本状态在网络中安全的传输进行的加密处理方式,基本原理如图1-1所示。

我们使用一个范式表示为:密文=对称加密算法(明文(原始数据)+密钥K)

从图中可以看出来,我们在不屑露交易双发真实信息的前提下,在网络中进行信息的传播,所以要进行信息的加密处理,我们使用对称加密密钥K对明文进行加密处理形成密文,密文在p2p网络中,进行传输,接受者使用相同的密钥进行解密得到明文。

常见的“对称密钥”加密算法主要有DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfish等,具体每个算法的实现我就不再这里说了,感兴趣的自己取查找。

对于在网络中传输的信息我们怎么确定信息的真实性,没有被篡改过呢,接下来图1-2所示的为使用数字摘要确保信息的真实性,具体的过程我们来看一下

首先hash函数具有的其中的一个特性就是任何对原始数据的微小改变都会得到完全不一样的结果,所以利用数字摘要的比对可以确认数据有没有被修改过,过程是这样的,将明文hash后得到的数字摘要和密文一起传输,当接受者得到密文时使用密钥进行解密得到明文之后再对明文进行hash运算和区块中的数字摘要进行比较,一致则可以认为数据没有被篡改。

(2)数字信封传递密钥(非对称加密:公匙加密-私匙解密)

我们在之前在对数据进行加密时使用了相同的密钥K进行加密和解密,那么怎么确保发送者和接受者的密钥是同一个呢,怎么传递的?下面我将演示具体的实现过程,如图2-3所示。

如果你还是不理解,我举个简单的例子来说,就像大家都喜欢成都小甜甜一样,你也喜欢,你就悄咪咪的写了一封情书,你的甜蜜的话语就相当于我们所说的密匙K,为了不让每个人都看到,害羞嘛,你懂的或是防止其他人比如邮差啊什么的,每天那么苦,有甜甜这样好养的女朋友当然

也不想错过,一看小甜甜收,心想不能让你得逞,于是就私底下悄咪咪的改了你的甜言蜜语,结果是一段胡话,最后你懂的。。。。。。比较形象,当然,你不想发生这样的情况,你就使用对方的公开的密钥进行的一个加密处理,只有小甜甜的私钥才可以看见信封里面的内容,这就是我们的非对称加密,用来传输密钥。

(3)数字签名防篡改(非对称加密:私匙加密-公匙解密)

列一个范式:数字签名=加密(hash(明文)+私钥)

数字签名说白了,就像你你现实生活中的手工签名一样,一旦某人签署了某份文件,因为每个人的签名是惟一的,我们就会认为你是他本人的行为,表示那个动作是他本人发出的,不允许抵赖,是有法律效应的,我们的数字签名其实和那个也差不多,只是利用一些密码学的算法来实现某人发生了什么行为,而且可以确定某样东西属于谁,因为私钥只有签名的那个人拥有。

最后补充一个知识点:零知识证明

意思就是验证着不适用提供的任何有用信息的情况下,使验证着相信某个结果是正确的

好了,这也是我学习了好久搞明白的一些知识点,今年花了几个小时总结了一下,希望对你有所帮助

相关推荐