1、本文主要介绍了DES的概况,并对它的算法进行描述,找出它的设计思想和特点,分析它的安全性。在此基础上,进一步介绍了DES的工作模式。关键词:信息安全 DES 加密 解密 明文 密文1 概况1.1 DES简介 随着计算机和通信网络的广泛应用,信息的安全性已经受到人们的普遍重视。信息安全已不仅仅局限于政治,军事以及外交领域,而且现在也与人们的日常生活息息相关。现在,密码学理论和技术已得到了迅速的发展,它是信息科学和技术中的一个重要研究领域。DES算法是由IBM公司在20世纪70年代发展起来的,于1976年11月被美国政府采用,随后被美国国家标准局和美国国家标准协会承认,同时也成为全球范围内事实上的
2、工业标准。DES算法作为分组密码的代表,已成为金融界及其他各种行业广泛应用的对称密钥密码系统。它以feistel网络结构理论为基础,采用迭代分组形式,在提高算法的运行速度,改善了密码的实用性的同时,也大大的提高了密码的安全性,对于我们研究密码学以及展望密码学的发展方向有重要意义。1.2算法描述 DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。在每轮编码中,一个48位的密钥值由56位的“种子”密钥得出来。 DES算法把64位的明文输入快变成64位的密文输出块,整个算法的变换过程如图1.1所示。图1.1 DES算法框图 图中描述的是DES的加密过程。而解密和加密过程
3、大致相同,不同之处仅在于右边的16个子密钥的使用顺序不同,加密的子密钥的顺序为K1,K2,K16,而解密的子密钥的使用顺序则为K16,K15,K1。 IP即初始换位的功能是把输入的64位明文数据块按位重新组合,并把输出分为L0,R0两部分,每部分各长32位。其置换规则如表1.1所示。表1.1 DES算法初始换位规则表585242342618102604436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157 即将输入的64位数据的第58位换到第1位,第5
4、0位换到第2位依此类推。设置换前的输入值为D1D2D64,则经过初始换位后的结果为:L0=D58D50D8,R0=D57D49D7。 经过初始换位后,将R0与密钥发生器产生的密钥K1进行计算,其结果记为f(R0,K1)再与L0进行异或运算得到L0f(R0,K1),把R0记为L1放在左边,把L0f(R0,K1)记为R1放在右边,从而完成了第一次迭代运算。连续迭代16次,第16次迭代结果左右不交换,即L15f(R15,K16)记为R16放在左边,R15记为L16放在右边。 16次迭代后,得到L16,R16。将此作为输入进行逆初始换位IP-1,就可以得到密文输出。逆初始换位正好是初始换位的逆运算。其
5、置换规则如表1.2所示。表1.2 DES算法逆初始换位规则表50 其置换规则和表1.1所述相似。 DES算法的16次迭代具有相同的结构,每一次迭代的运算过程如图1.2所示。 密钥 Ri Li图1.2 DES算法的一次迭代过程图 在每一次迭代过程中,其核心部分是f函数,即图1.2中的扩展置换、异或运算、S-盒替换和P-盒置换。 扩展置换是将32位数据扩展为48位,使其长度与密钥一样。其置换规则如表1.3所示。表1.3 扩展置换规则表 P-盒置换规则如表1.4所示。表1.4 P-盒置换规则表 S-盒是DES算法的核心,它的功能是将6位数据变为4位数据,它是一个选择函数,共有8个S函数,其功能表如表
6、1.5所示。表1.5 S-盒查询功能表S1S2S3S4S5S6S7S8 以S1为例,设S1盒6位输入为D=D1D2D3D4D5D6,将D1D6组成的一个2位二进制数转化为十进制数,对应表中行号,将D2D3D4D5组成的一个4位二进制数也转化为十进制数,对应列号,然后在S1表中差得行和列交叉点处的对应的数,以4位二进制表示,即为S1的输出。 图1.3给出了子密钥Ki(48位)的生成算法。图1.3 子密钥产生过程图 初始密钥值位64位,但去掉8,16,64位的奇偶校验位,实际可用位数只有56位。经过置换选择1(如表1.6所示)后,密钥的位数由64位变成56位,分为C0,D0两部分,然后进行第一次循环左移(图中LS),得到C1,D1,合并得到56位,再经置换选择2(如表1.7所示),得到密钥K1。依此类推,可得到K2,K3,K16. 每次循环左移的的位数分别是:1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1表1.6 置换选择1C0D0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1