基于3DES算法的文档加密的设计与实现Word下载.docx
《基于3DES算法的文档加密的设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《基于3DES算法的文档加密的设计与实现Word下载.docx(35页珍藏版)》请在冰豆网上搜索。
Associetyintotheinformationage,theopennessoftheInternet,networkresourcesharing,networkoperatingsystemvulnerabilities,networksystemdesignflaws,networkopennessandmaliciousattacks,etc.,gavenetworkbringsinsecurityhidden,computerandinformationsecurityissueswillbecomemoreprominent,networks,andconnectedtothenetworkofinformationsystemsfaceavarietyofcomplexandserioussecuritythreat.Therefore,howtoprotectthedataandinformationsecurityhasbecomeanissueofconcern.
3DES(TripleDES)isatripledataencryptionalgorithmisDEStoAESencryptionalgorithmtransition.In1999,theU.S.NISTthe3DESencryptionstandardsspecifiedforthetransition.IthasahigherthanDESsecurity,toovercometheshortkeylengthDEScausedduetoviolentattacks.
Inthispaper,3DESdataencryptionalgorithmisfullydescribed,analysisofthealgorithmdesign.Andbasedon3DESdataencryptionalgorithm,using.NETdevelopmenttechniques,toachievethedocumentencryptionandencryption,soastosafeguardthesecurityofdataanddocumentsprovidedsupport.
Thekeyword:
InformationSecurity;
Encryption;
Cryptography;
3DESencryptionalgorithm
第一章引言
引言内容主要介绍了课题研究背景及意义、课题研究目的以及该论文的组织结构。
1.1课题研究背景及意义
密码学是研究信息加密、解密及其变换的一门新兴的交叉学科。
随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。
由于密码系统的各种性能主要由密码算法所决定,不同的算法决定了不同的密码体制,而不同的密码体制又有着不同的优缺点。
有的密码算法高速简便,但加解密密钥相同,密钥管理困难;
有的密码算法密钥管理方便、安全,但计算开销大、处理速度慢。
密码是实现秘密通讯的主要手段,是隐蔽语言、文字、图像的特种符号。
数据加密、数字签名、身份验证等技术应运而生,特别是数据加密技术给网络中数据传输安全带来了希望。
加密技术是实现信息安全的核心技术,当然每种加密算法都是以数学原理为基础的。
70年代后期,美国的数据加密标准DES(DataEncryptionAlgorithm)和公开密钥密码体制的出现成为近代密码学发展史上的两个重要里程碑。
1971年美国学者塔奇曼和麦耶根据信息论创始人香农提出的“多重加密有效性理论”创立的,后于1977年由美国国家标准局颁布的数据加密标准。
DES从发展至今经历了漫长的过程,经过时间的考验,足以证明DES适应了人们的要求,满足了大部分人的需求,也说明了DES存在的价值,以及它的功能所在。
DES的加密速度很快,这是其优点之一。
DES是目前为止使用最广泛的加密体制,它以很小的代价实现了信息安全的保护。
对每一种安全性的保护,我们必须采用综合性的考虑,采用最佳的算法来实现。
3DES算法是在DES算法的基础上,更能够确保数据的安全性。
现在网络信息安全面临的诸多问题。
由于现在大部分都在使用TCP/IP协议,这个协议有一定的缺陷,因为人们在设计这个协议的时候,更重要的是追求它的效率,而忽视了它的安全性,有些传输过程中没有加密,导致网络很容易被攻击,因此我们经常会提到黑客攻击。
现在黑客攻击的形式也是多种多样,近几年来黑客攻击的越来越频繁,我们更应该重视信息安全。
此外还有计算机病毒,它具有潜伏性、破坏性、传染性和隐蔽性,使计算机无法正常工作。
这些都是网络信息安全存在的诸多隐患,我们必须小心戒备,上网的时候应该有防范的意识。
因此,信息安全对我们越来越重要。
1.2课题研究目的
网络的使用越来越广泛,遍及到我们生活中的每个角落,现在很多工作都离不开计算机,在我们体会到计算机网络给我们带来方便的同时,也给我们增加了许多的负担,每件事物都是一把双刃剑,我们在使用电脑的同时会遇到各种各样的问题,比如说电脑中毒,影响了我们正常的办公,也有可能损失一些重要的信息内容,对公司或企业造成一定的经济损失。
小到我们个人的信息安全,大到我们的国家、民族的利益,我们应该予以重视。
信息安全是不容忽视的问题。
我想通过此软件的开发,可以为文档加密带来方便,通过低成本,来获得办公人员的方便,提高信息安全的安全度。
通过本系统的完成,一是学习到了许多的知识,对我们的知识能力进行全面的考核,通过查找信息,教会了我们学会如何培养自己的自学能力;
二是把我们的知识综合运用起来进行实践,使知识与现实生活紧密结合。
1.3论文的组织结构
本文的组织结构如下:
第1章介绍了绪论,主要介绍了课题研究背景及意义、课题研究目的;
第2章介绍了信息安全的相关概念;
第3章介绍了本系统涉及到的系统环境及相关算法;
第4章是系统分析;
第5章介绍了本系统详尽设计与系统实施;
第6章是进行了系统测试演示;
第7章是结束语,致谢以及参考文献。
第二章信息安全的相关概念
本章主要介绍本论文涉及到的相关概念,简单的提及其优缺点,这样易于阅读理解。
主要介绍的是信息安全、对称加密、非对称加密、分组密码、数字签名。
2.1信息安全
信息安全是指信息网络的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,信息服务不中断。
信息安全主要包括以下五方面的内容,即需保证信息的保密性、真实性、完整性、未授权拷贝和所寄生系统的安全性。
2.1.1信息安全发展史
随着计算机的迅猛发展,信息安全的范围也有显著的变化。
计算机安全是在1969年由美国兰德公司给美国国防部的报告中提出的,在当时主要是指的物理安全。
到了七八十年代,主要是指软件和信息内容等的安全。
到了八十年代后期信息安全一词广泛采用,人们对安全管理越来越重视,很多人为计算机安全方面的发展做出了突出贡献,奉献了自己的青春。
安全问题是持续发展的,一定要动态地看待安全问题。
中国计算机安全和网络安全的发展分为三个阶段:
第一阶段:
80年代末之前,是中国计算机安全事业的起步。
在当时并没有什么相关的法律法规;
第二个阶段:
80年代末至90年代末,计算机相关的应用越来越成熟,很多技术越来越规范,计算机也受到了大多数人的喜爱,许多国家也开始对计算机安全重视,包括我们国家也慢慢的开始起步。
在1994年颁布了“中华人民共和国计算机信息系统安全保护条例”,它具有深远的意义,因为它是我国第一个计算机安全方面的法律。
不管是国家还是一些企业部门,都对信息安全越来越重视,促进了信息安全的发展。
第三个阶段:
90年代末至今,中国安全进入了快速发展阶段。
国家在信息安全的法律、规章、原则、方针上都有对应措施发布了一系列文件。
随着时间的推移,我国信息安全技术有了显著的提高,目前,我国现况是以政府为主导,企事业单位共同发展的模式,发展势头迅猛。
当然,因为发展时间相对较短,依然还是存在在许多的问题,相信我们有这个能力去克服。
信息安全实现的目标:
(1)真实性:
能够对信息进行识别真伪;
(2)保密性:
确保信息不被泄露;
(3)完整性:
得到的信息必须完整;
(4)可用性:
用户能够使用信息;
(5)不可抵赖性:
用户必须对其行为进行负责;
(6)可控制性:
用户必须能够控制信息的传播。
2.1.2信息安全发展前景展望:
一开始只是国家军事机密比较重视信息安全,因为这关系到一个民族的整体利益,随着Internet的普及,现在越来越多的公司企业开始重视信息安全,很多大企业都有自己的团队,专门负责信息安全,人们的意识普遍增强。
近年来,计算机发展迅速,当然随着计算机的发展,信息安全会越来越被大家所重视,信息安全具有广阔的发展前景,但是信息安全发展时间较短,所以信息技术尚未成熟,还需要一辈辈人的不断努力。
2.2密码体制
密码体制的基本类型可以分为四种:
(1)错乱:
按照规定的图形和线路,改变明文字母或数码等的位置成为密文;
(2)代替:
用一个或多个代替表将明文字母或数码等代替为密文;
(3)密本:
用预先编定的字母或数字密码组,代替一定的词组单词等变明文为密文;
(4)加乱:
用有限元素组成的一串序列作为乱数,按规定的算法,同明文序列相结合变成密文。
数据加密技术的技术实现分为硬件和软件两个方面。
在网络应用中一般采取两种加密形式:
对称密钥和公开密钥。
下面简要介绍一下对称加密和非对称加密。
2.2.1对称加密
对称加密又称私钥加密,即信息的发送方和接收方用同一个密钥去加密和解密数据。
未进行处理的消息成为明文;
用某种方法伪装消息以隐藏其内容的过程称为加密;
反之,则称为解密;
加密后的消息称为密文。
对称加密算法的最大优势是加密和解密速度快,适合于对大数据量进行加密,但密钥管理困难。
对称性带来的一个很大的好处在于DES的加密和解密可以用完全相同的硬件来实现。
如果进行通信的双方能够确保专用密钥在密钥交换阶段未曾泄露,那么机密性和报文完整性就可以通过这种加密方法加密机密信息、随报文一起发送报文摘要或报文散列值来实现。
对称密码简单示意图如下:
图1对称密码加密解密示意图
对称加密优缺点总结:
(1)密钥只有一个,因此必须保证密钥的保密性;
(2)加密速度快,常用于加密大量数据;
(3)安全性取决于密钥管理和密钥算法;
(4)公开源代码;
(5)计算量较小;
(6)密钥管理困难;
(7)对称加密算法不能实现签名,签名只能用非对称加密算法。
。
目前比较常用的算法是DES、三重DES、AES(AdvancedEncryptionStandard)。
DES数据加密标准,速度较快,适用于加密大量数据。
而且,DES算法的安全性很高,就目前的技术来看,只有一种方法可以破解这种算法——穷举搜索法。
3DES基于DES,对一块数据用三个不同的密钥进行三次加密,加密更高。
AES高级加密标准,速度快,安全级别高。
2.2.2非对称加密
20世纪70年代后期提出的非对称密码术是密码术的一个新创造。
它解决了长期存在的安全交换密钥和允许自发安全传递消息问题,然而这些问题困扰了发达国家几个世纪。
非对称密码术应用了模运算和简单数论,这样就能构造两个不同的密钥。
1976年,美国斯坦福大学的WhitfieldDiffie和MartinE.Hellman发表《NewDirectionsinCryptography》一文发表后,非对称密码术才开始出现。
目前流行的是1977年由MIT教授RonaldL.Rivest,AdiShamir和LeonardM.Adleman共同开发的。
非对称加密又称公钥加密,使用一对密钥来分别完成加密和解密操作,其中一个公开发布(即公钥),另一个由用户自己秘密保存(即私钥),采用的公钥和私钥是不同的。
公钥加密算法加密密钥是公开的,解密密钥是保密的。
信息交换的过程是:
甲方生成一对密钥并将其中的一把作为公钥向其他交易方公开,得到该公钥的乙方使用该密钥对信息进行加密后再发送给甲方,甲方再用自己保存的私钥对加密信息进行解密。
非对称加密算法优缺点总结:
(1)密钥成对,一个是公钥,一个是私钥。
私钥需秘密保管;
公钥可以公开,无需担心;
(2)数字签名技术就是由公钥密码体制完成;
(3)密钥长度可变,为了避免攻击,越大越好;
(4)假设服务器认为某一实体的CA可靠,即可安全通信,不需要传递密钥;
(5)处理速度较慢;
(6)存在着许多不安全因素,密钥太长,密文扩展严重。
常用的非对称加密算法:
RSA、ECC(ErrorCorrectingCode)。
RSA支持变长密钥的公共密钥算法,需要加密文件块的长度是可变的。
ECC椭圆曲线编码密码学。
2.3分组密码
分组密码的研究是在20世纪70年代,发展至今,已经有很大的进步,也取得了一定的研究成果。
我们研究的DES算法和3DES算法都是迭代的分组密码算法。
分组密码将明文编码表示成数字序列,划分为等长的组,然后在用密钥进行加密,表示为等长的数字序列。
分组密码安全性的高低主要受两个方面的影响,扩散和扰乱。
(1)扩散是将让明文中的单个数字影响密文中的多个数字,增加了安全性。
(2)扰乱是指让密钥与密文之间的关系变得更加复杂,这样不容易被攻击,增加了安全性。
扰乱可以通过各种代换算法实现。
分组密码有以下优点:
(1)易于标准化;
(2)明文信息有良好的扩展性;
(3)分组密码容易实现同步;
(4)较强的适用性。
分组密码有以下缺点:
(1)加密速度慢;
(2)错误扩散和传播;
(3)其安全性很难被证明。
2.4数字签名
数字签名是通过公钥密码体制实现的,数字签名通常包括签名和验证。
数字签名就是信息发送者对信息真实性的证明。
数字签名的功能:
(1)信息的完整性;
(2)发送者的身份认证;
(3)防止交易过程中有抵赖发生。
数字签名是发送方先对明文通过HASH函数得到信息摘要,然后对信息摘要用私钥加密,把信息(里面包含原文和公钥)传给接收方,接收方用发送方发送的公钥把接收到的信息进行解密,然后用HASH函数对收到的原文产生摘要信息,与解密后的摘要信息进行对比。
相同表明信息没有被修改,否则,被修改过。
2.8本章小结
通过本章的介绍,我们会初步了解密码学中相关概念,重点讲述了对称加密、非对称加密以及分组密码,而且有些地方我也整理了其优缺点,这样,后面的阅读会更好的去理解。
第三章本系统涉及到的系统环境及相关算法
本章主要介绍了设计该算法使用到的系统环境VisualStudio2010和DES算法、3DES算法。
3.1VisualStudio2010简介
首先介绍一下VisualStudio2010的发展历史。
计算机的发展可谓是迅速到我们无法想象。
个人计算机真正进入图形化界面是在1992年4月,由微软创造,这是历史性的突破,从此计算机才被广泛应用。
当时使用的的是C++,在此基础上引入了MFC,VC++1.0由此产生,1992年正式发布。
正是因为VC1.0的出现,也标志着WindowsIDE的正式出现,也就是VS的原型。
1998年,微软又发布了VS6.0,2002年.NET出现,微软又发布了VS.NET,由于.NET框架的出现,一种新的语言又诞生了——C#,它是编写.NET框架的语言。
C#的曾用名是COOL,微软Delphi语言的设计者Hejlsberg从98年12月开始了COOL项目,这是一款专门为CLR设计的纯面向对象的语言,历时半年有余,1999年7月份,微软完成了COOL语言的一个内部版本。
直到2000年2月,COOL被正式更名为C#。
C#有如下的特点:
(1)C#是由C和C++衍生出来的面向对象的编程语言。
它继承了C和C++强大功的能,同时又去掉了一些它们的复杂特性。
(2)C#综合了VB简单的可视化操作和C++的高运行效率,成为.NET开发者的首选语言。
(3)C#与C/C++具有极大的相似性,开发者可以很快学会C#。
(4)C#使得C++程序员可以高效的开发程序,且因可调用由C/C++编写的本机原生函数。
(5)使用简单的C#语言结构,组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。
同时C#有如下缺点:
(1)在一些版本较旧的Windows平台上,无法运行,因为C#程序需要.NET运行库作为基础;
(2)C#需要软件开发商的支持;
(3)C#只能运行在Windows上。
相对于C++,C#没有带来任何新东西,在.NET运行库C++中也可以使用,没有要换的绝对的理由。
VisualStudio是微软公司推出的开发环境,也是目前最流行的Windows平台应用程序开发环境。
目前VS有五个版本,分别是专业版、高级版、旗舰版、学习版和测试版。
各个版本不在一一讲述,每个版本都有其各自的优缺点。
VisualStudio2010有如下的特点:
(1)升级的软件测试功能及工具;
(2)搭配Windows7,Silverlight4与Office,发挥多核并行运算威力;
(3)实践Agile/Scrum开发方法;
(4)支持WindowsAzure;
(5)助力移动与嵌入式装置开发;
(6)支持多种操作系统,被广泛应用;
(7)支持最新C++标准,提高了程序员开发效率;
(8)具有更好的外观;
(9)多显示器支持;
(10)IDE增强;
(11)支持office办公软件。
3.2DES算法
3.2.1DES算法简介
DES算法是IBM公司于1975年研究成功并公开发表的,在1977年7月15日得到美国国家标准局的正式许可。
DES本质上是一种叠加交换的算法。
适用于加密信息内容比较长的场合。
DES算法的优点:
(1)具有高的安全性。
DES算法具有极高安全性,用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。
DES加密算法密钥只用到了64位中的56位,而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。
随着硬件技术和Internet的发展,其破解的可能性越来越大,而且,所需要的时间越来越少。
(2)密钥较短,密钥分配困难,加密处理简单,加解密速度快,适用于加密大量数据的场合。
DES算法的缺点:
分组比较短、密钥太短、密码生命周期短、运算速度较慢、密钥的长度是固定。
DES密码算法要求:
(1)提供高质量的数据保密;
(2)具有相当高的复杂性,使得破译的开销越大越好;
(3)便于理解和掌握DES密码算法的安全性不依赖于算法的保密。
3.2.2DES加密原理
DES算法的明文分组和输出密文都是64位,密钥的有效位数是56位,加上奇偶校验位共64位。
其中,奇偶校验位是第8位、第16位、第24位、第32位、第40位、第48位、第56位和第64位。
DES是迭代的分组密码算法,使用称为Feistel的技术,它将加密的文本块分成两半。
因为DES算法对数据进行加密和解密的时候,把明文一段一段的进行加密和解密,每一段的长度是8个字节,不足8个字节的一段要进行补位,然后将数据连在一起。
使用子密钥对其中一半应用循环功能,然后将输出结果与另一半进行“异或”运算,然后交换这两半,重复上面的步骤,特殊的是最后一个循环不交换。
DES算法总共使用了16个循环,使用了异或,置换,代换,移位操作四种基本运算。
单次DES循环示意图如下:
来自前一次循环的数据
图2单次DES算法循环图
16次DES循环:
图316次DES算法循环示意图
(1)初始置换过程
初始置换是将输入的64位数据块进行重新组合,并把输出分为L0,R0两部分,这两个部分是均等的,所以每部分长度是32位。
初始置换的示意图如下:
表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
15
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
7
初始置换的过程是这样的,首先,将输入的第58位置换到第1位,第50位置换到第2位,第42位置换到第3位,上面表格中置换的顺序非常的清楚明了,置换完成之后,则可以确定L0和R0的值了,前面32位是L0,后面32位是R0,这就是置换后的结果。
(2)逆置换过程
上述的初始置换是个迭代的过程,总共需要16次的置换才能够得到L16和R16,将结果作为密文的输出。
表2逆置换
16