密码应用-----文件传输安全
【实验目的】
1.掌握安全通信中常用的加密算法
2.掌握数字签名过程
3.掌握安全文件传输基本步骤
【实验安排】
1学时;每组2人
【实验原理】
1. 数字签名
传统的签名在商业和生活中广泛使用,它主要作为身份的证明手段。在现代的网络活动中,人们希望把签名制度引入到网络商业和网络通信的领域,用以实现身份的证明。密码学的发展,为数字签名这项技术的实现提供了基础,PKI(公钥基础设施)体系也正是利用数字签名技术来保证信息传输过程中的数据完整性以及提供对信息发送者身份的认证和不可抵赖性。
数字签名的过程如图5-1-1所示。
数字签名的验证过程如图5-1-2所示。
图5-1-2 数字签名验证过程
2.安全通信要求
我们假设一下要进行网络通信的两个终端(A和B)所处的环境:
● 终端A和终端B相距很远,彼此间很难见面(但可以通过Internet通信)。
● 终端A有很重要的信息必须要发送给终端B。
● 这个过程中,终端A不能使用除计算机网络之外其他的通信方式,比如电话,传真等。
安全通信的要求:
● 保密要求:终端A的信息(明文)要加密通信给终端B。
● 认证要求:终端B能认证发送人的身份是终端A,而不是其他人。
● 数据完整性要求:终端B能认证收到的密文没有被篡改。
● 不可否认要求:终端A事后不能否认曾经把信息传递给终端B。
以上这些要求也是真实世界中安全通信的基本要求,只能较好的提供安全性,但是不能达到绝对的安全通信(有关更高级的安全通信方法请参考公钥基础设施PKI的相关知识)。
3.实验步骤:
一.手动实现信息的安全传输
说明:实验应采用对称加密算法、非对称加密算法和哈希算法相结合的方式,通过使用密码工具实现信息的安全传输。以终端A为发送方,终端B为接收方为例,实现流程大致应如下。
终端A操作:
与终端B预先协商好通信过程中所使用到的对称加密算法、非对称加密算法和哈希函数;
采用对称加密算法(密钥称之为会话密钥)对传输信息进行加密得到密文,确保传输信息的保密性;
使用终端B的公钥对会话密钥进行加密,确保传输信息的保密性以及信息接收方的不可否认性;
采用哈希函数(生成文件摘要)确保传输信息的完整性,并使用自己的私钥对文件摘要进行签名(得到数字签名),确保信息发送方的不可否认性;
将密文、加密后的会话密钥和数字签名打包封装(放到一起)后,通过网络传输给终端B。
终端B操作:
与终端A预先已协商好通信过程中所使用到的对称加密算法、非对称加密算法和哈希函数;
使用自己的私钥对终端A加密的会话密钥进行解密,得到准会话密钥;
使用准会话密钥对得到的密文进行解密,得到准明文;
使用终端A的公钥对得到的数字签名进行签名验证,得到准明文摘要;
使用哈希函数计算得到准明文摘要;
将计算得到的摘要与准明文摘要进行比较,若相同则表明文件安全传输成功。
要求:实验同组主机根据实验流程自行设计实验操作步骤,最终实现文件安全传输。
实验操作步骤设计为:
实验为两人,A,B我们事先商议好对称加密算法采用AES并密码相互协调好,非对称密码采用RSA,并且相互公钥已知各自保留私钥,用MD5实现数字签名;
A步骤流程:
1 采用AES算法用对称密钥C1对所要加密的信息(明文M)进行加密,得到密文C
2使用B的公钥Cb对会话密钥C1进行加密得到密文Ci;
3使用MD5对明文M进行加密得到摘要CA,然后使用自己的私钥Ca对CA进行加密得到数字签名Cs
4将C,Ci,Cs发送给B
B步骤流程:
1将收到的包,使用自己的私钥对Ci进行解密得到Cii;
2使用得到的Cii对得到的C进行解密得到C’
3使用A的公钥对得到的数字签名Cs进行解密得到X,
4用MD5对C’进行加密得到X’
5如果X与X’比较结果相同证明文件传输成功,否则文件传输失败
思考问题:
1. 你所设计的实验步骤,哪些步骤实现了信息传输的保密性、完整性和不可否认性。
在A中步骤1,2体现了信息传输的保密性;
在B中3体现了传输信息的不可否认性;
在B中的5体现了信息的完整性;
2.在实验设计中为什么不直接应用非对称加密算法直接对明文进行加密传输,而是使用对称加密算法完成对明文的加密工作。
1因为直接使用非对称加密算法进行加密不能保证通信双方的身份,因为公钥有可能被第三方知道,从而违背了信息传输中不可否认性的要求;
2使用对称加密算法对明文加密是因为它能更好的实现数字签名,从而保证信息的完整性,并且可以保证传输信息的不可否认;
【实验总结】
通过这次实验使用更深入的的理解了对称密码与非对称密码的优缺点,同时也对它们之间的工作特点有了更深一步的熟悉,并对数字签名的原理有了形象化的认识。