论文(张巍)
- 格式:doc
- 大小:191.00 KB
- 文档页数:29
地方生学员毕业设计报告报告题目:基于VC++的DES 算法的实现学员姓名:张 巍学员队别:四系二十七队专业名称:网络工程指导教员:李媛丽二〇一一年四月十二日中国人民 解 放 军电子工程学院摘要本毕业设计研究的是DES加解密算法的实现。
DES算法是由IBM公司研制的一种对称加密算法,具有速度快,执行效率高等优点。
在POS、ATM、磁卡、智能卡以及信息安全领域得到广泛应用。
本文介绍了DES算法的相关背景,阐述了DES算法的基本原理,并在此基础上详细讨论了DES算法的实现方法和流程。
同时,采用VC++软件开发平台,结合面向对象方法,通过编程实现了基于DES算法的加解密功能。
关键词:DES;保密通信;多线程AbstractThe graduation project is the study of DES encryption and decryption algorithm. DES algorithm developed by IBM, a symmetric encryption algorithm, has the speed, the implementation efficiency. In the POS, ATM, magnetic cards, smart cards, and is widely used in information security.This article describes the background of the DES algorithm, described the basic principles of DES algorithm, and on this basis a detailed discussion on the DES algorithm implementation methods and processes. At the same time, using VC + + software development platform, combined with object-oriented method, by programming algorithm based on DES encryption and decryption functions.Keywords: DES; secure communications; multi-threading目录1 引言 (1)1.1历只背景 (1)1.2国内外现状 (1)1.3课题的意义 (1)1.4本课题的实现方法 (2)2 课题基础与理论 (3)2.1开发环境V ISUAL C++ (3)2.2加密体制与DES算法 (3)2.2.1算法与加密体 (3)2.2.2加密解密的概念加密方法以及应用 (5)2.2.3密码学简介 (8)2.2.4算法的安全性 (9)3 DES算法描述 (11)3.1DES算法框图 (11)3.2DES解密 (12)3.3算法流程 (12)4 算法实现及应用 (16)4.1应用程序结构 (16)4.2加密算法VC++实现 (16)4.3应用程序功能模块定义 (19)5 测试 (21)结论 (22)致谢 (23)参考文献 (24)基于VC++的DES算法的实现1 引言1.1 历只背景美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。
加密算法要达到的目的(通常称为DES 密码算法要求)主要为以下四点:1.提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;2.具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;3.DES 密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;4.实现经济,运行有效,并且适用于多种完全不同的应用。
1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(Des Data Encryption Standard)。
1.2 国内外现状Des算法的程序在国内外的使用都很普遍,在很多领域都有应用,不但有软件的实现也有基于硬件的实现,在基于硬件级的实现是为了提高Des的工作效率,提高加解密速度,针对比较高的应用场合而设计。
软件实现比较普遍,产品价格适宜。
在目前的环境下很多地方都可以找到Des 算法实现的源代码。
1.3 课题的意义目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。
另一方面随着Internet日益广泛的应用,黑客行为也是有增无减。
木马病毒无处不在,如何有效地抵御各种机密信息不被窃取,一直是信息安全领域的焦点。
对消息加密是能达到保密信息不被非法访问和窃取的一种有效手段,而Des算法又是消息加密的一种常用的方法,因此对于算法的实现意义是重大的,同时对于综合运用大学期间各科计算机基础知识是一个非常好的机会。
1.4 本课题的实现方法本课题采用Visual C++软件开发工具来实现Des算法,按照Des算法的算法流程建立各功能函数的函数原型,根据各模块的需要调用相应的功能函数,最终达到算法的实现和应用。
2 课题基础与理论2.1 开发环境Visual c++VC自诞生以来,一直是Windows环境下最主要的应用开发系统之一,Visual c++不仅是C++语言的集成开发环境,而且与Win32紧密相连,利用Visual c++开发系统可以完成各种各样的应用程序开发,从底层软件到上层直接面向用户的软件,强大的调试功能为大型复杂软件的开发提供了有效的排错手段。
进入20世纪90年代以来,随着多媒体技术和图形图像技术的不断发展,可视化技术(Visual)得到广泛重视,越来越多的计算机专业人员和非专业人员都开始研究并应用可视化技术。
所谓可视化,一般是指软件开发阶段的可视化和计算机图形技术和方法的应用。
可视化编程就是软件开发阶段的可视化。
Visual c++是一款很好的可视化开发工具。
界面友好,缩短了开发时间,便于程序员操作。
开发环境是程序员同VC++的交互界面,通过Visual c++程序员可以直接访问C++源代码编辑器、资源编辑器、使用内部调试器还可以创建项目文件。
2.2 加密体制与DES算法2.2.1算法与加密体据记载,公元前400年,古希腊人发明了臵换密码。
1881年世界上的第一个电话保密专利出现。
在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。
随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。
随着对加密强度需求的不断提高,近期又出现了AES、ECC等。
使用密码学可以达到以下目的:保密性:防止用户的标识或数据被读取。
数据完整性:防止数据被更改。
身份验证:确保数据发自特定的一方。
根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。
对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。
非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。
对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高。
加密算法林林种种,那我们在实际使用的过程中究竟该使用哪一种比较好呢?我们应该根据自己的使用特点来确定,由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。
对称加密算法不能实现签名,因此签名只能非对称算法。
由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC 建议采用160位,AES采用128为即可。
随着密码学商业应用的普及,公钥密码学受到前所未有的重视。
除传统的密码应用系统外,PKI系统以公钥密码技术为主,提供加密、签名、认证、密钥管理、分配等功能。
保密通信:保密通信是密码学产生的动因。
使用公私钥密码体制进行保密通信时,信息接收者只有知道对应的密钥才可以解密该信息。
数字签名:数字签名技术可以代替传统的手写签名,而且从安全的角度考虑,数字签名具有很好的防伪造功能。
在政府机关、军事领域、商业领域有广泛的应用环境。
秘密共享:秘密共享技术是指将一个秘密信息利用密码技术分拆成n个称为共享因子的信息,分发给n个成员,只有k(k≤n)个合法成员的共享因子才可以恢复该秘密信息,其中任何一个或m(m≤k)个成员合作都不知道该秘密信息。
利用秘密共享技术可以控制任何需要多个人共同控制的秘密信息、命令等。
认证功能:在公开的信道上进行敏感信息的传输,采用签名技术实现对消息的真实性、完整性进行验证,通过验证公钥证书实现对通信主体的身份验证。
密钥管理:密钥是保密系统中更为脆弱而重要的环节,公钥密码体制是解决密钥管理工作的有力工具;利用公钥密码体制进行密钥协商和产生,保密通信双方不需要事先共享秘密信息;利用公钥密码体制进行密钥分发、保护、密钥托管、密钥恢复等。
基于公钥密码体制可以实现以上通用功能以外,还可以设计实现以下的系统:安全电子商务系统、电子现金系统、电子选举系统、电子招投标系统、电子彩票系统等。
公钥密码体制的产生是密码学由传统的政府、军事等应用领域走向商用、民用的基础,同时互联网、电子商务的发展为密码学的发展开辟了更为广阔的前景。