现代密码学加密系统课程设计报告_第1页
现代密码学加密系统课程设计报告_第2页
现代密码学加密系统课程设计报告_第3页
现代密码学加密系统课程设计报告_第4页
现代密码学加密系统课程设计报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 .现代密码学课程作业题 目现在密码学文件加密姓 名丰学 号1009030212指 导 老 师戴祖旭指导教师职称教授年级专业班级10信息与计算科学(2)班所 在 学 院理学院2013年 6 月 25日目录摘要3前言41基础介绍51.1背景介绍51.2需求分析51.3意义51.4文献综述52实现步骤72.1基本实现技术72.2操作步骤73应用基本功能测试193.1单表加密测试。193.2单表解密测试193.3多表加密测试203.4多表解密测试213.5文件生成模块测试214总结22摘要本实验设计是在matla软件的GUI程序平台下设计的一个关于文件加密解密的小的应用,文章根据实验项目的完成过程比

2、较详细的介绍了项目的设计思想,设计方法和完成步骤,并给出了遇到的问题的解决方法,最后给出了应用的测试情况。关键词:GUI程序设计,单表加密(解密),多表加密(解密)前言本文较为详细的介绍了GUI多表单表加密应用的开发过程,全文分为三章。第一章主要介绍GUI多表单表加密应用的相关知识,以与它所要实现的基本功能。并做了简要的需求分析,确定了该程序应实现了一些基本功能。另外还简要的说明了查阅的相关资料。第二章主要介绍了开发的具体过程,以程序的具体开发步骤为主线介绍了相关的操作和具体函数的书写。第三章主要是对程序的设计进行总结。1基础介绍1.1背景介绍在现代密码学的学习过程中我们接触了许多实际的问题,

3、主要学习了在密码学的发展简史,古典密码学,分组密码,公钥密码,序列密码,数字签名以与密码协议。本设计是针对学习过的现代密码学中的古典密码学的理论来实现该课程中的一些相关的加密应用。在本文中我们对古典密码学中的两个基本的加密方法单表加密解密和多表加密解密进行GUI平台下的应用编程,实现相关的功能,以达到基本应用的目的。1.2需求分析在GUI单表多表加解密的应用中,给出如下的具体应用要求:实现对简单字符的单表多表加密解密;实现对文件的单表多表加密解密;能够在应用中自主创建加密或者是解密文件;对文件的加密和解密过程实施监测,让使用者能够了解加密和解密的进程;提供基本的应用使用帮助手册,给初次使用应用

4、者提供参考。1.3功能模块图加密系统图1.系统功能模块图1.4意义简单应用程序的设计与开发,是信息与计算科学专业学生必须掌握的一项技术。了解基本应用的各个模块之间的关系和功能,通过编程实现具体的应用是本专业学生的基本素质。通过具体的小的项目的实现,了解各功能模块的设计与实现方法,以与各功能模块之间的相互联接方法,对于今后从事软件设计与开发,有重要的指导作用。1.5文献综述文献1现代密码学 鲁生 世镒 :科学文献2matlab与数学实验 江世宏 工程大学文献3 网络文献此处不予列出2实现步骤2.1基本实现技术在matlab的gui编程中有两种方式来进行程序设计:直接用M文件来编写;通过gui向导

5、来进行编写。方式的好处在于可以以最大的灵活度来实现应用的设计和编写,但是缺点就在于必须对于各种控件的属性有比较好的了解。方式的优点在于编写者能够将更多的精力集中于程序控件的响应函数的编写,而不是将更多的精力放在实现的界面的美化和排版之上,缺点在于响应函数的控制围没有前一种方式来的灵活。在本应用中主要是用gui的向导编程来实现应用的绝大部分功能,在应用的帮助手册的编辑界面实现方式上则主要是采用方式来实现。2.2操作步骤2.2.1 首先打开gui编程向导的界面,建立空白的gui界面对话框,gui向导界面如下:图2.空白gui界面建立图2.2.2 建立空白的gui界面对话框之后,在该空白界面上添加一

