python 椭圆曲线dh密钥交换_使用椭圆曲线Diffie-Hellman和辅助因子密钥生成对称密钥...

本文介绍了如何在Python中使用椭圆曲线Diffie-Hellman(ECDH)协议,结合辅助因子生成对称密钥。作者通过Java代码示例展示了密钥生成过程,探讨了静态密钥与短暂密钥的区别,并寻求确认正确使用静态密钥的方法。
摘要由CSDN通过智能技术生成

已解决

密码学Python

使用椭圆曲线Diffie-Hellman和辅助因子密钥生成对称密钥649788f17101bff39e9643602f4d66a1.png10

我是ECDH的新手,想要在Java中生成一个密钥。 我想使用椭圆曲线Diffie-Hellman和辅助因子密钥推导。 我正在使用P-256曲线进行椭圆曲线运算。 我打算使用生成的秘密作为我的分组密码的对称密钥。

我一直在研究这个问题,并提供以下工作样本。 这会生成密钥。Provider BC = new org.bouncycastle.jce.provider.BouncyCastleProvider();

ProviderList.newList(BC);

ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("P-256");

KeyPairGenerator g = (KeyPairGenerator) KeyPairGenerator.getInstance(

"ECDH",BC);

g.initialize(ecSpec, new SecureRandom());

KeyPair aKeyPair = g.generateKeyPair();

KeyAgreement aKeyAgree = KeyAgreement.getInstance("ECDH", BC);

aKeyAgree.init(aKeyPair.getPrivate());

KeyPair bKeyPair = g.generateKeyPair();

KeyAgreement bKeyAgree = KeyAgreement.getInstance("ECDH", BC);

bKeyAgree.init(bKeyPair.getPrivate());

aKeyAgree.doPhase(bKeyPair.getPublic(), true);

bKeyAgree.doPhase(aKeyPair.getPublic(), true);

byte[] aSecret = aKeyAgree.generateSecret();

byte[] bSecret = bKeyAgree.generateSecret();

System.out.println(new String(aSecret));

System.out.println(new String(bSecret));

我担心我使用的是短暂的私钥和公钥而不是静态密钥。 请告诉我如何使用静态私钥和公钥生成密钥。

阿斯顿法国

2019.06.11

95fa9268de11d0061c77acb40a6f985f.png4076

3037648d6a74d46918a474e105002d34.png收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值