区块链的数字签名基础

论坛 期权论坛 期权     
链客区块链社区   2019-10-27 05:55   1759   0
数字签名是公钥密码体系中签名验证功能的一个应用。其目的是保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。其中数字签名是个加密的过程,数字签名验证是个解密的过程。其原理首先要理解非对称加密和消息摘要。

非对称加密中公钥是公开的,如果用公钥解密,只能开解对应私钥加密的内容,因此,私钥也可以认为是个人身份的证明。如果通信双方需要互发消息,那么应该建立两套非对称加密的机制(即两对公私钥密钥对),发消息的一方使用对方的公钥进行加密,接收消息的一方使用自己的私钥解密。

消息摘要可以将消息哈希转换成一个固定符长度的值唯一的字串。值唯一的意思是不同的消息转换的摘要是不同的,并且能够确保唯一。该过程不可逆,即不能通过摘要反推明文。利用这一特性,可以验证消息的完整性。

数字签名就是非对称加密和消息摘要的组合,具体过程如下:
假设现在有通信双方A和B,两者之间使用两套非对称加密机制。 现在A向B发消息。


那么,如果在发送过程中,有人修改了里面密文消息,B拿到的密文,解密之后得到明文,并非A所发送的,信息不正确。这就要解决如下两个问题:
A的身份认证
A发送的消息完整性 那么就要用到上面所讲的基础知识。
为了解决上面两个问题,数字签名的过程如下图:

简单解释: A:将明文进行摘要运算后得到摘要(消息完整性),再将摘要用A的私钥加密(身份认证),得到数字签名,将密文和数字签名一块发给B。 B:收到A的消息后,先将密文用自己的私钥解密,得到明文。将数字签名用A的公钥进行解密后,得到正确的摘要(解密成功说明A的身份被认证了)。再对明文进行摘要运算,摘要比对一致说明消息没有被篡改(消息完整性)。





分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7
帖子:9
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP