Encryption 在给定公共和私有指数的情况下,如何计算RSA模数?
我有一个RSA私钥,具有模Encryption 在给定公共和私有指数的情况下,如何计算RSA模数?,encryption,rsa,Encryption,Rsa,我有一个RSA私钥,具有模m、公共指数e和私有指数d,但我使用的程序需要模的素因子p和q 是否可以使用e和d来获得p和q?是的——一旦知道模N和公/私指数d和e,就不太难获得p和q,使得N=pq Dan Boneh描述了这样做的算法。它依赖于 根据定义 de=1模φ(N) 对于任何随机选择的“证人” 在(2,N)中,大约有50%的几率能够使用它找到一个非平凡的 1模N的平方根(称为x)。然后gcd(x-1,N)给出了其中一个因子 您可以使用我在2009年开发的开源工具,该工具可以在SFM格式(n
m
、公共指数e
和私有指数d
,但我使用的程序需要模的素因子p
和q
是否可以使用e
和d
来获得p
和q
?是的——一旦知道模N和公/私指数d和e,就不太难获得p和q,使得N=pq
Dan Boneh描述了这样做的算法。它依赖于
根据定义
de=1模φ(N)
对于任何随机选择的“证人”
在(2,N)中,大约有50%的几率能够使用它找到一个非平凡的
1模N的平方根(称为x)。然后gcd(x-1,N)给出了其中一个因子 您可以使用我在2009年开发的开源工具,该工具可以在SFM格式(n,e,d)和CRT格式(p,q,dp,dq,u)之间转换RSA密钥,反之亦然。它位于SourceForge上: 我实现的算法是基于Dan Boneh提出的想法,如前一个答案所述 我希望这将是有用的
Mounir IDRASSI-IDRIX我在加密堆栈交换上发布了回复,回答了同样的问题。它使用了与Boneh论文中概述的相同的方法,但对它的实际工作原理做了更多的解释。我还尝试假设一个最小数量的先验知识
希望这有帮助 只是吹毛求疵:RSA需要的是de=1 mod p-1和mod q-1,这就是de=1 mod lcm(p-1,q-1),它是φ(N)的严格除数(使用φ(N)正是RSA最初描述的方式)。但是,Boneh描述的方法也适用于一般情况。openssl中是否有执行此任务的代码?实际上,我需要openssl中的代码来执行此任务,如果可用,您可以提供吗?您可以查看SourceForge上我的项目RsaConverter中的librsaconverter.c文件:。在这里,您将看到函数SfmToCrt的实现,该函数根据公共模和私有指数计算RSA素数。