私钥、公钥、数字签名与数字证书学习心得

in #cn6 years ago (edited)

昨天学习了关于私钥、公钥、数字签名与数字证书相关的东西。这些加密术语在币圈里面实在是常客,如果不了解的话,就会给我们理解加密货币造成很大的困难。

下面便说下我的理解:

1 私钥与公钥是一对密钥:也就是其中一个用来加密内容,另一个用来解密内容。这一对密钥是依托于非对称算法生成的。(为什么加密解密不用同一个密钥呢?因为同一个密钥没有隐私性,一般非对称密钥都是:私钥自己保存,公钥公开)
2017-12-13 08:20:32 的屏幕截图.png

2 数字签名用来保护内容的完整性。

3 数字证书代表内容是谁发出的,表示内容的有效性。(数字签名与数字证书这么说起来很抽象,然后我想了一个例子来说明一下)

话说北宋年间,有四个大人物,分别是东邪、西毒、南帝、北丐。由于这四个人相隔甚远,难免要有些书信往来。
某一天,东邪打算给西毒写一封书信,告诉他春节来吃饺子。
2017-12-13 08:30:36 的屏幕截图.png
西毒这个人生性多疑,喜欢疑神疑鬼。他就想:这封信是不是东邪的原话呢,信件有没有被中间人修改过呢,如果东邪让我元宵节去,我春节就去了,岂不是很尴尬。

第一个问题出现了--即信的内容是否属于东邪?
要解决这个问题,有两种方法:

方法一:东邪和西毒商量一个加密方式(私钥东邪自己保存用来加密,公钥给西毒),然后东邪用私钥加密信件,西毒收到信之后用东邪的公钥解密。如果解密出可读内容,那么信就是东邪的,没有被修改。(弊端就是信件非常长,解密起来就会非常慢,所以后面讲的数字签名不是这个方式。)

方法二:东邪和西毒商量一个加密方式(私钥东邪自己保存用来加密,公钥给西毒),首先东邪给信件拍个照片,再用私钥给照片加密,然后把加密好的照片附加在信的末尾。西毒收到信后,拿出东邪的公钥解密照片之后就知道信是否被修改了。这种方式只需要加密照片,而不用加密整篇文字,很是方便,于是信就变成了下图这样。(其实是对内容进行了哈希运算,照片只为了方便理解)

2017-12-13 08:50:41 的屏幕截图.png

西毒觉得第二种方法(数字签名)很好,就把这个方案推广给大家。以后写信只要在信件末尾加上这封信的加密照片,这样通过解密照片就可以判断这封信是否被修改过了。

然后四个大人物每人生成了一对公钥私钥。这样四个人就有了四对钥匙。每个人保留自己的私钥,并把公钥公开给别人,让别人用来解密,这样每个人的钥匙便如图所示:

2017-12-13 08:50:32 的屏幕截图.png

东邪给西毒写信过程如下:(数字签名的普通防伪版)
第一步:东邪写了一封明文信件。
第二步:东邪给信拍个照片(求个哈希值),把照片用自己的私钥加密,附加在信的末尾,把信发出去。
第三步:西毒收到东邪来信,需要验证信的真伪,然后去自家的钥匙柜,找到东邪的公钥。
第四步:西毒用东邪的公钥,解密东邪的加密照片。解密出来后判断信是否被修改。
第五步:解密后信和照片中的一样,也就是没有被修改,西毒很高兴。

又有一个问题,西毒家里面的钥匙柜不够用了,它保存了东邪的公钥、南帝的公钥、北丐的公钥。以后还会有更多的人的公钥需要保存,每次找也非常麻烦。这时候数字证书就可以解决问题了。更可怕的是,如果有一天西毒的钥匙柜子里面的“东邪公钥”被郭靖偷偷的替换了,那就麻烦了。这就导致西毒以为公钥是东邪的,其实公钥变成郭靖的了,那以后郭靖就可以用自己的私钥加密内容和西毒通信了,西毒还以为对方是东邪,九阴真经可能因为通信过程的不安全,导致被偷掉了。

这时候武林出现一个机构,叫做证书机构。它的作用就是记录大家的信息(比如记录东邪的姓名、年龄,当然更重要的是它的公钥)。以后大家写完了信,都要去证书机构认证一下。这样有什么作用呢,首先每个人只需要知道证书机构的公钥就可以了。而且也能证明信件来自真的东邪,而不是冒充的郭靖。

证书机构有自己的公钥和私钥(公钥整个武林公开,所以整个武林中人,人手一把。私钥证书机构自己保存,用来给大家发证书,证书和签名类似,也是附加在信的末尾的一段内容)

东邪给西毒写信(数字签名+数字证书的 终极防伪版)
第一步:东邪写了一封明文信件。
第二步:东邪给信拍个照片(求个哈希值),把照片用自己的私钥加密,附加在信的末尾。
第三步:东邪去证书机构,将自己的姓名和公钥,给证书机构。
第四步:证书机构用自己的私钥将东邪的个人信息加密好,然后附加在东邪信的后面,东邪的信就变成这样了。

2017-12-13 19:49:25 的屏幕截图.png

第五步:西毒收到东邪来信,需要验证信的真伪,然后去自家的钥匙柜,现在钥匙柜里面只有证书机构的公钥了。
第六步:西毒用证书机构的公钥解密证书,得到了东邪的个人信息(东邪的姓名和东邪的公钥),证明了这封信来自东邪,而非冒充的郭靖。
第七步:西毒用从证书中解密出来的东邪公钥,去解密签名。解密签名之后,得到照片。
第八步:将信的内容去对比照片,发现相同,这就确定了信没有被修改。而且第六步也确定了这封信确实来自东邪。这次西毒真的很高兴。

这就是我学习到的软件的数字签名和数字证书机制,如果有不对的地方,希望各位大佬指出。

Sort:  

写得通俗易懂,还得再看两遍,已经明白了80%了,哈哈,收藏了👍👍

就喜欢这样的文章,要是教科书都写得这样有故事性就好了!

哈哈,学习了之后,就想把它讲出来说清楚,要不过段时间又忘了。

能讲清楚才说明自己学清楚了,哈哈!

这个讲的真的很清楚~瞬间动力。

有趣,看了一遍大概是那么回事。。。

Congratulations @mooninwater! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments received

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Coin Marketplace

STEEM 0.25
TRX 0.11
JST 0.032
BTC 63478.09
ETH 3067.28
USDT 1.00
SBD 3.81