ImageVerifierCode 换一换
格式:DOCX , 页数:57 ,大小:1.76MB ,
资源ID:8643599      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8643599.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一款经典加密解密教学演示软件的开发毕业设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

一款经典加密解密教学演示软件的开发毕业设计.docx

1、一款经典加密解密教学演示软件的开发毕业设计 题 目 一款经典加密解密教学演示软件的开发 学生姓名 汤阳 学号 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 进行设计分析,确定设计方案 2015-4-

3、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 For Teach

5、ingTangYang(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 Jun Abstract: In order to show the process of encryptanddecrypt in the teaching of classical cryptography, A

6、 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 method, Vi

7、genere encryption method and Hill encryption method in Microsoft Visual C+ 6.0. Key words: Affine method; More text method; Vigenere method; Hill method 1课题实施的背景 随着网络技术的发展,大量的数据需要在网络上进行传输,因此,信息安全受到了越来越广泛的关注。近年来,我国数据窃取事件层出不穷,CSDN、珍爱网、世纪佳缘、走秀等多家网站的用户数据库被曝光在网络上,由于部分密码以明文方式显示,导致大量网民的个人信息泄露。继 CSDN、 天涯社区用

8、户数据泄露后,互联网行业一片人心惶惶,而在用户数据最为重要的电商领域,也不断传出用户信息漏洞,漏洞报告平台乌云发布漏洞报告称,支付宝用户大量泄露,被用于网络营销,泄露总量达1200万2300万之多。天猫商城、支付宝和当当网也已被卷入其中。事实上,选择一种合适的加密机制将能消除消费者的各种信息安全隐患。 从古典密码学的研究到现代密码学的发展,密码学在我们生活中扮演着越来越重要的角色。但由于密码学是神秘而富有冒险色彩的,它不仅仅是计算机科学的内容,因此,学习密码学必须具有宽广的知识背景。加之,密码学是一个很抽象的东西,不容易理解,所以,学习经典密码学对于初学者来说具有一定的困难与挑战,如果有一套介

9、绍加密解密算法的软件将抽象转换为形象,这势必要减少大量学习理解密码学知识的时间。因此,本课题开发和研究的意义在于能形象生动的展示出经典密码学中单码、多码以及多图加密技术的加密和解密过程,有助于加强初学者对经典密码学的理解。2仿射加密法2.1 算法概述 经典单码加密法的一个形式称为仿射加密法。在传统仿射加密法中,字母表的字母被赋予一个数字,仿射加密法的密钥为025之间的数字对(m,n),m与26的最大公约数必须为1。现在,假设p为明文字母的数字(译注:即该字母在字母表中对应的数字),c为密文字母的数字,m-1为m的乘法的逆元,n-1为n的加法的逆元,那么,这两个数字之间的关系可以用如下等式表示:

10、 由于传统的仿射加密算法只对26个字母进行加密,为了解决这一局限,对一般符号也能进行加密,从而采用ASCII码表作为加密参考,将模改为95(注:ASCII码值有128个,由于前33个为不可显示字符,因此在加密的过程中排除,故将模改为95)。因此,明文字母的数字p与密文字母的数字c之间的关系可表示为: 2.2 算法分析 仿射加密法与单码加密替换没有什么不同,因为明文的每个字母分别只映射到一个密文字母。例如,选取密钥为(2,7)。(由于2与95的最大公约数为1,即GCD(2,95)=1,则2可以作为密钥中的a)。因此,利用这个密钥,字“tangyang”可以使用放射加密法加密。将“tangyang

11、”转换成数字116、97、110、103、121、97、110、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

12、码表中从0开始),求完模之后的结果再加上32,这样,对于(2,7)这个密钥,“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,即为

13、字母“g” c(z)=(48(122-32)-7)mod 95) +32=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.R

