Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption 在给定公共和私有指数的情况下,如何计算RSA模数?_Encryption_Rsa - Fatal编程技术网

Encryption 在给定公共和私有指数的情况下,如何计算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

我有一个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,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素数。