【SCRY知识课堂】第2讲:什么是数字签名?

论坛 期权论坛 期权     
SCRYINFO   2019-10-27 05:56   1569   0

上周我们讲到了公钥、私钥,今天要讲的数字签名,刚好也会用到它们。
小狐狸有两个密钥,一个叫公钥Public Key,一个叫私钥Private Key。


小狐狸的公钥大家都能获得,不管是二哈、柴柴还是小短腿,不过私钥是自己私有的。但不管是私钥还是公钥,都可以用来加密信息,将一段可以理解阅读的明文信息进行加密后,变成一段‘乱码。因此,只有持有正确密钥,才能重新将这段加密后的信息恢复成可以理解阅读的真实信息。



有一天,二哈要发一个重要的消息给好朋友小狐狸。他把“明天中午,老地方见”这句话,用小狐狸的公钥进行了加密。小狐狸收到后,就可以用自己的私钥进行解密。就算后来有人窃取了二哈传给小狐狸的信息,但是由于没有小狐狸的私钥,无法对信息进行解码,所以即使窃取了信息,也无法阅读理解。


这时候,柴柴发现了二哈发送的这段信息,可自己又没有私钥无法看到信息原本内容。却可以对信息进行篡改,破坏原有的信息,这样小狐狸收到被篡改的信息之后,再用自己的私钥进行解码,就会与二哈本来想要传达的信息出现不一致。


这时心里就想:“嘿嘿嘿,得想办法捉弄一下小狐狸”。可是柴柴真的能如尝所愿吗?


所以,我们现在的问题就是,我们要保证信息的完整性,也就是保证信息不被破坏,或者说,当信息被破坏之后,接收方可以识别出,这个时候的信息是被破坏过的,就将其丢弃。


数字签名就可以解决这样的问题。根据数字签名,接收方接收到信息之后,可以判断信息是否被破坏过,如果没有被破坏,就可以正确的解码,如果被破坏,就直接丢弃。


数字签名可以保证对信息的任何篡改都可以被发现,从而保证信息传输过程中的完整性。


那么,数字签名是如何实现对完整性保证的呢?


这里有一个关键技术:Hash,也就是哈希技术。


首先,二哈先对将要传输的信息(原文信息)进行Hash,得到一串独一无二的字符,这就是——信息摘要Message Digest。


这段字符有多么独一无二呢?我们要知道,Hash往往是不可逆的。而且,不同的原文,Hash过后,结果是不一样的。比如下面的”bitcoin”和”bit.coin”, 只多了一个“.”,结果就大相径庭。


这样就保证了柴柴对原文的任何修改都会被发现。


这时候,二哈还要将Hash后得到的信息摘要,用自己的私钥进行加密,以此保证只有二哈的公钥才能对信息摘要进行正确的解码。这样一来,就保证了信息摘要一定是来自二哈的,也就是起到了一个独一无二的签名的作用。


下面是重点:
加密后的信息摘要实际就是数字签名的内容。


其实到这里,我已经回答了一个问题——“什么是数字签名?”
那么,数字签名的作用是如何体现的呢?我们继续往下看。
在得到数字签名后,二哈还需要把数字签名附加在原文信息后面,这样就形成了一个完整的带数字签名的信息报文。


二哈现在把这个数字签名附加在信件原文下面,一起发给了小狐狸。



小狐狸收到来信后,取下数字签名,用二哈的公钥解密,这时候就得到了信件的摘要。既然能用二哈的公钥进行解密,那就说明了这个信件确实是二哈发出的。


这时,小狐狸还需要确认一个问题,那就是这封信有没有被别人(柴柴)修改过?



小狐狸应该做呢?大家思考一下。


回答这个问题,我们需要先理清小狐狸现在有什么?
小狐狸有:1、来自二哈的带有数字签名的信件;2、已经通过二哈的公钥解密出的信息摘要。


在最前面跟大家说过,由信件原文,通过Hash运算也可以得到信息摘要。


因为Hash过后的信息,都是独一无二的,小狐狸只需要将两个信息摘要进行比较,就可以知道信件原文到底有没有被修改过。


从上图中,我们可以看到两个信息摘要是相同的,这说明了信件原文未被修改过。


以上,就是今天所讲数字签名的全部内容。


注:想要自己动手玩玩公钥私钥加解密或者Hash运算?可以打开以下网站:
1、生成密钥对:http://web.chacuo.net/netrsakeypair
2、RSA公钥加解密:http://tool.chacuo.net/cryptrsapubkey
3、RSA私钥加解密:http://tool.chacuo.net/cryptrsaprikey
4、哈希运算:https://www.sojson.com/hash.html





课堂讨论









欢迎加入SCRY社区,了解最新官方动态!
官网
https://home.scry.info
电报群
https://t.me/scryinfo1(中文)
https://t.me/Scryinfo2(英文)
https://t.me/scryinfo6(英文)



Facebook
https://www.facebook.com/scryofficial/Twitter
https://twitter.com/scryinfo
微博
https://weibo.com/scryinfo

Medium
https://medium.com/@scryscry8


Reddit
https://www.reddit.com/r/SCRYDDD/


Github
https://github.com/scryinfo/


微信群
请添加 SCRY 小助手微信号:scryinfo
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

下载期权论坛手机APP