DES算法简介
DES:Data Encryption Standard,即数据加密标准。美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准。DES是IBM公司研制的一种对称密码算法。
DES算法的地位:DES是过去主流的分组密码,但因密钥空间太小,已逐渐被AES所取代。
DES算法特点:
- 是一种对称分组加密算法。
- 分组比较短,最大64位。
- 密钥太短。DES密钥长度是56bit,从规格上来说,DES的密钥长度是64bit,但由于每隔7bit会设置一个错误检查的bit,因此实质上其密钥长度是56bit。
- 密码生命周期短。
- 运算速度较慢。
- 常见的对称加密: AES, DES, 3DES。
DES加密算法原理:
DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。
3DES:
DES 的常见变体是三重 DES(3DES),使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个 56 位的子元素都相同,则3DES 向后兼容 DES。
利用python进行DES加密和解密
需要安装必要的库:
pip install pycrypto
python代码:
from Crypto.Cipher import DES
#加密
def des_cbc_encode(key,iv,data):