[英]Diffie Hellman Key Agreement using optional subprime q with DHParameterSpec in Java
我正在嘗試執行 Diffie Hellman Hey 協議,作為參數定義的一部分,我有 3 個值:
a 質數模數 pa 基礎生成器 ga 次質數 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)
使用質數模數 p、基本生成器 g 和隨機指數(私有值)的位大小 l 構造 Diffie-Hellman 的參數集。
和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 p, BigInteger g)
采用私有值 x、質數模數 p 和基本生成器 g 的構造函數。
現在,我知道 Bouncy Castle 有一個支持這個的實現:
https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/crypto/params/DHParameters.html
但是我不能使用充氣城堡。
有沒有辦法仍然使用 DHParameterSpec/DHPublicKey/DHPrivateKey 和我缺少的 q 值?
使用 DSA BigInteger getG() 返回基數 g。 BigInteger getP() 返回素數 p。 BigInteger getQ() 返回次級素數 q。 https://docs.oracle.com/javase/7/docs/api/java/security/spec/DSAParameterSpec.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.