[ZZ]Pollard Rho算法思想

1975年,John M. Pollard提出了第二种因数分解的方法。Pollard rho因数分解方法基于下列几点:

(1) 假定有两个整数174700711.jpg 和174746351.jpg 使得p可以整除174700711.jpg-174746351.jpg,但是n不能整除174856699.jpg 。

(2) 可以证明174936734.jpg 。因为p可以整除174700711.jpg174746351.jpg,可以写成175038225.jpg 。但是,因为n不能整除174700711.jpg-174746351.jpg,很明显q不能整除n。这就表明175137971.jpg 既可以是1也可以是n的一个因数。

下列算法重复选择174700711.jpg174746351.jpg,直到求出一个合适的对。

(1) 选择174700711.jpg,一个小的随机整数称为种子。

(2) 运用函数算出174746351.jpg,使得n不能整除175306689.jpg 。这里所用的一个函数也许就是174746351.jpg = 175356708.jpg (a通常选作1)。

(3) 计算175430723.jpg 。如果它不是1,结果是n的一个因数;如果它是1,返回到步骤1并用174746351.jpg重复这个过程。现在我们计算175513175.jpg 。注意,在下一轮中,我们以175513175.jpg开始,如此这般。如果我们运用Pollard rho算法列出x的值,就会发现最终要重复的这个值,创建一个和希腊字母rho (175603728.jpg )一样的形状,如图9-3所示。

174555510.jpg
图9-3 Pollard rho连续数

为了减少反复的次数,算法做了一些改进。该算法用数对(175713557.jpg , 175713557.jpg)开始,并且用175805135.jpg ,迭代计算175852716.jpg 。在每一次迭代中,我们都应用上述函数式运算(从第二步)第一次计算数对中的第一个元素,第二次计算数对中的第二个元素(参看算法9.6)。

算法 9.6 Pollard rho方法的伪代码

175948477.jpg

复杂度 这种方法需要算术运算180232659.jpg 。不过,因为我们希望p小于或等于180313803.jpg ,我们希望做180358279.jpg 算术运算。这就是说比特操作复杂度是180430214.jpg ,它是指数增长的。

posted on 2011-04-18 15:24  Jackiesteed 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/jackiesteed/articles/2019910.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值