数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。数字签名的特点有:第一,接收者能够核实发送者对报文的签名;第二,发送者事后不能抵赖对报文的签名;第三,接收者不能伪造对报文的签名;第四,一般采用公开密钥算法实现数字签名。

数字签名主要经过以下几个过程:

1、信息发送者使用一单向散列函数(HASH函数)对信息生成信息摘要;

2、信息发送者使用自己的私钥签名信息摘要;

3、信息发送者把信息本身和已签名的信息摘要一起发送出去;

4、信息接收者通过使用与信息发送者使用的同一个单向散列函数(HASH函数)对接收的信息本身生成新的信息摘要,再使用信息发送者的公钥对信息摘要进行验证,以确认信息发送者的身份和信息是否被修改过。

数字加密主要经过以下几个过程:

1、当信息发送者需要发送信息时,首先生成一个对称密钥,用该对称密钥加密要发送的报文;

2、信息发送者用信息接收者的公钥加密上述对称密钥;

3、信息发送者将第一步和第二步的结果结合在一起传给信息接收者,称为数字信封;

4、信息接收者使用自己的私钥解密被加密的对称密钥,再用此对称密钥解密被发送方加密的密文,得到真正的原文。

数字签名与数字加密实现过程相反

数字签名和数字加密的过程虽然都使用公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密,这是一个一对多的关系,任何拥有发送方公开密钥的人都可以验证数字签名的正确性。

数字加密则使用的是接收方的密钥对,这是多对一的关系,任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。另外,数字签名只采用了非对称密钥加密算法,它能保证发送信息的完整性、身份认证和不可否认性,而数字加密采用了对称密钥加密算法和非对称密钥加密算法相结合的方法,它能保证发送信息保密性。

小知识之公开密钥:

公开密钥也称为非对称密钥,每个人都有一对唯一对应的密钥:公开密钥(简称公钥)和私人密钥(简称私钥),公钥对外公开,私钥由个人秘密保存;用其中一把密钥加密,就只能用另一把密钥解密。