数字签名

Sign

预备知识:密码学

理解数字签名需要了解密码学中的非对称加密算法,公钥和私钥的关系与特性,推荐首先阅读 密码学



密钥的使用

密钥对用于加密传输

当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过这种手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。

公开密钥技术解决了密钥发布的管理问题,商户可以公开其公开密钥,而保留其私有密钥。购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送给商户,然后由商户用自己的私有密钥进行解密。


密钥对用于数字签名

签名时利用私钥加密,由于私钥仅为本人所有,这样就产生了别人无法生成的文件,但是你公开的公钥可以解开,从而确保信息是由你发送的,这样就形成了数字签名,采用数字签名,能够确认以下两点:

(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;

(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。



数字签名的过程

(1)将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证:只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不可更改性。

(2)将该报文摘要值用发送者的私人密钥加密,然后连同原报文一起发送给接收者,而产生的报文即称数字签名。这样就保证了签发者不可否认性。

(3)接收方收到数字签名后,用同样的HASH算法对报文计算摘要值,然后与用发送者的公开密钥进行解密解开的报文摘要值相比较。如相等则说明报文确实来自所称的发送者。

数字签名