蒙哥马利乘法及RNS蒙哥马利乘法算法详解
1. 蒙哥马利乘法概述
蒙哥马利乘法(MMM)在模乘运算(MM)中极为有用且有趣,至今它在提升效率方面表现卓越。在计算蒙哥马利乘法时,我们需要计算蒙哥马利积。
蒙哥马利积的计算如下:
需要计算 (X\cdot Y(\bmod m)),其中 (X, Y < m)。我们有蒙哥马利约化元素 (p),满足 (GCD(m, p) = 1),则蒙哥马利积可以表示为:
(MonProd(X, Y) = X × Y × p^{-1}(\bmod m))
若 (p) 选为 2 的幂次会更优,因为这样能通过简单的移位和加法操作高效执行,从而提高数学运算(如除法和乘法)的速度。
蒙哥马利乘法的执行方式可分为两大类:
- 乘法和约化分开进行。
- 约化和乘法集成进行。
集成程度取决于约化和乘法之间的切换,切换次数可多可少。此外,扫描操作数和乘积也是一个重要因素,具体有以下几种扫描方式:
1. 独立操作数扫描
2. 少切换操作数扫描
3. 高切换操作数扫描
4. 高切换乘积扫描
5. 少切换混合扫描
蒙哥马利积进一步用于蒙哥马利乘法,在密码系统的各种应用中发挥作用。当选择 (p = 2^k),使得 (m) 为 (k) 位整数(即 (2^{k - 1} \leq m < 2^k)),且 (p) 和 (m) 互质时,从相关算法步骤可得:
(R’ = (X’Y’)p^{-1}(\bmod m))
(T p^{-1} = (T + T (-m)^{-1}(\bmod p) m)/p(\bmod
超级会员免费看
订阅专栏 解锁全文
68

被折叠的 条评论
为什么被折叠?



