学术论文网
DES密钥加密技术研究与分析
发布日期:2024-07-24 18:46:19

  引言

  在这个飞速发展的社会,信息技术的更新换代日益加快,信息大爆炸时代的我们无时不刻不被包围在丰富多彩的信息的周围,而同时,我们在生活和工作中时常需要储存和传输信息与数据。在此过程中,涉及到信息的安全性问题,这样的问题也时刻围绕在我们身边,影响着我们的生活和工作。从简单的网站登录密码的安全性问题到通讯设备信息传输的安全性问题再到银行系统数据的安全性问题,数据安全涉及到各行各业的方方面面。

  基于信息的安全问题,各类数据安全措施被发明与应用,其中,数据加密作为信息安全的重要保障,被学术界广泛研究与应用。在数据加密的各类技术中,DES密钥加密技术自1977年被制定开始,一直沿用至今,其安全性较高,且被广泛应用于金融业、电子业等方面,足见DES算法在数据加密技术中的重要性。本文将通过初步探讨DES算法;解析DES算法的算法原理,并用实例分析论证DES算法的安全性;再将DES算法与当下常用的三类数据加密算法()进行对比分析,论证DES算法在一些应用领域的重要性与必要性;最后,本文将探讨DES算法的应用领域及针对该算法可实现的改进及扩展方法,进一步论证DES算法在应用领域的可用性及可操作性。综合全篇,本文将论述验证DES算法的安全性及重要性,为一些应用领域在数据加密过程中使用DES算法提供强有力的理论依据。

  DES算法概述

  DES即数据加密标准(Data Encryption Standard),是一种对称加密算法,该算法于1977年由美国制定,被公认为是官方的加密标准,且沿用至今。DES算法是一种安全度较高的算法,它结合了两种加密方法——替换方法和置换方法,从而使得数据加密更为有效,解密也更为复杂,成功达到了保护数据,防止数据或信息在存储和传输过程中丢失和破坏的目的。

  同一般的加密技术一样,DES在加密过程中运用的一般原理是使用DES算法,将需要存储或者传输的数据也就是明文,转换成密文,使得转换后的数据无法被直接识别与阅读,从而保证数据的安全性与保密性。DES算法用到了64位密钥,其中有56位是有效的密钥,这在理论上保证了DES算法的安全性。DES算法能被运用至今,也是因为它有极高的安全性,迄今为止,可以对DES算法进行破译的比较有效的方法,只有穷举搜索法。但是如果运用穷举搜索法对DES算法中的56位密钥进行穷举,其空间要达到2^56个。也就是说,以目前计算机每秒1000000的计算速度,一台计算机运用穷举搜索法完成密钥的全部搜索需要大约2000年的时间。因此,DES算法具有较高的安全性具有一定的理论依据。当然,除了DES算法,现在还有一些其他算法也可以应用于数据加密,如RSA算法、基于椭圆曲线的加密算法、Message-Digest Algorithm 5等,DES算法也有其局限性,而不可否认的是,DES算法在很多应用领域如金融行业等仍然发挥着巨大的作用。

  DES算法原理分析与实例分析

  DES算法主要运用位运算,将数据库中用于存储和传输的可见数据(明文)转换为无法直接打开的数据格式(密文)。那么,在DES算法中,位运算如何操作与实现呢?这一部分将详细阐述DES算法的基本原理,并列举实例进行算法分析。

  (一) DES算法的基本原理

  DES算法是一种对称加密算法,即该算法的加密过程和解密过程使用的是同一个密钥。DES是一种block密文,即DES算法的工作原理是通过一系列数据置换和数据替换,将数据加密成为64位的block。DES算法的具体实现原理如下:

  DES算法每次处理64位的数据段,若待加密的数据超过64位,则可将数据分为连续的几个64位的数据块,或者采用CFB mode等方法;若待加密的数据不足64位,那么可以对数据进行填充。对于64位的数据块,每8位会有一位奇偶校验位,所以其中只有56位有效位。该算法实现时,涉及到三个入口参数,这三个参数分别是Key、Data、Mode。在这三个参数中,Key是DES算法的工作密钥,Data就是该算法需要加工和处理的数据,Mode表明DES算法的工作方式。DES算法的加密过程可以分为三步:初始置换、迭代过程、逆置换。

  (1)在初始置换时,通过IP处理,将64位原始数据按照一定的规则进行重新排序,打乱原本的数据次序。初始置换后的数据结构如下表所示:

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

  图表 初始置换后的数据结构

  数学表示为:old Data=D1D2D3…D63D64

  new Data=D58D50D42…D15D7

  (2)接下来,进行数据迭代。在迭代过程中,64位数据被平均分为L。和R。,数学表示为:

  new Data=D1D2D3…D63D64;

  L。=L1L2L3…L31L32=D1D2D3…D31D32;

  R。=R1R2R3…R31R32=D1D2D3…D31D32。

  分组后按照一定的规则进行迭代,迭代总共进行16次,前15次迭代过程中,每次迭代的规则是左半部分的32位数据即L。的第i位数据换为右半部分的32位数据即R。的第i-1位数据,也就是说这一次迭代的R。即为下一次迭代的L。;而R。的第i位数据由R。的32位数据经f函数变换后与L。进行异或数学运算产生。而最后一次迭代的数据只进行数学运算,不将数学运算后的数据再左右变换。每次迭代的规则如下图所示:

  (3)迭代完成后,对迭代得到的64位数据进行逆置换即可得到密文。逆置换即初始置换的逆运算,经过逆置换后,即可得到原始数据的密文,将之用于数据存储与传输。逆置换的规则如下表所示:

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算法就是以一个56位的密钥,再加上8位奇偶校验位,构成64位、8个字节的工作密钥Key,再进行置换、分组、迭代、逆置换,最终生成密文,在数据存储和传输过程中,不知道密钥的用户只能看到明文,知道密钥的用户则可以通过加密和解密传输和获取数据,以保证数据的完整性和安全性。DES加密的完整过程如下图所示:

  (二)DES算法实例分析

  对于DES算法,以64位数据0010 0100 0111 0110 1000 1001 1010 1011 1100 1101 1110 1111 0001 0010 0011 0100为例,分析经过DES算法加密后的密文,从而论证DES算法加密的安全性与完整性。

  对64位数据实例进行IP处理

  运用DES算法初始置换的置换规则(见图表1),对64位数据0010 0100 0111 0110 1000 1001 1010 1011 1100 1101 1110 1111 0001 0010 0011 0100进行初始置换,得到的结果为0011 0010 1100 0010 1011 0011 0011 1100 0011 1100 1010 1011 0011 1100 0110 1010。

  (2)对IP处理生成的新的64位数据段进行迭代

  此时,L。=0011 0010 1100 0010 1011 0011 0011 1100

  R。=0011 1100 1010 1011 0011 1100 0110 1010

  a. R。进行48位扩展,得到结果为

  R。=001010 101100 000111 111001 011010 101010 100111 111000

  b. R。的48位数据转换成32位数据,得到结果为

  R。=1111 1101 1010 1100 0000 1000 1000 1111

  c.生成新一次的迭代数据

  L1=1111 1101 1010 1100 0000 1000 1000 1111

  R1=0011 0010 1100 0010 1011 0011 0011 1100

  d.经过16次迭代后生成的最终数据

  L16=0010 0110 0001 1011 1000 0010 1010 0100

  R16=0100 0000 0101 0110 1011 1110 1010 1010

  (3)对迭代产生的64位数据进行IP-1处理

  迭代产生的64位数据为0010 0110 0001 1011 1000 0010 1010 0100 0100 0000 0101 0110 1011 1110 1010 1010

  IP-1处理后的数据为0001 0000 0111 1110 0110 1001 0001 1010 0011 1000 0100 1011 1010 0000 0000 1111

  与原始数据0010 0100 0111 0110 1000 1001 1010 1011 1100 1101 1110 1111 0001 0010 0011 0100进行对比,发现原始64位数据经过DES加密之后仍为64位的数据块,但加密后的数据已经完全改变,若没有密钥进行解密,明文无法被辨别。

  以上只是一个简单是二进制数据的加密结果,调查结果表明,在实际应用中,加密结果会更加表现出DES算法的安全性与保密性,因此,DES算法可视为一种安全度较高的加密技术。

  DES算法与其他常用加密算法对比

  除了DES算法,还有一些其他的算法也可以用来进行数据加密,其中最常见的有RSA加密算法、基于椭圆曲线的加密算法、Message-Digest Algorithm 5。这些算法各有优缺点,各有其适合的领域,那么,这些算法与DES算法相比较,各有什么特点呢?DES算法又有怎样独特的优越性呢?本部分将一一进行比较,得出分析结果。

  DES算法与RSA算法的比较

  DES算法与RSA算法都可以用于数据加密与解密,但两者的加密和解密算法原理却是不同的。从加密种类上来讲,DES算法属于对称加密算法,RSA算法属于非对称加密算法。此外,两个算法还有一些其他方面的不同,在此,将通过简单分析RSA算法并将之与DES算法进行对比分析,总结二者的优缺点,发现适合DES算法的应用市场。

  1.RSA算法简介

  RSA算法是一种非对称加密算法,而且是非对称加密算法中的代表,该算法被正式应用是在1978年,它得名于该算法的三个研发人员——Ron Rivest,Adi Shamir 和Leonard Adleman。RSA算法同时可以应用于数字签名。作为一种非对称加密算法,RSA算法有两个密钥,这两个密钥分别是公钥和私钥。顾名思义,公钥可以公布于众,大家众所周知,但私钥不可以公布于众。在数据加密和解密过程中,若公钥用于数据加密,则私钥用于数据解密;反之亦可。所以,对于RSA算法,加密和解密使用的是两种不同的密钥。

  下面简述RSA算法的加密和解密原理:

  RSA算法的核心原理是大整数分解。RSA算法的具体操作过程如下所示:

