DES加密算法.docx
- 文档编号:1118039
- 上传时间:2022-10-17
- 格式:DOCX
- 页数:16
- 大小:119.74KB
DES加密算法.docx
《DES加密算法.docx》由会员分享,可在线阅读,更多相关《DES加密算法.docx(16页珍藏版)》请在冰豆网上搜索。
DES加密算法
数据加密标准DES(DataEncryptionStandard)算法是由美国IBM公司研制的一种分组密码算法,一种迭代分组密码。
DES是一种使用最为广泛的加密算法,虽然DES出现后又产生了许多常规加密算法,但DES仍是此类算法中最重要的一种。
在正式讨论DES算法之前,为了更好的理解算法的实际工作过程,我们先来看一个简化的DES算法,以此加深对DES算法的理解。
一、简化的DES加密算法
简化的DES加密算法是以8bit的明文分组和10bit密钥作为输入,产生8bit密文分组作为输出。
1、加密流程
简化的DES算法基本加密流程如图6.9所示
图6.9简化的DES的加密过程
2、加密算法构成:
简单DES的加密算法包括4个基本函数:
初始置换函数IP、fk函数、SW置换函数、逆置换函数IP-1。
(1)初始置换函数IP
初始置换IP是将明文中数据的排列顺序按一定的规则重新排列,而生成新的数据序列的过程。
如图6.10所示:
8bit原数据位置12345678
【IP置换】
经IP置换后的数据位置26314857
图6.10简单DES的初始置换
例:
设8bit数据为11110011,则初始置换后的结果为:
(2)fk函数fk函数是多个置换函数和替代函数的组合函数。
fk函数首先将输入它的8bit数据进行分组,分成左4位和右4位,然后对右组的4位数据进行E/P扩展置换运算,接着将扩展置换所得的8bit数据与子密钥进行异或运算,再将异或运算所得结果通过S盒输出,再将通过S盒输出的数据进行P4置换,最后将经过P4置换后的数据与输入fk函数经分组的左4位数据进行异或运算。
F(R,SK)函数是fk函数的核心函数,其中SK是子密钥。
F(R,SK)函数的运算方法如下:
fk(L,R)=(L⊕F(R,SK),R)L:
输入的左边4位分组R:
输入的右边4位分组⊕:
逐位异或
扩展/置换是将4bit输入数据经过置换和扩展而产生8bit数据的算法。
如图6.11所示:
E/P扩展置换前1234
E/P扩展置换
E/P扩展置换后41232341
图6.11简单DES的扩展/置换
经扩展置换所得的8位数据与8位子密钥SK进行逐位异或运算
异或运算规则如图6.12所示。
A⊕B
结果
01
00
10
11
1
0
1
0
图6.12异或运算
即相同数据异或运算的结果为0,不同数据异或运算的结果为1。
例:
A:
11101011
⊕
B:
10100100
异或运算的结果:
01001111
S盒输出
简化DES算法使用两个S盒S0和S1。
如图6.13所示。
其运算方法是将输入S盒的8bit数据从左至右按顺序分成左右两组,每组各4bit,左4bit数据输入S0盒,右4bit输入S1盒,如输入S盒的01001111分成0100和1111两组,对于每一组的第1bit和第4bit作为一个2bit数据并转化成一个十进制数据,这个数据用来指定S盒的一行。
第2bit和第3bit作为一个2bit数据并转化成一个十进制数据,这个数据用来指定S盒的一列。
将对应S盒中该行该列的十进制数据转化成二进制数据,即为S盒的2bit输出数据。
如:
输入S0盒的数据为0100,则P1为0,P2为1,P3为0,P4为0,所以P1P4即00转化为0指定S0盒的第一行,P2P3即10转化为2指定S0盒的第三列,所得数据为3,转化为二进制为11,即从S0盒输出的2bit数据为11;输入S1盒的数据为1111,则P5为1,P6为1,P7为1,P8为1,所以P5P8即11转化为3指定S1盒的第四行,P6P7即11转化为3指定S1盒的第四列,所得数据为3,转化为二进制为11,即从S1盒输出的2bit数据为11,。
因此通过S盒输出的数据为1111。
S0盒S1盒
10320123
32102013
02133010
31322103
图6.13S盒
图6.14S盒运算
P4置换
由S0和S1产生的4bit数据经P4置换,产生4bit数据的输出。
P4置换的方法如图6.15所示。
置换前数据位置:
1234
P4置换
置换后数据位置:
2431
图6.15P4置换
(3)交换函数(SW)
交换函数SW是将8bit输入数据的左四位与右四位交换位置之后产生8bit数据的输出。
其运算方法如图6.16所示。
交换前:
10111101
交换后:
11011011
(4)逆置换函数IP-1
逆置换函数IP-1是将8bit输入数据置换为8bit数据输出。
其运算方法如图6.17所示。
置换前位置:
12345678
IP-1置换
置换后位置:
41357286
图6.17逆置换函数IP-1
3、子密钥生成
简化DES的密钥是使用一个发送方和接收方共享的10bit密钥。
运算中使用的两个8bit子密钥就是通过这个10bit密钥生成。
输入:
10bit密钥
输出:
两个8bit子密钥(K1和K2)
(1)子密钥生成流程
简化DES的两个8bit子密钥的生成过程如图6.18所示。
(2)算法构成
简化DES的子密钥生成算法主要由置换函数P10和置换函数P8这两个置换函数加上【循环左移】构成。
设10bit数据从左到右依次为(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)则置换方式如图6.19所示。
P10(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)=(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6,)
P8(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)=(k6,k3,k7,k4,k8,k5,k10,k9)
P10置换前数据位置:
12345678910
P10置换
P10置换后数据位置:
35274101986
P8置换前数据位置:
12345678910
P8置换
P8置换后数据位置:
637485109
图6.19P10和P8置换
(3)子密钥生成
例:
设密钥为1010000010,则子密钥的生成过程如图6.20所示。
4、加密过程举例
设8bit明文为11110011,使用前例中的子密钥进行加密,其过程如图6.21所示。
二、DES加密:
在讨论完简单DES加密的基础上,我们来进一步探讨DES的加密过程。
1、加密过程
DES的加密过程如图6.22所示,其中的一轮运算要循环16次,每一次循环都执行相同的过程,其具体过程如图6.23所示。
2、加密算法的构成:
DES的加密算法和简单DES的加密算法相类似,也是主要包括4个基本函数:
一个初始置换函数IP;一个fk函数;一个用来交换数据的SW置换函数;一个逆置换函数IP-1。
(1)IP置换
图6.22DES算法的一般过程
图6.23DES算法的一个循环
与简单DES不同,DES的IP置换是将64bit的输入,经过置换产生64bit的输出。
其置换方法如图6.24所示。
58
60
62
64
57
59
61
63
50
52
54
56
49
51
53
55
42
44
46
48
41
43
45
47
34
36
38
40
33
35
37
39
26
28
30
32
25
27
29
31
18
20
22
24
17
19
21
23
10
12
14
16
9
11
13
15
2
4
6
8
1
3
5
7
图6.24IP置换
(2)扩展置换
扩展置换是将32bit的输入通过置换与扩展转化为48bit的输出。
扩展置换的方法如图6.25所示。
32
4
8
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31
4
8
12
16
20
24
28
32
5
9
13
17
21
25
29
1
图6.25扩展置换
(3)S盒
DES算法使用8个S盒,每个S盒将一个48bit输入经过替代选择产生32bit的输出。
如图6.26所示。
S1
14
0
4
15
4
15
1
12
13
7
14
8
1
4
8
2
2
14
13
4
15
2
6
9
11
13
2
1
8
1
11
7
3
10
15
5
10
6
12
11
6
12
9
3
12
11
7
14
5
9
3
10
9
5
10
0
0
3
5
6
7
8
0
13
S2
15
3
0
13
1
13
14
8
8
4
7
10
14
7
11
1
6
15
10
3
11
2
4
15
3
8
13
4
4
14
1
2
9
12
5
11
7
0
8
6
2
1
12
7
13
10
6
12
12
6
9
0
0
9
3
5
5
11
2
14
10
5
15
9
S3
10
13
13
1
0
7
6
10
9
0
4
13
14
9
9
0
6
3
8
6
3
4
15
9
15
6
3
8
5
10
0
7
1
2
11
4
13
8
1
15
12
5
2
14
7
14
12
3
11
12
5
11
4
11
10
5
2
15
14
2
8
1
7
12
S4
7
13
10
3
13
8
6
15
14
11
9
0
3
5
0
6
0
6
12
10
6
15
11
1
9
0
7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DES 加密算法