毕业设计(论文)-基于VC++的DES算法的实现.doc
《毕业设计(论文)-基于VC++的DES算法的实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于VC++的DES算法的实现.doc(28页珍藏版)》请在三一文库上搜索。
1、地方生学员毕业设计报告 报告题目:基于 VC+的 DES 算法的实现 学员姓名: 学员队别:四系二十七队 专业名称:网络工程 指导教员: 二一一年四月十二日 中国人民 解 放 军 电子工程学院 摘 要 本毕业设计研究的是 DES 加解密算法的实现。DES 算法是由 IBM 公司研制的一种对称加密算法,具有速度快,执行效率高等优点。在 POS、ATM、磁卡、智能卡以及信息安全领域得到广泛应用。 本文介绍了 DES 算法的相关背景,阐述了 DES 算法的基本原理,并 在此基础上详细讨论了 DES 算法的实现方法和流程。同时,采用 VC+ 软件开发平台,结合面向对象方法,通过编程实现了基于 DES
2、算法的加 解密功能。 关键词:DES;保密通信;多线程 Abstract The 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 inf
3、ormation 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 wi
4、th 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 开发环境 VISUAL C+.3 2.2 加密体制与 DES 算法3 2.2.1 算法与加密体3 2.2.2 加密解密的概念
5、加密方法以及应用5 2.2.3 密码学简介8 2.2.4 算法的安全性9 3 DES 算法描述 .11 3.1 DES 算法框图11 3.2 DES 解密12 3.3 算法流程12 4 算法实现及应用.16 4.1 应用程序结构 .16 4.2 加密算法 VC+实现.16 4.3 应用程序功能模块定义 .19 5 测试.21 结 论.22 致 谢.23 参考文献.24 1 基于基于 VC+的的 DES 算法的实现算法的实现 1 引言 1.1 历只背景 美国国家标准局 1973 年开始研究除国防部外的其它部门的计算机 系统的数据加密标准,于 1973 年 5 月 15 日和 1974 年 8 月
6、 27 日先后两 次向公众发出了征求加密算法的公告。加密算法要达到的目的(通常称 为 DES 密码算法要求)主要为以下四点: 1提供高质量的数据保护,防 止数据未经授权的泄露和未被察觉的修改;2具有相当高的复杂性,使得 破译的开销超过可能获得的利益,同时又要便于理解和掌握;3DES 密 码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保 密为基础;4实现经济,运行有效,并且适用于多种完全不同的应用。 1977 年 1 月,美国政府颁布:采纳 IBM 公司设计的方案作为非机密数据 的正式数据加密标准(Des Data Encryption Standard)。 1.2 国内外现状 D
7、es 算法的程序在国内外的使用都很普遍,在很多领域都有应用,不 但有软件的实现也有基于硬件的实现,在基于硬件级的实现是为了提高 Des 的工作效率,提高加解密速度,针对比较高的应用场合而设计。软件 实现比较普遍,产品价格适宜。在目前的环境下很多地方都可以找到 Des 算法实现的源代码。 1.3 课题的意义 目前在国内,随着三金工程尤其是金卡工程的启动,DES 算法在 POS、ATM、磁卡及智能卡(IC 卡)、加油站、高速公路收费站等领域被广 泛应用,以此来实现关键数据的保密,如信用卡持卡人的 PIN 的加密传 输,IC 卡与 POS 间的双向认证、金融交易数据包的 MAC 校验等,均用 到 D
8、ES 算法。另一方面随着 Internet 日益广泛的应用,黑客行为也是有增 无减。木马病毒无处不在,如何有效地抵御各种机密信息不被窃取,一直 2 是信息安全领域的焦点。对消息加密是能达到保密信息不被非法访问和 窃取的一种有效手段,而 Des 算法又是消息加密的一种常用的方法,因 此对于算法的实现意义是重大的,同时对于综合运用大学期间各科计算 机基础知识是一个非常好的机会。 1.4 本课题的实现方法 本课题采用 Visual C+软件开发工具来实现 Des 算法,按照 Des 算 法的算法流程建立各功能函数的函数原型,根据各模块的需要调用相应 的功能函数,最终达到算法的实现和应用。 3 2 课
9、题基础与理论 2.1 开发环境 Visual c+ VC 自诞生以来,一直是 Windows 环境下最主要的应用开发系统之 一,Visual c+不仅是 C+语言的集成开发环境,而且与 Win32 紧密相连, 利用 Visual c+开发系统可以完成各种各样的应用程序开发,从底层软件 到上层直接面向用户的软件,强大的调试功能为大型复杂软件的开发提 供了有效的排错手段。 进入 20 世纪 90 年代以来,随着多媒体技术和图形图像技术的不断 发展,可视化技术(Visual)得到广泛重视,越来越多的计算机专业人员和 非专业人员都开始研究并应用可视化技术。所谓可视化,一般是指软件开 发阶段的可视化和计
10、算机图形技术和方法的应用。可视化编程就是软件 开发阶段的可视化。Visual c+是一款很好的可视化开发工具。界面友好, 缩短了开发时间,便于程序员操作。 开发环境是程序员同 VC+的交互界面,通过 Visual c+程序员可以 直接访问 C+源代码编辑器、资源编辑器、使用内部调试器还可以创建项 目文件。 2.2 加密体制与 DES 算法 2.2.1 算法与加密体 据记载,公元前 400 年,古希腊人发明了置换密码。1881 年世界上的 第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼 格玛”密码机,密码学在战争中起着非常重要的作用。 随着信息化和数字化社会的发展,人们对信息安
11、全和保密的重要性 4 认识不断提高,于是在 1997 年,美国国家标准局公布实施了“美国数据加 密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的 加密算法有 DES、RSA、SHA 等。随着对加密强度需求的不断提高,近期 又出现了 AES、ECC 等。使用密码学可以达到以下目的:保密性:防止用 户的标识或数据被读取。数据完整性:防止数据被更改。身份验证:确保数 据发自特定的一方。根据密钥类型不同将现代密码技术分为两类:对称加 密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。对称钥匙加 密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得 这把钥匙,并保持钥
12、匙的秘密。非对称密钥加密系统采用的加密钥匙(公 钥)和解密钥匙(私钥)是不同的。对称加密算法用来对敏感数据等信息进 行加密,常用的算法包括:DES(Data Encryption Standard):数据加密标准, 速度较快,适用于加密大量数据的场合。3DES(Triple DES):是基于 DES,对一块数据用三个不同的密钥进行三次加密,强度更高。 AES(Advanced Encryption Standard):高级加密标准,是下一代的加 密算法标准,速度快,安全级别高。加密算法林林种种,那我们在实际使 用的过程中究竟该使用哪一种比较好呢?我们应该根据自己的使用特点 来确定,由于非对称加
13、密算法的运行速度比对称加密算法的速度慢很多, 当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。 对称加密算法不能实现签名,因此签名只能非对称算法。 由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接 决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密 算法。在实际的操作过程中,我们通常采用的方式是:采用非对称加密算 法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成 了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便 管理密钥的优点。如果在选定了加密算法后,那采用多少位的密钥呢?一 般来说,密钥越长,运行的速度就越慢,应该根据
14、的我们实际需要的安全 级别来选择,一般来说,RSA 建议采用 1024 位的数字,ECC 建议采用 160 位,AES 采用 128 为即可。 随着密码学商业应用的普及,公钥密码学受到前所未有的重视。除传 统的密码应用系统外,PKI 系统以公钥密码技术为主,提供加密、签名、 认证、密钥管理、分配等功能。保密通信:保密通信是密码学产生的动因。 5 使用公私钥密码体制进行保密通信时,信息接收者只有知道对应的密钥 才可以解密该信息。数字签名:数字签名技术可以代替传统的手写签名, 而且从安全的角度考虑,数字签名具有很好的防伪造功能。在政府机关、 军事领域、商业领域有广泛的应用环境。秘密共享:秘密共享技
15、术是指将 一个秘密信息利用密码技术分拆成 n 个称为共享因子的信息,分发给 n 个成员,只有 k(kn)个合法成员的共享因子才可以恢复该秘密信息,其中 任何一个或 m(mk)个成员合作都不知道该秘密信息。利用秘密共享技术 可以控制任何需要多个人共同控制的秘密信息、命令等。认证功能:在公 开的信道上进行敏感信息的传输,采用签名技术实现对消息的真实性、完 整性进行验证,通过验证公钥证书实现对通信主体的身份验证。密钥管理: 密钥是保密系统中更为脆弱而重要的环节,公钥密码体制是解决密钥管 理工作的有力工具;利用公钥密码体制进行密钥协商和产生,保密通信双 方不需要事先共享秘密信息;利用公钥密码体制进行密
16、钥分发、保护、密 钥托管、密钥恢复等。基于公钥密码体制可以实现以上通用功能以外,还 可以设计实现以下的系统:安全电子商务系统、电子现金系统、电子选举 系统、电子招投标系统、电子彩票系统等。公钥密码体制的产生是密码学 由传统的政府、军事等应用领域走向商用、民用的基础,同时互联网、电 子商务的发展为密码学的发展开辟了更为广阔的前景。 2.2.2 加密解密的概念加密方法以及应用 随着网络技术的发展,网络安全也就成为当今网络社会的焦点中的 焦点,几乎没有人不在谈论网络上的安全问题,病毒、黑客程序、邮件炸 弹、远程侦听等这一切都无不让人胆战心惊。病毒、黑客的猖獗使身处今 日网络社会的人们感觉到谈网色变,
17、无所适从。但我们必需清楚地认识到, 这一切一切的安全问题我们不可一下全部找到解决方案,况且有的是根 本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在 新病毒发现之后才能开发出来,目前还没有哪能一家反病毒软件开发商 敢承诺他们的软件能查杀所有已知的和未知的病毒,所以我们不能有等 网络安全了再上网的念头,因为或许网络不能有这么一日,就象“矛”与 “盾”,网络与病毒、黑客永远是一对共存体。现代的电脑加密技术就是适 6 应了网络安全的需要而应运产生的,它为我们进行一般的电子商务活动 提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文 本的签署等。其实加密技术也不是什么新生
18、事物,只不过应用在当今电子 商务、电脑网络中还是近几年的历史。 下面我们就详细介绍一下加密技术的方方面面。加密作为保障数据 安全的一种方式,它不是现在才有的,它产生的历史相当久远,它是起源 于要追溯于公元前 2000 年(几个世纪了),虽然它不是现在我们所讲的加 密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就 诞生了。当时埃及人是最先使用特别的象形文字作为信息编码的,随着时 间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他 们的书面信息。近期加密技术主要应用于军事领域,如美国独立战争、美 国内战和两次世界大战。最广为人知的编码机器是 German Enigm
19、a 机, 在第二次世界大战中德国人利用它创建了加密信息。 此后,由于 Alan Turing 和 Ultra 计划以及其他人的努力,终于对德国 人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码, 人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算 能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了 新的数据加密方式,如利用 ROSA 算法产生的私钥和公钥就是在这个基 础上产生的。数据加密的基本过程就是对原来为明文的文件或数据按某 种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只 能在输入相应的密钥之后才能显示出本来内容,通过这样的途径
20、来达到 保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该 编码信息转化为其原来数据的过程。当今网络社会选择加密已是我们别 无选择,其一是我们知道在互联网上进行文件传输、电子邮件商务往来存 在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传 输。而且这种不安全性是互联网存在基础TCP/IP 协议所固有的,包 括一些基于 TCP/IP 的服务;另一方面,互联网给众多的商家带来了无限 的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界, 这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业。 为了解决这一对矛盾、为了能在安全的基础上大开这通向世界之门, 我们
21、只好选择了数据加密和基于加密技术的数字签名。加密在网络上的 7 作用就是防止有用或私有化信息在网络上被拦截和窃取。一个简单的例 子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码 的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。通过网 络进行登录时,所键入的密码以明文的形式被传输到服务器,而网络上的 窃听是一件极为容易的事情,所以很有可能黑客会窃取得用户的密码,如 果用户是 Root 用户或 Administrator 用户,那后果将是极为严重的。还有 如果你公司在进行着某个招标项目的投标工作,工作人员通过电子邮件 的方式把他们单位的标书发给招标单位,如果此时有另一位竞
22、争对手从 网络上窃取到你公司的标书,从中知道你公司投标的标的,那后果将是怎 样,相信不用多说聪明的你也明白。这样的例子实在是太多了,解决上述 难题的方案就是加密,加密后的口令即使被黑客获得也是不可读的,加密 后的标书没有收件人的私钥也就无法解开,标书成为一大堆无任何实际 意义的乱码。 总之无论是单位还是个人在某种意义上来说加密也成为当今网络社 会进行文件或邮件安全传输的时代象征! 数字签名就是基于加密技术 的,它的作用就是用来确定用户是否是真实的。应用最多的还是电子邮件, 如当用户收到一封电子邮件时,邮件上面标有发信人的姓名和信箱地址, 很多人可能会简单地认为发信人就是信上说明的那个人,但实际
23、上伪造 一封电子邮件对于一个通常人来说是极为容易的事。在这种情况下,就要 用到加密技术基础上的数字签名,用它来确认发信人身份的真实性。类似 数字签名技术的还有一种身份认证技术,有些站点提供入站 FTP 和 WWW 服务,当然用户通常接触的这类服务是匿名服务,用户的权力要 受到限制,但也有的这类服务不是匿名的,如某公司为了信息交流提供用 户的合作伙伴非匿名的 FTP 服务,或开发小组把他们的 Web 网页上载到 用户的 WWW 服务器上,现在的问题就是,用户如何确定正在访问用户 的服务器的人就是用户认为的那个人,身份认证技术就是一个好的解决 方案。在这里需要强调一点的就是,文件加密其实不只用于电
24、子邮件或网 络上的文件传输,其实也可应用静态的文件保护,如 PIP 软件就可以对磁 盘、硬盘中的文件或文件夹进行加密,以防他人窃取其中的信息。 8 2.2.3 密码学简介 概念发送者和接收者:假设发送者想发送消息给接收者,且想安全地 发送信息:她想确信偷听者不能阅读发送的消息。消息和加密:消息被称 为明文。用某种方法伪装消息以隐藏它的内容的过程称为加密,加了密的 消息称为密文,而把密文转变为明文的过程称为解密。明文用 M(消息) 或 P(明文)表示,它可能是比特流(文本文件、位图、数字化的语音流或数 字化的视频图像)。至于涉及到计算机,P 是简单的二进制数据。明文可被 传送或存储,无论在哪种情
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 VC DES 算法 实现
链接地址:https://www.31doc.com/p-3283558.html