对称加密,非对称加密详解

在使用一些软件或者是系统的时候,我们常常听到或者看到“公钥”,“私钥”这两个词,比如,我们在使用git的时候,常常要去先使用git生成自己的公钥和私钥,然后将公钥提交到搭建了git的云代码管理网站上去进行协作开发,那么这个公钥私钥究竟是个什么鬼?

一、对称加密解密方式

我们的数据传输对称加密是如下这个样子的:

例如,现在A方要将一段数据发送给B方:
在这里插入图片描述
如果不加密的话,直接用明文传输,很可能在传输的过程中被恶意的第三方拦截到,轻则是B方接收不到数据,重则恶意的第三方篡改数据,让B方接收到错误的数据,使得A、B双方蒙受损失:
在这里插入图片描述

于是我们要在A方进行数据加密,并且要在B方进行解密操作让B方得到数据,那么就需要加密解密的规则,这个规则被我们称为“钥匙”,如图:
在这里插入图片描述
但是这种加密方式会出现一个问题,就是在发送的途中,钥匙和数据一起被坏人窃取了,坏人可能破坏数据和钥匙让B方接收不到,也可能使用钥匙解密了数据,然后篡改了数据,再把钥匙原路发给B方,让B方在察觉不到的情况下接收了错误的数据。

为了解决这个问题,权宜之计是对钥匙加密,也就是用一把钥匙去解密另一把钥匙,然后再用解密出来的钥匙解密获取数据。可是坏人要是想解密依然是可以的,只不过麻烦一点,要一层一层地用钥匙解密,不过破解的难度还是不高的。针对这种问题,美国密码学家惠特菲尔德·迪菲和马丁·赫尔曼合作发明了“迪菲-赫尔曼”加密算法,此算法针对性地解决了对称加密中钥匙的安全性问题。

二、非对称加密

针对传统加密方式的弊端,我们想出了新的对策,就是非对称加密,非对称加密是一种使用不同钥匙加密解密的方法,原理是这样的:

  1. 接收方B方先创建一对钥匙,包括一个加密钥匙,一个解密钥匙,也就分别对应我们刚才说的公钥和私钥
  2. A方使用加密钥匙对数据进行加密
  3. A方将密文发送给B方
  4. B方使用自己的解密钥匙进行解密
    在这里插入图片描述

通过这样的方式进行加密之后,坏人即使拦截了A方发送的数据,但是因为没有解密钥匙的缘故,也无法进行解密

同时,使用非对称加密还有一个好处,就是方便进行多方的数据传输———因为B方发布的加密钥匙也就是公钥只被用来加密,因此即使被很多人掌握那么对B方来说也是安全的,那么,B方就可以把同一把加密钥匙公开给多个人,然后多个人就可以一起给B方发数据,而不用为每个人分别准备一把公钥。

但是,非对称加密存在两个问题
  1. 速度慢
    非对称加密的速度比较慢,因为它采用的算法强度比较高,因此不适合用来传输少量数据,不值得为少量数据浪费性能,完全可以采用别的加密方式,或者使用混合加密方式来加密,点此查看混合加密

  2. 非对称加密是否可靠
    从前面的讲解来看,非对称加密是一种比较安全的方式,安全的地方在于没有对应的钥匙几乎不可能破解加密后的数据,但是,非对称加密的问题往往是出现在交付钥匙的过程上,我们来看下面一种情况:
    –>B方创建公钥私钥并将公钥交给A方
    –>坏人拦截了公钥,自己创建了一对公钥私钥,这里称为“坏公钥”和“坏私钥”
    –>将公钥替换为自己创建的“坏公钥”
    –>将“坏公钥”提供给了A方
    –>A方使用了坏公钥加密数据,发送回B方
    –>在发送的途中被刚才的相同坏人拦截
    –>坏人使用自己的坏私钥解密了A方使用坏私钥加密的数据
    –>坏人偷看A方发送的数据,或者干脆篡改了A发送的数据
    –>坏人使用B方的公钥加密已经被偷看或者被篡改的数据
    –>将数据发回给B方
    –>B方发现自己依然可以用自己的私钥解密,因此会认为自己的数据还是安全的,根本不知道数据已经被人窃取或篡改了
    图示如下:
    在这里插入图片描述

这种方式称为“中间人攻击”,我们发现,这种攻击方式的问题根源是A方无法确定自己的公钥是否是B方发送的,因此,为了防范这种攻击,我们使用了数字证书,在另一篇博客会提到。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值