位转发技术的硬件实现与RSA处理器优化
1. 位转发技术基础算法
在密码学的硬件实现中,位转发技术(Bit Forwarding Techniques)是提升性能的关键。下面将详细介绍相关的基础算法。
1.1 自适应蒙哥马利乘法(Adaptable Montgomery Multiplication)
对于两个数的蒙哥马利积计算,使用AMM模块。设输入整数为X、Y和m,AMM模块的输出为X·Y·σ⁻¹ (mod m),此为蒙哥马利值。其中,σ⁻¹是σ (= 2ⁿ (mod m))的模逆元,n是模数m的长度。蒙哥马利积的计算可借助以下两个公式之一:
1. P = P + C0[i] + m
2. P = P + C0[i]
公式的选择取决于P + 1的最低有效位(LSB),参数C0是C的低n位。下一步是进行移位操作:P = P >> 1。上述步骤需执行k次,最后将P的最终值与C1(C的高n位)相加。与传统蒙哥马利乘法相比,AMM模块在循环内绕过了乘法操作,减少了n次(1位)乘法,采用了如移位和加法等简单数学运算,开销更低。对于指数中的1位,可在(n + 3)个时钟周期内完成指定数学过程,而非(n + 5)个时钟周期。当指数的二进制字符串增加到1024位时,这种减少具有积极影响。
1.2 修改的平方 - 乘法算法(Modified Square and Multiply Algorithm)
MSM模块负责借助AMM模块计算模幂运算(ME)。需调用AMM模块k + r次来执行模乘(MM),其中k是指数的长度,r是指数中非零位的数量。不同情况下所需的MM次数如下:
- 最坏情况