我有一个模数为m
的RSA私钥,公共指数e
和私有指数d
,但我使用的程序需要模数的素因子p
和q
。
是否可以使用e
和d
获取p
和q
?
答案 0 :(得分:14)
是 - 一旦你知道模数N和公共/私人指数d和e,获得p和q并不太难以使N = pq。
Dan Boneh的This paper描述了这样做的算法。它依赖 根据定义,
de = 1 mod phi(N)。
任何随机选择的“证人” 在(2,N)中,有大约50%的机会能够用它来寻找一个不平凡的事物 平方根1 mod N(称之为x)。然后gcd(x-1,N)给出了一个因素。
答案 1 :(得分:9)
你可以使用我在2009年开发的开源工具,它可以在SFM格式(n,e,d)和CRT格式(p,q,dp,dq,u)之间转换RSA密钥,反之亦然。它位于SourceForge上:http://rsaconverter.sourceforge.net/
我实施的算法基于Dan Boneh提出的想法,如前面的答案所述。
我希望这会有用。
Mounir IDRASSI - IDRIX
答案 2 :(得分:5)
我在加密堆栈交换上发布了回复同一个问题here的回复。它使用与Boneh论文中概述的相同方法,但对其实际工作方式做了更多解释。我也尝试假设最少量的先验知识。
希望这有帮助!