常用加密算法介绍及https加密原理

2021-05-17  本文已影响0人  剑老师

对称加密

特点:加密、解密采用同一密钥。
优点:加密速度快
缺点:因用同一密钥加解密,在密文传输过程中需要把密钥也进行传输,这样增加了密钥的泄漏风险。
代表:DES、AES

非对称加密算法

特点:非对称加密又可称为公私钥加密,即用公钥加密只能用对应的私钥解密,私钥加密只能用对应的公钥解密。
优点:安全,公钥可以公开,只需保证私钥不被泄露即可。
缺点:加密速度慢
代表:RSA、ECC

hash算法

hash算法不是严格意义上的加密算法。一般来说加密算法是可逆的,即:能加密必能解密。而hash算法是有损加密,是不可逆的。hash算法加密后位数固定。因加密后的字符串是不变的。所以一般用于密码、信息等完整性校验。
缺点:可能存在hash碰撞(不同的明文可能会有相同的hash密文),但概率极低。
代表:SHA、md5

混合加密

由于对称加密的密钥容易泄漏,非对称加密的加解密速度较慢,而hash算法不可逆,各自有各自的优缺点。所以一般情况下,我们会把几种算法结合使用。如:

1.将明文进行用hash算法加密形成摘要,然后用“非对称加密算法私钥”加密形成签名。然后将签名和明文一起发送给接收方。
2.接收方接到之后用本地的“非对称加密算法公钥”解密签名获取摘要
3.把接收到的明文用同样的hash算法进行加密与第二步获得的摘要进行对比。

但是问题来了:数字签名的公钥容易被篡改,无法保证是合法的。所以我们引入了证书颁发机构颁发数字证书。

1.向第三方CA机构提交公钥、组织信息、域名等信息申请证书
2.CA机构验证提交信息的真实性后,用hash算法把申请者信息进行加密生成摘要,然后用CA私钥把摘要进行加密形成签名,此签名和服务器公钥、申请者信息、签发机构信息、有效时间等一同保存在证书中,并签发给申请方。
3.客户端向服务器请求,服务器返回证书。客户端验证证书相关域名、有效时间等信息是否与本地证书信息对应。(客户端一般会内置被信任的证书信息,包含证书公钥)
4.客户端读取证书中的明文信息,并用相同的hash算法加密得到摘要。
5.客户端从本地取出证书的公钥对签名解密,并与上一步得到的摘要对比,如果一致,则可以确认证书的合法性。那么对应的服务器公钥也是值得信赖的

关注公众号【一个老码农】,更多优质技术文章等你来

https是身披SSL/TLS外壳的http。https是一种通过计算机网络进行安全通信的传输协议,经由http进行通信,利用建立全信道,加密数据包。
而SSL/TLS正是混合了对称、非对称、hash三种算法所形成的。其包含了上面所说的“数字证书验证流程”和”AES+RSA混合加密”。
所以也可以说:https是由对称加密、非对称加密、hash算法三种算法共同实现的。

https的大致工作流程如下:

1.客户端发起https请求。
2.服务端把申请好的公钥证书返回给客户端。
3.客户端通过上面的“数字证书验证流程”验证证书的合法性,如果通过则继续第4步,不通过则显示警告信息。
4.客户端生成一个“对称加密”所使用的密钥,然后用证书中的服务器公钥加密这个密钥,发送给服务端
5.服务端用自己的私钥解密,得到“对称加密”密钥。
6.服务端用得到的“对称加密”密钥加密一段明文,发送给客户端。客户端使用对称密钥解密得到的明文
7.客户端发起请求,使用对称密钥加密一段明文,服务端收到后用对称密钥进行解密,得到明文。

最后附一张https流程图:

本文首发于公众号【一个老码农】

上一篇下一篇

猜你喜欢

热点阅读