00:00
大家好,这里是深蓝说区块。今天我们讲解区块链观念技术中的数字签名技术,数字签名技术是基于非对称加密算法。非对称加密的意思就是说在整个加密的解和解密的过程中,里面是有私钥和公钥这么一对密钥组成的。呃,当然我周围所有的人,包括我在其他的各种平台上听到的,大家都把这个叫私钥和公钥,那么接下来还是就约定俗成,我们就把它叫私药公药吧。啊,私钥和公钥是成对匹配的。呃,也就是说,我用私钥加密的内容,只能有对应的公钥才能解密,反过来,用公钥加密的内容也只有对应的私钥才能够解密。公钥顾名思义,它是可以对外公开的,可以放到互联网上面去。而私钥是个人私人持有的,通过公钥是没办法去推导出私钥出来的。
01:00
好,基于前面的这么几个特点,我们就可以用私钥对消息进行签名,然后用公钥对消息进行签名的一个验证,那具体过程是怎么样的呢?我们来看一看,这里有一个图例。消息原文,然后通过我们前面介绍的哈希算法,就能得到一个固定长度的一个哈希值。这个哈希值用我们自己持有的私钥进行加密之后,那么得到的这个结果就是一个签名,好,现在我们通过互联网把消息原文和签名给广播给对方,对方在收到了消息原文和签名之后,做了这么两步操作,一个他是用同样的哈希算法把消息原文算出来一个哈希值。另外一边呢,因为我前面已经说到了,公钥是公开的,所以说对方能拿到公钥,对方用这个公钥对这个签名,也就是我们这里加密后的内容进行一个解密。那解密之后就应该是得到的是一个这个哈希值,那么我们接下来就对比一下这两个哈希值是否相同,就能够确定我们的这个签名是不是一致的。
02:11
签名具有不可伪造和不可抵赖的特点,不可伪造的意思就是说我们不可能去呃伪造别人的这么一个签名信息,或者是去伪造别人的消息的原文,而不可抵赖的意思就是说,我一旦是用这个公钥进行解密之后,确认了这个签名无误,那么就一定是对应的这个私钥加密的。而不可能是别人的私钥。然后进行了一个签名处理。常用的签名算法在区块链中主要有这么几种,一种是像在比特币,以太坊中都是广泛使用的,ECD sa,这个是椭圆曲线的一个数字签名算法,另外还有一个,呃,比较先进的一个,呃,另外一种曲线算法叫ED251,当然我们国密里面也是有对应的一个,它也是基于椭圆曲线的一个签名算法,叫SM2。
03:08
除了前面提到的这几种签名算法之外,另外还有最早的被广泛使用的非对称加密算法,而r sa也是可以进行一个数字签名。但是RA相对于前面的这几种签名算法呢,有几个缺点,一个是要实现同样的安全性的情况下,RA要求更长的密钥的长度,另外呢,Rsa的签名的结果也会更长。而且RA的那个算法在时间消耗上面,还有资源消耗上面,也会比前面的这几种签名算法要更高。在区块链中,签名算法的主要作用就是对交易的数据进行签名,就比如说在比特币网络里面,如果我要发送一个比特币给对方,那么这个发送的这笔交易里面一定是有我的签名的。
04:01
而且这个签名的不可伪造和不可篡改就意味着我如果发的是一个比特币,那肯定就是一个,不可能被别人改成两个,也不可能别人冒充我来把我的比特币给用掉。在区块链中掌握私钥的容器叫做钱包,钱包分为软件钱包和硬件钱包。掌握私钥就代表着持有者本人,所以说我们的私钥一定要妥善保管,防止遗失或者是被盗,一旦遗失或者被盗之后,那么对应持有的数字资产就没办法再找回来了。
我来说两句