浅谈对称加密与非对称加密

Posted flappydemo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈对称加密与非对称加密相关的知识,希望对你有一定的参考价值。

1、场景

小天:准备剁手买买买的用户

网站A:卖东西的网址

黑客B:仿冒网站A的黑客网站;或者仿冒用户小天,获取A发来的数据

有一天小天到网址A上买东西,下单的时候小天需要输入银行账号密码来付款,这个时候黑客B蠢蠢欲动了...

2、没有加密

1)黑客网站B可能冒充网站A截获小天的请求消息

2)黑客B可能冒充小天接收原本A发给小天的消息数据

3、对称加密

        采用对称加密时,小天和网站A之间会约定一把密钥(注:这把密钥在小天和网站A是共享的,相同的)。小天给网站A发消息时,会先使用该密钥给消息加密,然后发给A,A收到以后使用同一把密钥解析消息。此时,黑客网站B即使截获了小天发给网站A的消息,由于没有这把密钥,所以也是无法解析这条加密消息的。反过来,当网站A给小天发送消息数据时同理,也会先使用该密钥给消息加密,然后发给小天,小天再使用密钥解析。即使黑客网站B冒充小天截获了信息,也会因为没有密钥无法解析消息。

4、对称加密的问题

        对称加密的问题主要是怎么保证小天和网站A使用的同一把密钥不被黑客B截获,比较小天和网站A约定密钥的过程是可能被黑客B截获的,这是一个死循环问题,为了解决该问题,进而引入了非对称加密。

5、非对称加密

        采用非对称加密时,有两把钥匙:一把公钥、一把私钥。公钥加密的数据只能由私钥解密,私钥加密的数据只能由公钥解密。网站A的私钥只能自己拥有,公钥可以在网络中传播。同时小天也拥有一对自己的私钥和公钥(不然,网站A用自己的私钥发给小天的消息岂不是只要有小天的公钥就都可以解密,所以要两对密钥),此外,小天还拥有网站A的公钥,网站A也有小天的公钥。

        之后,当小天给网站A发消息时,会先用网站A的公钥给消息加密,然后再发送出去。此时,就是黑客网站B截获了该条消息,由于没有网站A的私钥,因此也是解析不出这条消息的。当网站A给小天发送消息时,同理也会先用小天的公钥给消息加密然后再发送,此时,即使黑客B冒充小天截获了这条信息也没有用,因为黑客B没有小天的私钥,无法解析这条信息。

        由于非对称加密使用两把密钥,因此,如上所述,可以解决对称加密中,同一把密钥约定的问题

6、非对称加密存在的问题与解决方法

        非对称加密中,主要存在的问题是,黑客网站B冒充网站A,然后将自己的公钥发送出去,小天如果获取了B的公钥匙,然后把数据发给B,那就很危险了。因此,怎么确保小天获取到的网站的公钥是安全的,而不是黑客网站的公钥。这个时候,就需要引入第三方权威机构(CA,Certificate Authority)来做担保。CA会为网站A颁发证书,用以证明网站A就是网站A,当然,这个证书也是有有效期的。

        CA给网站A颁发证书的过程是:CA用自己的私钥给网站A的公钥签名,并生成证书;小天可以获取网站A发来的该证书以及CA的公钥,然后用CA的公钥解密该证书即可获得网站A的公钥。

        那么问题又来了,如果这个CA也是假的呢?针对该问题,解决方法就是有一个更权威的CA来给这个CA签名,生成这个CA的证书,一级一级向上确认权威机构的CA背书,一直到最上级的几个全球知名的几个大CA(root CA)。

7、HTTPS工作方式

        对称加密相对于非对称加密更高效,在HTTPS中,先是通过非对称加密来保证双方对称密钥的安全交互,之后则是通过对称加密来保证双方数据消息的传输。具体过程,先占个坑,下篇文章再描述。

先放个图,图片来源网络,侵删:


以上是关于浅谈对称加密与非对称加密的主要内容,如果未能解决你的问题,请参考以下文章

对称加密与非对称加密

对称加密与非对称加密

对称加密与非对称加密算法

对称加密与非对称加密

对称加密与非对称加密

对称加密与非对称加密各自的应用场景