对称加密:
未加密的信息+秘钥 --> 加密的黑盒子 --> 加密后的信息
加密后的信息+秘钥 --> 解密的黑盒子 --> 未加密的信息
非对称加密:
未加密的信息+公钥 --> 加密的黑盒子 --> 加密后的信息
加密后的信息+私钥 --> 解密的黑盒子 --> 未加密的信息
既可以公钥加密,私钥解密
也可以私钥加密,公钥解密
数字签名:
A:我要给你发送条消息
B:这消息万一被人改了怎么办?
A:我会签上我的大名
B:怎么签?
A:我会先把消息hash一下,然后用我的私钥加密这个hash后的消息
B:加密后的这玩意儿就是你的签名?
A:是滴,我会把这个签名和消息一起发送给你,你用我之前给你的公钥解密一下这个签名,然后跟我一样,把消息hash一下,如果能正常解密,证明这条消息是我发的,如果解密出来的结果跟你hash出来的结果一致,那证明这条消息没有被别人篡改过
B:搜嘎
总结:
1. 数字签名可以证明消息发送者的身份及消息的完整性和正确性.
2. 明文信息才需要数字签名.
数字证书:
B:大哥,你最近公钥换的有点儿频繁呀,你那儿一改我这就得改,啥时候改的不及时了就收不到消息了
A:这样吧,以后我给你发消息的时候把公钥也一起给你发过去
B:那要是黑客直接把它自己的公钥放在它的消息里一起发给我,我不就又收到错误信息了
A:这样,我听说村里开了家CA机构,我去办个证儿,以后我...
B:等等,哥,CA是啥玩意儿
A:CA就是大家都信任的机构,他会给那些正规的服务端颁发能证明身份的证书.
B:不懂
A:比如你想要我的公钥,为了正确性,我先去拿着我的公钥去CA那儿,它用它的私钥把我的公钥以及一些其他信息加密,制成数字证书,以后我给你发消息的时候,你就可以用CA的公钥解密一下数字证书,就可以拿到我的公钥了.
B:搜嘎
总结:
1. 数字证书是受信任的CA机构颁发的能证明身份的证书
2. CA机构的安全性毋庸置疑,知乎上有篇文章介绍CA机构的安全性,大家可以去膜拜一下 <<CA机构是如何保护自己私钥的>>
HTTPS是怎么保护数据的
B:大哥,你发过来的消息咋这么慢呢
A:时间主要都浪费在非对称加密上了,这个玩意儿很耗时间的
B:有没有办法提升一下速度
A:这样,每次交换信息时,咱按这样的步骤来
1. 我给你发送数字证书
2. 你从数字证书中拿到我的公钥,然后用公钥加密一个随机数并发送给我
3. 我用私钥解密后获得你的随机数
4. 咱俩发送消息时都用这个随机数做秘钥,对信息进行对称加密
B:这样一来,耗时间的非对称加密只用来验证身份了,消息交换用不耗费时间的对称加密来保证安全性
A:对滴
B:搜嘎
总结:
1. 非对称加密耗费时间长,所以仅用在验证身份上
2. 对称加密耗费时间短,所以用在信息传输上