首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

解惑数据加解密

身份认证可以让接收方确认收到的数据来自正确的发送方,但数据在经过中间节点的时候(或者在无线信道下并不需要经过中间节点,只要能够收到信号)可能会被偷听者收到,由于数据包在网线或无线信道上传输,任何人都有可能通过信号接收设备获取传输的模拟信号,从而进一步解析得到以太网帧(或其他链路层协议帧)、IP报文、UDP/TCP报文、应用层数据。因此我们需要让偷听者即使获取了传输的数据,也无法知道传的到底是什么,即对数据进行加密。

数据加解密

数据加解密算法分为两类:对称性加解密和非对称性加解密,前者如AES、DES,后者如RSA。

1、对称性加解密

对称性加解密的加密和解密使用相同密钥,且能通过加密算法推导出解密算法,或者通过解密算法推导出加密算法。这种做法加解密速度快,适合于对大量数据进行加解密,但密钥管理困难(防止偷听者获取密钥和加解密算法)。

比如一个简单的对称性加解密可以为:加密时将数据每个字节都加3,解密时将每个字节都减3。3就可以视为一个密钥,加减操作视为加解密算法。

对称性加解密不安全,原因在于A和B之间要通过对称性加解密算法来进行加解密,他们就必须使用相同的算法以及密钥,而算法和密钥的协商也是需要传输数据包进行协商,协商的数据包被偷听者获取之后,偷听者就获取了加解密算法和密钥,从而在收到A或者B的数据之后可以对数据进行解密,当然也可以用加密算法加密自己的数据传给A或者B。

2、非对称性加解密

非对称性加解密需要两个密钥,公钥和私钥,使用公钥加密的数据只能用私钥解密,使用私钥加密的数据只能用公钥解密。

A若想和B通信,A可以先生成一个公钥和私钥,然后将公钥发送给B,B通过公钥加密数据,然后发送给A,A通过私钥解密获得数据;而如果中间有C偷窥了B发送的数据,但是C没有A的私钥无法解密。同样,B生成一对公钥和私钥,公钥发送给A,A用公钥加密数据发送给B,B收到数据后用私钥解密,中间数据被C窃取,C也无法解密。

非对称性加解密相比于对称性加解密安全,因为密钥非对称,公钥随便公开,只要私钥不在网络上传输,别人即使获得公钥,窃取了加密后的数据,也无法解密。但是,非对称加解密的算法复杂度较高,对于实时性的数据加密压力较大。所以一般使用的数据加解密方法是,使用非对称性加解密方法传输对称性加解密算法的密钥,传输数据时,用对称性加解密方法加解密。

常见的非对称性加密算法如RSA算法,RSA是三个人共同提出的,所以以三个人的姓氏首字母命名。它是基于大数的因式分解的数学难题而提出的,对一个大数进行因式分解,其复杂度相当高。

3、SSH加密原理

SSH安全协议是一种非对称加密和对称加密算法的结合。

首先服务端会通过非对称加密,产生一个公钥和一个私钥;

在客户端发起请求时,服务端将公钥暴露给客户端,这个公钥可以被任意暴露;

客户端在获取公钥之后,会先产生一个由256位随机数字组成的会话密钥,称为口令;

客户端通过公钥将这个口令加密,发送给服务器端;

服务器端通过私钥进行解密,获取到通讯口令;

之后客户端和服务端的信息传递,都使用这个口令进行对称的加密。

密钥交换算法

如果要进行对称性加解密,通信双方需要使用相同的加解密算法和密钥,那么双方如何协商他们使用的密钥呢?一种方式是双方使用RSA等非对称性加密算法进行密钥的交换,还有一些其他的密钥交换算法,比如DH密钥交换算法。

来源:中国软件评测中心 李广天

专业就是实力!中国软件评测中心感谢您的关注,我们在这里与您共同分享基于第三方服务的科技资讯与趣闻,欢迎加入我们。转载请注明出处。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180102A0JIP400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券