ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:634.50KB ,
资源ID:8100662      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8100662.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(密钥分配.doc)为本站会员(dcs1276)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

密钥分配.doc

1、实习一 密钥分配一、实习目的1理解密钥管理的重要性;2掌握对称密码和公钥密码密钥管理的不同特性;3掌握密钥分发基本方法,能设计密钥分发方案二、实习要求1实习前认真预习第 2 章的有关内容;2复习对称密码和公钥密码相关内容;3熟悉 Java 平台的 JCE 包有关类。三、 实习内容假定两个用户 A、B,用户 A、B 的通讯密钥为 K,他们的公私钥对分别是 KPUa、K PRa和 KPUb、K PRb,他们要进行安全通讯,密钥分发与通信过程如 1 所示。(1)根据图 1 所示,实现利用公钥密码算法分发对称密钥的过程。实现的阶梯任务如下:以本地两个目录模拟两个用户,采用变量方式直接实现密钥的分发;实

2、现算法的图形化方式,用户可以选择算法、参数、工作模式等;以文件方式管理密钥及明文、密文;采用 SSL,建立安全通信过程;将方案移植到某个 web 应用中。(2)按照(1)的阶梯任务,实现基于 DH 密钥协定的密钥分发。 三、数据测试及预期结果对 称 密 码 通 信Comunicaton bysmetrical ryptography公 开 密 码 传 输 对 称 密 钥To transmit heky ofsymetrical ryptography bpulic ryptography发 方Sendr 加 密 C=Ek(P)Encrypt 解 密 P=Dk(C)Decrypt 收 方Acep

3、tr密 钥 Key加 密 Ck=Ep(K)Encryptk 解 密 K=Dsk(C)Decrypt 密 钥 Key明 文 PPlaintex 明 文 PPlaintex 密 文 CCryptograh密 文 CkCryptograph公 钥 PKPublicey 私 钥 SK Privatey图 1 基 于 混 合 加 密 的 安 全 通 信 模 型Fig.1 Model fsecur omunication based onmixed cryptograhy 1、利用 DES 算法生成对称密钥 Key,运行程序后生成 Key.dat 文件2、利用 RSA 算法生成公钥密钥对,将公钥存入 A

4、文件夹下,将私钥存入 B 文件夹下,运行程序后在 A 文件夹下生成 Skey_RSA_pub.dat 文件,在 B 文件夹下生成Skey_RSA_priv.dat 文件:3、利用 RSA 加密算法对对称密钥加密,将加密后文件保存为 Enc_RSA.dat 文件,运行程序后:4、 利用 RSA 解密算法对密文进行解密,将解密后的文件 Key.dat 写入 B 文件夹下,运行程序后 B 文件夹下生成 Key.dat 文件:四、算法分析及流程图StartDES 生成密钥KRSA 生成公钥密钥对RSA 加密算法使用公钥对密钥 K 加密RSA 解密算法使用私钥解密End五、实验总结通过本次实习,复习了

5、DES 和 RSA 的相关知识,通过使用 DES 算法和 RSA 算法实现密钥分发与通信过程,对密钥的分配过程有了一定的了解。还复习了 java 中有关加密解密的类库,感叹 Java 真的是很强大呀。还有就是 也能提高我们自己的安全意识,之所以要学习安全类的课程,就是因为网络是不安全的。学习了之后也能的以后的开发中避免类似的问题。附录:源程序/生成对称密钥package Skey;import java.io.FileOutputStream;import java.io.ObjectOutputStream;import javax.crypto.KeyGenerator;import ja

6、vax.crypto.SecretKey;public class Skey_DES /* param args*/ TODO Auto-generated method stub/对称密钥的生成,并通过对象序列化方式保存在文件中public static void main(String args) throws ExceptionKeyGenerator kg=KeyGenerator.getInstance(“DESede“);/创建密钥生成器kg.init(168);/初始化密钥生成器SecretKey k=kg.generateKey( );/生成密钥/通过对象序列化方式将密钥保存在

7、文件中FileOutputStream f1=new FileOutputStream(“A/Key.dat“);ObjectOutputStream b1=new ObjectOutputStream(f1);b1.writeObject(k);/生成对称密钥对package RSA;import java.io.*;import java.security.*;public class Skey_RSA /* param args*/public static void main(String args) throws Exception/密钥对生成器KeyPairGenerator工厂,

8、非对称加密算法:RSA,DSAKeyPairGenerator kpg=KeyPairGenerator.getInstance(“RSA“);/制定密钥长度kpg.initialize(1024);/生成密钥对KeyPair kp=kpg.genKeyPair();PublicKey pbkey=kp.getPublic();PrivateKey prkey=kp.getPrivate();FileOutputStream f1=new FileOutputStream(“A/Skey_RSA_pub.dat“);ObjectOutputStream b1=new ObjectOutputS

9、tream(f1);b1.writeObject(pbkey);FileOutputStream f2=new FileOutputStream(“B/Skey_RSA_priv.dat“);ObjectOutputStream b2=new ObjectOutputStream(f2);b2.writeObject(prkey);/公钥加密package RSA;import java.security.interfaces.RSAPublicKey;import java.math.*;import java.io.*;public class Enc_RSA public static

10、void main(String args) throws ExceptionBufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream(“A/Key.dat“);String s=in.readLine();FileInputStream f=new FileInputStream(“A/Skey_RSA_pub.dat“);ObjectInputStream b=new ObjectInputStream(f);/公钥转换为RSA公钥RSAPublicKey pbk=(RSAPublicKey

11、)b.readObject();/获取公钥参数:公钥对应的整数e,用于取模的整数nBigInteger e=pbk.getPublicExponent();BigInteger n=pbk.getModulus();System.out.println(“e=“+e);System.out.println(“n=“+n);byte ptext=s.getBytes(“UTF8“);BigInteger m=new BigInteger(ptext);BigInteger c=m.modPow(e,n);System.out.println(“c=“+c);String cs=c.toStrin

12、g();BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(“Enc_RSA.dat“);out.write(cs,0,cs.length();out.close();/私钥解密package RSA;import java.security.interfaces.*;import java.math.*;import java.io.*;public class Dec_RSA public static void main(String args) throws Exceptio

13、nBufferedReader in=new BufferedReader (new InputStreamReader(new FileInputStream(“Enc_RSA.dat“);String ctext=in.readLine();BigInteger c=new BigInteger(ctext);FileInputStream f=new FileInputStream(“B/Skey_RSA_priv.dat“);ObjectInputStream b=new ObjectInputStream(f);RSAPrivateKey prk=(RSAPrivateKey)b.r

14、eadObject();BigInteger d=prk.getPrivateExponent();BigInteger n=prk.getModulus();System.out.println(“d=“+d);System.out.println(“n=“+n);BigInteger m=c.modPow(d, n);System.out.println(“m=“+m);bytemt=m.toByteArray();System.out.println(“Plain Text is“);for(int i=0;imt.length;i+)System.out.print(char)mti);FileOutputStream f1=new FileOutputStream(“B/Key.dat“);ObjectOutputStream b1=new ObjectOutputStream(f1);b1.writeObject(m);

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报