DES的设计思路Word格式.docx

上传人:b****1 文档编号:3312897 上传时间:2023-05-01 格式:DOCX 页数:16 大小:173.28KB
下载 相关 举报
DES的设计思路Word格式.docx_第1页
第1页 / 共16页
DES的设计思路Word格式.docx_第2页
第2页 / 共16页
DES的设计思路Word格式.docx_第3页
第3页 / 共16页
DES的设计思路Word格式.docx_第4页
第4页 / 共16页
DES的设计思路Word格式.docx_第5页
第5页 / 共16页
DES的设计思路Word格式.docx_第6页
第6页 / 共16页
DES的设计思路Word格式.docx_第7页
第7页 / 共16页
DES的设计思路Word格式.docx_第8页
第8页 / 共16页
DES的设计思路Word格式.docx_第9页
第9页 / 共16页
DES的设计思路Word格式.docx_第10页
第10页 / 共16页
DES的设计思路Word格式.docx_第11页
第11页 / 共16页
DES的设计思路Word格式.docx_第12页
第12页 / 共16页
DES的设计思路Word格式.docx_第13页
第13页 / 共16页
DES的设计思路Word格式.docx_第14页
第14页 / 共16页
DES的设计思路Word格式.docx_第15页
第15页 / 共16页
DES的设计思路Word格式.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

DES的设计思路Word格式.docx

《DES的设计思路Word格式.docx》由会员分享,可在线阅读,更多相关《DES的设计思路Word格式.docx(16页珍藏版)》请在冰点文库上搜索。

DES的设计思路Word格式.docx

1、可逆正确性的原因(以SDES为例)

我们知道任何算法的解密过程都必须是原算法的严格的逆才可以,但是

DES的解密过程与加密过程用相同的步骤相同的流程,唯一的区别就是在解密

时要先用K2后用K1。

为什么会出现这种现象呢?

首先请看下页的SDES的流程

图以及对照表:

由下表可以知道SDES中的解密过程是严格成立的。

因为任何数与其自身进行模2加后的结果都是0。

(主要表现在解密是函数F上)。

正由于其可逆是完全成立的,故F函数中的运算可以随意定义。

DES中的解密也和SDES中的一样,只不过是经过16轮的迭代,子密钥多几个而已,它们都因为模2加和严格

的逆而使得其加密和解密使用同一个流程。

密文

加密

解密(AL,AF为记号)逆序

对应

L0=IP(明文)

明文=IP-1(AL2,AR2)

IP-1=(IP)-1

R0=IP(明文)

AL2=AL1f(AL1,K1)

AL2=L0f(R0,K1)f(R0,K1

)=L0

L仁R0

AR2=AR1

AR2=L1=R0

R仁L0f(R0,K1)

AL1=AL0f(AR0,K2)

AL1=L1f(R1,K2)Lf(R1,K2

)=L1

R2=R1

AL1=AR0

AL1=AR0=R2;

AL1=R1

L2=L1f(R1,K2)

AR0=IP(密文)

AL0=L2;

AR0=R2

.、.、-1

密文=IP(L2,R2)

AL0=IP(密文)

-1-1

IP=(IP)

2、f函数

R0/R1

E/P扩展置换

41232341

SDES中的F函数的运算过程如上图所示。

首先是R0或R1进行扩展置换,然后再与Kn进行逐位异或运算,然后结果从中间分成两组,分别进入相应的S

盒,S盒的输入有4位,首尾合在一起构成相应的行,中间决定列,然后找出相应的正确的输出。

两组输出再进行P4置换后成为F的最终的输出结果。

S盒的查询分布由下表给出。

S盒所呈现出来的原因这里先不作讨论,放在后面DES

中的S盒的分布一起讨论。

S盒的分布

S1

00

01

10

11

S2

3、DES中的几个问题

首先看流程图:

K2

K16

 

逆初始置换IP

L16

R16

1

■1

DES的加密过程如上图所示,我们可以看到它与SDES相差不大,其区别就是DES比SDES多了14轮的迭代。

它与SDES一样,都有

Li=Ri-i

Ri=Li-if(Ri-i,Ki)

i=1,216的结构。

所以其解密正确性毋庸置疑。

其IP置换以及IP逆置换由下表给出,观察这两个表我们不难看出IP表的规律为:

n为任一个元素的数值,n=8X+Y,Y|「[1,8];

Y=2z+a,a[0,1]。

