数字签名基础

数字签名(Digital Signature)是公钥密码体系中签名验证功能的一个应用。其目的是保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。其中数字签名是个加密的过程,数字签名验证是个解密的过程。其原理首先要理解非对称加密和消息摘要。git

  • 非对称加密中公钥是公开的,若是用公钥解密,只能开解对应私钥加密的内容,所以,私钥也能够认为是我的身份的证实。若是通讯双方须要互发消息,那么应该创建两套非对称加密的机制(即两对公私钥密钥对),发消息的一方使用对方的公钥进行加密,接收消息的一方使用本身的私钥解密。加密

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

数字签名就是非对称加密和消息摘要的组合,具体过程以下:blog

假设如今有通讯双方A和B,二者之间使用两套非对称加密机制。 如今A向B发消息。图片

这里写图片描述
那么,若是在发送过程当中,有人修改了里面密文消息,B拿到的密文,解密以后获得明文,并不是A所发送的,信息不正确。这就要解决以下两个问题:

  • A的身份认证
  • A发送的消息完整性 那么就要用到上面所讲的基础知识。

为了解决上面两个问题,数字签名的过程以下图:it

这里写图片描述
简单解释: A:将明文进行摘要运算后获得摘要(消息完整性),再将摘要用A的私钥加密(身份认证),获得数字签名,将密文和数字签名一块发给B。 B:收到A的消息后,先将密文用本身的私钥解密,获得明文。将数字签名用A的公钥进行解密后,获得正确的摘要(解密成功说明A的身份被认证了)。再对明文进行摘要运算,摘要比对一致说明消息没有被篡改(消息完整性)。
相关文章
相关标签/搜索