有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

已知公钥时生成Java RSA私钥

在java中,当已知公钥时,例如3,是否有方法生成RSA私钥

我找不到一种使用java中的KeyPairGenerator类实现这一点的方法。安全软件包

我的问题很简单,我不是在寻找与密码学相关的信息。 我只想知道,如果我有用于RSA的公共指数,是否有一种方法在java获得该公共指数的私有指数,对于给定的模长度,例如2048? 这将有助于了解以下主题: https://en.wikipedia.org/wiki/RSA_(cryptosystem)#Key_generation https://en.wikipedia.org/wiki/65,537


共 (2) 个答案

  1. # 1 楼答案

    答案是“不”

    详细的答案是使用sunrsasign提供程序,它实现了RSAKeyPairGenerator,使公共指数为65537: *"/** *RSA密钥对生成。标准算法,最小密钥长度512位。 *我们生成两个随机素数,直到找到两个φ相对的素数 *向公众宣传。默认指数为65537。它只有0位 *第4位设置,这使得它特别有效。 **/*

    如果你想一个不同的公共指数,你需要创建自己的提供商,并将其与JCA集成

    更多关于这个here背后的数学

  2. # 2 楼答案

    public-key cryptography的关键是私钥仍然是秘密的。如果有一种方法可以轻松地从公钥生成私钥,那么加密模式就会被破坏

    是的,您可能可以强制使用私钥,但这并不容易:

    The strength of a public key cryptography system relies on the computational effort (work factor in cryptography) required to find the private key from its paired public key. Effective security only requires keeping the private key private; the public key can be openly distributed without compromising security.