数字签名技术

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字签名技术相关的知识,希望对你有一定的参考价值。

介绍数字签名

数字签名是一种用于确认数据的完整性、确认发送者身份的技术。

签名主要包含两个过程:做摘要、进行非对称加密。

  • 做摘要:签名者使用消息摘要算法对消息做摘要;
  • 进行非对称加密,得到签名值:签名者使用私钥 privateKey 对摘要进行非对称加密,得到消息的签名值;
  • 发送者将 “原始消息” 和 “消息的签名值” 一同发给接收者。

验签主要包含两个过程:对签名值进行解密、自己做摘要,并比较摘要。

  • 对签名值进行解密,得到摘要值:验签者使用签名者的公钥 publicKey 对签名值进行解密,得到摘要值。
  • 自己做摘要,并比较摘要值:验签者使用消息摘要算法对签名的数据做摘要,然后将 “计算出的摘要值” 和 “解密得到的摘要值” 作比较:如果二者相同,则说明验签成功;否则说明验签失败。

介绍签名算法

一个签名算法包括两个部分:消息摘要算法、非对称加密算法。

常见的签名算法有:RSA、RSA2。


RSA 签名算法的全称是 SHA1WithRSA:它使用的消息摘要算法是 SHA1,它使用的非对称加密算法是 RSA。RSA 签名算法对 RSA 密钥的长度不限制。推荐使用 2048 位以上(256 字节)

RSA2 签名算法的全称是 SHA256WithRSA:它使用的消息摘要算法是 SHA256,它使用的非对称加密算法是 RSA。RSA2 签名算法强制要求 RSA 密钥的长度至少为 2048 位。

数字签名的作用

数字签名技术的本质不是为了加密。

技术是为了解决问题而生的,进行数字签名的目的是:

  • 防止他人篡改信息:由于只有私钥持有者才能 “签署” 消息(不考虑私钥泄露的问题),因此其他人无法篡改信息。如果信息被篡改,那么消息接收者通过验签结果将会得知信息被篡改了。确保信息自签名后 到 收到为止,信息未被修改过。
  • 防止他人伪造信息:由于只有私钥持有者才能 “签署” 消息(不考虑私钥泄露的问题),因此其他人无法伪造信息。如果信息被伪造,那么消息接收者通过验签结果将会得知信息是被伪造的。
  • 防止签名者抵赖:由于只有私钥持有者才能 “签署” 消息(不考虑私钥泄露的问题),因此私钥拥有者不能抵赖说这条签署消息不是他发送的。

参考资料

数字签名是什么? - 阮一峰的网络日志 (ruanyifeng.com)

《深入浅出 HTTPS 从原理到实战》

以上是关于数字签名技术的主要内容,如果未能解决你的问题,请参考以下文章

公钥、私钥、签名、证书之间傻傻分不清

公私钥,数字证书,https

数字证书

https 及证实公钥私钥理解

图解密码技术------第9章 数字签名

数字电视接收器工作原理是怎样的?