【问题标题】:Finding p and q in RSA encryption algorithm在 RSA 加密算法中查找 p 和 q
【发布时间】:2014-03-19 13:57:29
【问题描述】:

在RSA加密算法中已知edn时,如何找到pq的因数。我试图搜索但找不到任何来源。任何提示、参考或解决方案就足够了。

(e,n)(d,n) 分别是公钥和私钥,n = pq.

【问题讨论】:

  • 找到pq 的唯一方法是分解n,这很难。
  • @user448810 当解密密钥d 也已知时,你确定它仍然成立吗?在计算上仍然不可行吗?
  • 您可以尝试this algorithm,但并不总是有效。
  • user448810 指向的算法是概率性的。每次尝试都有至少 1/2 的概率成功。因此,直到成功的预期尝试次数仅为 2。因此,这是一种非常有效的算法。
  • 这个问题似乎是题外话,因为它是关于一般的密码学,没有具体的编码问题。

标签: cryptography rsa number-theory


【解决方案1】:

我找到了一个source written in german (page 12+13),它描述了一种随机算法来计算pq

算法:

  1. 计算s = max { t : 2<sup>t</sup> | (ed-1) }k = (ed-1) / (2<sup>s</sup>)
  2. [2,n-1]中选择一个随机数a
  3. 计算g = gcd(a,n)
  4. 如果g &gt; 1 ⇒ g = pq = n/g.
    否则为t = s-1, ... ,0 做:
    1. g = gcd( a<sup>k ⋅ 2<sup>t</sup></sup>, n )
    2. 如果g &lt; n ⇒ g = pq = n/g
      否则在[2,n-1]中选择一个新的随机数a并执行3。

如果选择a作为随机数(均匀分布),则找到pq的概率为1/2,所以预计2次尝试后得到解。

证明这有效的证据与chinese remainder theorem有关。

备注:如果你已经有了私钥,那么很可能没有理由计算n的因数,因为同一个n的密钥(e,d)不应该超过一对。但是您可以使用此算法来证明破解 RSA 与分解n 一样困难。 (RSA 并不比因式分解更难,因为如果你有pq,你可以简单地计算私钥d)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2023-03-15
    • 2013-04-25
    相关资源
    最近更新 更多