水下功夫做透,水上才能顺风顺水。

加密小史


China-American
小C和小A明文通信。
1. 明文通信

明文通信的问题:通信内容有可能被截获,以至于被偷窥,被篡改。


2.对称加密通信

加密特点:
(1)加解密公用一个密钥。
(2)密钥只允许通信双方知道。

对称加密的问题:密钥需要被传递,密钥密钥有可能被截获,导致密文可能被解密,被偷窥,被篡改。

3.rsa加密(体制)通信

加密特点:
(1)私钥保密,公钥公开。(不可互换)
(2)公钥始终用来加密,私钥始终用来解密(收信)
(3)双向安全通信需要两对不同密钥。

在加密算法中,公钥用于对数据进行加密,私钥用于对数据进行解密。

4.rsa签名(体制)公告

签名特点:
(1)私钥保密,公钥公开。
(2)私钥始终用来加密,公钥始终用来解密(验签)

签名的作用:rsa保证公告是签名者发布的,且内容完全、准确。

在签名算法中,私钥用于对数据进行签名,公钥用于对签名进行验证。

 

如果你想发布一个公告【公告本身不加密】,需要一个手段来证明这确实是你本人发的,而不是其他人冒名顶替的。那你可以在你的公告开头或者结尾附上一段用你的私钥加密的内容(例如说就是你公告正文的一段话),那所有其他人都可以用你的公钥来解密,看看解出来的内容是不是相符的。如果是的话,那就说明这公告确实是你发的---因为只有你的公钥才能解开你的私钥加密的内容,而其他人是拿不到你的私钥的。

数字签名无非就两个目的:
证明消息是你发的
证明消息收发内容一致性

其实,上面关于“公告”那段内容,已经证明了第一点:证明这消息是你发的。
那么要做到第二点,也很简单,就是把你公告的原文做一次哈希(md5或者sha1都行),然后用你的私钥加密这段哈希作为签名,并一起公布出去。当别人收到你的公告时,他可以用你的公钥解密你的签名,如果解密成功,并且解密出来的哈希值确实和你的公告原文一致,那么他就证明了两点:这消息确实是你发的,而且内容是完整的。

 

posted @ 2018-01-05 15:14  北方寒士  阅读(143)  评论(0编辑  收藏  举报