数字签名

数字签名

       数字签名是通过一个单项函数(hash函数)对要传送的信息进行处理,得到一个用于认证信息来源并核实信息在传递过程中是否发生变化的一个字符串。数字签名提供了对信息来源的确定并能检测信息是否被篡改。

       今天看了一篇关于数字签名具体过程介绍,感觉特别好就保存一下。

        我们都知道数字签名是非对称加密技术的一个具体应用,它采用私钥加密,采用公钥验证的方式。这里依然记住Bob和他的小伙伴来帮助我们理解。

1. Bob有两把钥匙,一把私钥、一把公钥。

数字签名_第1张图片

2. Bob把公钥发送给他的小伙伴们---Pat,Doug,Susan。

数字签名_第2张图片

3. Susan要给Bob写一封保密的信,她写完之后,用Bob的公钥进行加密,再发送给Bob就可以了,就能达到保密的效果。

数字签名_第3张图片

4. Bob收到信后,用私钥解密,就可以看到Susan写的信的内容了。只要Bob的私钥不泄露,这份信就是安全的。即使别人窃取了这封信,也无法加密。

数字签名_第4张图片

5. Bob给Susan回信,他决定使用数字签名。他写完后先用Hash函数,生成信件的摘要(digest)

数字签名_第5张图片

6. 然后Bob使用自己的私钥,对这个摘要进行加密,生成“数字签名”(signature)

数字签名_第6张图片

7.  然后Bob将这个签名,附在信件的下面,一起发给Susan。

数字签名_第7张图片

8. Susan收到信后,取下数字签名,用Bob的公钥解密,得到信件摘要,由此证明这封信是Bob发的。

数字签名_第8张图片

9. Susan在对这封信本身使用Hash函数,将得到的结果与上一步得到的摘要进行对比,如果两者一致,就说明这封信没有被修改过。

数字签名_第9张图片

10. 复杂的情况出现了。Doug想欺骗Susan,他偷偷使用了Susan的电脑,用自己的公钥换走了Bob的公钥。此时,苏珊实际拥有的是Doug的公钥,但是还以为这是Bob的公钥。因此,Doug就可以冒充Bob,用自己的私钥做成"数字签名",写信给Susan,让Susan用假的Bob公钥进行解密。

数字签名_第10张图片

11. 后来,Susan感觉不对劲,发现自己无法确定公钥是否真的属于Bob。她想到了一个办法,要求Bon去找"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对Bob的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)

数字签名_第11张图片

12. Bob拿到数字证书之后就放心了,以后再给Susan写信,只要在签名的同时,在附上数字证书就可以了。

数字签名_第12张图片 

13. Susan收信后,用CA的公钥解开数字证书,就可以拿到Bob真实的公钥了,然后就能证明"数字签名"是否真的是Bob签的。

数字签名_第13张图片

此过程加上图片,就非常好理解了。

注:转载阮一峰老师的博客

你可能感兴趣的:(数字签名)