毕设基于DES的文件加密工具课件资料.docx
- 文档编号:8619616
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:55
- 大小:552.45KB
毕设基于DES的文件加密工具课件资料.docx
《毕设基于DES的文件加密工具课件资料.docx》由会员分享,可在线阅读,更多相关《毕设基于DES的文件加密工具课件资料.docx(55页珍藏版)》请在冰豆网上搜索。
毕设基于DES的文件加密工具课件资料
哈尔滨理工大学
毕业设计
题目:
基于DES的文件加密工具
院、系:
计算机科学与技术学院计算机系
姓名:
王东昊
指导教师:
边境
系主任:
林克正
2016年6月20日
如需源码请加QQ:
794580316
哈尔滨理工大学毕业设计(论文)评语
学生姓名:
王东昊学号:
1204010419
学院:
计算机科学与技术专业:
计算机科学与技术
任务起止时间:
2016年3月7日至2016年6月20日
毕业设计(论文)题目:
基于DES的文件加密工具
指导教师对毕业设计(论文)的评语:
本论文选题有很强的应用价值,文献材料收集详实,综合运用了所学知识解决问题,所得数据合理,结论正确。
论文格式正确,书写规范,条理清晰,语言流畅。
今后要进一步总结经验,以便提高技术水平。
论文能按时交稿,经过认真修改,已经达到本科论文的要求。
指导教师签名:
指导教师职称:
评阅教师对毕业设计(论文)的评语:
评阅教师签名:
评阅教师职称:
答辩委员会对毕业设计(论文)的评语:
答辩委员会评定,该生毕业设计(论文)成绩为:
答辩委员会主席签名:
职称:
年月日
教务处制表
哈尔滨理工大学毕业设计(论文)任务书
学生姓名:
王东昊学号:
1204010419
学院:
计算机科学与技术专业:
计算机科学与技术
任务起止时间:
2016年3月7日至2016年6月20日
毕业设计(论文)题目:
基于DES的文件加密工具
毕业设计工作内容:
1.探究文件加密的背景及意义
2.考察文件加密技术在海内外的发展情况
3.软件基本功能的规划和用户界面的设计
4.功能的实现
5.测试阶段
资料:
1张宇.计算机网络安全[J],电脑知识与技术,2010,06(6):
4416-4417
2张建勋,邱宗国.在IE浏览器上实现数字签名系统[J].产业与科技论坛,2010,09:
11
3谷利泽.现代密码学[M].第一版.北京邮电大学出版社2012:
6
4黄光明.基于DES_RSA加密算法的改进与实现[D].东北师范大学,2013:
15
5钟文琦,刘雪,商艳红,邹建成.一种改进DES的数字图像加密方法[J]北方工业大学学报,2005-03-30:
3
指导教师意见:
签名:
年月日
系主任意见:
签名:
年月日
基于DES算法的文件加密工具
摘要
随着信息社会的到来,人们享受信息所带来的巨大的利益的同时,同时面临着信息安全的严峻考验。
信息安全已成为世界性的现实问题,信息安全问题已经严重威胁到国家的政治、军事、经济、文化、意识形态等领域,同时,信息安全问题也成为人们能否保护个人隐私之关键。
信息安全是保证社会稳定、安全的必要前提条件。
本文是一篇议论了关于常用的文件加密解密算法的毕业设计论文,本文将详细的讲述针对文本和文件的加密解密算法实现的过程中所使用的方法、技术。
针对公钥密码和私钥密码两种体制进行了分析和研究,并对公钥密码和私钥密码两种体制的代表DES算法和RSA算法进行了研究和比较,最终选择了使用DES加密算法进行程序设计。
关键词 C++;MFC;文件加密;解密
FileEncryptionToolbasedonDES
Abstract
Withthecomingofinformationsociety,peopleenjoythegreatbenefitsbroughtbytheinformationatthesametime,alsofacesaseveretestofinformationsecurity.Informationsecurityhasbecomearealisticproblemintheworld,informationsecurityhasbeenaseriousthreattothecountry'spolitical,military,economic,cultural,ideological,andotherfields,atthesametime,theinformationsecurityproblemalsobecomesthekeytowhetherpeoplecanprotectpersonalprivacy.Informationsecurityisanecessaryprerequisiteforsocialstabilityandsecurity.
Thisarticleisadiscussionaboutthecommonlyusedfileencryptiongraduationdesignthesisdecryptionalgorithm,thispaperwilldetailabouttextandfileencryptionintheprocessofdecryptionalgorithmusedbythemethodandtechnology.Fortheprivatekeyandpublickeypasswordsaretwokindsofsystemareanalyzedandtheresearch,andthepublickeycryptographyandrepresentativesoftheprivatekeypasswordsystemoftwokindsofDESalgorithmandRSAalgorithmarestudiedandcompared,finallychosetousingDESencryptionalgorithmforprogramdesign.
Keywords C++,MFC,FileEncryption,FileDecryption
目录
摘要
Abstract
第1章绪论1
1.1课题背景1
1.1.1研究意义1
1.1.2国内外研究现状分析1
1.1.3论文研究的主要内容3
第2章DES加密实现过程5
2.1基本流程图5
2.1.1初始置换IP5
2.1.2逆置换IP^-16
2.1.3DES算法迭代过程6
2.1.4子密钥的生成11
2.1.5DES算法解密过程12
2.2本章小结12
第3章DES算法的安全性分析13
3.1DES的密钥的长度和迭代次数13
3.2DES加密算法的应用误区14
3.3DES加密算法安全性统计15
3.4本章小结15
第4章主要模块设计与实现16
4.1用户界面实现16
4.2模块实现17
4.2.1字符串加密实现17
4.2.2字符串解密实现19
4.2.3清空内容功能21
4.2.4文件加密实现24
4.2.5文件解密实现27
4.3算法实现29
4.3.1Convert_Other_Format_To_Cipher_Text29
4.3.2Convert_Cipher_Text_To_Other_Format31
4.4本章小结31
结论32
致谢33
参考文献34
附录A35
附录B41
附录C45
第1章绪论
1.1课题背景
信息安全领域是一个综合性的交叉学科领域,其内容涉及到包括数学、密码学、通信、控制、计算机科学、人工智能、人文科学、安全工程等诸多学科,是近年来迅速发展的热门学科领域。
信息对抗和网络安全是保证信息安全的基础,有关它的研究和发展又将刺激、推动并促进相关学科的学术研究与发展。
至今,密码技术是保证信息安全性最有效的方法,密码技术是信息安全的核心技术。
通过对数据进行加密操作,人们可以有效地保护文件在传输过程中内容不被泄漏,同时还可以检测被传送的文件数据是否完整。
进一步,密码技术可以用于数字签名、身份认证和信息鉴定等领域,这些应用对于资源的存取控制是必须而且十分有效的。
信息安全产品从应用种类上可以分为防病毒、防火墙、密码、防攻击、访问控制和认证类产品。
相较于防病毒软件和防火墙软件来讲,基于加密技术的密码类产品和认证类产品的市场份额相对较小,但是随着政府、金融和电信等行业的信息化建设对于有关网络安全整体解决方案需求的逐年增加,将会有极大的增长。
1.1.1研究意义
数据加密(DataEncryption)是将待加密明文(PlainText)经过加密密钥(EncryptionKey)和加密函数(EncryptionFunction),变成完全无意义的字符串密文(CipherText);文件接收方密文经过解密函数(DecryptionFunction)、解密钥匙(DecryptionKey)来还原成明文。
加密技术是网络安全技术的基石
1.1.2国内外研究现状分析
加密算法分为对称加密算法、非对称加密算法、散列算法。
1.1.2.1对称加密算法
对称加密算法普遍使用相对较小的密钥,一般长度小于256bit。
因为密钥长度越大,加密强度越强,同时加密过程和解密的过程就会变得十分缓慢。
如果你只使用1bit作为密钥,那黑客们可以先试着用0来解密,不成功的话就再使用1来解密,解密时间就会变得很短;但如果你的密钥长度为128bit,黑客们有可能永远也无法完成破解任务,相对的加密和解密的时间也会无限加长。
,NITS(AmericanNationalInstituteofStandardsandTechnology)选择了的算法作为全新的高级加密标准AES(AdvancedEncryptionStandard),显然对称加密的最大的弊端是密钥的管理配工作,换言之,怎样将密钥相对安全的发送到将要解密你消息的那个人的手中是一个十分严峻的问题。
在密钥发送的过程中,密钥将会有极大的可能被黑客拦截利用。
现实生活中常用的方法是将对称加密使用的密钥进行非对称加密操作,然后传送给需要使用的人。
1.1.2.2非对称加密算法
非对称加密算法是美国学者Dime和Henman于1976年提出的,这种算法意在解决信息公开传送过程中的密钥管理的问题,他们提出了一种全新的安全密钥交换协议,该协议允许人们在相对不安全的媒体上通讯的双方进行信息交换,并安全地生成一致的密钥,这就是人们常说的“公钥系统”。
相较于“对称加密算法”这种方法也被称为“非对称加密算法”。
非对称加密给数据加密与数据解密过程提供了一个非常安全的方法,因为它使用了一对不对称(不相同)的密钥,称之为公共密钥(PublicKey)和私有密钥(PrivateKey)。
私有密钥只能由文件加密的一方进行保管,其内容不允许外泄,而公共密钥则可以随意发送给任何请求它的用户。
算法使用这对密钥中的任一个进行加密,然而解密则需要使用另一个密钥。
举个例子,当你向银行请求公共密钥,此时银行会将公共密钥发送给你,随即你便可以使用公共密钥对消息进行加密,只有私有密钥的持有人--银行可以对你的消息进行解密操作。
该算法与对称加密算法不同点是,银行并不会将私有密钥通过网络传播给任何人,因此这种算法的安全性会大大提高。
目前最为常见的非对称加密算法是RSA,该算法是Rivest,Shamir,和Adleman三人于1978年发明,他们那时都是在麻省理工就学。
。
以下是非对称加密解密过程
1.客户想在银行的网站进行交易,此时他的浏览器将会生成一个随即字符串作为对称密钥。
2.客户的浏览器向银行请求公共密钥。
3.银行将公公共密钥发送给用户的浏览器。
4.客户的浏览器会使用银行的公共密钥将自己的对称密钥加密。
5.客户的浏览器会将加密之后的对称密钥直接发送给银行。
6.银行使用私有密钥解密最终得到客户的浏览器发出的对称密钥。
7.客户与银行之间可用对称密钥来对通讯的内容进行加密与解密操作。
1.1.2.3散列算法
在数据安全技术中,我们经常需要验证数据的完整性,散列函数也叫哈希(Hash)函数,该函数提供了如下服务,它对不同长度的输入数据可以产生固定长度的输出。
此输出常被称为原输入消息的“散列”或者“消息摘要”(Messagedigest)。
一个相对安全的Hash函数H必须具有以下6种属性:
1.H可以应用到大小不同的数据上。
2.H能够生成固定大小的输出。
3.对于任意给定的字符串x,要求H(x)的计算过程相对简单。
4.任意给定的代码h,要发现满足条件H(x)=h的x在计算上是难以实现的。
5.任意给定的块x,要发现满足条件H(y)=H(x)而y=x在计算上是不能实现的。
6.想要寻找满足H(x)=H(y)的(x,y)对在计算上是不可能的
1.1.3论文研究的主要内容
与非对称加密算法相比,对称加密算法的使用场合很广泛,而DES加密算法就是对称加密算法,DES采用了64位的和56位的密钥长度,它将64位的输入数据经过一系列得到64位的输出。
解密过程则使用相同的和完全相同的密钥。
DES的分组密钥长度为64位,由于第n*8(n=1,2,…8)是校验位,因此实际加密的长度仅为56位,密钥空间含2^56个密钥。
上角标从一开始
DES算法利用多次组合替代算法和换位算法,分散和错乱的相互作用,把明文编制成密码强度很高的密文,它的加密和解密用的是同一算法。
DES算法的本质是一种乘积密码,因其在算法的结构上主要使用置换、替代、模二相加等函数进行操作,通过若干轮函数迭代的方法进行计算和工作。
DES算法同样会使用到技术,该技术主要有初始置换和余初始置换相反的逆初始置换这两种类型。
DES算法之所以使用运算,目的就是将原始明文中的格式以及数据全部打乱顺序重排。
在数据格式这一方面,会将原有的32bit数据格式,扩展为48bit数据格式,为了满足S盒对数据的长度与格式的规范要求。
一组数据信息经过这一系列的非线性变换之后,就很难从中推导出其原本的计算的过程和原本使用的非线性组合;但如果这组数据信息使用的是线性变换,计算就会相对容易的多。
在DES算法中,使用非线性变换的计算过程仅有S盒阶段,其他的数据计算与变换过程都属于线性变换,因此DES算法是否安全的关键是在于S盒的安全强度多高。
除此之外,S盒与置换IP通过相互配合,就形成了极强的抗差分攻击能力与抗线性攻击能力,相比之下,抗差分攻击能力会相对更强一点。
DES加密算法是一种分组式加密机制,将明文分成若干个组,然后对各个组加密,形成各自不相干的密文,最后把所有分组的密文进行合并操作,形成最终的密文。
DES加密算法是对各个分组进行加密,所以输入的参数分别为分组明文和密钥,明文分组需要置换和迭代操作,密钥则需要置换和循环移位。
在每一个初始置换IP中,将根据一张数据量为8*8的固定顺序置换表,用于将64bit的明文打乱、混杂,进而提高数据加密的强度;之后再经过16次的迭代运算操作,在这些迭代运算中,我们会运用到子密钥;将各组形成的初始密文通过初始逆置换IP^-1,最后可以得到分组的最终密文。
第2章DES加密实现过程
2.1基本流程图
加密过程为图2-1所示的DES算法实现基本流程图:
图2-1DES算法实现基本流程图
2.1.1初始置换IP
初始置换,是整个数据加密过程的第一步,将64bit的明文按照表2-1置换。
把需要加密的数据块平均分成固定大小为64bit的数据块,当数据块长度不足64bit时会用其他适当的方式填补至64bit。
在进行第一轮运算之前,要对数据块作初始置换(IP)操作,初始置换就是简单的将比特位进行置换,假设现在有1bit的信息块m,m=m1…m64,则IP(m)=m58…m7。
此时初始置换会将输入的64位明文平均分成8个数组,每一组代表8bit,从1到64为所有明文数据块编号。
IP的置换规则如表2-1所示:
表2-1初始置换表
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
置换方式为第58bit置换到第1bit,第50bit置换到第2bit,以此类推第7bit置换到第64bit。
2.1.2逆置换IP^-1
当对第一位初始置换操作之后,原第一位的位置处于第40位。
所谓的逆置换就是将初始置换的操作逆向处理,然后将40bit换回到1bit。
逆置换规则如表2-2所示:
表2-2DES逆置换IP^-1表
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的初始置换IP操作和逆置换IP^-1操作在密码学上其实是没有意义的,在置换前后,位置是一定的,有着一一对应的关系。
它唯一的作用就是将原本输入的有顺序的ASCII码打乱为无序的,然后把校验位转换为IP输出的1个字节。
2.1.3DES算法迭代过程
迭代过程的流程图如图2-2所示:
图2-2DES迭代过程流程图
图中的Li-1步和Ri-1步分别代表第i-1次迭代结果,并且分成左右个部分,各占用32bit空间。
即Li=Ri-1,Ri=Li-1 f(Ri-1,ki)。
各轮密钥占用48bit空间,则函数F(R,K)的计算方式如图2-2所示。
轮输入右半部分R长度为32bit,右半部分R首先扩展为48bit大小,扩展方式是由表2-3定义的置换,其中将R的每个16bit重复一次。
扩展后,得到48bit再次与子密钥异或操作,通过S盒,则可以产生大小为32bit的字符串输出。
该输出经由表2.3定义的置换过程,结果即为函数F(R,K)的输出。
迭代过程置换表如表2-3:
表2-3DES扩展置换
32
1
2
3
4
5
4
5
6
7
8
9
8
9
10
11
12
13
12
13
14
15
16
17
16
17
18
19
20
21
20
21
22
23
24
25
24
25
26
27
28
29
28
29
30
31
32
1
是由64比特的初始密钥(亦称种子密钥)导出的第i轮子密钥,是48bit决定DES算法功能的关键点在于f(Ri-1,ki)函数的功能,起决定性因素的又是S-盒。
其中F函数的输出长度为32bit。
图2.3F函数计算过程图
E(R)过程为计算B=E(R)+K,对B进行S代换,代换过程由8个盒构成,就是我们说的S盒。
每个S盒有的6个输入与4个输出,将B分为8组,每组6位,B=B1……B8。
其中作为S-盒的第j个输入,其输出为,C=C1……C8就是S代换的输出,所以S代换是48bit输入,32bit输出的选择压缩运算,将结果C再进行一个P置换如图2-3所示,即可得到F(R,K)。
其中,扩展运算E与P置换的主要作用就是为了增加加密算法的可扩散效果。
S盒是整套DES加密算法中唯一的非线性置换模块,它决定了整个加密算法的安全性。
它的设计原则与设计过程一直未被公布出来。
S盒的设计如下表2-4所示:
表2-4S盒
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
0
15
7
4
14
2
13
1
10
6
12
11
9
7
3
8
4
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
15
12
8
2
4
9
1
7
5
11
3
14
10
0
6
13
a)S1
15
1
8
14
6
11
3
4
9
7
2
13
12
0
5
10
3
13
4
7
15
2
8
14
12
0
1
10
6
9
11
5
0
14
7
11
10
4
13
1
5
8
12
6
9
3
2
15
13
8
10
1
3
15
4
2
11
6
7
12
0
5
14
9
b)S2
10
0
9
14
6
3
15
5
1
13
12
7
1
4
2
8
13
7
0
9
3
4
6
10
2
8
5
14
12
11
15
1
13
6
4
9
8
15
3
0
11
1
2
12
5
10
14
7
1
10
13
0
6
9
8
7
4
15
14
3
1
5
2
12
c)S3
7
13
14
3
0
6
9
10
1
2
8
5
11
12
5
15
13
8
11
5
6
15
0
3
4
7
2
12
1
10
14
9
10
6
9
0
12
11
7
13
15
1
3
14
5
2
8
4
3
15
0
6
10
1
13
8
9
4
5
11
12
7
2
14
d)S4
2
12
4
1
7
10
11
6
8
5
3
15
13
0
14
9
14
11
2
12
4
7
13
1
5
0
15
10
3
9
8
6
4
2
1
11
10
13
7
8
15
9
12
5
6
3
0
14
11
8
12
7
1
14
2
13
6
15
0
9
10
4
5
3
e)S5
12
1
10
15
9
2
6
8
0
13
3
4
14
7
5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DES 文件 加密 工具 课件 资料