(1)随机选择两个大素数 p, q

(2)计算 N=p.q

Ø (N) = (p-1) (q-1)

(3)选择 e使得1<e<ø(N),且gcd(e,ø(N))=1

(4)解下列方程求出 d

e.d=1 mod ø(N) 且 0≤d≤N

(5)公布公钥: KU= {e, N}

保存私钥: KR= {d, p, q}

加密: C=Me mod N, (0≤M<N)

解密: M=Cd mod N

  需要注意的是,在这个算法中,明文和密文都必须是自然数。

  2.DES算法与RSA算法对比

  综合RSA算法的简述,得出DES算法与RSA算法的对比如下表:

(1)随机选择两个大素数 p, q

(2)计算 N=p.q

Ø (N) = (p-1) (q-1)

(3)选择 e使得1<e<ø(N),且gcd(e,ø(N))=1

(4)解下列方程求出 d

e.d=1 mod ø(N) 且 0≤d≤N

(5)公布公钥: KU= {e, N}

保存私钥: KR= {d, p, q}

加密: C=Me mod N, (0≤M<N)

解密: M=Cd mod N

  从上述表格可以看出,DES算法相对于RSA算法在安全性上有其优势,且在金融行业、IC卡等方面应用广泛,是一种非常重要的数据加密算法。

  DES算法与ECC算法的比较

  ECC算法属于一种公钥密码体制下的算法,它相对于RSA算法来说,安全度更高,而且同样密钥大小情况下,速度更快,所以被广泛应用。本部分将讨论ECC算法的原理及DES算法与ECC算法相比有何独特之处,以证明DES算法的重要性。

  1.ECC算法简介

  ECC算法即Elliptic curve cryptography,它又称为基于椭圆曲线的加密算法。该算法于1985年被第一次提出。ECC算法的安全性在于用户可以在一定范围域内随机选择有效的椭圆曲线方程,而椭圆曲线方程在一定范围域内有无限多个。

  具体的ECC算法的实现过程如下:

 

