波拉德p-1分解方法指出,如果\gcd(2^{B!}-1,n)=p,其中p>1和B定义了p的素因子,则p是n的素因子。

发布于 2019-09-14 13:09:09
是的,您的代码尝试在while循环中计算它。注:正常情况下
M = \prod_{\text{primes}~q \le B} q^{ \lfloor \log_q{B} \rfloor }只有小于或等于B的素数才构成M。幻灯片中的伪代码包括所有不正确的数字<B,它必须是素数小于或等于B。
我们需要一个随机整数a,它是n的余素数,即\gcd(a,n)=1。如果像RSA模- n是两个奇数素数的乘积一样,可以选择2,那么计算\gcd(2^{B!}-1,n)就容易了。
B是一个光滑数,在开始时,您选择B的任何光滑性。来自维基百科代码;
因此,该算法在意义上是一种自适应算法。如果失败,您可以停止或调整平滑范围。
https://crypto.stackexchange.com/questions/74305
复制相似问题