欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Https与对称加密和非对称加密的关系

程序员文章站 2022-05-15 16:59:37
...

疫情期间在家休息几天后,在头条偶读一片关于https中使用的什么加密方式的文章,由于知识模糊不清,特用这篇文章整理一下

1.首先

什么是对称加密和非对称加密

对称加密:

加密过程:
   f1(k,data) = x   得到密文
   f2(k,x) = data   得到明文
其中f1和f2是两个加密函数(常见的“对称**”加密算法主要有DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfish等,具体每个算法的实现我就不再这里说了,感兴趣的自己取查找)
缺点:黑客得到秘钥k之后,就能得到明文,假若服务器为每一位用户存储一个k,显然不太现实,所以此加密方式不适用于https

非对称加密:

加密过程:
 过程1:客户端 到 服务端
  f(pk,data) = Y
  f(sk,Y) = data
 过程2: 服务端 到 客户端
  f(sk,data) = Y1
  f(pk,Y1) = data
pk是公钥,所有人都可以获取
sk是私钥,只有服务器有
f是非对称加密算法,非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等
缺点:客户端向服务端发送数据的时候,利用公钥加密,服务端用私钥解密,这个过程是安全的
     但服务端向客户端发送数据的时候,试想一下,使用过程2中服务端使用私钥加密得到密文Y1,客户端用pk解密得到data,但pk是大家都能获取到的,所以黑客是可以根据pk获取到明文的,所以也不适用于https

结合两种加密算法的有点,https采用 对称+非对称加密来保证安全,大致的过程如下图,具体的细节还需要深入

Https与对称加密和非对称加密的关系

大概的过程就是这样,附加一个视频连接,可以去看看:https://www.bilibili.com/video/av66187268?from=search&seid=200498362715329720