返回
Featured image of post 图解密码技术 —— 第九章 - 数字签名

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

数字签名

公钥密码:存在加密秘钥 (公钥) 和解密秘钥(私钥)。用公钥加密。 数字签名:签名秘钥(私钥)和验证秘钥(公钥)。用私钥加密。 数字签名并不是为了保证机密性。

签名的生成和验证

签名秘钥:私钥。用于对消息进行签名——生成签名。只能一人持有。 验证秘钥:公钥。用于验证消息的签名——验证签名。可以多人持有。

对消息签名的过程

  • A 用自己的私钥进行加密。
  • A 将签名和消息发送给 B。
  • B 用 A 的公钥进行解密(签名验证)。
  • B 将解密后的消息与 A 发过来的消息进行对比。一致,则验证成功,否则,验证失败。

对消息散列值签名的过程

公钥密码算法较慢,如果直接对消息进行签名,会比较耗时。

  • A 用单向散列函数计算消息的散列值。
  • A 用私钥对散列值进行加密。
  • A 将消息和签名发送给 B。
  • B 用 A 的 g 公钥对收到的签名进行解密。
  • B 将签名解密后得到的散列值与 A 发送的消息的散列值进行对比。一致,验证成功,否则,验证失败。

应用场景

  • 信息公告
    • 确保是目标组织发布的目标公告,法制被篡改。
  • 软件下载
    • 软件下载完成后,验证签名,防止软件遭到篡改。(并不能检测软件是否是恶意的)
  • 公钥证书。
    • 验证数字签名时,需要合法的公钥。对公钥进行签名得到的就是公钥证书。【第三方???】
  • SSL/TLS。
    • 使用服务器证书验证服务器身份。
    • 服务器证书:加上数字签名的服务器公钥。

总结

对称密码的秘钥是机密性的精华,单向散列函数的散列值是完整性的精华。

相信美好的事情即将发生。
Built with Hugo
Theme Stack designed by Jimmy