蒙哥马利模乘
0.说明
蒙哥马利约减算法
由上篇文章继续,蒙哥马利约减算法为F,可以做到F(x)=xR' mod N
1.目标
欲求z=x*y mod N
2.过程
代入F(xyR modN)=xyRR' mod N=xy mod N=z,即可得到结果
所以我们需要先求得xyR mod N,modN是怕参数越界吧,<NR才行
对其进行变形,R'为R mod N 的逆元
xyR mod N=xRyRR' mod N=F(xRyR modN)
z=F(xyR modN)=F(F(xRyR modN))
在这里我有个疑问,xyR不是直接移位就可以了吗?下面为啥还要调用一次约减F
应该是怕xRyR参数超过参数限制范围NR,所以要进行modN运算,而modN运算就要调用约减避免掉除法才会更快
xR mod N=(xRR)R' mod N=F(x(RR modN))
所以,我们预结算RR modN即可加速xR yR的计算
z=F(F( xRyR ))=F(F( F(x(RR modN))F(y(RR modN)) ))
这个就是蒙哥马利模乘算法
RR的计算可以是移位操作,但最后有个乘xR*yR是无法避免的,其主要思想是避免除法
这里面所有的除法都变为了移位操作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~