信息的安全传输实验

  • 实验目的
  1. 设计安全的信息传输工具,解决网络传输涉密文件过程中的安全性问题。安全的信息传输,涉及多个密码学知识点,在实验设计过程中,不断加深理解密码学基本概念和算法基础原理,并且能够锻炼学生独立的代码编写能力和知识的综合运用能力。
  • 实验环境
  1. Windows
  • 实验要求
    1. 采用对称与非对称混合加密方法,每进行一次通信,更改一次会话**(用于信息加密的对称**)。
    2. 能够实现对任意类型的文件进行安全传输。
    3. 可采用适当的开发语言和开发工具。
    4. 软件用户界面友好,提示信息完整,操作舒适。
    5. 提交实验报告、包括分析和设计文档及代码清单。
    6. 平台不限。linux/windows/android
  • 实验内容
  1. 总体设计

1.1开发环境

       Python2.7

IDE:Pycharm2016.3.2

1.2程序框架

信息的安全传输实验

  1. 详细设计

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及端口

信息的安全传输实验

传输文件的函数

信息的安全传输实验

  1. 程序展示

该程序分为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**进行一次加密。