DES算法的可视化程序的实现
摘 要
本毕业设计研究的是DES算法实现及应用。选择该课题的意义在于:为了防止信息不被非法访问或窃取,实现达到该目的功能软件。DES算法是对称的加密算法,具有速度快,执行效率高等优点,它是由IBM公司研制的一种加密算法.本设计实现了该算法并且集成了保密通信,加密演示,文本文件加密三大功能模块.保密通信模块提供了一个基于C/S结构的保密通信示例。加密演示模块提供了对DES算法的加解密演示功能。文本文件加密模块提供了对文本文件加密并保存密文的功能。整个设计采用JAVA语言实现,DES类提供了两个接口,一个加密接口和一个解密接口,对其进行了封装,以便在其他场合可以提供加解密功能。整个应用程序设计的各个功能模块的执行依靠事件驱动,根据不同的事件原因及事件类型执行不同的功能模块。在保密通信应用中采用了多线程技术,服务器端和客户端集成到同一个面板上,各对端在发送消息时先对消息进行加密,发送线程负责处理加密消息的发送,接收线程负责处理加密消息的解密和显示。本文是针对DES算法实现及其应用所做的工作,主要描述DES算法实现原理和方法,应用场合示例演示,实现方式和方法以及在此过程中运用到的计算机知识。并通过所编写的程序实现了本文的描述。
关键词:DES;保密通信;多线程目 录
1 引言 1
1.1历史背景 1
1.2国内外现状 1
1.3课题的意义 1
1.4课题的实现方法 1
2 课题描述 2
2.1加密体制与DES算法 2
2.1.1算法与加密体 2
2.1.2加密解密的概念加密方法以及应用 3
2.1.3密码学简介 5
2.1.4算法的安全性 6
2.2算法流程 7
3 算法实现及应用 10
3.1应用程序结构 10
3.2应用程序底层加密接口 11
3.3功能模块定义 13
3.3.1保密通信模块 13
3.3.2加密演示模块 17
3.3.3 文本文件加密模块 20
3.3.4 简单密匙管理模块 20
结 论 22
参考文献 22
致 谢 23
声 明 24
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课题的实现方法
本课题采用JAVA程序设计语言来实现Des算法,按照Des算法的算法流程建立各功能函数的函数原型,根据各模块的需要调用相应的功能函数,最终达到算法的实现和应用。针对外部调用提供两个接口,一个加密接口和一个解密接口。内部实现全部封装在Des类里面。