【转】蒙哥马利算法学习

蒙哥马利算法包括蒙哥马利乘模、约减和幂模,主要用于简化大数模运算,特别是RSA中的模乘运算。它通过蒙哥马利约简降低模N运算的复杂度,将除法转化为位运算,提高效率。文章介绍了算法的基本思想和流程,并指出其在模幂运算中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

蒙哥马利算法并不是一个独立的算法,而是三个相互独立又相互联系的算法集合,其中包括:

  • 蒙哥马利乘模,是用来计算x⋅y (mod N)
  • 蒙哥马利约减,是用来计算t⋅ρ−1 (mod N)
  • 蒙哥马利幂模,是用来计算xy (mod N)

蒙哥马利幂乘是RSA加密算法的核心部分。

1、蒙哥马利模乘

模乘是为了计算a b ( m o d N ) ab\pmod{N}ab(modN)。普通算法中,在计算模N时,利用的是带余除法,除法运算需要太多次乘法,计算复杂度较高,蒙哥马利算法的思想就是利用进制表示简化除法运算,转化成位运算。

在这里插入图片描述
我们称这个算法叫蒙哥马利约简算法。所以说,蒙哥马利约简的产生是为了蒙哥马利模乘计算服务的。

2、蒙哥马利约简

根据上述分析可知蒙哥马利算法的核心在于蒙哥马利约简。而且前面提到,蒙哥马利算法的主要思想是把取模运算变得简单,到底是怎么做到的呢?

在这里插入图片描述
在这里插入图片描述

3、蒙哥马利模乘流程

在这里插入图片描述

4、复杂度分析

蒙哥马利算法是为了简化模N NN的复杂度,当N是比较大的数时,模N需要多次的加、减、乘运算。从上述过程看来,蒙哥马利约简的复杂度确实降低了,因为只有模R 的移位运算

在这里插入图片描述

5、蒙哥马利模幂

在这里插入图片描述

根据重复平方-乘方法,模幂运算中就有很多步的模乘运算,这恰恰可以发挥蒙哥马利模乘的优势。具体的,在重复平方法的每一次模乘中都利用蒙哥马利模乘进行计算,把需要的参数提前计算好就行。

非数学专业,学习RSA算法的时候,看到了这个提及的东西。感觉值得瞅瞅概念,瑞思拜大佬们。

原文链接:https://blog.youkuaiyun.com/weixin_46395886/article/details/112988136

还有篇也不错的:https://blog.youkuaiyun.com/zgzczzw/article/details/52712980

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值