首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java -从5个CRT组件生成RSA密钥对

Java -从5个CRT组件生成RSA密钥对
EN

Stack Overflow用户
提问于 2016-01-22 03:11:52
回答 2查看 1.3K关注 0票数 0

我有5个显像管组件- primeP,primeQ,primeExponentP,primeExponentQ和crtCoefficient。有没有办法从这些数据中生成RSA密钥对?

当我查看RSAPrivateCrtKeySpec和RSAPublicKeySpec时,缺少的参数是模数、privateExponent和publicExponent。

有人能告诉我如何计算模数,privateExponent和publicExponent吗?

有没有Bouncy Castle实现可以做到这一点?

谢谢!相同的

EN

回答 2

Stack Overflow用户

发布于 2016-01-22 06:03:27

是的,这应该是可能的。除非公共指数真的很大,但这不太可能。

你可能会猜到(例如,尝试3,5,7,13,17和65537)或暴力破解公共指数-因为它通常是一个小素数。65537的值(0x010001,第四个费马质数)是最有可能的。然后你就可以calculate the private exponent了。您可以对密钥对使用sign/verify来验证您的猜测。

请注意,有CRT参数但没有公钥,这有点奇怪。实际上,这太奇怪了,你可能需要自己编写代码。

票数 1
EN

Stack Overflow用户

发布于 2016-10-25 12:13:03

只需为CRT规范中缺少的参数提供空值。钥匙工厂会解决这个问题的。

代码语言:javascript
复制
RSAPrivateCrtKeySpec privateSpec = new RSAPrivateCrtKeySpec(null, null, null, p, q, expP, expQ, coeff);
KeyFactory factory = KeyFactory.getInstance("RSA");
privateKey = (RSAPrivateKey)factory.generatePrivate(privateSpec);

模数是primeP * primeQ。在大多数情况下,公共指数是65537。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34932367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档