从私钥模数和私钥指数中获取 RSA 公钥

用户1831114

我一直在阅读一些 RSA 文献和堆栈溢出问题,但没有得到明确的答案。

仅给定 RSA 私钥模数和私有指数,这就是我所拥有的(也足以用于所有与加密相关的操作),我可以获得相关的公钥模数和公共指数吗?

另外,我可以仅使用这两个参数获取私钥的编码形式吗?我在 java 中尝试了以下操作(java 不是实际的要求),但是支持它的 OpenSSL 引擎失败并显示错误:04000090:RSA 例程:OPENSSL_internal:VALUE_MISSING

@NonNull
public static byte[] getEncodedRsaPrivateKey(@NonNull BigInteger nModulus, @NonNull BigInteger nPrivateExponent) throws NoSuchAlgorithmException, InvalidKeySpecException {
    RSAPrivateKeySpec privateKeySpec = new RSAPrivateKeySpec(nModulus, nPrivateExponent);
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    PrivateKey privateKey = keyFactory.generatePrivate(privateKeySpec);
    return privateKey.getEncoded();
}

我想这两个问题的答案都是否定的,但我不确定。

伍德斯托克

通常RSA私钥包含以下数据:

  • n - 半素数

  • d - 私人指数

  • p& q- 的主要因素n

  • e - 公共指数

在一个最小的,私有密钥必须包含以下内容:

  • nd

所以回答你的问题:

我可以得到相关的公钥模数吗?

是的,你已经拥有了。n与私钥使用的相同

我可以得到公共指数吗?

不容易不知道pq,虽然你可以在它猜测,这是几乎总是小的素数,最常见的两种365537

尝试两者并检查密文是否有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章