Java课程设计论文加密和解密.doc
《Java课程设计论文加密和解密.doc》由会员分享,可在线阅读,更多相关《Java课程设计论文加密和解密.doc(32页珍藏版)》请在三一办公上搜索。
1、课程设计(论文)任务书 软件 学院 软件工程 专业 班 一、课程设计(论文)题目 加密与解密 二、课程设计(论文)工作自 年 月 日起至 年 月 日止。三、课程设计(论文) 地点: 四、课程设计(论文)内容要求:1本课程设计的目的(1)使学生巩固和提高Java编程技术(2)培养学生掌握程序设计的基本思路和方法; (3)加强学生研发、调试程序的能力;(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。2课程设计的任务及要求1)任务:(1)设计GUI界面的Hannoi塔,用户可以通过拖动鼠标移动各个塔上的盘子,程序也可以自动演示盘子的移动过程。;(2)有三个表示塔的对象,分别命名
2、为A、B和C。A塔上有若干个盘子,盘子的大小不等,并按着大小顺序依次摆放在A塔上,大盘在下,小盘在上。用户可以用鼠标拖动盘子,把A 塔上的盘子全部移动到另外两个塔中的任何一个塔上。要求每次只能移动一个盘子,在任何时候不允许大盘压在小盘的上面。(3)用户也可以选择让程序自动演示。选择自动演示后,程序将以动画形式演示把A塔上的盘子全部移到C塔的过程,并将移动过程以文本形式显示在一个文本区中。2)创新要求: 在基本要求达到后,可进行创新设计,增加功能和游戏趣味性。 3)课程设计论文编写要求(1)课程设计任务及要求(2)需求分析(3)设计思路-工作原理、功能规划(4)详细设计-数据分析、算法思路、类设
3、计、功能实现(含程序流程图、主要代码及注释)、界面等。(4)运行调试与分析讨论-给出运行屏幕截图,分析运行结果,有何改进想法等。(5)设计体会与小结-设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)(7) 报告按规定排版打印,要求装订平整,否则要求返工;(8) 课设报告的装订顺序如下:封面-任务书-中文摘要-目录-正文-附录(代码及相关图片)(9)严禁抄袭,如有发现,按不及格处理。4)答辩与评分标准: (1)考勤:10分; (2)程序检查:30分; (3)答辩回答问题:20分(3)课程设计报告:4
4、0分;5)参考文献:(1)Java语言程序设计教程邱桃荣 机械工业出版社(2)Java程序设计试验指导陈轶 姚晓昆 清华大学出版社6)课程设计进度安排内容 天数地点构思及收集资料 7图书馆编码与调试 5实验室撰写论文 3图书馆、实验室学生签名: 年 月 日课程设计(论文)评审意见(1)考勤(10分):优()、良()、中()、一般()、差(); (2)程序检查(30分):优()、良()、中()、一般()、差(); (3)答辩回答问题(20分):优()、良()、中()、一般()、差(); (4)设计报告(40分):优()、良()、中()、一般()、差();评阅人: 职称: 讲师 年 月 日前 言-
5、 3 -一、题目分析- 4 -1.1课程设计的要求和内容(包括原始数据、技术要求、工作要求)- 4 -1.2相关知识介绍- 5 -二、概要设计- 8 -2.1抽象数据类型的定义- 8 -2.2主程序流程- 9 -2.3各程序模块之间的层次(调用)关系- 9 -三、详细设计- 10 -3.1主函数模块- 10 -3.2加密模块- 11 -3.3加密操作模块- 13 -3.4解密模块- 13 -3.5 解密操作模块- 14 -3.6转换模块- 15 -3.7 文件选择模块- 16 -3.8密码生成模块- 16 -四、调试分析- 18 -4.1调试过程中遇到的问题- 18 -4.2对设计与实现的回顾
6、讨论和分析- 19 -4.3算法的时空分析- 19 -4.4 经验和体会- 20 -五、测试结果- 20 -5.1 加密- 20 -5.2 解密- 21 -六、主要参考资料- 23 -七、附录- 23 -摘 要 随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密算法有多种,常见的有、等。本程序设计对文件的加密使用的是加密算法。 Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。利用Java语言中秘密密钥工厂对算法的支持,使程序实
7、现文件加密、解密两大功能更简单。关键词: JAVA ; DES; 加密; 解密;前 言DES ( data encryption Standard) 是一种世界标准的加密形式, 已经15 年历史了,虽然有些老, 可还算是比较可靠的算法。在七十的初期, 随着计算机之间的通信发展, 需要有一种标准密码算法为了限制不同算法的激增使它们之间不能互相对话。为解决这个问题, 美国国家安全局(N.S.A ) 进行招标。 I.B.M 公司开发了一种算法, 称为:Lucifer。 经过几年的研讨和修改, 这种算法, 成为了今天的D.E.S,1976 年11月23 日, 终于被美国国家安全局采用。 D.E.S 是
8、分块加密的,将明文分割成 64 BITS 的块, 然后它们一个个接起来 。它使用56位密钥对64位的数据块进行加密,并对64bits的数据块进行16轮编码。与每轮编码时,一个48bits的“每轮”密钥值由56bits的完整密钥得出来。DES用软件进行解码需要用很长时间,而用硬件解码速度非常快,1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。所以,当时DES被认为是一种十分强壮的加密方法。但今天, 只需 二十万美圆就可以制造一台破译DES的特殊的计算机,所以现在 DES 对要求“强壮”加密的场合已经不再适用了。DES的唯一密码学缺
9、点,就是密钥长度相对比较短,人们并没有放弃使用DES,而是想出了一个解决其长度问题的方法,即采用三重DES。加密成为三步, 而不是一步,每一步的密钥都不一样, 这样爆破就比较复杂了,这样要找三个密钥, 而不是一个, 每个密钥有56 BITS, 那样我们就有56 乘以三, 等于168 Bits。本程序设计所采用的就是DES的变种三重DES算法。同时利用Java的GUI编程,生成文本对话框,对文件的路径进行选择、提供密钥框、加密和解密按钮。一、题目分析1.1课程设计的要求和内容(包括原始数据、技术要求、工作要求)基本要求:1. 利用某种加密算法对指定的文本文件进行加密(应判断其是否已经加密,若已加
10、密则结束该步骤,否则提示输入加密口令,对文件进行加密);2. 加密解密方法:可使用RSA,DES,MD5等之一加密算法。3 还应该提供解密功能。1.2相关知识介绍1.2.1 DES算法描述DES是一种分组加密算法,他以64位为分组对数据加密。64位一组的明文从算法的一端 输入,64位的密文从另一端输出。DES是一个对称算法:加密和解密用的是同一个算法(除 密钥编排不同以外)。 密钥的长度为56位(密钥通常表示为64位的数,但每个第8位都用作奇偶检验,可以忽 略)。密钥可以是任意的56位数,且可以在任意的时候改变。 DES算法的入口参数有3个:Key,Data,Mode。其中Key为8个字节共6
11、4位,是DES算法 的工作密钥;Data也为8个字节64位,是要被加密或解密的数据:Mode为DES的工作方式,有 两种:加密或解密。 DES算法的工作过程:若Mode为加密,则用Key对数据Data进行加密,生成Data的密码 形式(64位)作为DES的输出结果;若Mode为解密,则用Key对密码形式的数据Data解密,还 原为Data的明码形式(64位)作为DES的输出结果。 在通信网络的两端,双方约定了一致的Key,在通信的源点用Key对核心数据进行DES加密 ,然后以密码形式通过公共通信网(如电话网)传输到通信网络的终点,数据达到目的 地后,用同样的Key对密码数据进行解密,便再现了明
12、码形式的核心数据。这样便保证了核 心数据(如PIN,MAC等)在公共通信网中传输的安全性和可靠性。通过定期在通信网络的源 端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现在金融界交易网 络的流行作法。 简单地说,算法只不过是加密的一种基本技术,DES基本组建分组是这些技术的一种组合 ,他基于密钥作用于明文,这是众所周知的轮(round)。DES有16轮,这意味着要在明文分 组上16次实施相同的组合技术。1.2.2 DES算法详述DES算法把64位的明文输入块变为64位的密文输出块,他所使用的密钥也是64位,DES对64 位的明文分组进行操作。通过一个初始置换,将明文分组分成
13、左半部分和右半部分,各32位 长。然后进行16轮相同的运算,这些相同的运算被称为函数f,在运算过程中数据和密 钥相结合。经过16轮运算后左、右部分在一起经过一个置换(初始置换的逆置换),这样算 法就完成了。 (1)初始置换 其功能是把输入的64位数据块按位重新组合,并把输出分为L0,R0两部分,每部分各长32位,其置换规则如表1所示。表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
14、19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7即将输入的第58位换到第1位,第50位换到第2位,依次类推,最后一位是原来的第7位,L0,R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位。例:设置换前 的输入值为D1D2D3D64,则经过初始置换后的结果为:L0=D58D50D8;R0=D57D497。 (2)逆置换 经过16次迭代运算后,得到L16,R16,将此作为输入进行逆置换,即得到密文输出。 逆置换正好是初始置换的逆运算。例如,第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换的
15、规则如表2所示。表2 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(3)函数f(Ri,Ki)的计算 其算法描述如图1所示。密钥Ri-1Li-1移位移位扩展置换S盒置换 Ri LiS盒置换P盒置换密钥图 1在图1中,“扩展置换”是将32位放大成48位,“P盒置换”是32位到32位换
16、位,其换位 规则分别如表3、表4所示。表3 扩展置换表 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 1716 17 18 19 20 21 20 21 22 23 24 2524 25 26 27 28 29 28 29 30 31 32 1表4 P盒置换表 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 21 4 25在f(Ri,Ki)算法描述图中,S1,S2.S8为选择函数,其功能是把6bit数据变为4bit数据。
17、下面给出选择函数Si(i=1,2.8)的功能表: 选择函数Si S1: 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,5,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, S2: 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
18、,6,9,3,2,15, 13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9, S3: 10,0,9,14,6,3,15,5,1,13,12,7,11,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,11,5,2,12, S4: 7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15, 13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9, 10,6,9
19、,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, S5: 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, S6: 12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11, 10,15,4,2,7,12,9,5,6,1,13
20、,14,0,11,3,8, 9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6, 4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13, S7: 4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1, 13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6, 1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2, 6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12, S8: 13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7, 1,15,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课程设计 论文 加密 解密
链接地址:https://www.31ppt.com/p-4844370.html