每日一读:数字签名

论坛 期权论坛 期权     
狗蛋日记本   2020-3-28 04:49   1078   0
往期回顾(上下滑动)
每日一读:区块链到底是什么
每日一读:比特币的诞生
每日一读:共识机制不可不知

每日一读:区块链,创造信任的机器
每日一读:3分钟了解公有链和私有链
每日一读:时间戳
每日一读:挖矿是什么?
每日一读:简单了解哈希算法
每日一读:非对称加密
[iframe]https://v.qq.com/iframe/preview.html?width=500&height=375&auto=0&vid=s07572xuz4c[/iframe]


前面讲了非对称加密,现在你有了一个可以公布出去的公钥的,公钥的作用就是公布出去,如果对方想给你发信息,他就可以可以用你的公钥进行数据加密然后发给你,你用你的私钥解密数据,即便是中间人截获你的公钥也没用。如果你想给对方发加密信息,那么就反过来需要知道对方的公钥即可。所以非对称加密最重要的就是保护你的私钥,这就是我们常说的使用不对称算法进行加密数据传输。



那么数字签名又是什么呢,其实也很简单了,简单来讲也是一个加密解密过程,就是将数据用你的私钥进行加密,然后把明文和密文都发给对方,对方用你的公钥对密文进行解密,然后比对解密后的明文是不是一样,这样就证明这个数据没有被第三方篡改,的确是你书写的。





数字签名用于证实数据内容的完整性(integrity)和来源(或不可抵赖,non-repudiation)。


一个典型的场景:张三给李四发一个文件,李四怎么知道他接收的文件是张三发的原始文件?


张三可以这样做,先对文件进行摘要处理(又称Hash,常见的哈希算法有MD5、SHA等)得到一串摘要信息,然后用自己的私钥将摘要信息加密同文件发给李四,李四收到加密串和文件后,再用张三的公钥来解密加密串,得到原始文件的摘要信息,与此同时,对接收到的文件进行摘要处理,然后两个摘要信息进行对比,如果自己算出的摘要信息与收到的摘要信息一致,说明文件是张三发过来的原始文件,没有被篡改。否则,就是被改过的。


如果没明白我说的这段话,那么你可以看看下面这篇图文,对数字签名的解释浅显易懂



鲍勃有两把钥匙,一把是公钥,另一把是私钥。



鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。


苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。

鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。




鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。


然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。



鲍勃将这个签名,附在信件下面,一起发给苏珊。



苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。

苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。


复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。


此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。


因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。

后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。


她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证。


证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。

鲍勃拿到数字证书以后,就可以放心了。


以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。

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


助力互联网新经济发展
长按扫码关注我们


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:30
帖子:2
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP