DES加密算法.docx

上传人:b****3 文档编号:1118039 上传时间:2022-10-17 格式:DOCX 页数:16 大小:119.74KB
下载 相关 举报
DES加密算法.docx_第1页
第1页 / 共16页
DES加密算法.docx_第2页
第2页 / 共16页
DES加密算法.docx_第3页
第3页 / 共16页
DES加密算法.docx_第4页
第4页 / 共16页
DES加密算法.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

DES加密算法.docx

《DES加密算法.docx》由会员分享,可在线阅读,更多相关《DES加密算法.docx(16页珍藏版)》请在冰豆网上搜索。

DES加密算法.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1