之前的文章中,我们简答聊了AES和RSA加密算法,今天我们来聊聊应用最为广泛的对称加密——DES加密算法。

DES全称为Data Encryption Standard,又被称为美国数据加密标准,它可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,像自动取款机,POS机,磁卡及智能卡(IC卡)通常都会使用到DES算法。

DES加密算法
图片来源于网络

DES是一种典型的分组密码,一种将固定长度的明文通过一系列复杂的操作变成同样长度的密文的算法。对DES而言,块长度为64位。同时,DES使用密钥来自定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。密钥表面上是64位的,然而只有其中的56位被实际用于算法,其余8位可以被用于奇偶校验,并在算法中被丢弃。因此,DES的有效密钥长度仅为56位。

基本组成

DES算法的入口参数有三个:Key、Data、Mode。

Key为8个字节共64位,是DES算法的工作密钥;

Data也为8个字节64位,是要被加密或被解密的数据;

Mode为DES的工作方式,有两种:加密或解密。

当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密。当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。

DES
图片来源于网络

加密原理

DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64 位的分组大小。这是一个迭代的分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。

使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环,使用异或,置换,代换,移位操作四种基本运算。

DES
图片来源于网络

DES的特点

DES算法具有极高安全性,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒钟检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间。然而随着科技的发展,破解DES的可能性也也越来越大,使用特殊的硬件并行处理几个小时即可。所以为了克服这些问题,人们又提出了三重DES(3DES)的变形方式(我们改天聊)。

DES
图片来源于网络

由于DES 加密过程的算法是公开的,所以密钥K的保密就显得尤为重要,只有发送方与接收方采用相同的密钥进行加密解密才能获取明文数据。

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