微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Diffie Hellman 密钥协议在 Java 中使用可选的 subprime q 和 DHParameterSpec

如何解决Diffie Hellman 密钥协议在 Java 中使用可选的 subprime q 和 DHParameterSpec

我正在尝试执行 Diffie Hellman hey 协议,作为参数定义的一部分,我有 3 个值:

质数模数 p 基本生成器 g 一个次贷 q

查看用于创建执行此协议所需的密钥的各种构造函数,我似乎无法设置 q 值:

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/javax/crypto/spec/DHParameterSpec.html

DHParameterSpec (BigInteger p,BigInteger g)
使用素数模 p 和基生成器 g 为 Diffie-Hellman 构造参数集。 DHParameterSpec (BigInteger p,BigInteger g,int l)
为 Diffie-Hellman 构造参数集,使用质数模数 p、底生成器 g 和随机指数(私有值)的位大小 l。

https://docs.oracle.com/javase/9/docs/api/javax/crypto/spec/DHPublicKeySpec.html

DHPublicKeySpec (BigInteger y,BigInteger p,BigInteger g)
构造函数采用公共值 y、质数模数 p 和基生成器 g。

https://docs.oracle.com/javase/9/docs/api/javax/crypto/spec/DHPrivateKeySpec.html

DHPrivateKeySpec (BigInteger x,BigInteger g)
构造函数采用私有值 x、质数模数 p 和基生成器 g。

现在,我知道 Bouncy Castle 有一个支持功能的实现:

https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/crypto/params/DHParameters.html

但我不能使用充气城堡。

有没有办法仍然使用 DHParameterSpec/DHPublicKey/DHPrivateKey 和我缺少的 q 值?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。