14、eleaseBuffer(newText.GetLength(); for (i = 0;i 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

15、-1;CString CFCpasswd:FCRelessPass(CString oldText,int a,int 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

16、- b; while (m_b 0) m_b = m_b + 95; p = (fa * m_b) % 95; obviousi = p + 32; obviousi = 0; oldText.Format(%s,obvious); return oldText;3 多文字加密法3.1 算法概述 多文字加密法是另一种脆弱的单码加密法,但是它与一般的单码加密法又有一些不同。因为它是用一对字母来替代每个明文字母,加密后的密文是明文的两倍大。 多文字加密法的密钥是一个55的矩阵。这个矩阵的5行和5列用含有5个字母的关键词来标识,该关键词不能有重复的字母。字母表的每个字母填写在这个矩阵中。当然,矩阵只

17、有25个位置,而字母表有26个字母,因此字母“i”和“j”占同一个单元,这就意味着所有的“j”都变成了“i”。 例如,如果关键词为takes,那么密钥矩阵为:表3.1 密文、明文对照表takestabcdeafghikklmnopeqrstusvwxyz 每个明文由标识该字母的行和列的字母对替代,加密过程为查找标识该字母的行和列的字母对的过程。 解密过程则为反向查找矩阵的过程。3.2 算法分析 在关键词为takes,明文为tangyang的情况下,加密解密过程如下:加密过程: 密文“ee”替代了明文的“t”,密文“tt”替代了明文的“a”,以此类推,明文“tangyang”加密后的密文为”ee

18、 tt kk aa se tt kk aa”。 明文“t”替代了密文的“ee”,明文“a”替代了密文的“tt”,以此类推,密文“ee tt kk aa se tt kk aa ”解密后的明文为“tangyang”。3.3 核心代码 /加密函数CString CMoreWordPasswd:MWAddPass(CString newText,CString passKey) int textLen = newText.GetLength(); CString result; int flag; /状态标志,1表示明文字符在字母表范围之内,0表示不在范围内 int i,j,k = 0,n = 0;

19、 Passwd = new char2 * textLen; /密文数组 obvious = newText.GetBuffer(textLen); /明文数组 newText.ReleaseBuffer(textLen); char *chKey = passKey.GetBuffer(passKey.GetLength(); /密钥数组 passKey.ReleaseBuffer(passKey.GetLength(); while(k textLen) flag = 0; for(i = 0; i 5; i+) for(j = 0; j 5; j+) char mid = obvious

20、k; if (mid = j) mid = i; if (ArrayKeyij = mid) Passwdn = chKeyi; Passwdn+1 = chKeyj; n = n + 2; flag = 1; break; if (flag = 0) Passwdn = obviousk; n+; k+; Passwdn = 0; result.Format(%s,Passwd); return result;/解密函数CString CMoreWordPasswd:MWRelessPass(CString oldText,CString passKey) int textLen = old

21、Text.GetLength(); CString result; int flag; int i,j,k = 0,n = 0; obvious = new chartextLen/2; Passwd = oldText.GetBuffer(textLen); oldText.ReleaseBuffer(textLen); char *chKey = passKey.GetBuffer(passKey.GetLength(); passKey.ReleaseBuffer(passKey.GetLength(); while(n textLen) flag = 0; for(i = 0;i 5;

22、i+) if(Passwdn = chKeyi) flag = 1; break; if(flag = 1) for(j = 0;j 5;j+) if(Passwdn+1 = chKeyj) break; if(flag = 0) obviousk = Passwdn; k+; n+; if(flag = 1) obviousk = ArrayKeyij; k+; n = n + 2; obviousk = 0; result.Format(%s,obvious); return result;4 Vigenere加密法4.1 算法概述 Vigenere加密法不同于上面的两种加密法,它是一个著

23、名的多码加密法。Vigenere加密法是基于关键词的加密系统,但不是像单码关键词加法那样使用关键词来定义替换模式的。 Vigenere加密法,关键词写在明文的上面,并且不断重复书写,这样每个明文字母都与一个关键词的字母关联,例如,关键词为“make”,而明文为“tangyang”的情况下,关联词-明文的关联如下所示:表4.1 密文、明文对照表makemaket angyang利用如图4.1所示的Vigenere表,这些字母对就可以用来确定明文字符的加密结果。用密钥字母确定表的行,而明文字母确定表的列,表中行列交叉处的字母就是用来替代明文字母的密文字母。表4.2 vigenere表abcdefg

24、hijklmnopqrstuvwxyzaabcdefghijklmnopqrstuvwxyzbbcdefghijklmnopqrstuvwxyzaccdefghijklmnopqrstuvwxyzabddefghijklmnopqrstuvwxyzabceefghijklmnopqrstuvwxyzabcdffghijklmnopqrstuvwxyzabcdegghijklmnopqrstuvwxyzabcdefhhijklmnopqrstuvwxyzabcdefgiijklmnopqrstuvwxyzabcdefghjjklmnopqrstuvwxyzabcdefghikklmnopqrst

25、uvwxyzabcdefghijllmnopqrstuvwxyzabcdefghijkmmnopqrstuvwxyzabcdefghijklnnopqrstuvwxyzabcdefghijklmoopqrstuvwxyzabcdefghijklmnppqrstuvwxyzabcdefghijklmnoqqrstuvwxyzabcdefghijklmnoprrstuvwxyzabcdefghijklmnopqsstuvwxyzabcdefghijklmnopqrttuvwxyzabcdefghijklmnopqrsuuvwxyzabcdefghijklmnopqrstvvwxyzabcdefghijklmnopqrstuwwxyzabcdefghijklmnopqrstuvxxyzabcdefghijklmnopqrstuvwyyzabcdefghijklmnopq

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1