一款经典加密解密教学演示软件的开发毕业设计(43页).doc
《一款经典加密解密教学演示软件的开发毕业设计(43页).doc》由会员分享,可在线阅读,更多相关《一款经典加密解密教学演示软件的开发毕业设计(43页).doc(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-一款经典加密解密教学演示软件的开发毕业设计-第 36 页 题 目 一款经典加密解密教学演示软件的开发 学生姓名 汤阳 学号 1318042022 所在学院 数学与计算机科学学院 专业班级 计算机科学与技术计专升本1301班 指导教师 李军 _ 完成地点 陕西理工学院 2015 年 6 月 4 日本科毕业设计任务书院(系) 数学与计算机科学学院 专业班级 计算机科学与技术(专升本1301) 学生姓名 汤阳 一、毕业设计题目 一款经典加密解密教学演示软件的开发 二、毕业设计工作自 2014 年 12 月 9 日 起至 2015 年 6 月 20 日止三、毕业设计进行地点: 陕西理工学院 四、毕业
2、设计应完成内容及相关要求: 单码、多码以及多图加密技术在经典密码学中占据着及其重要的地位,也是现代密码学的基础。要求设计一个演示软件,在该软件中能够用经典密码密码学中的几个典型的加密解密算法对文本进行加密与解密。要求实现的功能: 1、实现仿射加密与解密 2、实现多文字加密与解密 3、实现Vigenere密与解密 4、实现Hill加密与解密 五、毕业设计应收集资料及参考文献:1、搜集关于经典密码学相关资料; 2、收集教学演示软件开发的案例及相关经验。 六、毕业设计的进度安排:至 2015-3-20 搜集文献材料,撰写开题报告 2015-3-20 至 2015-3-31 进行设计分析,确定设计方案
3、 2015-4-01 至 2015-4-15 概要设计,构思设计平台的整体框架 2015-4-16 至 2015-5-15 详细设计、搭建平台,编写代码 2015-5-15 至 2015-5-25 软件测试、系统完善 2015-5-26 至 2015-6-05 撰写毕业设计说明书 2015-6-06 至 2015-6-10 整理资料、准备答辩及答辩 2015-6-11 至 2015-6-20 资料完善工作 指导教师签名 专业负责人签名 学院领导签名 批准日期 一款经典加密解密教学演示软件的开发汤阳(陕西理工学院数学与计算机科学学院计算机科学与技术计专升本1301班,陕西 汉中 723000)指
4、导教师:李 军【摘要】为了在密码学教学过程中形象的展示加密解密这一过程,设计实现了一款经典加密解密教学演示软件。该软件基于Microsoft Visual C+ 6.0集成开发环境,采用C+面向对象程序设计方法,根据经典密码学中的单码加密、多码加密以及多图加密算法,实现了经典密码学中的仿射加密法、多文字加密法、Vigenere加密法和Hill加密法四种经典加密算法的教学演示效果。【关键词】仿射加密法;多文字加密法;Vigenere加密法;Hill加密法The Development of A Classical Encryption And Decryption Demo Software F
5、or TeachingTangYang(Grade 13, Upgraded Class 1, Major Computer Science and Technology, School of Mathematics and Computer Science .Shaanxi University of Technology, Hanzhong 723000, Shaanxi)Tutor: LI JunAbstract: In order to show the process of encryptanddecrypt in the teaching of classical cryptogr
6、aphy, A teaching demo software of a classical encryption and decryption was developed. According to the single code and multiple code encryption algorithm of classical cryptography, Using object-oriented programming method, implementation of the affine encryption method, multiple text encryption met
7、hod, Vigenere encryption method and Hill encryption method in Microsoft Visual C+ 6.0.Key words: Affine method; More text method; Vigenere method; Hill method目 录1课题实施的背景12仿射加密法22.1 算法概述22.2 算法分析22.3核心代码23 多文字加密法43.1 算法概述43.2 算法分析43.3 核心代码44 VIGENERE加密法74.1 算法概述74.2 算法分析84.3 核心代码85 HILL加密法125.1 算法概述1
8、25.2 算法分析135.3 核心代码136系统测试176.1仿射加密算法测试176.2多文字加密算法测试176.3 Vigenere加密算法测试196.4 Hill加密算法测试19总 结21致 谢22参考文献23科技外文文献24附录A: 系统使用说明书451课题实施的背景随着网络技术的发展,大量的数据需要在网络上进行传输,因此,信息安全受到了越来越广泛的关注。近年来,我国数据窃取事件层出不穷,CSDN、珍爱网、世纪佳缘、走秀等多家网站的用户数据库被曝光在网络上,由于部分密码以明文方式显示,导致大量网民的个人信息泄露。继 CSDN、 天涯社区用户数据泄露后,互联网行业一片人心惶惶,而在用户数据
9、最为重要的电商领域,也不断传出用户信息漏洞,漏洞报告平台乌云发布漏洞报告称,支付宝用户大量泄露,被用于网络营销,泄露总量达1200万2300万之多。天猫商城、支付宝和当当网也已被卷入其中。事实上,选择一种合适的加密机制将能消除消费者的各种信息安全隐患。从古典密码学的研究到现代密码学的发展,密码学在我们生活中扮演着越来越重要的角色。但由于密码学是神秘而富有冒险色彩的,它不仅仅是计算机科学的内容,因此,学习密码学必须具有宽广的知识背景。加之,密码学是一个很抽象的东西,不容易理解,所以,学习经典密码学对于初学者来说具有一定的困难与挑战,如果有一套介绍加密解密算法的软件将抽象转换为形象,这势必要减少大
10、量学习理解密码学知识的时间。因此,本课题开发和研究的意义在于能形象生动的展示出经典密码学中单码、多码以及多图加密技术的加密和解密过程,有助于加强初学者对经典密码学的理解。2仿射加密法2.1 算法概述经典单码加密法的一个形式称为仿射加密法。在传统仿射加密法中,字母表的字母被赋予一个数字,仿射加密法的密钥为025之间的数字对(m,n),m与26的最大公约数必须为1。现在,假设p为明文字母的数字(译注:即该字母在字母表中对应的数字),c为密文字母的数字,m-1为m的乘法的逆元,n-1为n的加法的逆元,那么,这两个数字之间的关系可以用如下等式表示:由于传统的仿射加密算法只对26个字母进行加密,为了解决
11、这一局限,对一般符号也能进行加密,从而采用ASCII码表作为加密参考,将模改为95(注:ASCII码值有128个,由于前33个为不可显示字符,因此在加密的过程中排除,故将模改为95)。因此,明文字母的数字p与密文字母的数字c之间的关系可表示为:2.2 算法分析仿射加密法与单码加密替换没有什么不同,因为明文的每个字母分别只映射到一个密文字母。例如,选取密钥为(2,7)。(由于2与95的最大公约数为1,即GCD(2,95)=1,则2可以作为密钥中的a)。因此,利用这个密钥,字“tangyang”可以使用放射加密法加密。将“tangyang”转换成数字116、97、110、103、121、97、11
12、0、103,利用放射加密等式生成:c(t)=(2(116-32)+7)mod 95)+32=112,即为数字“p”c(a)=(2(97-32)+7)mod 95)+32=74,即为字母“J”c(n)=(2(110-32)+7)mod 95)+32=100,即为字母“d” c(g)=(2(103-32)+7)mod 95)+32=86,即为字母“v” C(y)=(2(121-32)+7)mod95)+32=122,即为字母“z”注:由于ASCII码表中前33个为不可显示字符,因此在加密运算过程中明文字母p要先减去32(ASCII码表中从0开始),求完模之后的结果再加上32,这样,对于(2,7)这
13、个密钥,“tangyang”加密后变成了“pJdvzJdv”。计算可得(95i+1)/a=a-1,将“pJdvzJdv”转换成数字112、74、100、86、122、74、100、86利用放射解密等式生成:c(P)=(48(112-32)-7)mod 95)+32=116,即为字母“t”c(J)=(48(74-32)-7)mod 95) +32=97,即为字母“a”c(d)=(48(100-32)-7)mod 95) +32=110,即为字母“n” c(v)=(48(86-32)-7)mod 95) +32=103,即为字母“g” c(z)=(48(122-32)-7)mod 95) +32=
14、110,即为字母“y”这样,对于(2,7)这个密钥,“pJdvzJdv”解密后变成了“tangyang”2.3核心代码/加密函数CString CFCpasswd:FCAddPass(CString newText,int a,int b)int N,i;char mida,c;N = newText.GetLength();Passwd = new charN;char *m_a = newText.GetBuffer(newText.GetLength(); /将字符串转换成字符数组newText.ReleaseBuffer(newText.GetLength();for (i = 0;i
15、 newText.GetLength();i+)mida = m_ai - 32;c = (a * mida + b) % 95;Passwdi = c + 32;Passwdi = 0;newText.Format(%s,Passwd);return newText;int CFCpasswd:getFa(int a) /求a逆int i,n;for (i = 1; i 95;i+)n = 95 * i + 1;if (n % a) = 0)return n/a;return -1;CString CFCpasswd:FCRelessPass(CString oldText,int a,in
16、t b)int N,i,m_b;char p,mida;int fa = getFa(a);if(fa = -1) return ;N = oldText.GetLength();obvious = new charN;char *m_a = oldText.GetBuffer(oldText.GetLength();oldText.ReleaseBuffer(N);for(i = 0; i N;i+)mida = m_ai - 32;m_b = mida - b;while (m_b 0)m_b = m_b + 95;p = (fa * m_b) % 95;obviousi = p + 32
17、;obviousi = 0;oldText.Format(%s,obvious);return oldText;3 多文字加密法3.1 算法概述多文字加密法是另一种脆弱的单码加密法,但是它与一般的单码加密法又有一些不同。因为它是用一对字母来替代每个明文字母,加密后的密文是明文的两倍大。多文字加密法的密钥是一个55的矩阵。这个矩阵的5行和5列用含有5个字母的关键词来标识,该关键词不能有重复的字母。字母表的每个字母填写在这个矩阵中。当然,矩阵只有25个位置,而字母表有26个字母,因此字母“i”和“j”占同一个单元,这就意味着所有的“j”都变成了“i”。例如,如果关键词为takes,那么密钥矩阵为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一款 经典 加密 解密 教学 演示 软件 开发 毕业设计 43
限制150内