区块链之数字签名

区块链中采用对原本信息的哈希值进行加密的方式来进行签名
数字签名:签名和验证
一个消息M、其哈希摘要D

签名者通过自身的私钥Kp生成对应的签名S=F(D,Kp)
验证者通过公钥K解密S得到消息M的摘要D=F(S,K)

在这里插入图片描述

双方通信的时候!!!
公钥加密,私钥解密
私钥签名,公钥解密

发送方将原文密文(用接收方的公钥加密)、签名(发送方的私钥签名),发送给接收方。
接收方用自己的私匙解开密文,解密后算哈希值M1。通过发送方的公钥解开发送方签名,得到摘要M2,并且通过M1和M2进行对比,最后的摘要一致,则认为哈希值是对的。

为什么用接收方的公钥加密?
因为通过这种方式,只有接受方的私钥才能解开。
为什么要用发送方的私钥签名,不用其它人的私钥签名?
因为这种方式,才能让接收方确认这条信息是发送方发出来的。只有发送方的公钥才能解开发送方的签名。

猜你喜欢

转载自blog.csdn.net/Li_Hongcheng/article/details/122794386