64位DES加密与DES加密算法在门禁系统中应用.docx
《64位DES加密与DES加密算法在门禁系统中应用.docx》由会员分享,可在线阅读,更多相关《64位DES加密与DES加密算法在门禁系统中应用.docx(57页珍藏版)》请在冰点文库上搜索。
64位DES加密与DES加密算法在门禁系统中应用
论文题目:
64位DES加密与DES加密算法在门禁系统中应用
64位DES加密系统设计与实现
摘 要密码技术是信息安全的关键技术,密码算法的快速实现日益重要,本文简要介绍了DES算法的基本原理及具体实现过程,并分析了该算法的安全性,并着重对DES算法的加密过程及优缺点进行了探讨。
通过对分组密码DES算法IP变换、IP逆变换、S-盒换位表的分析,找出了他们的换位规则,根据这种规则提出了对DES算法软件实现的改进方法。
并结合C编程环境,介绍了DES加密程序实现的具体方法。
本文介绍了在门禁系统中使用MCS51汇编语言编写DES加密算法的方法
关键词DES加密;C编程程序实现;算法,门禁系统DES加密算法MCS51单片机
AbstractTheencryptionofthedatasafeguardsitssecuritymainlybyencryptingthedatatransmittedbythenetwoyrk.Thisactivedefensivedevicecanvoluntarilyofferconsiderablesafetyprotectionforinformationwithonlyalittlecost.Informationtechnologychangesourlifeandworkstyle.Atthesametime,Informationsecurityhasbecomeoneofourimportantsocialproblems.Cryptotechniqueisthekeytechniqueofinformationsecurity,aquickimplementationofcryptographicalgorithmhasbecomemoreandmoreimportant.ThispaperintroducesthebasicelementsofDESarithmeticandtherealizingprocessofDESalgorithm,analyzethesecurityofDESarithmeticItfocusesonthediscussionoftheencryptionprocessandtheplusesandminusesofDESalgorithm.。
ThroughtheanalysisofDESalgorithm,IPcommutation,IP-1commutation,S-box,findouttheirreplacementruleandputforwardtheimprovementmethodsofDESalgorithm'ssoftwarerealizationaccordingtothiskindofrule.TheconcretemethodofprogrammingtoachieveDESencryptiontechniquebyClanguagewerediscussed.
KeywordsDESencryption;Cprogrammingachievementofprogramme;
目次
一、引言-------------------------------------
二、DES加密算法-----------------------------
(一)、DES加密算法的基本概念---------------
(二)、DES加密算法基本思想-----------------
(三)、DES加密算法内在特性-----------------
(四)、DES加密算法的优点-------------------
(五)、DES加密算法加密目的------------------
三、DES加密算法流程分析---------------------
(一)、DES加密算法加密过程-----------------
1、子密钥的产生-------------------------------------------------------
2、换位操作————初始置换-------------------------
3、乘积变换
<1>、扩展置换---------------------------------------
<2>、S-盒置换------------------------------------------
<3>、P-盒置换-----------------------------------------
<4>、乘积变换函数f------------------------------------
4、DES加密算法在门禁系统中应用-------------------
(二)、DES加密算法解密过程-----------------------
1、DES加密算法的解密思路--------------------------
2、DES解密流程图--------------------------
四、DES加密算法的讨论-----------------------------
(一)、DES加密算法的工作方式---------------------
(二)、DES加密算法的安全性---------------------(三)、DES加密的实现版本优化--------------
五、DES加密算法C环境下的实现---------------------
六、结束语-----------------------------------------
一、引言
二十一世纪随着网络的普及和发展,在给人们提供大量方便的同时,信息注定成为一种重要的战略资源。
也必然对安全提出更高的要求.信息的安全保障能力成为一个国家综合国力的重要组成部分。
采用数据保密技术能保证网上传输信息的安全,以免数据在传输过程中被盗用、暴露或篡改.数据传输保密的数学模型主要包括数据的加密与解密,使用加密算法能做到数据加密,在各种信息安全技术措施中,硬件结构的安全和操作系统的安全是基础,密码技术是网络安全与保密的核心和关键。
DES算法是目前使用最多的加密算法,也是最有代表性的分组加密算法,目前广泛的应用于保密通信之中。
其问世20多年来,成为密码界研究的重点,经受住了许多科学家的研究和破译,是一种世界公认的较好的加密算法,在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等民用密码领域有着广泛的应用。
范围包括:
计算机网络通信中的数据保护、电子资金传送系统中的信息加密、保护用户文件、用户识别等,为全球贸易、金融等非官方部门提供了可靠的通信安全保障。
早在1977年,人们估计建成一台每秒钟检测一百万个密钥的专用机用于DES的解密要耗资两千万美元,而且需要12小时的破解才能得到结果,所以当时DES被认为是一种十分强壮的加密方法。
当今的计算机速度越来越快,1997年,人们估计制造一台用于DES解密的专用机的费用降到十万美元左右,破解时间为6小时。
所以,当今社会单纯使用传统的64位密钥的DES算法进行加密已经不再安全。
本文通过DES加密技术的基本原理及具体实现步骤,并分析了该算法的安全性,并着重对DES算法的加密过程及优缺点进行了探讨。
通过对分组密码DES算法IP变换、IP逆变换、S-盒换位表的分析,对DES的安全质疑给出了回答。
二、DES加密算法
(一)、DES加密算法基本概念
数据加密标准(DataEncryptionStandard,简称DES)是美国国家标准局于1977年颁布的由IBM公司研制的一种非机密数据的正式数据加密标准。
在正式接触DES之前,首先让我们了解一下加密技术中的一些专业术语:
加密(Encipher):
通过密码系统把明文变换为不可懂的形式的密文。
加密算法(EncryptionAlgorithm):
实施一系列变换,使信息变成密文的一组数学规则。
解密(Decrypt):
使用适当的密钥,将已加密的文本转换成明文。
密文(Ciphertext):
经加密处理而产生的数据,其语义内容是不可用的。
明文(Cleartext):
可理解的数据,其语义内容是可用的。
DES算法是对称的,即是一种对称密码体制,它所使用的加密密钥和解密密钥是相同的,既可用于加密又可用于解密。
DES是一种采用传统的替换和移位的方法加密的分组密码,即它将明文分成固定长度(64比特)的组(块),用同一密钥(64比特实际长度为56比特因有8比特用于奇偶校验)和乘法对每一块加密,输出也是固定长度(64比特)的密文。
(二)、DES加密算法基本思想
由于这种典型的按分组方式工作的密码,其基本思想是将二进制序列的明文分成每64比特一组用64比特的密钥对其进行16轮代换和换位加密,最后形成密文。
(三)、DES算法的内在特性
(1)密钥有效长度是56位(第8,16,?
,64位为校验位),分组明文长度为64位,而且明文、密文与密钥存在互补关系.
(2)仅用16次循环迭代,使得相同明文会产生相同密文.
(3)存在着很好的并行结构:
产生内部密钥的左移次数存在着准对称性(即内部密钥生成过程存在并行性).DES属于传统的Feistel网络结构,在DES的基本单元中能够实施并行操作.
(4)DES有16轮加密,如果将第i轮的P置换移至下一轮后会与下一轮的E扩展操作进行合并,简化算法的基本操作.
(5)可以通过S盒与P置换合并的方法节省P置换的基本操作时间.
(四)、DES加密算法的优点:
DES加密算法的优点大致上有以下几点:
(1)DES提供高质量的数据保护,防止数据XX的泄露和未被察觉的修改;
(2)具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时便于理解掌握;
(3)DES密码体制的安全性不依赖于算法的保密,其加密的安全性仅以加密密钥的保密为基础。
(五)、DES加密算法加密目的
DES加密算法要达到的目的(通常称为DES密码算法要求)主要为以下五点:
1.提供高质量的数据保护,防止数据XX的泄露和未被察觉的修改;
2.具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;
3.DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;
4.实现经济,运行有效,并且适用于多种完全不同的应用。
5.DES的巧妙之处在于,除了密钥输入顺序之外其加密和解密的步骤完全相同。
三、DES加密算法流程分析
(一)、DES加密算法加密过程
数据加密标准过程主要包括三部分:
一个是密钥产生部分;一个是换位操作,即初始置换部分和末置换部分;另一个是乘积交换部分。
1、子密钥的产生
DES的乘积变换部分含16轮非线性变换,而每一轮非线性变换需要一个48比特的子密钥。
这16个子密钥都是有一个64比特的外部密钥(即DES的主密钥)经过移位和置换生成。
64比特主密钥是在实施加密之前由外部直接输入给DES的16个子密钥是由一个64比特的外部密钥经过移位和转换产生的。
64比特主外部密钥K被输入后首先经过奇偶校验,同时剔除K8、K16、K24、K32、K40、K48、K56、K64等奇偶校验位,得到56比特的密钥K’。
再将K’加到密码置换,
密码置换是将K‘各个位上的数码,按照特定的进行换位,置换后的56比特分别存放到两个28比特的寄存器C0和D0中。
57
49
41
33
25
17
9
1
58
50
42
34
26
18
10
2
59
51
43
35
27
19
11
3
60
52
44
36
63
55
47
39
31
23
15
7
62
54
46
38
30
22
14
6
61
53
45
37
29
21
13
5
28
20
12
4
DES密钥置换表
密钥置换有规律可循:
将1~64间的数字依次从上到下从右向左填入表格
(1),将表格
(1)消去最后一行,再将其它部分分割成表格
(2)和表格(3)。
将表格(3)翻转180︒即可。
57
49
41
33
25
17
9
1
58
50
42
34
26
18
10
2
59
51
43
35
27
19
11
3
60
52
44
36
28
20
12
4
61
53
45
37
29
21
13
5
62
54
46
38
30
22
14
6
63
55
47
39
31
23
15
7
64
56
48
40
32
24
16
8
表格
(1)
57
49
41
33
25
17
9
1
58
50
42
34
26
18
10
2
59
51
43
35
27
19
11
3
60
52
44
36
表格
(2)
28
20
12
4
61
53
45
37
29
21
13
5
62
54
46
38
30
22
14
6
63
55
47
39
31
23
15
7
表格(3)
读取的顺序是从最上面一行开始,由左至右逐行读取。
前四行共28比特。
分别置于寄存器C0第1位..第28位,后四行共28比特分别置于寄存器D0第1位...第28位。
其它16对寄存器,即(C1,D1)、(C2,D2)、(C3,D3)、(C4,D4)、(C5,D5)、(C6,D6)、(C7,D7)、(C8,D8))、(C9,D9)、(C10,D10)、(C11,D11)、(C12,D12)、(C13,D13)、(C14,D14)、(C15,D15)、(C16,D16)都有28比特。
(Ci+1,Di+1)的内容均是根据如图每轮密钥的移位表,将寄存器对)(Ci,Di)内容循环左移1至2位到,循环左移即从寄存器左边移出的比特,又补到寄存器的最右边一位上。
每轮子密钥的移位比特数
寄存器序号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
左移位数
1
1
2
2
2
2
2
2
1
2
2
2
2
2
2
1
外部密钥K的各比特在寄存器Ci的位置
Ci
寄存器Ci中的各比特的序号
Ci
1
2
3
4
5
6
7
8
9
10
11
12
13
14
0
57
49
41
33
25
17
9
1
58
50
42
34
26
18
0
1
49
41
33
25
17
9
1
58
50
42
34
26
18
10
1
2
41
33
25
17
9
1
58
50
42
34
26
18
10
2
2
3
25
17
9
1
58
50
42
34
26
18
10
2
59
51
3
4
9
1
58
50
42
34
26
18
10
2
59
51
43
35
4
5
58
50
42
34
26
18
10
2
59
51
43
35
27
19
5
6
42
34
26
18
10
2
59
51
43
35
27
19
11
3
6
7
26
18
10
2
59
51
43
35
27
19
11
3
60
52
7
8
10
2
59
51
43
35
27
19
11
3
60
52
44
36
8
9
2
59
51
43
35
27
19
11
3
60
52
44
36
57
9
10
51
43
35
27
19
11
3
60
52
44
36
57
49
41
10
11
35
27
19
11
3
60
52
44
36
57
49
41
33
25
11
12
19
11
3
60
52
44
36
57
49
41
33
25
17
9
12
13
3
60
52
44
36
57
49
41
33
25
17
9
1
58
13
14
52
44
36
57
49
41
33
25
17
9
1
58
50
42
14
15
36
57
49
41
33
25
17
9
1
58
50
42
34
26
15
16
57
49
41
33
25
17
9
1
58
50
42
34
26
18
16
Ci
寄存器Ci中的各比特的序号
Ci
15
16
17
18
19
20
21
22
23
24
25
26
27
28
0
10
2
59
51
43
35
27
19
11
3
60
52
44
36
0
1
2
59
51
43
35
27
19
11
3
60
52
44
36
57
1
2
59
51
43
35
27
19
11
3
60
52
44
36
57
49
2
3
43
35
27
19
11
3
60
52
44
36
57
49
41
33
3
4
27
19
11
3
60
52
44
36
57
49
41
33
25
17
4
5
11
3
60
52
44
36
57
49
41
33
25
17
9
1
5
6
60
52
44
36
57
49
41
33
25
17
9
1
58
50
6
7
44
36
57
49
41
33
25
17
9
1
58
50
42
34
7
8
57
49
41
33
25
17
9
1
58
50
42
34
26
18
8
9
49
41
33
25
17
9
1
58
50
42
34
26
18
10
9
10
33
25
17
9
1
58
50
42
34
26
18
10
2
59
10
11
17
9
1
58
50
42
34
26
18
10
2
59
51
43
11
12
1
58
50
42
34
26
18
10
2
59
51
43
35
27
12
13
50
42
34
26
18
10
2
59
51
43
35
27
19
11
13
14
34
26
18
10
2
59
51
43
35
27
19
11
3
60
14
15
18
10
2
59
51
43
35
27
19
11
3
60
52
44
15
16
10
2
59
51
43
35
27
19
11
3
60
52
44
36
16
外部密钥K的各比特在寄存器Di的位置
Di
寄存器Di中的各比特的序号
Di
1
2
3
4
5
6
7
8
9
10
11
12
13
14
0
63
55
47
39
31
23
15
7
62
54
46
38
30
22
0
1
55
47
39
31
23
15
7
62
54
46
38
30
22
14
1
2
47
39
31
23
15
7
62
54
46
38
30
22
14
6
2
3
31
23
15
7
62
54
46
38
30
22
14
6
61
53
3
4
15
7
62
54
46
38
30
22
14
6
61
53
45
37
4
5
62
54
46
38
30
22
14
6
61
53
45
37
29
21
5
6
46
38
30
22
14
6
61
53
45
37
29
21
13
5
6
7
30
22
14
6
61
53
45
37
29
21
13
5
28
20
7
8
14
6
61
53
45
37
29
21
13
5
28
20
12
4
8
9
6
61
53
45
37
29
21
13
5
28
20
12
4
63
9
10
53
45
37
29
21
13
5
28
20
12
4
63
55
47
10
11
37
29
21
13
5
28
20
12
4
63
55
47
39
31
11
12
21
13
5
28
20
12
4
63
55
47
39
31
23
15
12
13
5
28
20
12
4
63
55
47
39
31
23
15
7
62
13
14
20
12
4
63
55
47
39
31
23
15
7
62
54
46
14
15
4
63
55
47
39
31
23
15
7
62
54
46
38
30
15
16
63
55
47
39
31
23
15
7
62
54
46
38
30
22
16
Di
寄存器Di中的各比特的序号
Di
1
2
3
4
5
6
7
8