DES加密与解密过程原理解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络与信息安全作业
题目:DES加密与解密过程原理解析姓名:
学号:
班级:
日期:2016年3月30日
一、DES简介:
DES(Data Encryption Standard)是对称加解密算法的一种,由IBM公司W.Tuchman和C.Meyer在上个世纪70年代开发,该算法使用64位密钥(其中包含8位奇偶校验,实际密钥长度为56位)对以64为单位的块数据加密,产生64位密文数据,然后使用相同的密钥进行解密。
密钥只有通信双方知晓,不对第三方公开。
二、DES算法过程:
1.DES的加密过程:
第一阶段:初始置换IP。
在第一轮迭代之前,需要加密的64位明文首先通过初始置换IP的作用,对输入分组实施置换。
最后,按照置换顺序,DES将64位的置换结果分为左右两部分,第1位到第32位记为L0,第33位到第64位记为R0。
表1:置换IP表
上表为置换IP表,将输入64位的第58位换到第一位,第50位换到第二位,依此类推,最后一位是原来的第7位。
L0是输出的前32位,R0是后32位。
比如:置换前的输入值为D1D2D3...D64,则经过初始置换后的结果为:L0=D58D50...D8,R0=D57D49 (7)
第二阶段:获取函数f和子密钥。
函数f有两个输入:32位的Ri-1和48位Ki,f函数的处理流程如下图所示。
E变换的算法是从Ri-1的32位中选取某些位,构成48位。
即E 将32比特扩展变换为48位,变换规则根据E位选择表,如表2所示。
表2:E位选择表
Ki是由密钥产生的48位比特串,具体的算法下面介绍。
将E的选位结果与Ki作异或操作,得到一个48位输出。
分成8组,每组6位,作为8个S盒的输入。
每个S盒输出4位,共32位(如下图)。
S盒的输出作为P变换的输入,P的功能是对输入进行置换,P换位表如表3所示。
表3:P换位表
子密钥Ki:假设密钥为K,长度为64位,但是其中第8、16、24、32、40、48、64用作奇偶校验位,实际上密钥长度为56位。
K的下标i的取值范围是1到16,用16轮来构造。
构造过程如下图所示。
首先,对于给定的密钥K,应用PC1变换进行选位,选定后的结果。
是56位,设其前28位为C0,后28位为D0。
PC1选位如表4所示。
表4:PC1选位表
第一轮:对C0作左移LS1得到C1,对D0作左移LS1得到D1,对C1D1应用PC2进行选位,得到K1。
其中LS1是左移的位数,如表5所示。
表5
表5中的第一列是LS1,第二列是LS2,以此类推。
左移的原理是所有二进位向左移动,原来最右边的位移动到最左边。
其中PC2如表6所示。
表6:PC2表
第二轮:对C1,D1作左移LS2得到C2和D2,进一步对C2D2应用PC2进行选位,得到K2。
如此继续,分别得到K3,K4 (16)
S盒的工作原理:S盒以6位作为输入,而以4位作为输出,现在以S1为例说明其过程。
假设输入为A=a1a2a3a4a5a6,则a2a3a4a5所代表的数是0到15之间的一个数,记为:k=a2a3a4a5;由a1a6所代表的数是0到3间的一个数,记为h=a1a6。
在S1的h行,k 列找到一个数B,B在0到15之间,它可以用4位二进制表示,为B=b1b2b3b4,这就是S1的输出。
表7-1:选择(替代)函数S
表7-2:选择(替代)函数S
表7-3:选择(替代)函数
S
第三阶段:16次迭代运算。
初始置换确定后,经过16次迭代运算,每一次迭代运算都以前一次迭代运算的结果和用户密钥扩展得到的子密钥Ki作为输入;每一次迭代运算只变换了一半数据,它们将输入数据的右半部分经过函数f后将其输出,与输入数据的左半部分进行异或运算,并将得到的结果作为新的右半部分,原来的右
半部分变成了新的左半部分,用下面的规则来表示这一过程(假设第i次迭代所得到的结果为LiRi):Li=Ri-1;Ri=Li-1⊕f(Ri-1,Ki);在最后一轮左与右半部分并未变换,而是直接将R16 L16并在一起作为未置换的输入。
第四阶段:逆置换。
逆置换是初始置换IP的逆运算,记为IP-1。
例如,第1位经过初始置换后,处于第40位,而通过逆置换IP-1,又将第40位换回到第1位。
其逆置换IP-1规则如表8所示。
表8:逆置换IP-1规则
在对16次迭代的结果(R16L16)再使用逆置换IP-1后,即得到密文输出。
其执行过程如下图:
2.DES解密过程:
DES的解密算法与其加密算法使用的算法过程相同。
两者的不同之处在于解密时子密钥Ki的使用顺序与加密时相反,如果子密钥为K1K2...K16,那么解密时子密钥的使用顺序为K16K15 (1)
即使用DES解密算法进行解密时,将以64位密文作为输入,第1次迭代运算使用子密钥K16,第2次迭代运算使用子密钥K15,……,第16次迭代使用子密钥K1,其它的运算与加密算法相同。
这样,最后输出的是64位明文。
三、DES学习总结:
1.DES是一种对称加密算法,1977年美国政府采用,作为对无分
类信息加密的官方标准;
2.DES只使用了标准的算术和逻辑运算,易于实现;
3.密钥可为任意的56位数,具有复杂性,破译成本高,使得安全
性得以保障;
4.密钥相对较短,加密效率高,可以用来构造各种密钥机制,可
以用来建造安全性更强的密码;
5.依靠密钥来保障加密信息的安全,要求通信双方都要保持密钥
的秘密性;
6.可通过多重加密,提高安全等级。