当前位置:首页 > 密钥分配 - 图文
实习一 密钥分配
一、实习目的
1.理解密钥管理的重要性;
2.掌握对称密码和公钥密码密钥管理的不同特性; 3.掌握密钥分发基本方法,能设计密钥分发方案
二、实习要求
1.实习前认真预习第2章的有关内容; 2.复习对称密码和公钥密码相关内容; 3.熟悉Java平台的JCE包有关类。
三、 实习内容
假定两个用户A、B,用户A、B的通讯密钥为K,他们的公私钥对分别是KPUa、KPRa
和KPUb、KPRb,他们要进行安全通讯,密钥分发与通信过程如1所示。
明 文 PPlaintext P对称密码通信Communication by symmetrical cryptography
发 方Sender加密 C=Ek(P)Encrypt C=Ek(P)密 文 CCryptograph C解密 P=Dk(C)Decrypt P=Dk(C)明 文 PPlaintext P收 方Accepter密钥 KKey K加密 Ck=Epk(K)Encrypt Ck=Epk(K)密文 CkCryptograph Ck密钥 KKey K解密 K=Dsk(Ck)Decrypt K=Dsk(Ck)公钥 PK Public Key PK私钥 SK Private Key SK公开密码传输对称密钥To transmit the key of symmetrical cryptography by public cryptography图1 基于混合加密的安全通信模型Fig.1 Model of secure communication based on mixed cryptography (1)根据图1所示,实现利用公钥密码算法分发对称密钥的过程。 实现的阶梯任务如下:
①以本地两个目录模拟两个用户,采用变量方式直接实现密钥的分发; ②实现算法的图形化方式,用户可以选择算法、参数、工作模式等; ③以文件方式管理密钥及明文、密文; ④采用SSL,建立安全通信过程; ⑤将方案移植到某个web应用中。
(2)按照(1)的阶梯任务,实现基于DH密钥协定的密钥分发。
三、数据测试及预期结果
1、利用DES算法生成对称密钥Key,运行程序后生成Key.dat文件
2、利用RSA算法生成公钥密钥对,将公钥存入A文件夹下,将私钥存入B文件夹下,运行程序后在A文件夹下生成Skey_RSA_pub.dat文件,在B文件夹下生成Skey_RSA_priv.dat文件:
3、利用RSA加密算法对对称密钥加密,将加密后文件保存为Enc_RSA.dat文件,运行程序后:
4、 利用RSA解密算法对密文进行解密,将解密后的文件Key.dat写入B文件夹下,运行程
序后B文件夹下生成Key.dat文件:
四、算法分析及流程图
Start DES生成密钥RSA生成公钥密钥RSA加密算法使用公钥对密钥K加密 RSA解密算法使用私钥解密 End
五、实验总结
通过本次实习,复习了DES和RSA的相关知识,通过使用DES算法和RSA算法实现密钥分发与通信过程,对密钥的分配过程有了一定的了解。还复习了java中有关加密解密的类库,感叹Java真的是很强大呀。还有就是 也能提高我们自己的安全意识,之所以要学习安全类的课程,就是因为网络是不安全的。学习了之后也能的以后的开发中避免类似的问题。
附录:
源程序
//生成对称密钥 package Skey;
import java.io.FileOutputStream; import java.io.ObjectOutputStream; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey;
public class Skey_DES {
/**
* @param args */
// TODO Auto-generated method stub
//对称密钥的生成,并通过对象序列化方式保存在文件中
public static void main(String args[]) throws Exception
共分享92篇相关文档