Ios 在没有OpenSSL的情况下,从C++中的RSA私钥中提取公钥

Ios 在没有OpenSSL的情况下,从C++中的RSA私钥中提取公钥,ios,rsa,private-key,public-key,key-pair,Ios,Rsa,Private Key,Public Key,Key Pair,我知道RSA私钥包含相关公钥的信息。如何从私钥中转储公钥?我想在没有openssl的iOS环境中实现这一点。可能吗?是的,可能 但是您必须处理有关密钥表示方式的所有内容,即密钥的特定部分如何存储在文件中,等等 您的私钥由一些数字组成,通常如下所示: d私有指数,N公模P,Q两个非常大的素数dP和dQ中间值,用于计算快捷方式。。。在执行任务时忽略它们 你要做的是计算PHI=p-1*Q-1,然后运行扩展的欧几里德算法,关于d和PHI,请参阅维基百科,以找到d模PHI的乘法逆元素。。。这个元素是公共指

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

是的,可能

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

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

你要做的是计算PHI=p-1*Q-1,然后运行扩展的欧几里德算法,关于d和PHI,请参阅维基百科,以找到d模PHI的乘法逆元素。。。这个元素是公共指数


然后,您的公钥是元组e,N

您的私钥采用什么格式?私钥采用PEM格式。PEM是一种编码,而不是一种格式。您的密钥是什么格式的?对不起,您指的是RSA/ECB/OAEPWITHHA-1和MGF1PADDING.Nope。这是一种操作模式,一种使用钥匙的方式。我想知道钥匙是什么格式的。例如,如果您使用OpenSSL创建密钥,它可能是ASN.1 RSAPrivateKey对象。许多私钥格式也存储公共指数。这让生活变得容易多了。。。但是要找到能把你的钥匙分解成不同部分的东西应该不会那么难。。。寻找能处理像你这样的密钥的开源工具。。。例如openssl。。。也许这也能帮你谢谢你的帮助。