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

发布时间:2019/10/23 14:32:48 打印 字号:

对称加密就是通讯双方持有相同的密钥(和加密方式),然A方通过密钥将明文进行加密得到密文,B端使用相同的密钥将密文进行解密,得到明文。

优点:对称加密的优点是加密速度非常快;

缺点:由于通讯双方需要使用相同的密钥进行通讯,那么在通讯之前通讯双方需要约定密钥,在互联网中,双方是不认识的,如何安全的约定密钥是一个很难解决的问题。并且在约定密钥的过程中密钥一旦被泄露,那么之后通讯中的信息就可能会被别人获取。

所以说,如何安全的约定密钥是对称加密的一个关键点。

非对称加密是需要生成一对密钥,分别叫做公钥和私钥。顾名思义,私钥自己拥有,而公钥是公开的。

特点:使用公钥加密的密文只有对应的私钥才能解密(就连公钥子集也无法解密自己加密的信息);相反的,使用私钥加密的信息,也只有对应的公钥才能解密(同样的,私钥也不能解密自己加密的信息)。

这两者都要把密码给别人,但是区别就是,如果使用非对称加密时,我完全不担心在给别人公钥时被暴露公钥,因为即使有其他人获取到了我的公钥,也没什么用。但是如果是对称加密的密钥就不行了,完全不能暴露。

这就说明了一个问题:使用公钥加密的的信息只有私钥能够解密,而私钥只有密钥对的拥有者才拥有,也就意味着只有密钥对的拥有者才能解密使用公钥加密的信息。

试想一下,如果我用私钥加密,然后别人拿着我的公钥进行解密,哎哟,竟然解开了,那说明什么?你想啊,既然能够用我的公钥解密,那是不是意味着这个信息是我的私钥进行加密的?那谁拥有我的私钥呢?当然是我本人了。那是不是就说明了,这个信息是来自于我?因为别人没有我的私钥,所以别人无法伪造。

这又说明了一个问题:如果使用公钥能够解密私钥加密后信息(这里公钥私钥是配对的),那就意味着这个信息确实是密钥对拥有者发送的信息。

作用:1.使用公钥加密只有私钥才能解密,可以用来信息加密安全传输。2.使用私钥加密只有公钥才能解密,可以用来身份认证。只要你能确定这个公钥是我的公钥,那么不管这个信息来自于哪里,只要能解密,就意味着是我发出的。

使用密文进行传输

HTTP协议是明文传输,容易被偷看和篡改,而HTTPS使用加密传输,所以更加安全。HTTPS是HTTP协议再加上一层 SSL/TSL 安全协议来保证安全的,除了安全,HTTPS 协议的网站也能够提升在搜索引擎中的排名(SEO),简单来说就是更容易在搜索引擎搜到你的网站的内容。

使用HTTP协议进行通讯是用的明文,容易被偷看和篡改,所以不安全,那么不使用明文不就解决问题了吗?

根据前面提到的对称加密,我们可以使用对称加密对通讯内容进行加密,然后服务端用相同的密钥进行解密。这个方案的痛点就在于,在互联网中,通讯双方如何安全的传递公钥呢?

可以先使用非对称加密对公钥进行传递,然后后续双方使用公钥进行通讯。这个思路很不错,而且非常安全。我们模拟一下现在的通讯流程:

用户A请求服务B,服务端B发送自己的公钥pub_key给 A,A生成密钥key并使用pub_key进行加密然后发送给服务端B,服务端使用private_key进行解密拿到密钥key,然后后续使用该密钥进行通讯。

这个流程也是有问题的,问题就在于,在服务端发送自己公钥给A的时候,如果此时C进行了拦截,并且将自己的公钥给到了A,而A以为这个就是B的公钥,那么后续通讯过程实际上就是A与C进行通讯,A的隐私信息全部都暴露给了C。

看一下上面被拦截的流程,关键点在于,A收到C的公钥之后误以为是B的,才会发生后面泄露隐私的问题。所以,如果能够让A识别服务端的公钥,那么这个问题就可以被解决。那么接下来,认证中心就登场了。

CA机构认证中心

在现实生活中,你去火车站买票,或者去银行办理一些业务,经常遇到一件事,那就是请出示身份证。诶,为什么非要身份证呢?因为身份证能证明你的身份。诶,既然身份证就能证明我的身份,那我自己写一张假的身份证,那我不就换身份了么?那肯定不行,因为身份证是具有公信力权威机构(比如说公安局)颁发的,是无法伪造(理想状态下,即使伪造也会被识别,所以不要杠这个问题)的。

那么以上关键点,具有公信力的权威机构,无法伪造。那么相同的道理,如果找个权威的机构,然后为这个公钥颁发一个其他人无法伪造证书,上面就标明了,这个公钥确实隶属于 xxx服务端,那么当客户端拿到这个公钥和证书的时候,不就可以确定这个公钥确实属于我要访问的服务器了么,那么后续就可以安全又愉快的通讯了。

CA是Certificate Authority,即证书颁发机构,也称为电子商务认证中心、电子商务认证授权机构,是负责发放和管理数组证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

认证中心比较好解决,具有公信力的权威机构都可以,但是如何做到无法伪造呢?如果能够轻易伪造,那么上诉仍然不成立。

那么到这里,整个流程就都是安全的了。接下来,我们看一看如何为自己的网站申请SSL证书