大整数分解算法 之 Williams's p+1 算法原理
基础知识
卢卡斯数列和卢卡斯序列
卢卡斯数列,英文名:Lucas numbers
卢卡斯数列与斐波那契数列相似,除前两项外,每个卢卡斯数都为前两项之和。
而前两项卢卡斯数是和,不同于前两个斐波那契数和 。
因此,卢卡斯数可以定义如下:
尽管在定义上密切相关,但卢卡斯数和斐波那契数显示出截然不同的特性。
卢卡斯序列,英文名: Lucas sequences
这是一个特殊的卢卡斯数列,不要与卢卡斯数列混淆
在数学中,卢卡斯数列和是满足递归关系的某些常数递归 整数序列
递归关系:
和
在这里,和是固定整数,任何满足这种递归关系的序列都可以表示为卢卡斯序列的线性组合 和
它的一堆其他性质参考: https://en.wikipedia.org/wiki/Lucas_sequence
算法原理
选择大于2的整数A,用其生成一个卢卡斯序列:
1、
2、对于任意的奇素数 ,只要满足M是的倍数,即 ,那么就有 ,其中为勒让德符号、 ; (原理我还尚未知道...)
3、那么,我们就可以通过求得的因子。
4、当,所表示的就是Williams's p+1算法; 若(D/p)=+1,则该算法退化为 算法的慢速版本 ,而我们希望=一1,但因为预先不知道的值,所以可能要尝试多个的值 ,从而得到 n的因子
5、下面求计算V的第M个值的算法
6、Williams's p+1 算法分解n的python脚本
参考: https://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=8765
https://en.wikipedia.org/wiki/Williams's_p_%2B_1_algorithm
https://ctf-wiki.org/en/crypto/asymmetric/rsa/rsa_module_attack/#p-1_1
https://blog.csdn.net/m0_62506844/article/details/125774485
__EOF__

本文链接:https://www.cnblogs.com/lordtianqiyi/articles/17069456.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!