区块链数字签名详解
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
之前给大家讲过hash,今天讲讲签名。
先看上图,发送方把hello kitty的信息进行双重处理。首先是通过接收方公钥来进行加密,
为什么要接收方的公钥来加密? 因为只有接收方的私钥可以解开接受方公钥加过的密,所以只有接受方可以解密。
然后hello kitty还要通过哈希值得到摘要,接要再经过发送方私匙进行签名,签名后得出的原文密文和发送方签名一起发给接受方。
接收方用自己的私匙解开密文,得到hello kitty.
然后通过哈希得到摘要。
另外则是通过发送方的公钥解开发送方签名,得到摘要,并且通过解密原文密文的摘要和解密发送方签名的摘要进行对比,最后的摘要一致,则认为摘要是对的。
通过这样的方式,接受方完成了对发送方签名过的hello kitty信息的认证。
这里要记一个口诀,公钥加密,私钥解密,私钥签名,公钥解密。
再短一点,则是公钥加,私钥解,私钥签,公钥解。
有个问题,为什么用接收方的公钥加密hello kitty?因为通过这种方式,只有接受方的私钥才能解开。
为什么要用发送方的私钥签名,不用其它人的私钥签名?因为这种方式,才能让接收方确认这条信息是发送方发出来的。只有发送方的公钥才能解开发送方的签名。
读到这里,想必你已经知道,这套数字签名的方式有多么精妙了吧!
精妙之处有三点:
1. 数字签名方式保证了信息加密的安全。
2. 接收方可以明确的知道是发送方发出的私密信息。
3. 使得接收方对信息的验证非常容易确认,确认解密的过程中没有错误的发生。
再一个问题,如果发送方发送完之后人去世了,会影响接收方接收信息吗?
答案是不会。因为发送方的公钥是公开的,接收方有自己的私钥可以解开原文的密文,并且用发送方的公钥可以解开发送方的签名。
最后一个问题,如果接收方收到信息后去世了,还能收到信息吗?
嗯,如果接收方的私钥全天下只有接收方一个人知道,这条信息接收方就收不到了。因为接收方已经去世,所以收不收得到对接收方已经不重要了。(把暴力破解的情况排除,按现在的计算机算力,一千年吧!)
但是,如果发送方送过来的是比特币,那么接收方的私钥就非常有价值了。
其实hello kitty改成比特币你就明白了,在进行信息传递的时候,数字签名也完成了比特币的价值传递。
这就是区块链比互联网牛逼的地方。互联网只进行信息传递,而没有价值传递,而区块链不但有信息传递,还伴随着价值的传递。这一层意义有多重要,你可以自己悟。
https://baijiahao.baidu.com/s?id=1591887399924128618&wfr=spider&for=pc
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=1748