(2)算法复杂性较高,也加大了破译的难度,确保了数据的安全;
(3)DES算法的安全性不依赖于算法的保密,而是由密钥来决定;
(4)DES算法实现较为经济,在不同的应用种都能适用。
DES算法的参数包括了Key、Data、Mode。Key是算法的密钥,Data是加密与解密的数据,Mode就代表了加密或者解密。
当进行加密时,Key对加密的数据进行加密,以密码的形式输出;若为解密时,则还原加密数据输出。当进行通信时,通信的双方约定相同的Key值,以Key对数据进行加密,并以密文的形式传输,数据达到接收方之后,接收方以相同的Key对密文进行解密,还原成明文。DES加密算法确保了数据的传输安全。
1.2 DES加密算法分类
DES加密算法经过了三十多年的发展,在不同的领域都有了重要的应用。虽然DES加密算法的抗破译能力较强,但是在枚举方法面前,还是存在着一定的风险。因此,为了提升DES加密算法的安全性,专家们以扩展密钥位数的基本思想,对DES加密算法进行了不断的改进,比较典型的有以下的下几种[3]:
(1)三重 DES 算法,利用了两个密钥,两个密钥长度为112比特,提升了密钥破解的难度;在加密的过程中,利用了加密-解密-加密的过程;三重 DES 算法的安全性较高,至今仍未被破解。
(2)改变S盒的设计与顺序的算法。
(3)随机化数据加密标准(RDES)算法。
(4)基于 Logistic 映射的分组密码算法和“一组一密”密码系统模型等具有独立密钥的 DES 算法。
1.3 DES加密算法应用
在DES加密算法不断发展的过程中,基于DES算法的加密系统也在不断的发展,主要是在软件加密以及硬件加密上的应用。
(1)软件加密。通过加密软件的运行实现加密,软件加密运行简单。由于密钥经常是明文的形式存储,或者是密文的形态存储但会在某些时段变为明文的形式,进而降低了加密的安全性,加大了软件性能的消耗,使得软件的运行效率降低,系统运行变得缓慢[4]。
(2)硬件加密。硬件加密是利用硬件系统进行的数据加密,对于数据的存储是在硬件中实现。其优点是在主机外部进行加密,提升了数据的安全性与稳定性。另外,数据的兼容性以及系统的运行速度都良好。自从上世纪末,开始使用硬件实现DES算法之后,硬件的加密方法就迅速发展。Wong等人设计了DES芯片;Kaps等人基于FPGA实现了DES算法;Xilinx公司也是基于FPGA实现了DES算法。使得基于硬件的DES算法实现成为了主流趋势。目前,基于硬件的DES加密算法的实现已经在卫星通信、视频传输等方面得到了应用,对社会产生了深远的影响[5]。
2.DES算法实现
2.1 DES算法过程
算法将64位的明文加密成密文,DES对明文进行分组操作。首先进行初始置换,将需要加密的数据分为了相同的两部分,各32位。然后进行16轮计算,计算的函数为f,计算结束之后经过置换,即可完成算法过程。
(1)初始置换
将64位数据按位组合,分成数量相等的32位,置换的规则如表1所示:
输出的第58位置换到第1位,第50位置换到第2位,以此类推。分为了左右各32位的两部分,置换之前的64位数据经过置换后变成了: 。