6、系列的程序控件,程序控件的添加主要分为5个大的模块:1加密模块控件;2解密模块控件;3自主生成文件模块;4加密形式模块;5明文密文显示框。各项控件添加完毕之后的效果截图如下:图3.系统界面控件添加效果图2.2.3对空白的对话框界面进行基本菜单的添加。在gui的向导编程中如果选择空白的对话框来建立应用程序的基本框架时,在对话框中是没有给出基本菜单栏的,这里对本应用中添加的菜单栏进行简要的说明。在控件添加界面的工具栏中有标注为Menu Edito的工具(截图如下红圈)图4.界面编辑工具栏(红色标记为gui菜单编辑按钮)点击此按钮出现对基本菜单栏的编辑对话框(截图如下):图5.菜单编辑对话框上图左侧

7、的红圈表示一级菜单,蓝圈表示二级菜单,右侧的五角星标注为为各级菜单的命名区,红色圈表示其快捷键设置,蓝圈的View键是用于设置菜单的响应函数的按钮,红色斜线部分标注的为菜单栏的其他属性设置界面的开启按钮。2.2.4 代码编写,代码的编写主要分为单表加密代码,多表加密代码,单表解密代码和多表解密代码,以上是解密加密的代码概述。另外还包括加解密文件生成代码,以与一些其他的辅助按键的响应代码。这里就单表加密代码和解密代码做简单的说明:单表的主要做法师对英文的二十六个字母和一些常用的标点符号进行编码,然后根据编码通过模运算来对明文实现移位,这里假设m为明文的编码,n为密文的编码,密钥的编码为k,加密的