加密种类

密钥

安全性

缺点

改进方法

应用领域

DES算法

对称加密

1个

较高,可理论证明

密钥有效长度只有56位

多重DES

独立子密钥等

金融

IC卡

通信等

RSA算法

非对称加密

2个

目前无理论证明

生成密钥难

速度慢

小素数筛值法

偶数排除法等

电子商业

  2.DES算法与ECC算法对比

  综合ECC算法的简述,得出DES算法与ECC算法的对比如下表:

(1)选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。

(2)选择一个私有密钥k,并生成公开密钥K=kG。

(3)将待传输的明文编码到Ep(a,b)上一点M,并产生一个随机整数r(r<n)。

(4)C1=M+rK;

C2=rG。

C1-kC2=M

  综上所述,虽然ECC算法在安全度上较高,相对于RSA算法来说有很多的优势,比如速度快,带宽要求低等,是一种安全度高且实用的数据加密算法,但当遇到大块数据时,ECC算法明显没有优势,而DES算法在加密大块数据上占有很大优势,所以,DES算法具有其不可替代的优越性。

  (三)DES算法与MD5算法的比较

  与DES算法一样,MD5算法也可以应用于数据加密与解密,但其加密和解密算法原理不同于DES算法。MD5算法的算法原理是什么呢?MD5算法有何独特之处,又存在什么漏洞呢?在此,将通过简单分析MD5算法并将之与DES算法进行对比分析,总结二者的优缺点,发现适合DES算法的应用市场及其独特优势。

  1.MD5算法简介

  MD5算法全称为Message-Digest Algorithm 5,该算法是上个世纪90年代初被提出来的。同RSA算法一样,MD5算法不仅可以用于数据加密,也可被应用于数字签名。MD5算法多应用于网站中用户登录密码的保护。

  MD5的具体加密原理是对于给定的数据,产生一个独一无二的类似于身份证号码的指纹号。利用MD5算法产生的指纹号是独一无二的而且不能简单地通过逆运算求得,因而保证了数据的安全,使数据得到保护。其具体实现过程如下:

