数字签名是公钥密码体系中签名验证功能的一个应用。其目的是保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。其中数字签名是个加密的过程,数字签名验证是个解密的过程。其原理首先要理解非对称加密和消息摘要。
非对称加密中公钥是公开的,如果用公钥解密,只能开解对应私钥加密的内容,因此,私钥也可以认为是个人身份的证明。如果通信双方需要互发消息,那么应该建立两套非对称加密的机制,发消息的一方使用对方的公钥进行加密,接收消息的一方使用自己的私钥解密。
消息摘要可以将消息哈希转换成一个固定符长度的值唯一的字串。值唯一的意思是不同的消息转换的摘要是不同的,并且能够确保唯一。该过程不可逆,即不能通过摘要反推明文。利用这一特性,可以验证消息的完整性。
数字签名就是非对称加密和消息摘要的组合,具体过程如下:
假设现在有通信双方A和B,两者之间使用两套非对称加密机制。现在A向B发消息。
那么,如果在发送过程中,有人修改了里面密文消息,B拿到的密文,解密之后得到明文,并非A所发送的,信息不正确。这就要解决如下两个问题:
A的身份认证
A发送的消息完整性那么就要用到上面所讲的基础知识。
为了解决上面两个问题,数字签名的过程如下图:
简单解释:A:将明文进行摘要运算后得到摘要,再将摘要用A的私钥加密,得到数字签名,将密文和数字签名一块发给B。B:收到A的消息后,先将密文用自己的私钥解密,得到明文。将数字签名用A的公钥进行解密后,得到正确的摘要。再对明文进行摘要运算,摘要比对一致说明消息没有被篡改
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。