8、模运算公式就为,其中S表示所有明文空间的长度,这样就顺利的实现加密的过程,其基本代码如下:k=get(handles.radiobutton2,'value')if(k=1) filename,pathname=uigetfile( . '*.*','All Files(*.*)',. ''); if isequal(filename,pathname,0,0) return else pic = fullfile(pathname,filename); fid=fopen(pic); A,COUNT=fscanf(fid,

9、9;%c',inf); fclose(fid); end s=get(handles.edit2,'string'); if isempty(s) msgbox('The edit is empty,please enter again!','error'); return; end str='D:MATLAB7workmodern cryptographyencryptionwordtable1.xls' CODE,TXT,RAW=xlsread(str); s=double(s); B=double(A); m,n=s

10、ize(B); j=0; C=ones(1,n); hwait=waitbar(0,'Please Wait(1)>>>>>>>>'); for i=1:n if(B(i)>=13 & B(i)<=126) j=j+1; C(j)=B(i); end WaitBar1(i,n,hwait); end close(hwait); m,n=size(CODE); hwait=waitbar(0,'Please Wait(2)>>>>>>>>'); fo

11、r h=1:n if(s=CODE(2,h) s=CODE(1,h); end WaitBar1(h,n,hwait); end close(hwait); for h=1:j for k=1:n if(C(h)=CODE(2,k) C(h)=CODE(1,k); end end end % % hwait=waitbar(0,'Please Wait(3)>>>>>>>>'); for h=1:j C(h)=mod(C(h)+s,29); WaitBar1(h,j,hwait); end close(hwait);% close

12、(hwait); % hwait=waitbar(0,'Please Wait(4)>>>>>>>>'); for h=1:j for k=1:n if(C(h)=CODE(1,k) C(h)=CODE(2,k); end end WaitBar1(h,j,hwait); end close(hwait)% close(hwait); C=char(C); set(handles.edit3,'string',C); str='D:MATLAB7workmodern cryptographyencrypti

13、onsinglesecretword.txt' fid=fopen(str,'wt'); fprintf(fid,'%s',C) fclose(fid)else A=get(handles.edit1,'string'); if isempty(A) msgbox('The edit is empty,please enter again!','error'); return; end s=get(handles.edit2,'string'); if isempty(s) msgbox(&

14、#39;The edit is empty,please enter again!','error'); return; end str='D:MATLAB7workmodern cryptographyencryptionwordtable1.xls' CODE,TXT,RAW=xlsread(str); s=double(s); B=double(A); m,n=size(B); j=0; C=ones(1,n); hwait=waitbar(0,'Please Wait(1)>>>>>>>>&

15、#39;); for i=1:n if(B(i)>=13 & B(i)<=126) j=j+1; C(j)=B(i); end WaitBar1(i,n,hwait); end close(hwait); m,n=size(CODE); hwait=waitbar(0,'Please Wait(2)>>>>>>>>'); for h=1:n if(s=CODE(2,h) s=CODE(1,h); end WaitBar1(h,n,hwait); end close(hwait); for h=1:j for k

16、=1:n if(C(h)=CODE(2,k) C(h)=CODE(1,k); end end end % % hwait=waitbar(0,'Please Wait(3)>>>>>>>>'); for h=1:j C(h)=mod(C(h)+s,29); WaitBar1(h,j,hwait); end close(hwait)% close(hwait); % hwait=waitbar(0,'Please Wait(4)>>>>>>>>'); for h=1:j

17、 for k=1:n if(C(h)=CODE(1,k) C(h)=CODE(2,k); end end WaitBar1(h,j,hwait); end close(hwait)% close(hwait); C=char(C); set(handles.edit3,'string',C); str='D:MATLAB7workmodern cryptographyencryptionsinglesecretword.txt' fid=fopen(str,'wt'); fprintf(fid,'%s',C) fclose(fid

18、)end解密过程就是上述过程的逆过程,这里就不在赘述,单表解密基本代码如下:k=get(handles.radiobutton2,'value');%提取加密形式指标值if(k=1) filename,pathname=uigetfile( . '*.*','All Files(*.*)',. ''); if isequal(filename,pathname,0,0) return else pic = fullfile(pathname,filename); fid=fopen(pic); A,COUNT=fscanf(fid

19、,'%c',inf); fclose(fid); end%文件形式解密时打开解密文件 CODE,TXT,RAW=xlsread('D:MATLAB7workmodern cryptographyencryptionwordtable1.xls');%读取解密对照表 set(handles.edit3,'string',A);%将密文显示在密文编辑框中 s=get(handles.edit6,'string');%提取解密密钥 if isempty(s)%解密密钥测空 msgbox('The edit is empty,pl

20、ease enter again!','error'); return; end s=double(s); n=length(CODE); hwait=waitbar(0,'Please Wait(1)>>>>>>>>'); for h=1:n if(s=CODE(2,h) s=CODE(1,h); end WaitBar1(h,n,hwait); end close(hwait); B=double(A); m,n=size(B); hwait=waitbar(0,'Please Wait(2)&

21、gt;>>>>>>'); for h=1:n for k=1:29 if(B(h)=CODE(2,k) B(h)=CODE(1,k); end end WaitBar1(h,n,hwait); end close(hwait); % B=mod(B-s,29); hwait=waitbar(0,'Please Wait(3)>>>>>>>') for h=1:n for k=1:29 if(B(h)=CODE(1,k) B(h)=CODE(2,k); end end WaitBar1(h,n,

22、hwait); end close(hwait); B=char(B); fid=fopen('D:MATLAB7workmodern cryptographyencryptionsingleproclaimedword.txt','wt'); fprintf(fid,'%s',B) fclose(fid) set(handles.edit1,'string',B);else CODE,TXT,RAW=xlsread('D:MATLAB7workmodern cryptographyencryptionwordtable1

23、.xls'); A=get(handles.edit3,'string'); s=get(handles.edit6,'string'); if isempty(s) msgbox('The edit is empty,please enter again!','error'); return; end s=double(s); n=length(CODE); hwait=waitbar(0,'Please Wait(1)>>>>>>>>'); for h=1

24、:n if(s=CODE(2,h) s=CODE(1,h); end WaitBar1(h,n,hwait); end close(hwait); B=double(A); m,n=size(B); hwait=waitbar(0,'Please Wait(2)>>>>>>>'); for h=1:n for k=1:29 if(B(h)=CODE(2,k) B(h)=CODE(1,k); end end WaitBar1(h,n,hwait); end close(hwait); % B=mod(B-s,29); hwait=wait

25、bar(0,'Please Wait(3)>>>>>>>') for h=1:n for k=1:29 if(B(h)=CODE(1,k) B(h)=CODE(2,k); end end WaitBar1(h,n,hwait); end close(hwait); B=char(B); fid=fopen('D:MATLAB7workmodern cryptographyencryptionsingleproclaimedword.txt','wt'); fprintf(fid,'%s',

26、B) fclose(fid) set(handles.edit1,'string',B);end3应用基本功能测试3.1单表加密测试。加密选择方式:文本文件加密方式,加密文本容:please turn down the light and go to sleep.密匙为s。加密过程截图如下:图6.单表文本加密测试图加密后的密文为eawshwpijgcpvdlcpizwpa yzipscvpydpidphawwer,在加密完成的同时秘闻容就已经以密文文件的形式保存在了相应的文件路径之下。3.2单表解密测试解密选择方式:复杂文件解密。解密文件文本容eawshwpijgcpvdlcpizwpa yzipscvpydpidp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论