本文结合下面两个问题来讲解数字签名的基本原理。结合图片希望能给大家一个清晰简单明了的分析和讲解。
1. 问题描述:
(1)用户A向远方的用户B发送一个消息,用户B如何确认所收到的消息在传输的过程中没被篡改过?
(2)用户B收到了消息之后,如何防止A随之否认这个消息是他发送的呢?
---------阅读本文的知识储备:了解非对称加密的基本原理。--------
2. 使用方法:数字签名
类比于现实生活,我可以在一个支票上面签名,表示这张支票确实是我本人签署的。收到这张支票的人到银行去兑现的时候,工作人员只需要核对支票上面的签名和其他信息,就可以确认它的真实性。那工作人员如何知道签名是我本人的呢?因为我之前在银行那边留下我自己的签名,工作人员只需要拿以前的签名和现在支票上面的签名对比,就可以确认两个签名的字迹是不是一样的了。
结合下面第一个图片,来讲解数字签名的具体步骤。
- 消息发送:
(1)消息发送者A使用Hash算法生成原文的数字摘要。
(2) 使用A自己的私钥加密刚刚生成的数字摘要。
(3)将原文和加密之后的摘要发送给接收者B。
- 消息接收:
(1