数字签名(Digital Signature)是公钥密码体系中签名验证功能的一个应用。其目的是保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。其中数字签名是个加密的过程,数字签名验证是个解密的过程。其原理首先要理解非对称加密和消息摘要。git
非对称加密中公钥是公开的,若是用公钥解密,只能开解对应私钥加密的内容,所以,私钥也能够认为是我的身份的证实。若是通讯双方须要互发消息,那么应该创建两套非对称加密的机制(即两对公私钥密钥对),发消息的一方使用对方的公钥进行加密,接收消息的一方使用本身的私钥解密。加密
消息摘要能够将消息哈希转换成一个固定符长度的值惟一的字串。值惟一的意思是不一样的消息转换的摘要是不一样的,而且可以确保惟一。该过程不可逆,即不能经过摘要反推明文。利用这一特性,能够验证消息的完整性。cdn
数字签名就是非对称加密和消息摘要的组合,具体过程以下:blog
假设如今有通讯双方A和B,二者之间使用两套非对称加密机制。 如今A向B发消息。图片
为了解决上面两个问题,数字签名的过程以下图:it