什么是数字签名?

数字签名(digital signature)的介绍, by Davic Youd

Bob有两把钥匙,一把叫做public key,另外一把叫做private key


任何需要的人都可以获得Bobpublic key,但是Bobprivate key只有他自己有。这些密钥用于加密信息,加密的信息只能由恰当的密钥解密后才能恢复可读,Bob的两把钥匙中要么其中一把用于加密数据,另外一把用于解密数据。

Susan可以使用Bobpublic key来解密一条信息,然后Bob用他的private key来解密这条信息,Bob任何一个同事都可以获得Susan加密后的信息,但是如果没有Bobprivate key来解密,这些加密后的数据是无意义的。


Bob结合他的private key和一个正确的软件可以将一个数字签名添加到文档(document)和其他数据上面,这个数字签名相当于一张唯独Bob才有的邮票放在数据上面,并且数字签名是很难去伪造的。另外,这个数字签名确保了任何对签名的数据做出的修改都不会不被检测到。


为了给一份文档签名,Bob的软件会将这些数据浓缩成几行,这个过程称为“哈希”,这几行成为消息摘要(message digest),将消息摘要变回生成它的原始数据是不可能的。


Bob的软件之后使用它的private key加密这个消息摘要,加密的结果就是数字签名。


最后,Bob的软件将数字签名附加在文档上面,所有被哈希过的数据都被签名了。


Bob现在将这一份文档发送给Pat

首先,Pat的软件使用 Bobprivate key将数字签名进行解密成消息摘要,如果解密成功,那么就可以证明这个文件是 Bob签名的,因为只有 Bob他自己才有 private keyPat的软件然后将文档数据哈希成消息摘要,如果 Pat哈希的到的消息摘要和通过数字签名解密得到的消息摘要一样的话,那么 Pat就可以知道被签名的数据没有被修改过。
Doug(一个不满的员工)想欺骗 PatDoug确信 Pat能够收到一条签名的消息和一把似乎属于 Bobpublic key,但是对于 Pat来说, Doug可以发送一个用 Bob的名义来生成一个密钥对来欺骗 Pat,对于这种收到不是来自 Bob本人的 public key的情况, Pat怎么肯定 Bobpublic key是可信的?

碰巧,Susan在公司的证书授权中心工作,Susan可以简单地为Bob创建一份数字证书,上面签有Bobpublic key以及有关Bob的一些信息。


现在Bob的同事可以通过检查Bob受信任的证书来确信这把public key确实是属于Bob的,事实上,Bob公司里面的任何人都不会接受上面没有由Susan创建的证书(certificate)的签名(signatures),这也赋予了Susan这样的能力:对于那些private key被盗或者不再使用时Susan能够撤销签名(signatures)。这里还会有更加广泛认可的认证中心来证明Susan

回到Bob发送了一份签名的文档给Pat,为了核实文档上面的签名,Pat的软件首先使用Susan(认证中心)的public key去检查Bob证书(这个证书是由Susan颁发给Bob)上面的签名(Susan),如果这个证书被成功译码,那就可以证明这个证书是Susan创建的,确保这个证书可以被解码后,Pat的软件可以检查Bob在数字证书认证机构是否有良好的声誉以及所有和Bob身份相关的证书信息没有被改变。

Pat的软件然后用Bobpublic key(在证书上)去验证Bob的数字签名,如果Bobpublic key成功译码了签名,那么Pat就可以肯定这个签名是用Bobprivate key创建的,因为Susan已经证实了相配的public key。当然,如果签名是有效的,那么我们可以知道Doug没有修改被签名的内容。

尽管这些步骤听起来很复杂,但是这些工作都是由Pat用户友好的软件在幕后处理好的,Pat只需要点击一下就可以核实一个签名了。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值