加密的目的

1.内容加密:我发送给你的内容,只有你能看到。

2. 身份验证:你可以从我发的信息中确定,该信息是我发的,不是别人冒充的。

 

一,公钥和私钥

互联网上,每个人都有一个配对的公钥+私钥。

公钥,就是给大家用的。私钥,就是自己保管的。

这一对公钥和秘钥互为锁和钥匙,也就是:公钥加密的内容只能用私钥解密,私钥加密的内容只能用公钥解密。

如何实现目的1:我发送给你的内容,只有你能看到

我用你的公钥给内容加密。你收到加了密的内容后,用你的私钥就可以解密。由于只有你有你的私钥,也就只有你才能看到该内容。

如何实现目的2:你可以从我发的信息中确定,该信息是我发的,不是别人冒充的

我用我的私钥给内容加密,你收到加了密的内容后,用我的公钥就可以解密。由于只有我有我的私钥,也就证明我才能发出该内容。

 

二,数字签名

看过上面的内容一定会疑惑,如果要将目的1和2同时实现,岂不是要对内容加两次密?

具体实现中不是这样的,数字签名就是实现目的2的具体做法。步骤如下:

1,将邮件的内容通过Hash函数获得摘要

2,用我的私钥加密摘要,加密后的摘要就叫数字签名。

3,当你看到我的数字签名,用我的公钥能解密出摘要,证明作者是我。

4,对解密出的内容使用Hash函数获得的摘要,和数字签名中解密出的摘要进行比较。如果一致,证明内容没有别篡改和破坏。

 

三,证书中心

由于身份验证是通过公钥的方式,因此,一旦被别人冒充了公钥,就有可能被别人冒充,如银行网站。

证书中心会对需要证明的公钥,用证书中心的私钥对这些公钥再次加密,加密后的公钥就叫证书。

用户在与银行等容易被人冒充的网站通信前,先到证书中心拿到这些证书,然后用证书中心的公钥解密获得正品的银行公钥,就可以验证自己是不是误信他人了。