当公钥为已知时,有没有办法在java中生成RSA私钥,比如3?
从java.security包中,我找不到用ClassKeyPairGenerator实现这一点的方法。。。
我的问题很简单,我不是在寻找与密码学相关的信息。我只想知道,如果我有RSA的公共指数,那么在java中是否有的方法来获得给定模数长度(例如2048(的该公共指数的私有指数
公钥加密的全部意义在于私钥保持秘密。如果有一种方法可以很容易地从公钥生成私钥,那么加密模式就会被破坏。
是的,你可能会强行使用私钥,但这并不容易:
公钥密码系统的强度取决于从配对公钥中找到私钥所需的计算工作量(密码学中的功因子(。有效的安全只需要将私钥保持为私有;可以在不损害安全性的情况下公开分发公钥。
排序答案为"否"。
长答案是使用sunrssign Provider,它实现RSAKeyPairGenerator,使公共指数为65537:*"/***RSA密钥对生成。标准算法,最小密钥长度512位。*我们生成两个随机素数,直到找到其中phi是相对的两个素数*公共指数的素数。默认指数为65537。它只有位0*以及比特4的设置,这使得它特别有效。**/*
如果您想要一个不同的公共指数,您需要创建自己的提供者并将其与JCA集成。
更多关于这背后的数学。