蒙哥马利乘法算法与硬件实现解析
1. RNS蒙哥马利乘法算法
RNS(剩余数系统)蒙哥马利乘法是一种重要的乘法算法。它是基与与位置相关的权重的乘积,以及前一个权重与新基的乘积。图6.7中的算法7通过使用基数$a_i$,将$q_i$在MRS系统中表示为$q′_i$,简化了$q_i$的计算难题。其中,余数$y_i$表示操作数$Y$的最低有效位。
从等式6.3可知,存在一个剩余基$a_1, a_2, … , a_n$,其中$A = \prod_{i=1}^{n} a_i$,且$GCD(\mu, A) = 1$。图6.7中的算法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算法的首选。
-
流水线架构的优势
- Mentens等人在FPGA上实现了流水线架构,通过在硬件设计中提供多级(4级)流水线,显著缩短了关键路径的长度。增加流水线级别使PKC系统能够以更高的频率执行,在短周期时间和多级流水线架构可用的情况下,可以应用更高的频率,从而加快计算过程。即使实现10%的加速,PKC的安全性也能翻