对称加密和非对称加密
什么是加密
将明文信息变成不可读的密文内容,只有拥有解密方法的对象才能将密文还原成加密前的内容
加密/解密方法
- 计算机中,加密方法和解密方法,可以描述一段程序,我们称作加密/解密算法
- 加密有时候会对暗号,比如上一个例子中每次跳过3个字符,[3]就是一个暗号,这个我们称作【秘钥】
- 核心目标就是提高破解成本
- 最终目标解决诚信问题
对称加密
加密和解密的暗号(秘钥)相同,我们称为对称加密,也就是用同一把钥匙。
非对称加密(秘钥对)
加密和解密的暗号(秘钥)相同,我们称为对称加密,
- 创建者创建一个钥匙对(分成公钥和私钥)
- 公钥加密必须私钥解密
- 私钥加密必须公钥解密
- 创建者自己保留私钥,公钥向外界公开。
什么场景需要非对称加密?
淘宝淘宝端保私钥,用户用公钥(淘宝给的一般商品信息,而用户是给订单这类的)
如何解决信任关系
你无法知道你进的这个网站是否是真的,可能是DNS劫持到黑客那长的一模一样的网站。
输入网站,放回一个含有公钥的证书,但是我们不知道证书是真的的呢,所以这里要提供第三方公证,
证书体系
网站有证书,电脑上也是有预装的根证书(root)。通过算法就知道证书是否为真。
算法如何验证证书
- 公司向第三方机构根证书申请证书。
- 机构通过一个签名算法给公司证书签名,就产生了证书。
- 公司证书通过根证书的秘钥去加密公司签名。
- 用户使用网站,就可以用根证书的公钥去看是不是这个公司的证书
根证书就是直接签名的,
用户可以用自己的证书,
但是如果用自己的,网站会提示不安全。
算法种类介绍
DES(Data Encryption Standard)
- 1970 IMB提出的对称加密算法
- 可暴力破解
加密过程:64bits原文+56bits秘钥->DES->64bits密文;
量子计算机时代
时代进步算法也要跟着进步
AES(Advanced Encryption Standard)
- 2001年美国国家标准与技术研究院发布;
- 可旁道攻击:通过自己这边计算机和对方通信,多次来看猜出算法用了什么指令,
RSA(Rivest-Shamir-Adleman)
三个人1977年发布的非对称加密算法
对称vs非对称
非对称加密安全性高;
对称加密计算速度快
通常混合使用(利用非对称加密协商秘钥,然后进行对称加密)
如果有人问HTTPS是用非对称加密,不是,是混合加密。
HTTPS
这个是在TCP/IP上的
建立连接的过程:
1.0ms 客户端发送SYN
2. 30ms 返回SYN-ACK
3. 60ms 客户端发送ACK、Client Hello
4. 90ms 回传证书 Server Hello/证书
5. 120ms 发送客户端秘钥(协商)
6. 140ms 完成返回
7. 160ms 数据传输