1 / 10
文档名称:

实习4基于Diffle-Human的密钥交换.docx

格式:docx   大小:148KB   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实习4基于Diffle-Human的密钥交换.docx

上传人:rdwiirh 2020/9/25 文件大小:148 KB

下载得到文件列表

实习4基于Diffle-Human的密钥交换.docx

相关文档

文档介绍

文档介绍:实****四基于Diffle-Human的密钥交换实****目的理解密钥管理相关内容,熟悉Diffle-Human的密钥交换协议;在java平台上实现基于Diffle-Human的密钥交换。实****要求实****前预****第7章的内容;.*中相关的类。实****内容1.[问题描述]Diffle-Human算法是建立在DH公钥和私钥基础上的秘钥分配算法,如A需要和B共享密钥时,A和B各自生成DH的公钥和私钥,公钥对外公布而私钥各自秘密保存。2.[基本要求]在java平台上实现基于Diffle-Human的密钥交换。3.[实现提示](1)利用公钥密码中的KeyGenerator类创建公钥密钥对,其参数指定为”DH”。另外在初始化时需要为DH指定的参数DHParameterSpecDHP=newDHParameterSpec(skip1024Modulus,skip1024Base);(2)skip1024Modulus指定模,skip1024Base指定基数。协议简单密钥管理标准中已经指定,在安装JSDK后,计算机的C盘中存在C:\jsdk-1_4_0-doc\docs\guide\security\jce\,其中包含密钥长度为1024的DH密钥中的模和基数的定义,可以直接复制下来,-Hellmanmodulus注释语句,将其下的skip1024ModulusBytes[]数组及BigInteger类型的skip1024Modulus和skip1024Base复制下来即可。(3)建立两个目录A和B,模拟需要秘密通信的A、B双方,DH算法需要A和B各自生成DH公钥和私钥。(4)java中KeyAgreement类实现了密钥协定,它使得init()方法传入自己的私钥,使用doPhase()方法传入对方的公钥,进而可以使用generateSecret()方法生成共享的信息。实****过程编程思路(1)生成DH参数DHParameterSpecDHP=newDHParameterSpec(skip1024Modulus,skip1024Base);分析:和RSA算法类似,DH算法涉及到一些指数和取模运算,DH参数指定A、B双方在创建DH密钥时所公用的基数和模(2)创建密钥对生成器KeyPairGeneratorkpg=("DH");分析:密钥对生成器即KeyPairGenerator类型的对象,通过其中预定义的一个静态方法getInstance()获取KeyPairGenerator类型的对象。getInstance()方法的参数指定为“DH”。(3)(DHP);分析:初始化时使用的参数即第1步中生成的参数。(4)生成密钥对,获取公钥和私钥KeyPairkp=();PublicKeypbk=();PrivateKeyprk=();分析:使用KeyPairGenerator类的genKeyPair()方法生成密钥对,进而使用密钥对的getPublic()和getPrivate()获取公钥