网络数据传输及加密算法浅谈

网络数据传输及加密算法浅谈_第1张图片

数据加密算法分类

网络数据传输所涉及到的几个方面都需要特定的转换算法来实现,常用的转换算法(数据加密/解密算法)大体上可以分为以下几类:

1. 对称加密

对称加密是指数据加密与解密使用相同的密钥。

主要功能:

通常用于保证数据的机密性。

常用的算法实现:

  • DES: Data Encryption Standard,秘钥长度为56位,2003年左右被破解--秘钥可以暴力破解。
  • 3DES: DES的改进版本。
  • AES: Advanced Encryption Standard,支持的秘钥长度包括 128bits,192bits,258bits,384bits,512bits。

需要说明的是,秘钥长度越长,数据加密与解密的时间就越久。

特点:

  • 加密与解密使用的密钥相同。
  • 在一定程度上实现了数据的机密性,且简单、快速。
  • 但是由于算法一般都是公开的,因此机密性几乎完全依赖于密钥。
  • 同一发送方与不同接收方进行通信时应使用不同的密钥,防止数据被窃听或拦截后被解密。

存在的问题:

  • 当通信对象很多时会面临众多秘钥的有效管理问题。
  • 对于一个新的数据通信对象,密钥怎样进行传输的问题。

2. 单向加密

单向加密是指只能对明文数据进行加密,而不能解密数据。

主要功能:

通常用于保证数据的完整性。

常用的算法实现:

  • MD5: 128bits
  • SHA: SHA1(160bits), SHA224, SHA256, SHA384

特点:

  • 不可逆:无法根据数据指纹/特征码还原原来的数据。
  • 输入相同,输出必然相同。
  • 雪崩效应:输入的微小改变,将会引起结果的巨大改变。
  • 定长输出:无论原始数据有多长,结果的长度是相同的。

存在的问题:

可能出现中间人攻击,中间人可以对原始内容进行修改之后重新生成数据指纹,数据接收方验证数据指纹时会发现数据是正常的。此时,数据发送方只能把生成的数据指纹进行加密后再发送给数据接收方,那么问题就又回到了加密密钥的传输和管理上。

3. 公钥加密(也叫非对称加密)

公钥加密,也被称作非对称加密,也就是说加密和解密所使用的密钥是不同的。

主要作用:

通常用于保证身份验证。

常用的公钥加密算法有:

  • RSA: 可以实现数字签名 和 数据加密
  • DSA: 只能实现数字签名,不能实现数据加密

特点:

  • 加密与解密使用的不同的密钥。
  • 实际上它所使用的密钥是一对儿,一个交公钥,一个叫私钥。这对密钥不是独立的,公钥是从私钥中提炼出来,因此私钥是很长的,968位、1024位、2048位、4096位的都有。
  • 通常公钥是公开的,所有人都可以得到;私钥是不能公开的,只有自己才有。
  • 用公钥机密的内容只能用与之对应的私钥才能解密,反之亦然,这个特点尤为重要。

转自:https://www.weidianyuedu.com

你可能感兴趣的:(web,HTML,网络,数据加密)