信息安全实习报告4[修改版]
第一篇:信息安全实习报告4实习四 基于 Diffle-Human 的密钥交换 一 实习名称基于 Diffle-Human 的密钥交换二 实习目的1 理解密钥管理相关内容,熟悉 Diffle-H
4 第一篇:信息安全实习报告 Diffle-Human 实习四基于的密钥交换一实习名称 Diffle-Human 基于的密钥交换 二实习目的 1Diffle-Human2javaDiffle-Human 理解密钥管理相关内容,熟悉的密钥交换协议在平台上实现基于 的密钥交换 三实习要求 1Diffle-Human2Java.security.* 实习前认真预习关于的密钥交换相关内容熟悉的密钥交换 四实习内容 1Diffle-HumanDHAB 问题描述:算法是建立在公钥和私钥基础上的密钥分配算法,如需要和共享 ABDH2java 密钥时,和各自生成的公钥和私钥,公钥对外公布而私钥各自秘密保存基本要求在 Diffle-Human31KeyGenerator 平台上实现基于的密钥交换实现提示()利用公钥密码中的类创建公 “DH”DHDHParameterSpec 钥对,其参数指定为,另外在初始化时需要为指定的参数 DHP=newDHParameterSpec(skip1024Modulus,skip1024Base);(2)skip1024Modulus 指定模块, skip1024Base3ABABDHA 指定基数。()建立两个目录和,模拟需要秘密通信的,方算法需要和 BDH4javaKeyAgreementinit() 各自生成公钥和私钥()中类实现了密钥协定,它使得方法传入自 doPhase()generateSecret()3 己的私钥,使用方法传入对方的公钥,进而可以使用方法生成共享的信息 密钥交换方法 YBx A YAX B /*DH*/ 核心代码:密钥对的生成 privatestaticfinalBigIntegerskip1024Modulus=newBigInteger(1,skip1024ModulusBytes);privatestatic finalBigIntegerskip1024Base=BigInteger.valueOf(2);publicstaticvoidmain(Stringargs[])throws Exception{/*DH*/DHParameterSpecDHP=new 创建密钥对时所用到的基数和模 DHParameterSpec(skip1024Modulus,skip1024Base);KeyPairGenerator kpg=KeyPairGenerator.getInstance("DH");kpg.initialize(DHP);KeyPairkp=kpg.genKeyPair();PublicKey pbk=kp.getPublic();PrivateKeyprk=kp.getPrivate();FileOutputStreamf1=new FileOutputStream("Key_DH_pub.dat");ObjectOutputStreamb1=newObjectOutputStream(f1); b1.writeObject(pbk);FileOutputStreamf2=newFileOutputStream("Key_DH_prv.dat"); ObjectOutputStreamb2=newObjectOutputStream(f2);b2.writeObject(prk);} /**//**/publicclassKeyAgree{publicstaticvoidmain(String[]args)throws 共享密钥的创建密钥协定

![信息安全实习报告4[修改版]](https://wkimg.docs.qq.com/img/pEvHIeSHwBkTa3OVswyAl.png)