网络安全课程设计报告.doc
《网络安全课程设计报告.doc》由会员分享,可在线阅读,更多相关《网络安全课程设计报告.doc(16页珍藏版)》请在咨信网上搜索。
中原工学院计算机学院 《网络安全程序》课程设计报告 题目:基于des加密的聊天程序 班级:网络124班 目录 第1章 绪论 3 1。1 des加密背景 3 1。2 聊天程序设计背景 4 第2章 加密原理 5 2.1 des简介 5 2。2 des加密原理 5 2。3 des加密过程 7 第3章 聊天程序设计 8 3。1 TCP/IP协议 8 3。2 客户机/服务器模式 8 3。3 Socket 9 第4章 系统设计 11 4.1 开发语言及环境 11 4。2 需求分析 11 4。2.1 功能需求分析 11 4.2.2 数据需求分析 11 4。2。3 性能需求分析 12 4.2.4 运行需求分析 12 4.3 程序流程图 13 4。4 模块设计 14 4。4。1 服务器 14 4.4。2 客户端 15 第5章 程序测试 17 5.1 运行结果 17 第6章 总结 21 参考文献 21 第1章 绪论 1。1 des加密背景 随着计算机和网络在军事、政治、金融、工业、商业等部门的广泛应用,社会对计算机和网络的依赖越来越大,科学技术的研究和发展及其在商业领域的应用等方面,无一不与信息息息相关。所以信息就是生命,信息就是时间,信息就是财富.由于信息是共享的,信息的扩散会产生社会影响,所以保护信息的安全是信息时代的迫切需要.如果计算机和网络系统的信息安全受到破坏将导致社会的混乱并造成巨大损失.因此,确保计算机和网络系统的信息安全已成为世人关注的社会问题和计算机科学与技术领域的研究热点. 当前,以Internet为代表的计算机网络的迅速发展和广泛应用,正引起社会和经济的深刻变革,极大地改变着人们的生活和工作方式。Internet已经成为我们生活和工作中一个不可缺少的组成部分。对此,发展我国的电子政务、电子商务和电子金融已成为建设具有中国特色社会主义强国的不可回避的选择.然而,目前影响电子政务、电子商务、电子金融应用的主要技术障碍是信息安全问题。由于Internet原来缺少安全设计,再加上Internet的开放性和无政府状态,使Internet成为一个不安全的网络。这就使得Internet不能适应电子政务、电子商务和电子金融等系统对信息安全的要求.确保信息的安全就必须加强加密技术,加密技术是基于密码学原理来实现计算机、网络乃至一切信息系统安全的理论与技术基础. 1977年美国颁布了数据加密标准DES(Data Encryption Stantard),这是密码史上的一个创举.DES算法最初由美国IBM公司设计,经美国国家安全局评测后,颁布为标准。DES开创了向世人公开加密算法的先例.自从公布以来,它一直超越国界,成为国际上商用保密通信和计算机通信的最常用的加密算法.DES也是曾被广泛使用的分组密码,遍及世界的政府,银行和标准化组织把DES作为安全和论证通信的基础。DES算法公开是密码学史上里程碑式的事件 1.2 聊天程序设计背景 随着互联网技术的发展,互联网应用越来越丰富。互联网以其独特的传播方式吸引了大量用户,同时也给人们带来了许多便利,譬如可以借助于网络进行相互交流、信息传递等。聊天工具作为互联网中运用最为广泛的通信工具之一,它可以让用户之间进行即时的交流和信息的传递。聊天工具的出现可以说是基于互联网通信交流方式的历史性变革,它已经渐渐取代了原来效率低、费用高的如信件、电报的通信方式,以其快速、交互、简便的方式给用户的交流提供了简单、易用的信息平台,成为现今应用最为广泛的即时通信工具之一。随着相关技术的日益发展,用户对功能的需求不断提高。为了更好地服务于用户,聊天工具的功能也在不断地完善.在未来的网络时代中,聊天工具将以即时通信为其基本特点,并与各种网络应用整合,同时随着无线网络的广泛应用,它将成为未来不可缺少的一种通信软件.本课程设计的目的主要是为了满足人们通讯交流的便捷,实现灵活、全面的语音、视频信息的传递和服务.模拟腾讯公司的QQ聊天软件,开发一个多功能的聊天系统软件,该课程设计主要实现文字聊天功能。 第2章 加密原理 2.1 des简介 DES的设计目标是,用于加密保护静态存储和传输信道中的数据,安全使用10—15年。 DES综合运用了置换、代替、代数等多种密码技术。它设计精巧、安全、方便,是近代密码的世界标准,为确保数据安全作出了重大贡献。DES的设计充分体现了Shannon信息保密理论所阐述的设计密码的思想,标志着密码的设计与分析达到了新的水平。 DES是一种分组密码。明文、密文和密钥的分组长度都是64位。 DES是面向二进制的密码算法,因而能够加解密任何形式的计算机数据。 DES是对合运算,因而加密和解密共用同一算法,从而使工程实现的工作量减半。 2。2 des加密原理 DES 全称为Data Encryption Standard即数据加密算法,它是IBM公司研究成功并公开发表的. DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。 数据加密标准(DES)的算法是用于计算机数据加密保护的分组加密的数学算法,算法以64 bit为一个分组对数据进行加密。使用64 bit的密钥加密64 bit分组的信息.首先将原始数据64 bit明文进行初始置换IP,然后与子密钥(由加密密钥产生)进行一系列迭代运算,最后再经过逆置换,即可得到64 bit密文(加密后数据)。在每一轮中,数列块的右边32 bit数据和密钥(Key)一起传送给函数f,函数f运算的结果再与数列块左边32 bit数据进行“异或”操作。其中S盒(S选择函数)是DES算法的心脏,由它实现非线性变换。解密过程与此类似,只是在应用子密钥时,顺序颠倒为k16,k15,…k2,k1。 DES算法实现时用到许多的数学知识,子密钥的产生,初始值换IP,加密函数以及逆初始值换。 DES的整体结构如图2—1所示: i=1,2,3,…,16 图2-1 DES的整体结构 2。3 des加密过程 1)64位密钥经子密钥产生算法产生出16个子密钥:,分别供第一次,第二次,……,第十六次加密迭代使用。 (2)64位明文首先经过初始置换IP(Initial Permutation),将数据打乱重新排列并分成左右两半.左边32位构成,右边32位构成。 (3)由加密函数f实现子密钥对的加密,结果为32位的数据组。再与模2相加,又得到一个32位的数据组。以作为第二次加密迭代的,以作为第二次加密迭代的。至此,第一次加密迭代结束。 (4)第二次加密迭代至第十六次加密迭代的分别用子密钥进行,其过程与第一次加密迭代相同。 (5)第十六次加密迭代结束后,产生一个64位的数据组.以其左边32位作为,以其右边32位作为,两者合并再经过逆初始置换,将数据重新排列,便得到64位密文。至此加密过程全部结束。 综上可将DES的加密过程用如下的数学公式描述: 第3章 聊天程序设计 3.1 TCP/IP协议 TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中设计。因此用户一般不涉及。TCP是面向连接的,通信双方保持一条通路,好比目前的电话线,使用telnet登陆BBS,用的就是TCP协议;UDP是无连接的,通信双方都不保持对方的状态,浏览器访问Internet时使用的HTTP协议就是基于UDP协议的. 编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函数。前者为核内设计,后者为核外设计。用户服务要通过核外的应用程序才能设计,所以要使用套接字(socket)来设计。 3。2 客户机/服务器模式 C/S结构(Client/Server结构)是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销. 目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 首先服务器方要启动,并根据请求提供相应服务: (1)打开一通信通道并告知本地主机,它在某一公认地址端口上(如http为80)接受客户请求。 (2)等待客户请求到达该端口。 (3)接收到重复服务请求,处理该请求并发送应答信号。接收并发服务请求,要激活一新进程来处理这个客户请求.新进程处理此客户请求,并不需要对其他请求做出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。 (4)返回第二步,等待另外的客户请求 (5)关闭服务器. 客户方: (1)打开一通信通道,并连接到服务器所在主机的特定端口. (2)向服务器发出服务请求报文,等待并接收应答;继续提出请求. (3)请求结束后关闭通信通道并终止。 从上面的描述过程可知: (1)客户与服务器进程的作用是非对称的。因此编码不同。 (2)服务进程一般是先于客户请求启动的。只要系统运行,该进程一直存在,直到正常终止或者强迫终止。在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的. 3.3 Socket socket之间的连接可以分为三种类型:客户端连接,监听连接以及服器 端连接。 客户端连接是指由客户端的socket提出连接请求,要连接的目标是服务器端的socket。为此,客户端的socket必须首先描述它要连接的服务器端socket(主要是指服务器 端socket的地址和端口号),然后再定位所要连接的服务器端socket,找到以后,就向服务器端 socket请求连接。当然,服务器端的socket此时未必正好处于准备好状态,不过,服务器端的 socket会自动维护客户请求连接的队列,然后在它认为合适的时候向客户端socket发出"允许连接" (accept)的信号,这时客户端socket与服务器端socket的连接就建立了。 监听连接,服务器端 socket并不定位具体的客户端socket,而是处于等待连接的状态。当服务器端socket监听到或者说 接收到客户端socket的连接请求,它就响应客户端socket的请求建立一个新的socket句柄并与客户 端连接,而服务器端socket继续处于监听状态,还可以接收其它客户端socket的连接请求。 服务器端连接,是指当服务器端socket接收到客户端socket的连接请求后,就把服务器端socket的描述发给客户端,一旦客户端确认了此描述,连接就建立了。在本文中的聊天程序用的就是监听连接,即服务器设置连接个数后进行监听,客户端进行对服务器端的连接,这样就可以进行相互通信了。 第4章 系统设计 4。1 开发语言及环境 开发语言:c++ 开发环境:visual studio 2013 4。2 需求分析 4。2.1 功能需求分析 (1)用户端之间的信息发送,本程序需要实现的最基本的功能.用户在界面上可以将自己需要发送的信息填入相应的对话框中,点击发送按钮后,可以将信息正常的发送给相应的其它用户,这个过程中的客户端与客户端之间使用点对点发送信息,利用TCP/IP协议中的UDP协议。 (2)在线用户主机IP列表的维护.在用户发送信息之前,需要选择相应的目的地端IP,这也就需要客户端拥有在线用户主机的IP地址,这个在线主机列表的维护是需要客户端定时自动向服务器端发送信息,服务器端收集并维护在线用户列表,再发送回客户端。需要在客户端和服务器端都使用定时器来完成此功能。 (3)在C/S模式中,服务器与客户端是相互依赖的。在客户端启用以后,需要查看服务器端是否在线,服务器在线才能正常使用客户端,如果服务器不在线,则在检测一定次数以后自动退出客户端程序。在使用过程中,客户端在指定时间内未向服务器端发送信息的,服务器认为客户端下线;客户端在一定时间内未收到服务器端信息的,认为服务器已经下线,则提示用户并建议退出,在用户一定时间后没有退出的则自动关闭客户端程序。 4。2。2 数据需求分析 (1)客户端之间聊天信息.在控件上显示时格式化,更易于用户的查看自己发送或接收到的信息。 (2)在线用户聊天信息。服务器端存放在适当的空间中,在发送给客户端时,对信息列表进行格式化,便于客户端提取信息. (3)客户端向服务器端发送的确认在线信息。包括客户端刚刚启动时的初始化信息和在使用过程中的确认在线信息。 (4)其它程序内部可能需要设计的数据结构体。 4.2。3 性能需求分析 (1)可靠性高,能在由于系统问题或其它原因产生错误后,作出相对应处理,比如网络初始化失败、服务器不在线等,可以提示用户安全退出本程序,在出现不可知的错误以后,可以尽量安全的退出程序.在程序的设计过程中,要求能尽可能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能。 (2)宜操作性,程序简单易懂,容易上手使用.设计界面是,简化界面的复杂性,模拟QQ等现有即时通讯工具的界面,使用户能很容易看懂并使用。 (3)开发文档易理解,保证以后自己二次开发或他人接手开发时,能够清晰的理解整个系统的设计思路和实现细节。 (4)模块化设计此软件的功能,不同的模块实现不同的功能,使得软件易于以后的维护与扩展,在以后可以更好的完善本软件的功能,更方便于在工作中的应用。 4.2。4 运行需求分析 (1)用户界面 程序较小,启动速度快。可在网络中使用。启动后的应用界面要清爽,设计要简单明了,要具有较高的易用性。 (2)故障处理 在遇到可预知的故障与情况时,能提示用户;在遇到不可预知的故障时能安全退出。 4.3 程序流程图 首先在服务器方,利用socket()函数建立流式套接字,返回套接字号s,接着利用bind()函数将套接字s与本地地址绑定,紧接着利用listen(0函数通知TCP,监听客户方,服务器准备接收连接,没有连接的话,服务器方通过closesocket()关闭套接字s,服务结束。有连接的话,在客户方,通过socket()函数建立流式套接字s,此时在服务器方,建立连接,通过accept()返回,得到新的套接字ns,客户方通过connect()将套接字s与远程地址连接,此时服务器方/客户方在ns/s上读/写数据,直到交换完成。交换完成后,服务器方/客户方关闭套接字ns/s,最后服务器方通过closesocket()关闭最初套接字s,服务结束。具体设计过程如图1—2所示。 服务器方 Socket()建立流式接字,返回套接字号s 返回套接字号 返回套接字号s Recv()/send()在ns上读/写数据,直到完成交换 listen()通知TCP服务器准备接收连接 accept()接收连接,等待客户端的连接 建立连接,accept()返回,得到新套接ns bind()套接字s与本地地址绑定 closesocket(),关闭套接字ns closesocket()关闭最初套接字s,服务结束 客户方 Socket()建立流式套接字号s connect()将套接字s与远程地址连接 Recv()/send()在s上读/写数据,直到完成交换 closesocket()关闭套接字s,结束TCP 图1—2 4.4 模块设计 4。4。1 服务器 首先运行服务器,服务器侦听端口消息,等待客户端向其建立连接的申请,一旦接收到客户端的连接请求,服务器将返回一个新的套接字描述符,通过该描述符调用数据传输函数即可与客户端进行数据的收发。服务器若接收的是登陆信息,向该用户发送在线用户列表,并更新服务器的在线用户列表;若收到的是发送信息,服务器解析信息,然后通过广播消息,向其所有线用户列表发送消息.具体代码如下: 4.4。2 客户端 在运行服务器之后,运行客户端.客户端首先向服务器提出建立连接请求,然后建立一个套接字描述符,通过该描述符调用数据传输函数即可与服务端进行数据的收发.用户登录成功后,向服务器发送登陆消息,并更新本地在线用户列表,然后通过服务器实现与其他客户聊天;当客户退出,向服务器发送下线消息.具体代码如下: 4。4。3 加密模块 第5章 程序测试 5.1 运行结果 开启服务器: 利用客户端连接服务器: 输入昵称并发送消息: 加密发送,接收端收到的是密文: 解密密文: 第6章 总结 这次的课程设计是两个人一组完成的,题目是基于des加密的聊天程序,在平日的生活学习中,可以说QQ等即时通讯软件已占据重要的位置,也深受大家的喜爱,所以这个课程设计很有现实意义,做起来也比较感兴趣。在具体做的过程中,参考了老师所讲还有网上的一些程序,虽然这个聊天的界面及功能比较简单,但从代码的编写及结果的调试成功还是花了我们很多的心思。从资料的收集和文档的编写等等。 课程设计项目的虽然要求是两人完成,但还是很多问题的解决离不开老师的指导及同学之间的探讨,这些在做项目的时候都是必不可少的。学校提供了设计的机房还有老师的悉心指导,这些跟课程设计的顺利完成都是密不可分的,在这里我们非常感谢大家带来的帮助。 另外就是知识方面的问题,计算机网络和c++ Socket有很多方面的知识还是很不熟悉,具体用到的时候就感觉生疏,或者还是缺乏设计方面的实践。课程设计的机会不是很多,由于所学的知识包含了太多的方面,所以实践方面还是远远不够,希望在学校期间能够多一些类似的机会。 虽然课程设计顺利的完成了,但由于我们水平有限,还是有很多的欠缺跟不足之处,希望老师给予指正. 参考文献 [1]谢希仁.计算机网络(第5版). 北京:电子工业出版社. [2]钱能.C++程序设计教程.北京:清华大学出版社. [3]陈鸣,计算机网络实践教程,机械工业出版社。 [4]曹丽娜 通信原理(第六版)国防大学出版社 [5]任泰明。TCP/IP协议与网络编程,西安:西安电子科技大学出版社,2004。3 [6]H。M。Deitel P。J。Deitel。C++程序设计教程,北京:机械工业出版社,2006.6 [7]吴功宜。计算机网络(第2版),北京:清华大学出版社,2007.3 [8] 谭浩强.C程序设计(第二版),清华大学出版社 [9] 郎锐 罗发根。Visual C++ 网络通信程序开发指南,北京:机械工业出版社,2004.3 16- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络安全 课程设计 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文