Cryptography RSA加密算法中p和q的求法

Cryptography RSA加密算法中p和q的求法,cryptography,rsa,number-theory,Cryptography,Rsa,Number Theory,当RSA加密算法中已知e、d和n时,如何找到p和q的因子。我试图搜索,但找不到任何来源。任何提示、参考或解决方案都已足够 (e,n)和(d,n)分别是公钥和私钥,n=pq我找到了一个,它描述了计算p和q的随机算法 算法: 计算s=max{t:2t|(ed-1)}和k=(ed-1)/(2s) 在[2,n-1] 计算g=gcd(a,n) 如果g>1⇒ g=p和q=n/g 对于t=s-1,…,则执行其他操作,0: g=gcd(ak⋅ 2t,n) 如果g

当RSA加密算法中已知
e
d
n
时,如何找到
p
q
的因子。我试图搜索,但找不到任何来源。任何提示、参考或解决方案都已足够

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

我找到了一个,它描述了计算
p
q
的随机算法

算法:

  • 计算
    s=max{t:2t|(ed-1)}
    k=(ed-1)/(2s)
  • [2,n-1]
  • 计算
    g=gcd(a,n)
  • 如果
    g>1⇒  g=p
    q=n/g

    对于
    t=s-1,…,则执行其他操作,0
  • g=gcd(ak⋅ 2t,n)
  • 如果
    g
    q=n/g

    否则,在
    [2,n-1]
    中选择一个新的随机数
    a
    ,然后转到3
  • 如果选择
    a
    作为随机数(均匀分布),则找到
    p
    q
    的概率为
    1/2
    ,因此预计在尝试2次后会得到解决方案

    证明这种方法有效的证据与此有关


    备注:如果您已经拥有私钥,则很可能没有理由计算
    n
    的系数,因为同一
    n
    的密钥不应超过一对
    (e,d)
    。但您可以使用此算法证明破坏RSA与分解
    n
    一样困难。(RSA并不比因子分解困难,因为如果您有
    p
    q
    ,您可以简单地计算私钥
    d

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