信息的安全传输实验
- 实验目的
- 设计安全的信息传输工具,解决网络传输涉密文件过程中的安全性问题。安全的信息传输,涉及多个密码学知识点,在实验设计过程中,不断加深理解密码学基本概念和算法基础原理,并且能够锻炼学生独立的代码编写能力和知识的综合运用能力。
- 实验环境
- Windows
-
实验要求
- 采用对称与非对称混合加密方法,每进行一次通信,更改一次会话**(用于信息加密的对称**)。
- 能够实现对任意类型的文件进行安全传输。
- 可采用适当的开发语言和开发工具。
- 软件用户界面友好,提示信息完整,操作舒适。
- 提交实验报告、包括分析和设计文档及代码清单。
- 平台不限。linux/windows/android
- 实验内容
- 总体设计
1.1开发环境
Python2.7
IDE:Pycharm2016.3.2
1.2程序框架
- 详细设计
2.1 Md5生成信息摘要
通过Crypto库里的md5算法
调用该函数的部分
解密调用部分
2.2 RSA进行数字签名
利用M2Crypto里的RSA模块进行RSA私钥加密,实现数字签名
对应RSA公钥解密
调用该函数的部分
对应解密调用部分
2.3 AES进行文件加解密
利用Crypto里的AES模块进行加密
对应AES解密
调用该函数的部分
对文件进行加密时
对应解密部分
对数字签名进行加密时
对应解密部分
2.4 RSA进行AES**加解密
利用M2Crypto的RSA模块进行RSA公钥加密
对应解密部分
调用该函数的部分
对应解密部分
2.5 C/S的Socket传输
这里利用客户端和服务器模式来进行传输加密后的文件,以主动发送文件的Alice作为客户端,接收文件的Bob作为服务器,实际开发中只需再多一个反过来的进程即可实现双向文件安全传输,这里只做单向开发。
Bob服务端
启动一个端口(9999)监听
并循环等待,接收文件
Alice客户端
连接所需的服务器IP及端口
传输文件的函数
- 程序展示
该程序分为Alice和Bob传输对象,其中Alice作为client端,Bob作为Server端。
此为Alice下的计算机
此为Bob下的计算机
Bob先开启服务器端口
Alice进行文件传输
注:红色框为所需输入文件名
同时可以看到,Bob接收到Alice发的文件
可以看到Bob这边自动接收文件并进行解密,及完整性检验
可以看到,其中对解密文件摘要和数字签名得到的摘要进行对比检验
打开file_decrypted
与message.txt一致
证明文件安全传输成功
- 实验总结
通过完整地设计一个文件安全传输,对对称加密算法、非对称加密算法、信息摘要算法的各优缺点更加理解,并综合地利用这几个部分算法进行应用,得到了很好的编程能力和设计能力的锻炼。其中,设计该文件安全传输系统中,考虑到如下安全性的设计:
保密性:Alice对文件内容、数字签名进行AES加密,对AES加密初始变量iv、AES**进行RSA加密。
完整性:数字签名解密后的摘要与解密文件的摘要进行验证。
不可否认性:数字签名时用Alice私钥对原文件摘要进行签名,在用Bob公钥对AES**加密前先用Alice私钥对AES**进行一次加密。