【问题标题】:Generate RSA key given modulus, public exponent and prime1在给定模数、公共指数和素数1 的情况下生成 RSA 密钥
【发布时间】:2015-06-05 23:24:18
【问题描述】:

所以我必须根据其位长、模数、第一个素数和公共指数生成一个私钥 (RSA)。

问题是我有十六进制对的模数和素数1。我试过手动做,但数字很长(很明显)。我也尝试过使用openssl genpkey,但对于 RSA,它没有我需要的参数。

有人知道怎么做吗,否则我将不得不在十六进制/二进制中手动操作?

【问题讨论】:

  • 您将不得不编写一个程序来完成它。 openssl 命令行工具不会为您执行此操作。
  • @GregS - 我认为它比这更容易(我第一次像你一样阅读它)。他有模数np。他只需要求解q。使用pqe,他可以高效地计算d。然后使用 CRT 恢复其他 RSA 私钥参数,如dpdqq-inv。最后,他可以把它塞进RSA*。中提琴!
  • @jww 是的,但是我缺少 3 对 p 的十六进制值,所以我不得不“猜测”它们。我已经解决了,但无论如何感谢您的时间!

标签: openssl rsa private-key


【解决方案1】:

正如 James K Polk 在这个问题上的回答,openssl 不支持以这种方式生成密钥。您必须自己编写一个程序来执行此操作。

例如,以下 Java 代码可以工作。您还需要处理异常。

BigInteger modulus = /* modulus here */;
BigInteger exponent = /* exponent here */;
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
keyFactory.generatePrivate(new RSAPrivateKeySpec(modulus, exponent));

【讨论】:

    猜你喜欢
    • 2011-03-08
    • 1970-01-01
    • 2015-06-22
    • 2014-04-16
    • 2016-06-26
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多