简述大数分解算法Pollard Rho和Pollard p-1

大数分解问题其实至今都是一个世界级难题,最常见的分解法是从2一直找到sqr(N),作为一个密码学专业的学生,每次看到别人这么做来进行因子分解,自己都控制不住想要制止他,因为这个算法的效率简直太太太太太低了。

于是,简单介绍一下牛逼哄哄的Pollard算法,专制各种大数。

先说rho算法。

rho算法其实是一种概率上的算法,虽然是靠概率,但是其准确率非常高(99.9%),更重要的是,该算法效率极高。其主要基于密码学当中的一个“生日悖论“来进行算法的设计。简单来讲就是,我们将N的两个因子x和y(就假设它有两个)从一大堆数里挑出来的概率非常小,但是如果我们挑满足x-y等于某个数的话,概率就要大很多。更进一步,如果我们找gcd(|x-y| ,N)呢?那么概率就会更大,就是这么个道理。

关于Rho算法,要注意有可能会进入死循环,也就是说我们要在算法中对其进行判圈,具体的做法是,每次a=f(a),再找一个b=f(f(b)),如果有一个时刻a=b那么就退出循环,因为b是以两倍的速度走得,当b追上了a,那么b至少已经走完一圈了。

再说p-1算法。

这种方法是在p-1的素数分解式中不含有大于预定B值的素因数的情况下,找到一个基本的素数p,求出一个数的素因数。方法有点特殊,它只能应用在求整数n的一个素因子p,且p-1能被“小”因子整除的情况下,除此之外该方法无法正常应用。但是这个方法运用起来相当简单,所以在防止因式分解攻击时,必须考虑这一方法

参考资源:
Pollard-rho算法详解.pdf

大数质因解:浅谈Miller-Rabin和Pollard-Rho算法

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值