实验六密钥交换算法.doc

实验六密钥交换算法.doc

ID:53676705

大小:118.50 KB

页数:10页

时间:2020-04-05

实验六密钥交换算法.doc_第1页
实验六密钥交换算法.doc_第2页
实验六密钥交换算法.doc_第3页
实验六密钥交换算法.doc_第4页
实验六密钥交换算法.doc_第5页
资源描述:

《实验六密钥交换算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《信息安全基础实验指导》实验指导书实验六密钥交换算法实验名称:密钥交换算法实验类型:设计性实验学  时:2适用对象:信息安全一、实验目的学习Diffle-Hellman密钥交换算法,在密钥交换算法的基础上,掌握密钥交换算法的编程方法,加深对对称密码交换体制的了解,为深入学习密码学奠定基础。二、实验要求1.利用套接字编程编写包含客户端和服务器的程序,要求两者能够进行数据交换。Socket接口规范可以适用多种通讯协议,主要是TCP/IP。TCP/IP是计算机互联最常适用的网络通讯协议,TCP/IP的核心部分由网络操作系统的内核实

2、现,应用程序通过编程接口来访问TCP/IP,应用程序通讯的方式有图3-1所示。应用程序1应用程序2网络编程接口,如Socket网络通讯服务接口,如TCP/IP操作系统,如Unix或者Windows物理通讯介质图3-1:应用程序通信方式2.客户端和服务器进行密钥交换,并分别计算最终生成的密钥,看两者的密钥是否一致。三、实验原理1.套接字编程原理,详见附录2.密钥交换原理迪菲-赫尔曼通过公共信道交换一个信息,就可以建立一个可以用于在公共信道上安全通信的共享秘密(sharedsecret)。以下解释它的过程(包括算法的数学部分):

3、更详细的算法描述见:Wiki四、实验所需仪器、设备、材料(试剂)运行Windows或Linux操作系统的PC机,具有gcc(Linux)、java、VC(Windows)等C或java语言编译环境。五、实验预习要求、实验条件、方法及步骤(1)根据实验原理部分对DES算法随机读写的要求,画出流程关系图,考虑各种可能,并实现。六、由于实验代码相对较多,可以两个同学一组,分工完成实验。附录:套接字编程的资料基于C的面向连接的Socket编程模型TCP协议是面向连接协议,它提供了一系列的数据纠错功能,可以保证在网络上传输的数据及时、

4、无误的传给接收方。因此面向连接协议的Socket编程模型应用最为广泛,基于连接协议的服务是设计客户端/服务器应用程序时的标准。编程模型如图3-4所示。模型中,服务器端的处理:(1)使用socket系统调用,生成一个TCP协议模块与应用程序之间进行通信的套接字;使用bind系统调用指定端口号;(2)使用bind系统调用指定端口号;(3)使用listen系统调用,指定连接接收队列的长度,并等待来自客户端的连接请求。前三步完成了启动服务器程序的工作。一旦listen监听到有客户端的连接,就调用accept接收连接。希望与服务器通信

5、的进程称为客户,客户所运行的计算机环境称为客户端,有时两个概念混用。客户端的处理:(1)使用socket系统调用,打开TCP协议模块与应用程序之间的通信线路;(2)使用connect系统调用,指定IP地址和端口号,和服务器相应的服务应用程序建立TCP协议的连接请求;客户端和服务器程序在建立连接后,使用send和recv调用完成数据的发送和接收工作。等待数据传送结束后,各自调用close关闭套接字。使用TCP协议的Socket通信程序包括服务程序和客户程序。服务器端客户端socketbindlistensocketconnec

6、tacceptrecvsendrecvclosesendclose阻塞自己等待客户连接建立连接请求数据应答数据图3-4:基于C的面向连接的socket编程模型基于C的Socket编程相关函数和数据类型1.sockadd和sockaddr_in结构:①sockaddr结构structsockaddr{unsignedshortsa_family;/*地址族,AF_xxx有IPV4与IPV6等*/charsa_data[14];/*14字节的协议地址*/};sa_family一般为AF_INET,表示Internet协议族,如是

7、AF_UNIX表示UNIX协议簇;sa_data中包含该socket的IP地址和端口号。②in_add结构,用来存储四字节的IP地址structin_addr{unsignedlongs_addr;};③sockaddr_in结构structsockaddr_in{shortintsin_family;/*地址族*/unsignedshortintsin_port;/*端口号*/structin_addsin_addr;/*IP地址*/unsignedcharsin_zero[8];/*填充0以保持与structsockad

8、dr同样大小*/};该结构中sin_zero使得sockaddr和sockaddr_in指针类型相互转换;sin_port和sin_addr必须是网络字节顺序,因为它们被封装在包的IP和UDP层,而sin_family不发送到网络上可以是本机字节顺序。相关函数1.socket()函数该函数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。