有一点比较难以理解的答案就是
私钥加密公钥可以解密
公钥加密私钥可以解密
RSA的原理,两个大质数(p,q)乘积(n)难以逆向求解,所以pq是对等的,公钥和私钥也是对等的。
《区块链-从数字货币到信用社会 》-读书笔记
这张图来自于新生大学的周兵 老师的课堂,感谢周兵老师。
最新P3D新盘 http://chunchou.com
我觉得还是可以课后自我总结和升华一下,所以拿这样图来进行详解。
发送方把hello kitty的信息进行双重处理。首先是通过接收方公钥来进行加密,
为什么要接收方的公钥来加密? 因为只有接收方的私钥可以解开接受方公钥加过的密,所以只有接受方可以解密。
然后hello kitty 还要通过哈希值得到摘要,接要再经过发送方私匙进行签名,签名后得出的原文密文和发送方签名一起发给接受方。
接收方用自己的私匙解开密文,得到hello kitty.
然后通过哈希得到摘要。
另外则是通过发送方的公钥解开发送方签名,得到摘要,并且通过解密原文密文的摘要和解密发送方签名的摘要进行对比,最后的摘要一致,则认为摘要是对的。
通过这样的方式,接受方完成了对发送方签名过的hello kitty信息的认证。
这里要记一个口诀,公钥加密,私钥解密,私钥签名,公钥解密。
再短一点,则是公钥加,私钥解,私钥签,公钥解。
有个问题,为什么用接收方的公钥加密hello kitty?因为通过这种方式,只有接受方的私钥才能解开。
为什么要用发送方的私钥签名 ,不用其它人的私钥签名?因为这种方式,才能让接收方确认这条信息是发送方发出来的。只有发送方的公钥才能解开发送方的签名。
读到这里,想必你已经知道,这套数字签名 的方式有多么精妙了吧!
精妙之处有三点:
1. 数字签名方式保证了信息加密的安全。
2. 接收方可以明确的知道是发送方发出的私密信息。
3. 使得接收方对信息的验证非常容易确认,确认解密的过程中没有错误的发生。
再一个问题,如果发送方发送完之后人去世了,会影响接收方接收信息吗?
答案是不会。因为发送方的公钥是公开的,接收方有自己的私钥可以解开原文的密文,并且用发送方的公钥可以解开发送方的签名。
最后一个问题,如果接收方收到信息后去世了,还能收到信息吗?
嗯,如果接收方的私钥全天下只有接收方一个人知道,这条信息接收方就收不到了。因为接收方已经去世,所以收不收得到对接收方已经不重要了。(把暴力破解的情况排除,按现在的计算机算力,一千年吧!)
但是,如果发送方送过来的是比特币,那么接收方的私钥就非常有价值了。
其实hello kitty改成比特币你就明白了,在进行信息传递的时候,数字签名也完成了比特币的价值传递。
这就是区块链比互联网牛逼的地方。互联网只进行信息传递,而没有价值传递,而区块链不但有信息传递,还伴随着价值的传递。这一层意义有多重要,你可以自己悟。