(1)选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。

(2)选择一个私有密钥k,并生成公开密钥K=kG。

(3)将待传输的明文编码到Ep(a,b)上一点M,并产生一个随机整数r(r<n)。

(4)C1=M+rK;

C2=rG。

C1-kC2=M

 

  2.DES算法与MD5算法对比

  综合MD5算法的简述,得出DES算法与MD5算法的对比如下表:

 

加密种类

密钥

安全性

缺点

改进方法

应用领域

DES算法

对称加密

1个

较高,可理论证明

密钥有效长度只有56位

多重DES

独立子密钥等

金融

IC卡

通信等

ECC算法

非对称加密

2个

较高

不适用于大数据的加密

优化点积运算等

军事

通信

  综上所述,MD5算法在网站建设等领域对用户登录密码的保护起到了一定的作用,但是随着计算机科学技术的发展,其安全性受到了一定程度的威胁,而DES算法的安全性较高,且在金融领域等重要的领域发挥着其重要的作用。

  DES算法应用及扩展

  DES算法在很多领域的数据加密中被广泛应用,同时,DES算法中的一些缺陷被逐步发现,专家学者也对此研究了一些DES算法的改进方法。本部分主要简单介绍DES算法的主要应用及DES算法的改进与扩展,进一步论证DES算法在社会应用领域的重要性及DES算法在数据加密中的安全性、可延伸性和适用性,从而为适用于DES算法的应用领域在运用DES算法进行加密时提供足够的理论支撑。

 1/2    1 2  
Copyright © 2008-2020 学术论文网 版权所有 粤ICP备16093775号