对称加密和非对称加密(一)初步理解

先查大范围  专业术语  再查小范围  便于理解 宏观概念

然后针对小范围的点,去精准查询  理解细节

 

一、面临的问题: 密钥分发

在加密算法之外,面临一个问题,那就是:秘钥的分发。就是说,解密方如何获得加密方的秘钥呢? 从而出现了:对称加密和非对称加密。

二、对称加密和非对称加密

1. 对称加密

对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。

常见的对称加密算法:DES,AES,3DES等等。

 

2. 非对称加密

非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。

常见的非对称加密算法:RSA,ECC

 

3. 区别

对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。所以在实际的网络环境中,会将两者混合使用.

 

例如针对C/S模型,

1. 服务端计算出一对秘钥pub/pri。将私钥保密,将公钥公开。

2. 客户端请求服务端时,拿到服务端的公钥pub。

3. 客户端通过AES计算出一个对称加密的秘钥X。 然后使用pub将X进行加密。

4. 客户端将加密后的密文发送给服务端。服务端通过pri解密获得X。

5. 然后两边的通讯内容就通过对称密钥X以对称加密算法来加解密。

对称加密和非对称加密的区别

1对称加密:加密解密用同一个密钥,被黑客拦截不安全

 

2非对称加密:公钥加密,私钥解密;公钥可以公开给别人进行加密,私钥永远在自己手里,非常安全,黑客拦截也没用,因为私钥未公开。著名的RSA加密算法用的就是非对称加密。

 

 

 

第一步:ipB先给A发送B公钥,ipA用B公钥加密A公钥发送给ipB,ipB拿到后,用B私钥去取里面内容,ipB拿到A公钥。

第二步:双方通信用对方公钥直接加密后发送。接收方用自己的私钥去解密。

 

 

 

举例子理解:

最简单易懂的非对称加密

北京的张三发了一个快递到广州的李四,途中经过了上海,上海快递中心出现了一个黑客老王,他偷偷打开了张三给李四的快递,然后偷偷把里边的衣服剪烂,再按照原样包装好发往广州,可以看到对于这样简单包装的传输在中途是可以偷偷修改里边的东西。

        HTTP的数据包是明文传输,也即是如果中途某个黑客嗅探到这个HTTP包,他可以偷偷修改里边包的内容,至于张三跟李四是互相不知道这个动作的,因此我们必须要有一个方案来防止这种不安全的篡改行为,有个方法就是加密!

非对称加密

 

        张三将衣服放到一个保险箱里边锁起来,他打了个电话告诉李四保险箱开柜密码是1234,而黑客老王不知道密码,所以他看不到保险箱里边的东西,李四收到快递后用预先沟通好的密码就可以打开保险箱了。

        这里保护的手段就是张三对物品进行加密,同时给了告诉李四解密的方法!

        那如果现在要求张三的密码只能通过快递传给李四呢?如果张三直接传密码给李四,老王如果嗅探到这个快递,那老王也知道密码了,这就无法保护快递的安全性了。因此还需要有个方案,让张三能够告诉李四密码的同时,老王又无法查看到张三跟李四通信的数据。

 

非对称加密在这个时候就发挥作用了,来看看怎么回事:

张三拥有两把钥匙,一把叫做公钥,一把叫做私钥。公钥是公开让全社会都知道,没关系,张三告诉所有人,你们要传递数据给我的时候请先用这个密钥(公钥)去加密一下你们的数据,加密后的数据只能通过张三私自藏着的私钥才能解密。

 

回到刚刚例子,

张三先发给保险柜(张三公钥)给李四,

接着李四把自己的保险柜(李四公钥)放到张三的保险柜(即使用张三的公钥加密李四的公钥)里边发还给张三,

接着张三拿到李四的数据包后,用自己的私钥解开了外层保险柜(张三的公钥),拿到了里边李四保险柜(李四的公钥)。

此时李四跟张三都有了各自的公钥(并且都有他们自己的私钥),接着只要保证每次互相传递数据的时候,把数据放在对方的保险柜里边即可(即每次都用对方的公钥加密数据),这样无论如何,老王都无法解开保险柜(因为只有各自的私钥才能解开各自的保险柜)。

 

 

 

猜你喜欢

转载自blog.csdn.net/zam183/article/details/85270472