对称密码基本加密实验
【实验目的】
1. 利用实验平台观察 DES 算法详细步骤,深刻掌握 DES 算法的运行原理
2. 通过编程实现 DES 加解密程序,掌握 DES 算法的基本工作方式
【实验原理】
数据加密标准(Data Encryption Standard,DES)中的算法是第一个也是最重要的现代对称加密
算法,其分组长度为 64 比特,使用的密钥长度为 56 比特(实际上函数要求一个 64 位的密钥
作为输入,但其中用到的有效长度只有 56 位,剩余 8 位可作为奇偶校验位或完全随意设
置),DES 加解密过程类似,加解密使用同样的算法,唯一不同的是解密时子密钥的使用次
序要反过来。DES 的整个体制是公开的,系统安全性完全依靠密钥的保密。
1. DES 的运算可分为如下三步:
(1) 对输入分组进行固定的“初始置换”IP,可写为(L
0
,R
0
)=IP(输入分组),其中 L
0
和 R
0
称为“(左,右)半分组”,都是 32 比特的分组,IP 是公开的固定的函数,无明显的密
码意义。
(2) 将下面的运算迭代 16 轮(i=1,2,…,16):Li=Ri-1 ,Ri-1=Li-1 f(Ri-1,ki);这里 ki 称
为轮密钥,是 56 比特输入密钥的一个 48 比特字串,f 称为 S 盒函数(S 表示交换),
是一个代换密码,目的是获得很大程度的信息扩散。
(3) 将十六轮迭代后得到的结果(L
16
,R
16
)输入到 IP 的逆置换来消除初始置换的影响,这
一步的输出就是 DES 算法的输出,即输出分组=IP
-1
(R
16
,L
16
),此处在输入 IP
-1
之前,
16 轮迭代输出的两个半分组又进行了一次交换。
2. DES 的加密与解密算法都是用上述三个步骤,不同的是如果在加密算法中使用的轮密
钥 为 k
1
,k
2
, … ,k
16
, 则 解 密 算 法 中 的 轮 密 钥 就 应 当 是 k
16
,k
15
, … ,k
1
, 可 记 为
(k
1
`,k
2
`,…,k
16
`)=(k
16
,k
15
,…,k
1
)。
DES 算法的一轮迭代处理过程如图所示。