大数分解问题其实至今都是一个世界级难题,最常见的分解法是从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算法

简述大数分解算法Pollard Rho和Pollard p-1相关推荐

  1. 64位以内Rabin-Miller 强伪素数测试和Pollard rho 因数分解解析

    在求解POJ1811题Prime Test中应用到的两个重要算法是Rabin-Miller强伪素数测试和Pollard r因数分解算法.前者可以在的时间内以很高的成功概率判断一个整数是否是素数.后者可 ...

  2. 整数的素因子分解:Pollard rho method

    参考: 1.CLRS<算法导论> 2.http://www.csh.rit.edu/~pat/math/quickies/rho/#algorithm Pollard rho方法是随机算法 ...

  3. 大整数分解——Pollard Rho算法

    延续上一篇,这次来讲一讲大整数分解算法的应用. 要解决的问题很简单,对一个整数进行分解质因数. 首先还是效率非常低的暴力算法,相信大家都会,不多提. 和上次一样,当数达到非常大的时候,分解将变得非常困 ...

  4. 因数分解 Pollard rho

    因数分解 Pollard rho 算法思路 随机生成两个数a,ba,ba,b,然后求gcd⁡(n,a−b)\gcd\pod{n,a-b}gcd(n,a−b),如果其值不为111,则这个数就是nnn的一 ...

  5. c语言用rho函数求复数模长,Pollard Rho 算法简介

    $\text{update 2019.8.18}$ 由于本人将大部分精力花在了cnblogs上,而不是洛谷博客,评论区提出的一些问题直到今天才解决. 下面给出的Pollard Rho函数已给出散点图. ...

  6. 素数判定质因数分解(数论)(Miller Rabin)(Pollard Rho)

    太玄学了! 我真的被概率的魅力折服了.此前我认为1便是1,0.9999999999-便是0.9999999999-. 但实际上它们有着千丝万缕的关系. 试想,如果一件事发生的概率是0.99999999 ...

  7. 数学--数论--随机算法--Pollard Rho 大数分解算法 (带输出版本)

    RhoPollard Rho是一个著名的大数质因数分解算法,它的实现基于一个神奇的算法:MillerRabinMillerRabin素数测试. 操作流程 首先,我们先用MillerRabinMille ...

  8. 数学--数论--随机算法--Pollard Rho 大数分解算法(纯模板带输出)

    ACM常用模板合集 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll pr; ll pmod(l ...

  9. Poj 1811 Prime Test 素数测试 Miller-Rabin 与 整数的因子分解 Pollard rho

    随机化算法,想尝试自己写一下,最后还是变成了抄代码... 代码参考了:POJ 1811 Prime Test(大素数判断和素因子分解) - kuangbin - 博客园 学习链接: Miller-Ra ...

最新文章

  1. python中的turtle函数_1.常用turtle功能函数
  2. 线段树-离散化处理点
  3. 【安全牛学习笔记】kali TOP10 安全工具:
  4. 【个人笔记】rabbitMQ下Fanout与Topic两种模式同时用注意事项
  5. 大话程序猿眼里的高并发架构
  6. HDU Calling Extraterrestrial Intelligence Again
  7. Go - cgo访问C数组 内存
  8. 植保飞行器(G 题)--2021 年全国大学生电子设计竞赛
  9. RAW到底比JPG强在哪里
  10. html编辑器pp,在线轻设计工具之H5
  11. 谷歌大牛Jeff Dean撰文:深度学习研究的黄金十年
  12. 未来不迎,当时不杂,过往不乱
  13. linux 赋权文件,linux文件赋权
  14. BeagleBone Black 从零到一 (2 MLO、U-Boot)_spl
  15. Bootstrap【第二章】全局CSS之排版代码表格
  16. rd授权管理器不显示服务器,2008 r2 找不到RD授权管理器
  17. YAML——基本语法
  18. java判断日期是否节假日_java 判断日期是否是节假日
  19. 阴阳师推出AR现世召唤,让式神出现在现实世界
  20. python变量加点_小白学 Python(4):变量基础操作

热门文章

  1. php xml expat,PHP 和 XML: 使用expat函数(一)
  2. 还原竖式:下图的乘法竖式中,每一个星号代表一个数位。若出现的数字有且仅有2, 3, 5, 7四种,你能将此竖式完全还原吗?
  3. 音频编辑软件-Steinberg WaveLab Elements 10.0.40 WiN-MAC
  4. 电工基础知识分享(四):图文并茂,史上最全万用表使用手册
  5. 理解Barra Risk Model:Investment Tools History
  6. codeforces 617E XOR and Favorite Number 莫队
  7. 随机生成字符串、数字
  8. 解密QQ消息文件格式
  9. 关于程序员的第二职业
  10. BLE协议--SMP(安全管理协议)