DES加密算法
一、实验目的
1、理解对称加密算法的原理和特点
2、理解DES算法的加密原理
二、实验步骤
第一阶段:64位明文进行初始置换IP(initial permutation)
第二阶段:在密钥控制下16轮迭代
第三阶段:交换左右32比特
IP
第四阶段:初识逆置换1
三、实验原理
对称密钥机制即对称密钥体系,也称为单钥密码体系和传统密码体系。
对称密码体系通常分为两大类,一类是分组密码(如DES、AES算法),另一类是序列密码(如RC4算法)。
对称密码体系加密和解密时所用的密钥是相同的或者是类似的,即由加密密钥可以很容易地推导出解密密钥,反之亦然。
同时在一个密码系统中,我们不能假定加密算法和解密算法是保密的,因此密钥必须保密。
发送信息的通道往往是不可靠的或者不安全的,所以在对称密码系统中,必须用不同于发送信息的另外一个安全信道来发送密钥。
四、实验内容
第一阶段:置换规则如下矩阵,即将输入的第58位换到第一位,第50位换到第2位,...,依此类推,最后一位是原来的第7位。
L0、R0则是换位输出后的两部分,L0是
输出的左32位,R0 是右32位,例:设置换前的输入值為D1D2D3 (64)
则经过初始置换后的结果為:L0=D550...D8;R0=D57D49 (7)
第二阶段:
1、变换密钥
取得64位的密钥,每个第8位作为奇偶校验位,舍弃64位密钥中的奇偶校验位,根据下表PC-1进行密钥变换得到56位的密钥。
将变换后的密钥分为两个部分,开始的28位称为C0,最后的28位成为D0。
然后同时将C0、D0循环左移1位形成C1、D1。
C1D1经过PC-2从56位中选出48位输出,即为K1。
循环左移LSi(i=1,2,……,16)分别是: 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1C1、D1分别循环左移LS2位,再合并,经过PC-2,生成子密钥K2。
依次类推直至K16形成。
2、加密数据
将32位的RI-1按下表(E)扩展为48位的EI-1:
异或Ei-1和Ki,即E[i-1] XOR K[i],将异或后的结果分为8个6位长的部分,第1
位到
第6位称为B1,第7位到第12位称为B2,依此类推,第43位到第48位称为B8。
接着按Sj表对应变换所有的Bj(j=1,2,……,8),将Bj的第1位和第6位组合为一个2位长度的变量m作为在Sj中的行号、将Bj的第2位到第5位组合,作为一个4位长度的变量n作为在S[J]中的列号。
用Sjmn来取代Bj。
对每个盒,6比特输入中的第1和第6比特组成的二进制数确定行,中间4位二进制数用来确定列。
其中相应行、列位置的十进制数的4位二进制数表示作为输出。
例如的输入为101001,则行数和列数的二进制表示分别是11和0100,即第3行和第4列,其中的第3行和第4列的十进制数为3,用4位二进制数表示为0011,所以的输出为0011。
将S算法运算后的B1~B8组合为新的32位通过P变换得到P,经过P变换后输出的比特串才是32比特的f (Ri-1,Ki):
第三阶段:异或P和Li-1结果放在Ri,即Ri=P XOR Li-1,Li=Ri-1。
第四阶段:组合变换后的R16L16。
五、实验总结
在开始学习DES的加密算法就体会到了算法的繁冗,第一次运算时便知道了DES需要多大的恒心。
虽然之前都没有接触这方面,但通过上网查找资料还是了解了DES算法的基本原理与一些简单的运算方法。
不管怎样,通过这次对DES加密算法的了解让我明白了,不仅要学理论还要实践一下。