【问题标题】:extract public key from RSA private key in c++ without openssl在没有openssl的情况下从c ++中的RSA私钥中提取公钥
【发布时间】:2014-11-23 06:14:30
【问题描述】:

我知道 RSA 私钥包含相关公钥的信息。如何从私钥中转储公钥?我想在没有openssl的iOS环境中做到这一点。有可能吗?

【问题讨论】:

  • 你的私钥是什么格式的?
  • 私钥是PEM格式。
  • PEM 是一种编码,而不是一种格式。您的密钥是什么格式
  • 对不起,你的意思是这个“RSA/ECB/OAEPWithSHA-1AndMGF1Padding”。
  • 不。这是一种操作模式(一种使用键的方式)。我想知道密钥的格式。例如,如果您使用 OpenSSL 创建密钥,它可能是 ASN.1 RSAPrivateKey 对象。

标签: ios rsa private-key public-key key-pair


【解决方案1】:

是的,有可能……

但是您必须处理所有关于如何表示密钥的方式,即密钥的特定部分如何存储在文件中,等等

您的私钥由一些数字组成,通常如下所示: d(私有指数),N(公模)P,Q(两个非常大的素数)dP 和 dQ(计算快捷方式的中间值......为您的任务忽略它们)

您要做的是计算 PHI = (P-1)*(Q-1),然后为 d 和 PHI 运行扩展欧几里得算法(参见维基百科)以找到 d mod 的乘法逆元素PHI ...这个元素是e(公共指数)

那么你的公钥就是元组 (e, N)

【讨论】:

  • 许多私钥格式也存储公共指数。这让生活变得更加轻松。
  • 不...但是找到将您的密钥分解为各个部分的东西应该不难...寻找可以处理您的密钥的开源东西...例如openssl ...也许这可以帮助你openssl.org/docs/apps/asn1parse.html
  • 感谢您的帮助。
猜你喜欢
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 2017-12-18
  • 2012-04-30
  • 2018-11-27
  • 1970-01-01
相关资源
最近更新 更多