那么n的对应的位置为(8-x)行(z+5a洌。

直观的看就是按从上到下从右到左的顺序把1--64

初始置换IP

逆初始置换IP1

58

50

42

34

26

18

2

40

8

48

16

56

24

64

32

60:

52

44

36

28:

20

12

4

39

7

47

15

55

23

63

31

621

54

46

38

301

22

14

6

62

30

37

5

45

13

53

21

61

29

57

49

41

33

25

17

9

60

28

59

51

43

35

27

19

3

排成一个8$的方阵,列不动,把该列中双号元素提上,单号元素压下既成该

主密钥K

PC-1

IP矩阵。

C0

D0

LS1

C1

D1

PC-2―K1

LS2

C2

D2

PC-2

LS16

IP-1的规律为:

设n为任意一个元素,n=8x+y,y[1,8],x=4z+b,z[0,1],那么元素n所对应的位置是(9-y)行,(2+2b-z)列。

直观的看就是把1---64这64个数字按从下到上从左到右的顺序排成8>

8的方阵。

然后行不变,把1,2,3,4列插到5,6,7,8相应列的后面这就成了IP-1的方阵。

主密钥K生成子密钥Kn的过程如上图所示;

首先主密钥K经过PC--1置换去掉逢8的位。

这些位是奇偶校验位,它用于检查密钥K在产生和分配过程中

可能发生的错误。

并重新排列,再从中间分为两部分C0和D0,再进行循环左

移变换LSn,再进行PC-2变换取其中的48位形成子密钥Kn。

PC-1,PC-2以及循环左移的位数如下表所示:

循环序号

左移位数

PC-1,PC-2表

选择置换PC-1

选择置换PC-2

r58

p4

P281

:

10:

12

35|

119

126

81

30:

r40:

48:

16

(45

371

491

134

531

循环位表:

我们看循环左移的这个表,会发现这个表咼度对称且所有左移位数之和为

28,就是说C0,D0经过16轮的循环左移之后,又回到了初始的状态。

这就意味着这16轮左移把所有可能的情况都包括了。

对于任意一个n阶的有序元素集,

最多经过n次循环左(右)移后一定能出现和原来一样的序列,所以DES最多

可以选择28轮迭代能产生最多28个不同的子密钥Kn。

这28个子密钥可以是全部循环1位的,也可以是循环移动a位的,只要a满足(a,n)=1,也就是说循环左移位数与n是互素的。

观察PC-1置换,不难发现,其有如下规律:

Co、Do分别按从左到右,

从上到下的顺序排列,并按模除8余同且从大到小排列的顺序排列出来。

Co是

模1、2、3,Do是模7、&

5;

模4按相同的从大到小的顺序排在空缺的位置上即可。

Ri-1

EP

iJJJJIi

S1S2S3S4S5S6S7S8

亍十十tw

EP置换

置换函数P

r8

9:

P12

13n

r24

251

DES中的f函数如上图所示,32位的Ri-i经EP扩展置换后变成48位的。

然后与48位的子密钥Ki进行模2力□,其结果按从左到右每6位一组进入相应的S盒。

这6位首尾放一起作为行,中间4位作为列,来查S盒表。

S盒表的结构由于太大,参见毛明著《大众密码学》的P88-P89页或陈鲁生著《现代密码学》的

P47页的表。

每个S盒的输出为4位,共有32位,进入P盒置换后,作为函数f得输出。

观察EP置换,可以发现其满足以下规律。

设科为第i行第j列元素,贝U

Aij=(4(i-1)+(j-1))mod(32)

Aij=32(i=1且j=1,或i=8,j=5)

直观的看,就是按1-32按顺序排成8>

4的矩阵,然后在该矩阵的左边盒右边各添加相邻的小一列和大一列元素而成(SDES中也有类似的情况)。

4、DES设计思想

DES是一个数据加密的方法,加密的原因就是让人难以破译,最好是不能破译。

这就要求我们把明文的统计特性隐藏在密文中,以防统计密码分析的攻击。

另外,明文分组和密钥都要具有一定的长度,以防穷举者的攻击。

总之要使明文

密文有最大限度的可能性,使密码破译者不知如何下手,只有用阶数很大的穷举方法来解密。

DES采用Feistel结构,而Feistel结构是几乎所有分组密码所常用的对称加

密算法。

Feistel结构的共性就是Li=Ri-1

Ri=Li-1+f(Ri-1,Ki)

所以由前面的讨论可知Feistel结构是可逆的。

DES是在Feistel结构的基础上加一个初始置换IP和逆初始置换IP-1在首尾。

我们可以看到他们两个也是互逆的,所以IP、IP-1也是可以自由定义的。

综上所述,DES中IP、IP-1可以自由定义,但必须是互逆的。

函数f也可以自由定义,但必须使得其输出的结果能与Ln进行相异或,确切的说,就是能

使这个程序继续下去。

F函数的一个条件就是对于相同的Rn-1和Kn再次输入f中要有相同的输出,不能变化,否则解密就不能再用这个流程了。

对f函数内的

EP扩展置换也是可以自主定义的,但条件是其扩展(缩小)后的位数要与子密钥Kn位数相同,以便继续下一步;

进入S盒后,S盒也可以自由定义,条件是尽可能的使其呈现出随机性,S盒的构造一般是用布尔函数来确定的,具体S盒

的规律和性质已超出本文的范围,这里暂不作讨论;

置换函数P也是可以自由定义条件是使运算的输出尽可能出现随机性。

我们现在用的DES中,S盒是通用

的,若第一轮到第十六轮分别用不同的S盒的话,那么解密时不仅要调整子密

钥的使用顺序,同时还要调整S盒的调用顺序,以便能达到使其逆成立。

在主密

钥生成子密钥的过程中PC-1,PC-2以及每一轮的循环左(右)移位数都可以自主定义,主要限制是要让主密钥的位数运用要尽量均衡,不能只用主密钥的一部分,而弃用其他位置的元素,这样才能给密码攻击者造成最大的困难。

我们可以看到DES中有这么多可以修改的地方,所以它被称为数据加密标准,也就是说它给我们提供了一种数据加密的流程,一种模式。

基于它的影响上

世纪后期又出现了IDEA(InternationalDataEncryptionAbgorithm国际数据加密算法)、三重DES、Blowfish、CAST128、RC2、RC5等常规加密算法。

这些算法的密码难度都比DES要高,其中以Blowfish的破译最为困难。

下面就简要的介绍下Blowfish的流程。

5、Blowfish算法

我们可以看到Blowfish的主加密过程和主解密过程和DES大同小异,Blowfish进行16轮的f函数运算,但却用了18个子密钥,又不影响其可逆解密的进行。

DES有IP和IP-1来打乱原明文的排列,而Blowfish却没有。

因为这一步产生的复杂度相对于Blowfish的子密钥、f函数、S盒而言,可谓九牛之一毛,所以可省略。

其f函数的构造如下图所示

f函数如上图所示,其中代表逐位异或,+代表模232相加。

我们发现Blowfish

所采用的4个S盒进行操作运算后,又进行了之间的运算作为输出。

这就使得雪崩效应一下增加了很多倍。

但是我们发现其S盒的输入为8位而输出却为32位。

所以它的S盒并不像DES那样简单。

事实上Blowfish的S盒的构造依靠主密钥。

下面就简要的介绍一下Blowfish由主密钥生成子密钥以及S盒的过程。

首先把主密钥放在一个K数组中K1、K2Kj(1呼<14),子密钥放在数组

P中,P1、P2P18;

有4个S盒,每个有256个32Bit的项,(8X32)的形式,

S1,0、S1,1S1,255,S2,0,S2,1,S2,255……或表示为Siji[1,4]

j[0,255]其步骤如下:

1n的小数部分初始化P数组,然后顺次初始化4个S盒。

这样小数部分的最左边32比特就成了P1,再32比特为P2,依次下去,第19个32比特成S1,0,第1042个32比特为S4,255

2对P数组和K数组进行逐位异或,需要是用K数组。

也就是说,把主密钥K数组首尾连接成一个圈,把P数组展成一列,然后K数组在P数组上滚一边,逐位异或后,其结果为刷新后的P数组。

3使用当前的P和S数组对全零的64比特分组进行加法,把P1、P2用加密的输出取代

4使用当前最新的P和S数组对第三步的输出也就是P1P2进行加密,并用所得密文取代P3P4o再用最新的P数组和S数组对最新的输出进行加密,用其结果取代下两个32比特的P数组。

5重复上面的过程,直到所有的P数组和S数组全部更新为止。

这里实际是把P,S数组的连在P数组之后,依次进行下去的,最后的结果是P和S数组都不是n的小数部分形式。

这样就产生了最终的子密钥Pi和相应的S盒。

这个过程需要加密算法执行521次,也就是说,在加密一组明文之前首先要运行521次,这对解密者来说可

谓是难于上青天。

但是Blowfish不适合密钥经常改变的应用,为了快速期间,它的P数组和S数组可以预先存放好,而不是每次使用都从密钥中导出。

到此为止,我们可以看到Blowfish设计的巧妙之处,它采用DES的主加密流程,但使用的S盒却是从主密钥中导出的,并且环环相扣,雪崩效应可谓达到了顶点,它使用两种运算逐位异或和模232加,使得密码强度大大增强,故有没有DES中的IP和IP-1的置换扰乱对它来说意义不大。

所以到现在为止Blowfish没有发现

实际可用的弱点。

参考文献:

[1]毛明著•大众密码学•北京•高等教育出版社,2005年1月

[2]williamstallings•密码编码学与网络安全:

原理与实践•第二版•杨明等译•北

京・电子工业出版社,2001年4月

[3]陈鲁生沈世镒•现代密码学•北京•科学出版社,2002年

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2