蒙哥马利模乘

0.说明

蒙哥马利约减算法
由上篇文章继续,蒙哥马利约减算法为F,可以做到F(x)=x×R' 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
应该是怕xR
yR参数超过参数限制范围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是无法避免的,其主要思想是避免除法
这里面所有的除法都变为了移位操作

posted @   ecnu_lxz  阅读(1135)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示