Cryptography 30位十进制数字的因式分解算法

Cryptography 30位十进制数字的因式分解算法,cryptography,prime-factoring,factorization,Cryptography,Prime Factoring,Factorization,我的教授给了我一个RSA分解问题。给定的模数为30位小数。我一直在搜索很多关于因子分解算法的知识。但是,根据我的特定要求选择一个是相当令人头痛的。对于30位十进制数字,哪些算法的性能更好 注:到目前为止,我已经阅读了蛮力方法和二次筛。后者比较复杂,前者比较耗时。还有另一种方法,速度不如GNFS,但能够在几分钟而不是几小时内分解30位数字 算法非常简单。它在找到任何因子时停止,因此您需要递归调用它以获得完整的因子分解。以下是Python的基本实现: def rho(n): def gcd(a、b)

我的教授给了我一个RSA分解问题。给定的模数为30位小数。我一直在搜索很多关于因子分解算法的知识。但是,根据我的特定要求选择一个是相当令人头痛的。对于30位十进制数字,哪些算法的性能更好


注:到目前为止,我已经阅读了蛮力方法和二次筛。后者比较复杂,前者比较耗时。

还有另一种方法,速度不如GNFS,但能够在几分钟而不是几小时内分解30位数字

算法非常简单。它在找到任何因子时停止,因此您需要递归调用它以获得完整的因子分解。以下是Python的基本实现:

def rho(n):
def gcd(a、b):
当b>0时:
a、 b=b,a%b
归还
g=λz:(z**2+1)%n
x、 y,d=2,2,1
当d==1时:
x=g(x)
y=g(g(y))
d=gcd(绝对值(x-y),n)
如果d==n:
打印(“抱歉,无法考虑此因素”)
print(“也许可以为g()尝试另一个多项式?”)
其他:
打印(“%d=%d*%d”%(n,d,n//d))
rho(441693463910230162813378557)#=76372850191017*578338290221621

或者您可以使用现有的软件库。我看不出重新设计这个特殊的轮子有多大意义。

您需要常规数字字段sieve@Woodstock哦,上帝!这不是太复杂了吗?嗯,是的,但你不必实现它,只要使用它就行了!这有用吗?如果是这样的话,我会写一份报告answer@Woodstock教授需要在报告中附上实施的截图。那么…他是不是希望你真的实现这个算法?还是仅仅表明您了解实现?如果是后者,你可以这样使用:我花了一个多星期的时间试图实现的一个更新。但是,哦,孩子!我不应该忽视波拉德·罗。谢谢所有帮助我的人。