使用以 10 为底的模数和指数生成 .pem RSA 公钥文件?

使用以 10 为底的模数和指数生成 .pem RSA 公钥文件?

我的问题和标题一样简单:给定 RSA 公钥的十进制模数和指数,如何生成 .pem 文件?(我使用的是 Unix)。谢谢。

如果这个问题不适合在这个论坛上提出,或者根本就是一个糟糕的问题,我深感抱歉;我尝试过广泛的谷歌搜索,但没有成功,而且我对 RSA 毫无经验。

答案1

如果您创建一个包含模数和指数(加上一些其他位)的 ASN1 格式的文本文件,那么您可以制作如下 PEM 文件:

$ openssl asn1parse -genconf key.cnf -out key.der
$ openssl rsa -in key.der -inform der -out private.pem
$ openssl rsa -in key.der -inform der -out public.pem -pubout

其中key.cnf包含 ASN1 数据,如下所示:

asn1=SEQUENCE:rsa_key

[rsa_key]
version=INTEGER:0
modulus=INTEGER:13671936028836425653
pubExp=INTEGER:65537
privExp=INTEGER:531444176792982513
p=INTEGER:3273361529
q=INTEGER:4176726557
e1=INTEGER:1295519345
e2=INTEGER:20202669
coeff=INTEGER:1526950891

这取自本文,第 82-87 页解释了 RSA 的工作原理,并创建了一个 PEM 文件作为解释的一部分。上述示例在第 86 页进行了描述。

以上内容包括私有指数,但应该可以为您提供指示,指导您执行所需的操作。您可能会发现man asn1parse它很有帮助。

相关内容