蒙哥马利乘法算法及硬件实现解析
1. RNS蒙哥马利乘法算法
RNS(剩余数系统)蒙哥马利乘法是一种重要的乘法算法。在该算法中,其计算与基数、权重相关。具体而言,RNS蒙哥马利乘法是基数与对应位置权重的乘积,再加上前一个权重与新基数的乘积(参考相关公式)。
图6.7展示的算法7简化了 $q_i$ 的计算难题。它通过使用基数 $a_i$,将 $q_i$ 在MRS(混合基数系统)中表示为 $q’_i$。其中,余数 $y_i$ 代表操作数 $Y$ 的最低有效位。
从公式可知,存在一个余数基 $a_1, a_2, \cdots, a_n$,其中 $A = \prod_{i = 1}^{n} a_i$,且 $\gcd(\mu, A) = 1$。算法7的输出是一个整数 $R$,满足 $R < 2\mu$ 且 $R \equiv XY A^{-1} \pmod{\mu}$。该算法进行 $n$ 次迭代,每次在循环内计算一个MRS数字 $q’_i$,最终借助 $q’_i$ 和 $x’_i$ 在RNS中得到 $R$ 的值。
2. 模块化乘法的流水线架构
快速乘法在许多应用中至关重要,尤其是在需要计算一系列乘法以获取指数值的场景中。模块化指数运算作为许多公钥密码学(PKC)的基础和关键操作,其效率直接影响着PKC的性能。蒙哥马利乘法方法是提高模块化乘法效率的有效技术,因此成为使用模块化指数运算的PKC算法的首选。
Mentens等人在FPGA上实现了流水线架构,利用蒙哥马利乘法技术进行高效的模块化乘法。他们通过在硬件设计中提供多级(4级)流水线,显著缩短了关键路径的长度。增加流水线级别使PKC系统能够以更高的频率执行,在短周期时间和
超级会员免费看
订阅专栏 解锁全文
79

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



