基2蒙哥马利乘法的硬件实现
蒙哥马利乘法在公钥密码学(PKC)中具有重要地位,它是实现加密和解密过程中关键的运算。在基2的蒙哥马利乘法中,模数 m 的长度为 k 位,T⁻¹ 表示 T 模 m 的逆,其中 T = 2ᵏ (mod m)。VLSI 电路与该实现兼容,可最大程度减少加密和解密过程的运行时间。
1. 解决进位传播问题的两种方法
在基2蒙哥马利乘法的算法中,如算法 5 所示,加法步骤(步骤 4)由于 3 个操作数是长二进制字符串,需要较长的进位传播。为解决这一问题,基于进位保存加法器(CSA)提出了多种解决方案,这些方案可根据输入和输出操作数的表示方式分为半进位保存(SCS)方法和全进位保存(FCS)方法。
2. SCS 方法的蒙哥马利乘法
- 原理 :在 SCS 方法中,参数以二进制格式表示,操作数 X、Y 和模数 m 作为输入参数,输出为 R = X × Y (mod m)。输入和输出操作数用二进制表示,但计算过程中的中间结果(移位模加法)以进位保存格式存储,这有助于避免进位传播。最终结果 R 需要以二进制表示,这需要额外的进位传播加法器(CPA)或重复使用可用的 CSA 进行格式转换。
- 架构与算法 :
- 算法 6 中,计算过程中的中间结果 R 以进位保存格式 (RS, RC) 存储,有助于避免进位传播。对应的架构如图 7.10 所示,循环运行 k + 2 次,有助于去除额外的比较和减法步骤,但仍需将最终结果从进位保存格式转换为二进制表示。
- 图 7.10 有一个两级 CSA 和一个