What is a Digital Signature?

Posted luckysimple

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了What is a Digital Signature?相关的知识,希望对你有一定的参考价值。

image

Bob有公钥和私钥。

image

Bob的公钥是公开的,任何人都可以得到。但是只有Bob有自己的私钥。公钥和私钥都可以分别用来加密信息,相应地可以用另一把钥匙解密加密后的信息。

image

例如,上图中Susan用Bob的公钥加密信息后,发给Bob。Bob收到信息后用自己的私钥解密,得到了Susan的信息。其他人即使获取到了信息,由于没有Bob的私钥,也不能知道信息的内容。

另外一种情况,如果Bob给Susan回信,可以用私钥生成数字签名,放在信息的最后。目的是为了在信息被修改时,识别出来。

image

在做数据签名时,Bob用hash计算信息,生成一个信息摘要。hash计算是不可逆的,即不能通过信息摘要获取原来的信息。

image

Bob然后用私钥加密信息摘要,生成的就是数字签名。

image

最后Bob把数字签名放在信息的结尾。将信息和签名都发送给Susan。

image

Susan接收到信息和签名后,用公钥将数字签名解密得到信息摘要。再用hash计算信息得到另一个信息摘要。如果这两个摘要相同,就证明信息没有被修改过。

复杂的情况出现了

Doug想欺骗Susan,用自己的公钥替换了Bob的公钥,这样Doug就可以冒充Bob来和Susan交流了。

如何来确保Bob的公钥不能被伪装呢?数字证书出现了。

image

Bob找到公认的数字证书认证机构,为自己的公钥做认证。认证机构用自己的私钥,将Bob的公钥、Bob的信息和证书信息一起加密,生成了数字证书。

Bob拿到数字证书后,就可以将以前的数字签名换成数字证书了。

Susan接收到Bob的信息后,用数字证书认证机构的公钥来解密数字证书,就可以得到Bob真正的公钥。

Reference

以上是关于What is a Digital Signature?的主要内容,如果未能解决你的问题,请参考以下文章

密码学基础

数字签名是什么?

XML签名

数字签名和数字证书

What is a shell and what is Bash?

转:数字签名是什么?(阮一峰)