最新要闻
- 山西印发冬小麦后期田间管理意见
- 世界关注:荣盛发展年报遭问询,被追问营收大幅下滑、业绩大额亏损且亏损面进一步扩大原因及合理性
- 全球最大超算竞赛 现场DIY设计并攒机 北大学生拿下总冠军
- 美国4S店躺赢 巴菲特不爱车企爱经销商 天天速看
- 华为海外连开两场重磅发布会:发力全球市场势头不减! |每日视讯
- 太贵卖不动?NV又准备RTX 4070公版:4799元国内玩家抢吧 全球聚看点
- 人造肉更环保?新研究表明:对气候影响可能是普通牛肉25倍|看点
- 焦点快报!2023年上海市全民数字素养与技能提升月启动
- 环球热资讯!奥迪“全新”A6曝光!车尾神似5系,换保时捷引擎高级吗?
- 【全球新要闻】孟羽童曾称董明珠不可复制:没有人可以成为第二个董明珠
- 男子机场拍到李若彤被妻子怀疑出轨 李若彤发帖为其澄清 重点聚焦
- 2599元 尼康首款Z卡口电动变焦镜头来了:广角、特写都能拿捏
- 长沙一停车场要求按颜色停放 违停罚100元 律师:没法律效力
- 热点评!大手笔!丰田承认开发电动车失败 决定再砸500亿元
- 观天下!Haynes:有位湖人球员说 让勇士叽叽歪歪继续抱怨吧
- 深交所向*ST海投发出问询函|世界实时
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
世界最资讯丨蒙哥马利算法
蒙哥马利模乘运算(Montgomery Modular Multiplication)[1]与蒙哥马利幂模运算(Montgomery power module)和蒙哥马利约减运算(Montgomery model reduction)统称蒙哥马利算法(Montgomery Algorithm)。
(资料图片仅供参考)
- 蒙哥马利模乘运算:\(ab mod N\)
- 蒙哥马利幂模运算:\(a^b mod N\)
- 蒙哥马利约减运算:\(ab^{-1} mod N\)
蒙哥马利模乘
模乘是计算\(ab\pmod{N}\)。在普通计算模N时,利用的是带余除法,除法运算需要太多次乘法,计算复杂度较高,「蒙哥马利模乘」的思想就是利用进制表示简化除法运算,转化成位运算。
- 蒙哥马利形式(Montgomery form, Montgomery domain)
为了计算\(ab\pmod{N}\),需要找到一个\(R\),然后使得\(\mathrm{a}^{\prime}\equiv\mathrm{aR}\pmod{\mathrm{N}},\mathrm{b}^{\prime}\equiv\mathrm{bR}\pmod{\mathrm{N}}\)。
这个\(R\)不是随便取的,需要满足两个条件:
- \(R = 2^k > N\) ,其中\(k\)是满足条件的最小正数,这就能保证除以\(R\)就相当于右移\(k\)位
- \(gcd(R,N)=1\),这就可以求出\(m\)
在计算\(ab\pmod{N}\)时需要利用「蒙哥马利形式」。令\(X=a"b"\),可以设计一个函数\(REDC(X)=XR^{-1}\pmod{N}\),计算结果为\(X_1=REDC(X)=a"b"R^{-1}\pmod{N}=abR\pmod{N}\),这样再调用一次函数计算\(REDC(X_1)=X_1R^{-1}\pmod{N}\)就能得到结果\(ab\pmod{N}\)。
这个函数\(REDC()\)就是蒙哥马利约减算法,即求\(XR^{-1}\pmod{N}\)。
所以蒙哥马利模乘可以分三步进行计算:
- 将输入\(aR^2,bR^2\)转成蒙哥马利形式,即\(aR=REDC(aR^2),bR=REDC(bR^2)\);
- 做一次标准乘法得\(abR^2=aR*bR\);
- 最后做一次REDC得\(abR=REDC(abR^2)\);
- 注意上面三个步骤返回的是蒙哥马利形式的\(ab\),即\(abR\)。若需要转换成正常形式的\(ab\),需要再做一次\(REDC\)得\(ab=REDC(abR)\);
代码实现
给出一个蒙哥马利模乘的Python实现计算 (23456789*12345678)%123456789,注意程序里面取\(R=2^{64}\), 所以\(mod R\)相当于取低64bit,\(/R\)相当于右移64bit。
import mathclass MontMul: """docstring for ClassName""" def __init__(self, R, N): self.N = N self.R = R self.logR = int(math.log(R, 2)) #log_2 ^ R N_inv = MontMul.modinv(N, R) self.N_inv_neg = R - N_inv #N_inv_neg=R-N^{-1} self.R2 = (R*R)%N @staticmethod def egcd(a, b): if a == 0: return (b, 0, 1) else: g, y, x = MontMul.egcd(b % a, a) return (g, x - (b // a) * y, y) #g=gcd(a,b) @staticmethod def modinv(a, m): g, x, y = MontMul.egcd(a, m) if g != 1: raise Exception("modular inverse does not exist") else: return x % m def REDC(self, T): N, R, logR, N_inv_neg = self.N, self.R, self.logR, self.N_inv_neg m = ((T&int("1"*logR, 2)) * N_inv_neg)&int("1"*logR, 2) # m = (T%R * N_inv_neg)%R t = (T+m*N) >> logR # t = int((T+m*N)/R) if t >= N: return t-N else: return t def ModMul(self, a, b): if a >= self.N or b >= self.N: raise Exception("input integer must be smaller than the modulus N") R2 = self.R2 aR = self.REDC(a*R2) # convert a to Montgomery form bR = self.REDC(b*R2) # convert b to Montgomery form T = aR*bR # standard multiplication abR = self.REDC(T) # Montgomery reduction return self.REDC(abR) # covnert abR to normal abif __name__ == "__main__": N = 123456789 R = 2**64 # assume here we are working on 64-bit integer multiplication g, x, y = MontMul.egcd(N,R) if R<=N or g !=1: raise Exception("N must be larger than R and gcd(N,R) == 1") inst = MontMul(R, N) input1, input2 = 23456789, 12345678 mul = inst.ModMul(input1, input2) if mul == (input1*input2)%N: print ("({input1}*{input2})%{N} is {mul}".format(input1 = input1, input2 = input2, N = N, mul = mul))
蒙哥马利模约简
蒙哥马利模约简(REDC)是蒙哥马利模乘最重要的部分,主要是计算 \(TR^{-1}\pmod{N} \gets REDC(T)\),算法描述如下:
一般做模约减运算\(TR^{-1} mod N\),相当于$\frac{T}{R}\pmod{N} $,需要做一次除运算,如何避免除法呢?
由于\(R=2^k\),所以\(\frac{T}{R}\)相当于T右移k位,即\(T>>k\)。但右移k位可能会抹掉T低位中的一些1,如\(7÷4=0b111>>2=0b1=1\),这个不是精确计算,而是向下取整的除法,当且仅当T是R的整数倍时,\(T/R=T>>k\)。所以实际上就是找一个\(m\),使得\(T + m N\)是\(R\)的倍数,这样计算\(\frac{T+mN}{R}\)就相当于\((T+mN) >>k\) 。
- \(m\)如何找?
由于\(gcd(R,N)=1\),根据扩展欧几里得算法得:有\(RR"-NN"=1\),且有\(1 扩展欧几里得: 若\(gcd(a,b)=1\),则必存在整数\(x,y\),使得\(ax+by=gcd(a,b)=1\)。 \(\begin{gathered}\mathrm{T+mN}\equiv0{\pmod{R}} \\\mathrm{TN"+mNN"\equiv0}\pmod{R} \\\mathrm{TN}^{\prime}+\mathrm{m}(\mathrm{RR}^{\prime}-1)\equiv0{\pmod{R}} \\\mathrm{TN}^{\prime}\equiv\mathrm{m}\pmod{\mathrm{R}} \end{gathered}\) 这样就求出了\(m=TN"\pmod{R}\)。 所以在已知\(a,b,N\),并计算出\(a",b",R,T\)下,蒙哥马利约减算法\(REDC(T)=TR^{-1}\pmod{N}\)如下: 蒙哥马利幂模运算是快速计算\(a^b mod N\)的一种算法,是RSA加密算法的核心之一。 蒙哥马利幂模的优点在于减少了取模的次数(在大数的条件下)以及简化了除法的复杂度(在2的k次幂的进制下除法仅需要进行左移操作)。 计算方式是将幂模运算转化为模乘运算 例如:求D=C^15 % N 由于:ab % n = (a % n)(b % n) % n 所以令: C = C%N C1 =C*C % N =C^2 % N C2 =C1*C % N =C^3 % N C3 =C2*C2 % N =C^6 % N C4 =C3*C % N =C^7 % N C5 =C4*C4 % N =C^14 % N C6 =C5*C % N =C^15 % N 即:对于E=15的幂模运算可分解为6 个乘模运算。 归纳分析以上方法可以发现:对于任意指数E,都可采用以下算法计算 D=C^E % N: 继续分析会发现,要知道E何时能整除 2,并不需要反复进行减一或除二的操作,只需验证E 的二进制各位是0还是1就可以了,从左至右或从右至左验证都可以,从左至右会更简洁。 这样,模幂运算就转化成了一系列的模乘运算。 将模除运算转换为移位运算; 当出现大量模乘运算时,可以通过并行运算进行预计算,节省时间;
关键词:
深交所5月10日下发关于对荣盛发展2022年年报的问询函。问询函指出,年报显示,公司2022年实现营业收入317 9蒙哥马利幂模运算
D=1WHILE E>0 IF E%2=0 C=C*C % N E=E/2 ELSE D=D*C % N E=E-1RETURN D
D=1FOR i=n TO 0 D=D*D % N IF e=1//e是E的最后一位【判断E是否为奇数】 D=D*C % N RETURN D
/*例如求D=C^15%N 由于:C*k % n = (C % n)*(k % n) % n 所以令: 【奇数】 C1 = C*C % N =C^2 % N 1 15 C2 = C1*C % N =C^3 % N 3 7 【奇数】C3 = C2*C2 % N =C^6 % N C4 = C3*C % N =C^7 % N 7 3 【奇数】C5 = C4*C4 % N =C^14 % N C6 = C5*C % N =C^15 % N 15 1 蒙哥马利幂模运算*/ #include
复杂度分析
参考
世界关注:荣盛发展年报遭问询,被追问营收大幅下滑、业绩大额亏损且亏损面进一步扩大原因及合理性
世界最资讯丨蒙哥马利算法
每日观点:热烈欢迎成都市武侯区人社局领导莅临璞华考察参观
山西印发冬小麦后期田间管理意见
世界关注:荣盛发展年报遭问询,被追问营收大幅下滑、业绩大额亏损且亏损面进一步扩大原因及合理性
全球最大超算竞赛 现场DIY设计并攒机 北大学生拿下总冠军
美国4S店躺赢 巴菲特不爱车企爱经销商 天天速看
华为海外连开两场重磅发布会:发力全球市场势头不减! |每日视讯
太贵卖不动?NV又准备RTX 4070公版:4799元国内玩家抢吧 全球聚看点
人造肉更环保?新研究表明:对气候影响可能是普通牛肉25倍|看点
焦点快报!2023年上海市全民数字素养与技能提升月启动
Docker网络类型
Java之图片上传与删除功能的实现
用户分享 | Dockquery,一个国产数据库客户端的初体验
Django SQL注入漏洞分析(CVE-2022-28346) 全球报资讯
openAI发布v0.2.0了 全球快讯
环球热资讯!奥迪“全新”A6曝光!车尾神似5系,换保时捷引擎高级吗?
【全球新要闻】孟羽童曾称董明珠不可复制:没有人可以成为第二个董明珠
男子机场拍到李若彤被妻子怀疑出轨 李若彤发帖为其澄清 重点聚焦
2599元 尼康首款Z卡口电动变焦镜头来了:广角、特写都能拿捏
长沙一停车场要求按颜色停放 违停罚100元 律师:没法律效力
热点评!大手笔!丰田承认开发电动车失败 决定再砸500亿元
观天下!Haynes:有位湖人球员说 让勇士叽叽歪歪继续抱怨吧
深交所向*ST海投发出问询函|世界实时
环球新消息丨Android 14发布:首批适配机型公布
【环球热闻】谷歌首款平板Pixel Tablet发布:自研G2处理器、边框感人
环球观点:董明珠“接班人”孟羽童离职:曾称工作21个小时 工作强度太大
“蔚小理”变成“理哪零”造车新势力淘汰赛加速
今年来新增专项债已发行逾1.6万亿元
【财经分析】英国制造业增长乏力 与服务业分化明显
出行信息早知道!河北最新天气预报、限行提示、高速路况请查收→
全球简讯:MIUI 14开发者预览版上线:小米13、小米平板6等喜提安卓14
取代OLED!未来iPhone屏幕脱胎换骨:要用MicroLED屏-环球讯息
史上最坚固铰链!谷歌Pixel Fold折叠屏手机发布:处理器独一无二
谷歌Pixel 7a发布:3500元 不标配充电器
世界视讯!学系统集成项目管理工程师(中项)系列20_变更管理
bothhand ns0013lf_bothhand
世界看点:阿里云打5折降价 百度回应:这是感受到了竞争威胁
世界动态:彻底搞懂 Cookie、Session、Token、JWT
在 IDEA 中创建 Java Web 项目的方式(详细步骤教程)|天天聚看点
环球热讯:实验五
观点 | 美国通胀十连降后还需担心吗?
反转!高铁掌掴事件完整视频曝光:双方11秒打3巴掌、王某脏话不断
理想汽车:没有降价的打算 上市定价就是最有竞争力区间 天天简讯
全球微动态丨6月9日上映!《变形金刚7》IMAX海报发布:汽车人、猛兽侠集结
【全球快播报】DDR5内存大跌!24GB高频内存仅399元
俄罗斯质疑美国登月造假:50年前能做到 为何现在反而做不到 每日信息
锻造1-450最省材料攻略_锻造多少会碎-世界热门
动态焦点:去年全球钴产量达19.8万吨 电动汽车消耗7.4万吨
grand theft auto vc 8.1怎么解决_grand theft auto vc 8 1
Java for循环标签跳转到指定位置 全球快报
食品添加剂都是“洪水猛兽”?科技与狠活你知道多少? 今日观点
每日速讯:网友曝光南京江边惊现扬子鳄:我国特有种 一级保护动物
超越1英寸大底!华为P60 Pro凭什么能拿到DXO拍照世界第一 当前看点
Z9良心缩水 尼康发布全画幅微单数码相机Z8:售价27999_焦点要闻
美术315 环球快报
大众软件部门两年亏损250亿 管理层集体被炒 环球观速讯
世界最强货运飞船之一 “太空快递小哥”天舟六号发射升空|环球新要闻
重返斯莱特林!马尔福少爷畅玩《霍格沃茨之遗》-头条焦点
FFT(快速傅里叶变换)
ASP.NET Core MVC 从入门到精通之文件上传 世界快资讯
债市日报:5月10日_世界观焦点
美国债务上限谈判无进展 拜登可能取消G7行程 热文
悦达起亚大地震!管理层轮休1年 公司资不抵债|世界实时
MAXHUB双发x86兆芯、Arm飞腾国产CPU电脑!国产化近95%
单卡30秒跑出虚拟3D仙女老婆!毛孔细节清晰
女子退货8600元鞋被拒收:退回后鞋出现磨损
杭州现不定价咖啡店 营业首日卖400杯亏3500元!创始人回应|微头条
每日聚焦:Python中的交互库-os库
IPS 和 IDS_观热点
每日速看!gai周延参加的综艺有哪些_周延gai百度百科
特斯拉晒美国电价/油价:每天开电车50公里 一月省700块 天天观热点
盗版大神正式出手破解《生化危机4重制版》:Denuvo加密沦陷|当前快报
每日焦点!《生化危机4:重置版》碍事梨演员再发cos照:里昂救救我!
焦点热讯:首发2亿单镜变焦相机!真我11 Pro+图赏
Win10杀软大PK:Defender拿了个倒数第一_焦点速看
泉州市丰泽区东海东宝工业区改造征迁工作指挥部正式揭牌成立
如何衡量软件测试的绩效 环球速讯
无锡阳山桃花源景区可以摘桃子吗_天天速看料
环球焦点!因不富裕 《王国之泪》粉丝攒钱6年才买到Switch
杀疯了!理想汽车公布2023年第一季度财报:营收、交付等多项数据历史最好
男子暴雨天救助流浪猫 专家确认:国家二级保护动物
四月厂商销量榜:国产车强势爆发 前五占三席
散片便宜300元!但还是劝你买盒装CPU|世界动态
热资讯!华能水电:拟收购华能四川能源开发公司100%股权
AI别来搅局,chatGPT的世界不懂低代码 焦点要闻
观察:理想汽车:预计第二季度车辆交付量7.6万至8.1万辆
滚动:1999元起 真我11 Pro+发布:同价位中的2亿像素王
热点!432核心 25个人开发!欧洲自研CPU飞入太空
淘宝天猫历史最大投入618:今年推出直降专场 不用费劲凑单领券 焦点速递
环球观察:爸爸因无人回应退家族群 女儿发声:反而变热闹了
天玑9000性能满载!vivo Pad2评测:操控如PC般行云流水_今日聚焦
环球热消息:4月销量仅6658台!不降价的蔚来,终于把自己玩懵了?
[系统性能优化实践]JVM进阶实战之监控工具(Prometheus) 焦点速递
STM32【HAL库】使用外部SRAM程序
世界新资讯:如何通过appuploader把ipa文件上传到App Store教程步骤
【高端访谈】碳交易市场将如何影响化工行业?——专访全国化工节能(减排)中心秘书长张华
甘肃凉州:让非遗民俗文化“活起来”|观焦点
年度最火的KEEP动感单车免费得:连续88天打卡全额返 焦点速看
实时:可灭电火、油火 北大青鸟车载灭火器620ml 12.92元
真我史上最大底 真我11 Pro+搭载行业最高2亿像素传感器:挑战最强 每日热门