当前位置: 首页 > 知识库问答 >
问题:

由私钥模和私钥指数得到RSA公钥

慕容恩
2023-03-14

我一直在阅读一些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();
}

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

共有1个答案

易招
2023-03-14

通常私钥包含以下数据:

N-半素数模D-私有指数P&Q-N-public指数

私钥至少必须包含:

如果不知道pq是不容易的,尽管您可以猜到它,但它几乎总是一个小素数,最常见的是365537

两者都试一下,并检查密文是否有效。

 类似资料:
  • 我也尝试了npm ursa模块,不幸的是没有成功。

  • 我使用命令“ssh-keygen-t rsa”创建了一个没有密码的公钥,我打算将其用于github,但我错误地发送了公钥和私钥...... 这到底意味着什么?

  • (我正在用MAC) 我的id_rsa以 但我希望一开始 我已将我的身份证发送给rsa。发布给服务器管理员以获得对服务器的访问权,因此我不想生成新密钥。 > 有什么方法可以将我的id_rsaopenssh私钥转移到RSA私钥吗?(请指挥。) 如果我可以传输,我是否还需要传输id_rsa。酒吧(请发命令。)看来是我的错。pub没有像id_rsa这样的头,所以我不确定是否也应该传输它。 非常感谢。

  • 当我用OpenSSL生成RSA密钥对时,似乎私钥(私有指数)总是小于公钥(模)。它是由RSA设计的吗?

  • 并且我将这个函数称为用RSA公钥加密DSA密钥的函数:

  • 我试图从模数&私有/公共指数重建一个RSA keypair。对公钥的转换是正确的,但对私钥的转换在比较编码的私钥时失败。 当使用此重建私有/公共键盘进行加密时,它工作(!)在Java中,但是在PHP中使用rebuild keypair时,解密部分失败(加密工作),所以在我看来,rebuild私钥与“原始”私钥是不同的。 仅供参考:使用“原始”keypair在PHP中一切都很好。 所以我的问题是:如