一,对称加密
对称加密是指服务器和客户端都使用相同的秘钥加密和解密数据,当用户和服务器建立加密连接时,用户会得到服务器唯一的数据加密的秘钥,所有的用户,包括服务器,都是使用这个唯一的秘钥加密自己的信息的。如:客户A在使用秘钥K加密传输,被加密的密文被发送到服务器上后,服务器使用相同的秘钥K便可以解密A发送的密文。
此时用户B也和服务器建立加密连接,这里用户B使用的秘钥也是K,也就是说用B的秘钥是可以解密A的加密信息的。这就体现出了对称加密的一个巨大的漏洞:秘钥的唯一性
在对称加密算法中,所有的加密报文都可以被同一个开放的秘钥K加解密。
那么,当用户B在与服务器请求到秘钥K后,在通过对A的抓包后,便可使用秘钥K解密A的所有加密报文,从而获取A的隐私信息。
图解如下:
所以,对称加密由于秘钥K的唯一性,几乎等于明文传输,所以不可用。
二,非对称加密
公钥:一般对接与客户端是公共得也可以说每个客户端都知道或者一样或者不同,面向公开化得钥匙,他是可以被其他人知道。
私钥:一般存放在服务端,主要用于解密公钥加密得资源(包含加密的密钥或者加密得数据)
因对称加密的不安全性不可用,所以有出现的新的加密方式:非对称加密。
首先,对称加密的两大缺点是,秘钥的唯一性和秘钥的公开性。但是在非对称加密中,这两个缺点都得到了较好的解决。
非对称加密,顾名思义,客户与服务器双方使用的加密的秘钥是不同的。在非对称加密中,原来唯一的秘钥K,被拆分为了两个不同的秘钥。分别为服务器的私钥SK,和客户机的公钥PK。
其中,公钥PK是公开给用户获取的,而私钥SK是一直保存在服务器端的,不向外开放的。
非对称的加密解密流程为:被私钥SK加密的报文只能被公钥PK解密,反之,被公钥PK加密的报文只能被私钥SK解密。
#私钥:SK
#公钥:PK
#客户机数据:A Data
#服务器数据:S Data
#客户加密报文:Y
#服务器加密报文:Y`
(A Data+PK)=Y
(Y+SK)=A Data
(S Data+SK)=Y`
(Y`+PK)=S Data
非对称加密流程图解:
以上,就是非对称加密的基本原理。
如此一来,每一个客户都只有公钥,黑客便无法获得用户发送的隐私信息了。但是黑客仍然有公钥,所以他仍然能够解密服务器发送的信息。所以非对称加密仍然是不太安全的。
三,对称+非对称加密(公钥加密的不再是数据而是密钥,之后衍生新的数据传输密钥)
因为非对称机密仍然是不安全的,所以,人们结合了对称与非对称加密各自的优点,并由此创建了对称+非对称加密。
首先,我们来总结一下之前两种加密方式各自的优缺点:
对称加密:
客户与服务器双方使用相同的秘钥加密。
只要秘钥不被泄露,那么黑客就不能知道双方任何一方的信息。
非对称加密:
客户和服务器使用不同的秘钥进行加密。
黑客只能得知服务器发送的信息。
既然对称加密的秘钥不泄露,黑客就不能获取隐私信息。
非对称加密中,黑客又不能获取客户发送的信息。
那么如果我使用非对称加密来加密对称加密的秘钥,再使用对称加密,这样其他用户便不能得知我使用的秘钥了。
这便是对称+非对称加密的创立思想。接下来我们详细介绍其原理。
客户端向服务器请求公钥,服务器下发,
客户端使用公钥加密自己对称加密的秘钥,发送给服务器,
服务器解析后,使用对称加密与客户机进行通讯。
如此一来,黑客便不能得知客户机向服务器发送的秘钥,从而客户端和服务器端任何一方的信息黑都不能得知了。
#私钥:SK
#公钥:PK
#秘钥:K
#客户机数据:A Data
#服务器数据:S Data
#X:非对称加密后的K
#客户加密报文:Y
#服务器加密报文:Y`
(PK+K)=X
(SK+X)=K
(K+S Data)=Y`
(K+A Data)=Y
图解:
如上图,
服务器先下发公钥给客户端(黑客可以得知)
客户端指定秘钥K,并用公钥PK加密后发送给服务器(黑客不能解密)
服务器收到密文用私钥SK解密,使用K加密信息发送给客户端(黑客没有K所以不能得知)。
客户端继续用K加密信息进行通信。(黑客不可得知)
如此一来,对称+非对称加密的加密方式已经可以保证用户的信息不会被其他用户解密了,无论是服务器的信息还是客户端的信息。
标签:公钥,加密,秘钥,服务器,对称,非对称 来源: https://www.cnblogs.com/vthink/p/15180526.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。