从他的RSA公钥计算用户的私钥

时间:2015-01-28 16:44:15

标签: security encryption cryptography rsa public-key-encryption

我知道我们会将(N,e)作为我们每个人的公钥, N 是两个素数 P 和 Q 。但我知道两个素数的乘积只有4个除数(1,本身, P Q )并且使用简单的while循环黑客可以轻松获得 P Q 以及计算 phi 。由于他们已经知道 E ,他们可以通过使用 E -1 mod phi(N)公式轻松确定 D 。那我错过了什么?

1 个答案:

答案 0 :(得分:3)

那是事情。如果 p q 很大,则分解 n (计算 p q 它很难。它也被称为RSA问题。如你所描述的那样,这种天真的算法很难在群集上花费很多年来从公钥中计算出私钥。今天, n 的良好起始值通常为2048或4096位。

让我们以2048位的 n 为例。您需要检查 2 1021 2 1023 之间的某个数字,以查看它们是否是一个因素。要做到这一点,你需要为每个数字至少进行一次除法,其中除法是最昂贵的操作。让我们说你可以做到 2 50 (这已经过于乐观了)每秒的分数。所以需要 2 1021 * 2 -50 = 2 971 几秒钟就可以天真地蛮力。或那么多年:

  

632876810481582893092457100785400357073646391563754928178128882051373633900610117258040958109029585581349076244353277284364674653853879268372390854352115493505836400606001292655231393152068425666747005563338382798494041874404131909211331579289714661817326517908344762063152744555537801

比您描述的更好的算法是general number field sieve。量子算法应该运行得更快。