在很多加密算法中,都会有“密钥”这一说法,那么今天我们来了解一个使用口令替代了密钥的加密算法——PBE加密算法。

PBE加密算法

PBE加密算法全称为Password Based Encryption,是一种基于口令的加密算法,其特点在于口令是由用户自己掌握的,采用随机数杂凑多重加密等方法保证数据的安全性。

PBE加密算法的加密过程

PBE算法在加密过程中并不是直接使用口令来加密,而是加密的密钥由口令生成,这个功能由PBE算法中的KDF函数完成。

KDF函数的实现过程为:将用户输入的口令首先通过“盐”(salt)的扰乱产生准密钥,再将准密钥经过散列函数多次迭代后生成最终加密密钥,密钥生成后,PBE算法再选用对称加密算法对数据进行加密,可以选择DES、3DES、RC5等对称加密算法。

PBE加密算法

口令和密钥的区别

口令:一般与用户名对应,是某个用户自己编织的便于 记忆的一串单词、数字、汉字字符,口令的特点容易被记忆, 也容易泄露和被盗取,容易被社会工程学、暴力破解、撞库等方式获取。

密钥:是经过加密算法计算出来的,密钥一般不容易记忆,不容易被破解,而且很多时候密钥是作为算法的参数出现的,算法对于密钥长度也是有要求的,因为加密算法的作用就是利用密钥来扰乱明文顺序。

PBE加密算法

注意:口令不能代替密钥,但是可以用信息摘要算法将口令转换为密钥。

PBE加密算法消息传递过程

  1. 由消息传递双方约定口令,这里由甲方构建口令。
  2. 由口令构建者发布口令,即本系统的服务器将口令发送给系统的客户端使用者。
  3. 由口令构建者构建本次消息传递使用的盐,这里由甲方构建盐。
  4. 由消息发送方使用口令、盐对数据加密,这里由甲方对数据加密。
  5. 由消息发送者将盐、加密数据放松给消息接收者,这里由甲方将盐、加密数据发送给乙方。
  6. 由消息接收方使用盐、口令对加密数据解密,这里由乙方完成数据解密。

PBE加密算法

PBE加密算法的特点

PBE算法没有密钥的概念,而是使用口令替代了密钥。

在传统密钥算法中,密钥的长短直接影响了算法的安全性,但过长的密钥并不方便记忆。但是口令则不然,非常便于人们记忆。

但是单纯的口令很容易通过穷举攻击方式破译,于是就引入了“盐”。盐能阻止字典攻击或预先计算的攻击,它本身是一个随机信息,相同的随机信息极不可能使用两次。

将盐附加在口令上,通过消息摘要算法经过迭代计算获得构建密钥/初始化向量的基本材料,使得破译的难度加大。

PBE加密算法并没有真正构建新的加密/解密算法,当使用PBE算法对数据做加密/解密操作的时候,其实是使用了DES或者是AES等其它对称加密算法做了相应的操作。

免责声明:素材源于网络,如有侵权,请联系删稿。