《网络信息安全》课程设计报告_第1页
《网络信息安全》课程设计报告_第2页
《网络信息安全》课程设计报告_第3页
《网络信息安全》课程设计报告_第4页
《网络信息安全》课程设计报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

xxxxxxxx实验用纸网络信息安全课程设计报告 专 业: 小组组长: 小组成员: 指导老师: 完成日期: 目 录第一部分 课程设计准备1.1 课程设计题目31.2 成员分工31.3 课题背景及意义31.4 实验平台介绍3第二部分 课程设计过程2.1 课设软件需求分析42.1.1 设计目的 42.1.2 设计要求 42.2 概要设计 42.3 源代码 52.4 调试分析过程描述 112.4.1 程序输入112.4.2 检验程序执行12第三部分 课程设计体会课程设计心得体会 14附录 15第一部分 课程设计准备1.1 课程设计题目:无密钥的置换加密软件开发1.2 成员分工:xxx:负责人员组织、总体设计、撰稿排版xxx:软件测试分析、运行维护xxx:负责本次课设概要分析、需求分析xxx:负责源代码的编写、修改、调试xxx:负责课程设计准备部分、设备支持1.3 课题背景及意义当今世界正处于信息时代,网络信息安全已经成为我们网络应用过程中非常重要的一点,为了网络信息的安全,一般会采用各种各样的加密解密软件应对来自网络的威胁,通过各种安全协议软件能够最大可能得解决这些威胁,而为了了解加解密算法,我们应当首先了解古典加解密算法。这次课设的目的就是开发一款无密钥置换加密软件,让更多的人了解加解密算法,以应对越来越多的网络安全威胁。1.4 实验平台介绍Visual C+(简称VC)是Microsoft公司推出的目前使用极为广泛的基于Windows平台的C+可视化开发环境。VC基于C,C+语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在Windows平台无所不能。VC主要是针对Windows系统,适合一些系统级 的开发,可以方便实现一些底层的调用。在VC里边嵌入汇编语言很简单。当对系统性能要求很高的时候,可用VC开发。VC在多线程、网络通信、分布应用方面,有着不可比拟的优势。第二部分 课程设计过程2.1 课设软件需求分析2.1.1 设计目的综合运用本课程及网络信息安全的相关知识设计并实现一个应用程序,能够实现无密钥置换加密,以Visual C+作为开发平台,通过实践复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,进一步掌握古典密码体制以及算法。2.1.2 设计要求要求所设计开发的程序能够实现古典加密算法中无密钥置换加密,由用户输入要加密的明文序列,不需要输入密钥,然后输出加密后的密文序列,要求明文序列能够达到1000位。2.2 概要设计根据对用户的要求及功能设置可以得到以下的流程图2-1根据转换矩阵输出密文根据置换算法转换矩阵输入明文分组排列 图2-1 概要设计流程图2.3 源代码#includeclass SubKey /定义子密钥为一个类public: int key86;subkey16; /定义子密钥对象数组class DES int encipher_decipher; /判断加密还是解密 int key_in88; /用户原始输入的64位二进制数 int key_out87; /除去每行的最后一位校验位 int c0_d087; /存储经PC-1转换后的56位数据 int c047,d047; /分别存储c0,d0 int text88; /64位明文 int text_ip88; /经IP转换过后的明文 int A48,B48; /A,B分别存储经IP转换过后明文的两部分,便于交换 int temp86; /存储经扩展置换后的48位二进制值 int temp186; /存储和子密钥异或后的结果 int s_result84; /存储经S变换后的32位值 int text_p84; /经P置换后的32位结果 int secret_ip88; /经逆IP转换后的密文public: void Key_Putting(); void PC_1(); int function(int,int); /异或 void SubKey_Production(); void IP_Convert(); void f(); void _IP_Convert(); void Out_secret();void DES:Key_Putting() /得到密钥中对算法有用的56位 cout请输入64位的密钥(8行8列且每行都得有奇数个1):n; for(int i=0;i8;i+) for(int j=0;jkey_inij; if(j!=7) key_outij=key_inij;void DES:PC_1() /PC-1置换函数 int pc_187= /PC-1 ; int i,j; for(i=0;i8;i+) for(j=0;j7;j+) c0_d0ij=key_out (pc_1ij-1)/8 (pc_1ij-1)%8 ;int DES:function(int a,int b) /模拟二进制数的异或运算,a和b为整型的0和1,返回值为整型的0或1 if(a!=b)return 1; else return 0;void DES:SubKey_Production() /生成子密钥 int move162= /循环左移的位数 1 , 1 , 2 , 1 , 3 , 2 , 4 , 2 , 5 , 2 , 6 , 2 , 7 , 2 , 8 , 2 , 9 , 1, 10 , 2, 11 , 2, 12 , 2, 13 , 2, 14 , 2, 15 , 2, 16 , 1 ; int pc_286= /PC-2 14, 17 ,11 ,24 , 1 , 5, 3 ,28 ,15 , 6 ,21 ,10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20 ,13 , 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32 ; for(int i=0;i16;i+) /生成子密钥 int j,k; int a2,b2; int bb28,cc28; for(j=0;j4;j+) for(k=0;k7;k+) c0jk=c0_d0jk; for(j=4;j8;j+) for(k=0;k7;k+) d0j-4k=c0_d0jk; for(j=0;j4;j+) for(k=0;k7;k+) bb7*j+k=c0jk; cc7*j+k=d0jk; for(j=0;jmovei1;j+) aj=bbj; bj=ccj; for(j=0;j28-movei1;j+) bbj=bbj+1; ccj=ccj+1; for(j=0;jmovei1;j+) bb27-j=aj; cc27-j=bj; for(j=0;j28;j+) c0j/7j%7=bbj; d0j/7j%7=ccj; for(j=0;j4;j+) /L123-L128是把c0,d0合并成c0_d0 for(k=0;k7;k+) c0_d0jk=c0jk; for(j=4;j8;j+) for(k=0;k7;k+) c0_d0jk=d0j-4k; for(j=0;j8;j+) /对Ci,Di进行PC-2置换 for(k=0;k6;k+) subkeyi.keyjk=c0_d0 (pc_2jk-1)/7 (pc_2jk-1)%7 ; void DES:IP_Convert() int IP88= /初始置换IP矩阵 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, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 ; cout你好,你要加密还是解密?加密请按1号键(输入1),解密请按2号键,并确定.encipher_decipher; char * s; if(encipher_decipher=1) s=明文; else s=密文; cout请输入64位s(二进制):n; int i,j; for(i=0;i8;i+) for(j=0;jtextij; for(i=0;i8;i+) /进行IP变换 for(j=0;j8;j+) text_ipij=text (IPij-1)/8 (IPij-1)%8 ;2.4 调试分析过程描述2.4.1 程序输入图2-2 程序输入(一)图2-3 程序输入(二)图2-4 程序输入(三)图2-5 程序输入(四)图2-6 程序输入(五)2.4.2 检验程序执行图2-7 检测程序执行(一)图2-8 检测程序执行(二)图2-9 检测程序执行(三)第三部分 课程设计心得体会这学期我们学习了网络信息安全这门课,在xx老师的带领下,我们系统规范得学习了网络信息安全的基础知识、功能等,让我们改变了以前对网络安全简单而肤浅的认识,使我们明白网络安全技术是应对网络威胁的最好手段,使我们明白网络安全的重要性。本次课程设计是在网络信息安全学习的基础上更深得了解掌握古典加密算法中的置换加密算法。当今世界正处于信息时代,网络信息安全已经成为我们网络应用过程中非常重要的一点,为了网络信息的安全,一般会采用各种各样的加密解密软件应对来自网络的威胁,通过各种安全协议软件能够最大可能得解决这些威胁,而为了了解加解密算法,我们应当首先了解古典加解密算法。这次课设的目的就是开发一款无密钥置换加密软件,让更多的人了解加解密算法,以应对越来越多的网络安全威胁。经过这些天的设计开发,无密钥的置换加密软件基本开发完毕。本软件基本达到了设计要求:能够实现古典加密算法中无密钥置换加密,由用户输入要加密的明文序列,不需要输入密钥,然后输出加密后的密文序列,明文序列能够达到1000位。本次课程设计是分组讨论和制作的。在制作的过程中,我们学到的不仅仅是知识,我们还认识许多事情。这次设计对我们的综合能力是一次很好的锻炼,使我们的动手能力提高了一大步,同时也使我们充分认识到合作的可贵。在我们所开发的无密钥的置换加密软件,能够完成基本的加密要求,通过分析、编写程序、测试程序等步骤完成课程设计。最后按照吕老师的要求写成文档,从中也对WORD的运用提高的很多。但是该软件还有许多不足的地方,还有许多东西有待完善。还有就是我们对网络知识的掌握有限或者不牢固,许多地方概念还是不清楚,无密钥的置换加密软件达到了基本要求,但是有待进一步改善,希望老师给予批评。本次设计小组由九名成员组成,每个成员能够根据自己的职能积极完成自己的任务,同时小组成员之间能够通过互相帮助、集体讨论等方式一步步完成设计,这是难能可贵的,在本次实际的过程中大家真正感受到了集体的智慧与团结的力量。在设计的过程中我们确实遇到了许许多多的问题,从课本上最基本的问

温馨提示

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

评论

0/150

提交评论