数字签名原理简介

2,450 阅读2分钟

一、非对称加密

在通信双方,如果使用非对称加密,一般遵从这样的原则:公钥加密,私钥解密。同时,一般一个密钥加密,另一个密钥可以解密。

因为公钥是公开的,如果用来解密,那么久很容易被不必要的人解密消息。因而,私钥也可以认为是个人身份的证明

如果通信双方需要互发消息,那么应该建立两套非对称加密的机制(即两对公私密钥对),发消息的一方使用对方的公钥进行加密接受信息的一方使用自己的私钥解密


二、消息摘要

消息摘要可以将消息hash转换成一个固定长度的值唯一字符串。值唯一的意思是不同的消息转换的摘要是不同的,并且能够确保唯一。该过程不可逆,即补鞥呢通过摘要反推明文(似乎SHA1已经可以被破译了,SHA2还没有。一般认为不可破解,或者破解需要消耗太多的世界。性价比低)。

利用这一特性,可以验证消息的完整性。

消息摘要通常在数字签名中,下面会介绍用法。


三、数字签名

假设现在有通信双方A和B,两者之间使用两套非对称加密机制。

现在A向B发送消息:


那么,如果在发送过程汇总,有人修改了里面密文信息,B拿到的密文,解密之后得到的明文,并非A锁发送的,信息不正确。

要解决两个问题

  • A的身份认证
  • A发送的消息完整性

数字签名的过程如下图:


简单解释;

A:将明文进行摘要运算后得到摘要消息完整性),再将摘要A的私钥加密身份认证),得到数字签名,将密文和数字签名一块发送给B

B:收到A的信息后,先将密文自己的私钥解密,得到明文。将数字签名A的公钥进行解密后,得到正确的摘要(解密成功说明A的身份被认证了);对明文进行摘要运算,得到实际收到的摘要,将这两份摘要进行对比,如果一致,则说明消息没有被篡改消息完整性


来源:数字签名原理简介