信息的安全传输实验

  • 实验目的
  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密钥进行一次加密。

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值