您的位置:首页 > 其它

DES加密系统

2016-03-11 23:11 197 查看

1实验名称

DES密码系统算法实现

2实验目的

Ø 理解对称加密算法的原理和特点

Ø 理解DES算法的加密原理

Ø 了解并掌握DES密码系统密钥产生过程和DES加解密流程。

Ø 实现DES密码系统加解密。

3实验原理

DES的设计原理是以Shannon所提出的乘法加密系统为主。举例来说:现有两套加密系统A与B,明文首先利用加密系统A进行加密而得一个密文,再将此密文作为加密系统B的输入,最后真正的密文即为加密系统B所输出的密文。通过两个加密系统“相乘”的结果能够大幅度提高其安全性。

DES系统将64位的数据利用56位的密匙加密,整个设计原则起源于Shannon的乘法保密系统两大观念:扩散与混淆。扩散的主要目的是尽可能使明文结构分布到较长的密文上,以使解密者不能利用统计方法如愿以偿。

4实验内容

4.1DES回合密钥的产生

由于DES的加密及解密过程都需要做16个回合的运算,每一个回合的运算都需要使用一把回合密钥,所以DES的加解密过程共需要16把回合密钥,回合密钥的产生方式如图4-4所示,它是由一把56位的秘密密钥经过一连串的运算所得到的。



图4-1 DES的密钥产生运算过程
DES回合密钥的产生步骤如下:

(1)先把此56位的密钥扩展到64位,其扩展方式为每7位插入一个奇偶校验位,使得1的个数有奇数个。

(2)将上一步骤所得的64位密钥重新排列,其排列规则如表4-1所示。

表4-1 密钥排列表



再将重新排列后的56位密钥分成KL和KR两部分,KL和KR各占28位。KL包含第1位到第28位,KR则包含第29位到第56位。

(3)分别对KL和KR做向左循环位移,其位移的位数与回合数有关,如表4-2所示。

表4-2 左移位数表



移位后的KL和KR被当作下一个回合的输入。

(4)将移位后的KL和KR重组后,再做缩减排列,其排列规则如表4-3所示。

表4-3 缩减排列表



重排列后的值由56位被缩减至48位,而这48位的值也就是该回合的回合密钥。

重复步骤(3)和(4),直到16把回合密钥-K1、K2、...、K16都产生出来为止。

4.2DES加密流程

DES加密的过程如图4-2所示,一共要执行16个回合的运算,每一回合运算均需使用上节所产生的回合密钥。



图4-2 DES加密过程
(1)先将信息明文以8字母(64位)位单位来做加密处理,将输入的64位信息以表4-4所示的规则做重新排列。

表4-4 初始排列表



重组后再将其结果分成L和R两部分,L和R各占32位。

(2)将L和R分别依下列函数运算:



其中,符号为异或运算,位48位的第j回合密钥。

(3)函数的运算过程可参考图4-3,说明如下:



图4-3DES的f函数的运算过程
① 先将32位的做位扩充至48位,其扩充规则如表4-5所示。

表4-5 扩增排列表



② 将此扩充后的48位数据与48位回合密钥做异或运算。

③ 将做完异或运算的48位数据分成8个快(S-BOX),每个S-BOX内有6位,分别为。

④ 将每个S-BOX内的6位数据按照表4-6所示的规则转换,每个S-BOX都有专属的转换规则,经转换后会产生4位输出结果。表4-6的使用方法如下:

a. 将每个S-BOX内的位取出,当成S-BOX的行索引值。

b. 将每个S-BOX内的位取出,当成S-BOX的列索引值。

c. 利用行与列的索引值在所属的S-BOX中找出所对应的值。

d. 将所找到的对应值转换成二进制表示法后,取代原来S-BOX内的6位值。

表4-6 DES的S-BOX(1-5)





⑤ 将每个S-BOX所输出的4个位合并后,共有32位输出,再将此32位的输出经表4-7(P-BOX)所示重新排列后,即完成一个函数的运算。

表4-7 P-BOX排列表



(4)将步骤(2)重复执行16次后,再将最后的合并成一个64位输出。最后将此64位数据按照表4-8做最后的排列重组,所得的结果即为密文。

表4-8 最后排列表



4.3DES解密流程

DES的解密过程与加密过程类似,解密的流程如图4-10所示,可以发现解密流程与加密流程唯一的差别是将





图4-4 DES解密过程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: