DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的,当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。[7]
虽然56位密钥的DES算法已经风光不在,而且常有用DES加密的明文被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前DES算法得到了广泛的应用,在某些场合,仍然发挥着余热。
目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。[8]
在电子商务蓬勃发展的今天,电子银行、网上交易和网上支付变得日益频繁。各种针对网络的犯罪活动成为信息时代的一个特征, 给国家和企业以及个人带来了极大的损失,如何保护这些网络的敏感信息,最大限度的减少损失成为一个关注的课题。加密作为信息安全中一个最为有力的武器, 正在发挥着重要的作用。DES 算法( 数据加密标准) 在1981 年被ANSI( 美国国家标准研究所) 正式批准为加密的标准。DES 算法是典型的对称加密算法, 也是第一个公开源代码的、非基于算法保密性的加密算法, 在成为加密标准到今天, DES 算法经历了长期的考验,实践证明DES 算法的安全性是能够满足大部分的安全要求的。尽管目前DES 算法已经出现很多变型算法, 如3DES( 三重DES 算法) , 但基础仍然是DES 算法本身。在新一代的因特网的安全标准IPSEC协议集中已经把DES-CBC( 分组的DES 算法) 作为默认的加密算法。由此可见, 对DES 算法的研究是具有很大的现实意义的。[9]
2 DES算法的原理
2.1 DES算法原理
DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64bit,是DES算法的工作密钥;Data也为8个字节64bit,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。若Mode为加密模式,则用Key 去把数据Data进行加密,生成64bit密文作为DES的输出结果。若Mode为解密模式,则用Key去把64bit密文解密作为DES的输出结果。下面介绍加密算法的原理,解密算法与加密算法几乎相同。[10]
采用DES进行分组加密的原理如图2-1所示。DES相当于一个密码本,分组加密可以看作代换加密,它将64bit的明文序列用64bit的密文代替,而所选用的运算方法使得当密钥仅改变一位时,就可以使密文中的每一位大约有50%的可能无法还原成相应的明文。因此,采用错误的密钥,则解码位平均有一半是错误的。
DES算法流程图如图2-2所示,主要步骤包括初始值换IP、16次迭代运算、逆初始置换和子密钥产生器。16次迭代运算中每次运算又包括选择扩展运算E、密钥加密运算、选择压缩运算S、置换运算P以及相应的寄存器组成。
DES算法的核心是乘积变换,它将初始变换后的明文分为两组32bit的数据,进行迭代运算,在每次迭代过程中,左右两组不断地彼此交换位置,而每次迭代仅对右边分组的32bit数据进行一系列变换。下面分别介绍流程图中各模块的运算规则。 基于VHDL语言的DES加密算法设计(3):http://www.youerw.com/zidonghua/lunwen_6115.html