①对称加密(一把密钥):
1、A和B事先传输一把密钥,A给B发消息用密钥加密,B给A发消息用密钥解密
问题:密钥被黑客截取,得到实际内容
②非对称加密(两把密钥):
1、A和B都有一把私钥和一把公钥 2、一把钥匙的公开的(全世界都知道也没关系),称之为公钥;而另一把钥匙是保密(也就是只有自己才知道),称之为私钥。并且,用公钥加密的数据,只有对应的私钥才能解密;用私钥加密的数据,只有对应的公钥才能解密。
3、A给B发消息时,用B的公钥加密,B收到消息后,用自己的私钥进行解密 问题:B在给A发送公钥的时候,被黑客截取,黑客给A发送自己的公钥而不是B的,那么A给B发消息时,黑客可以用自己的私钥解密,得到实际内容,再用B的公钥加密发送给B。
③数字证书:
问题②的问题在于,A收到B的公钥,无法确定收到的公钥是B还是黑客的
所以,需要找到一种策略确定公钥是B的:即数字证书
1、找到一个公正的机构(CA)
2、B的公钥和B的个人信息-->通过hash算法生成消息摘要-->通过CA的私钥加密生成数字签名
3、将数字签名、B的公钥、B的个人信息合并一起,形成数字证书
验证:
1、用CA的公钥解析数字签名得消息摘要
2、B的公钥和B的个人信息-->通过hash算法生成消息摘要
3、两个消息摘要对比,如果一样,则说明公钥是B的