admin管理员组

文章数量:1533901

2024年4月24日发(作者:)

实验1-2 对称密码算法DES

一.实验原理

信息加密根据采用的密钥类型可以划分为对称密码算法和非对称密码算法。对称密码

算法是指加密系统的加密密钥和解密密钥相同,或者虽然不同,但是可以从其中任意一个推

导出另一个,更形象的说就是用同一把钥匙开锁和解锁。在对称密码算法的发展历史中曾出

现过多种优秀的算法,包括DES、3DES、AES等。下面我们以DES算法为例介绍对称密

码算法的实现机制。

DES算法是有美国IBM公司在20世纪70年代提出,并被美国政府、美国国家标准局

和美国国家标准协会采纳和承认的一种标准加密算法。它属于分组加密算法,即明文加密和

密文解密过程中,信息都是按照固定长度分组后进行处理的。混淆和扩散是它采用的两个最

重要的安全特性,混淆是指通过密码算法使明文和密文以及密钥的关系非常复杂,无法从数

学上描述或者统计。扩散是指明文和密钥中每一位信息的变动,都会影响到密文中许多位信

息的变动,从而隐藏统计上的特性,增加密码安全。

DES将明文分成64比特位大小的众多数据块,即分组长度为64位。同时用56位密钥

对64位明文信息加密,最终形成64位的密文。如果明文长度不足64位,则将其扩展为64

位(例如补零等方法)。具体加密过程首先是将输入的数据进行初始换位(IP),即将明文M

中数据的排列顺序按一定的规则重新排列,生成新的数据序列,以打乱原来的次序。然后将

变换后的数据平分成左右两部分,左边记为L

0

,右边记为R

0

,然后对R

0

施行在子密钥(由

加密密钥产生)控制下的变换f,结果记为f(R

0

,K

1

),再与L

0

做逐位异或运算,其结果记为

R

1

,R

0

则作为下一轮的L

1

。如此循环16轮,最后得到L

16

、R

16

,再对L

16

、R

16

施行逆初始

置换IP

-1

,即可得到加密数据。解密过程与此类似,不同之处仅在于子密钥的使用顺序正好

相反。

DES全部16轮的加密过程如图1-1所示。

DES的加密算法包括3个基本函数:

1. 初始换位(IP)

它的作用是把输入的64位数据块的排列顺序打乱,每位数据按照下面换位规则重新组

合。即将第58位换到第1位,第50位换到第2位,…,依次类推。重组后的64位输出分为

L

0

、R

0

(左、右)两部分,每部分分别为32位。

58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4

62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8

57, 49, 41, 33, 25, 17, 9, 1 59, 51, 43, 35, 27, 19, 11, 3

61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7

R

0

和K

1

经过f(R

0

,K

1

)变换后的输出结果,再和L

0

进行异或运算,输出结果做为

R

1

。R

0

则赋给L

1

。L

1

和R

1

同样再做类似运算生成L

2

和R

2

,…,经过16次运算后生成L

16

和R

16

2.f函数

f函数是多个置换函数和替代函数的组合函数,它将32位比特的输入变换为32位的输

出,如图1-2。R

i

经过扩展运算E变换后扩展为48比特的E(R

i

),与K

i+1

进行异或运算后输

出的结果分成8组,每组6比特的并联B,B=B

1

B

2

B

3

B

4

B

5

B

6

B

7

B

8

,再经过8个S盒的选择

压缩运算转换为4比特,8个4比特合并为32比特后再经过P变换输出为32比特的f(R

i-1

,K

i

)。

其中,扩展运算E与置换P主要作用是增加算法的扩散效果。

输 出

1,2,3 …… 63,64

初始换位IP

L

0

R

0

1,2,3 …… 31,32

1,2,3

……

31,32

+

f

K

1

K

2

L

1

=R

0

R

1

=L

0

f(R

0

,K

1

)

+ f

+ f

R

16

=L

15

f(R

15

,K

16

)

L

16

=R

15

逆初始置换IP

-1

输 出

图1-1 DES加密/解密流程

L

2

=R

1

R

2

=L

1

f(R

1

,K

2

)

K

i

+ f

L

15

=R

14

R

15

=L

14

f(R

14

,K

15

)

K

16

3.逆初始置换函数IP

-1

它将L16和R16作为输入,进行逆初始换位得到密文输出。逆初始换位是初始换位的

逆运算,换位规则如下表所示:

40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31

38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29

36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27

34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25

DES的加密算法中除了上面介绍的3个基本函数,还有一个非常重要的功能模块,即

子密钥的生成模块,具体子密钥的产生过程如图1-3所示。

本文标签: 算法密钥加密密码