基于基2的蒙哥马利乘法的硬件实现
蒙哥马利乘法在公钥密码学(PKC)算法中起着至关重要的作用,它是执行有限域上乘法和平方等关键运算的基础。本文将深入探讨基于基2的蒙哥马利乘法的硬件实现,包括VLSI电路实现、不同的进位保存方法以及位串行和位并行的蒙哥马利乘法与平方算法。
1. VLSI电路与蒙哥马利乘法
在蒙哥马利乘法中,模数 $m$ 的长度为 $k$ 位,$T^{-1}$ 表示 $T$ 模 $m$ 的逆,其中 $T = 2^k \pmod{m}$。VLSI 电路非常适合实现蒙哥马利乘法,能够有效减少加密和解密过程的运行时间。Kuang 等人提出了一种算法及其硬件实现,该技术不仅节能,还能提高蒙哥马利模乘(MMM)的性能。它避免了冗余的进位保存加法器(CSA)和内存写入操作,从而节省了功耗并提高了吞吐量。
然而,在某些算法中,加法步骤(如算法 5 中的第 4 步)由于三个操作数是长二进制字符串,需要较长的进位传播。为了解决这个问题,基于 CSA 提出了多种解决方案,可分为半进位保存(SCS)和全进位保存(FCS)两种方法。
2. SCS 方法的蒙哥马利乘法
2.1 SCS 方法概述
在半进位保存(SCS)方法中,参数以二进制格式表示,操作数 $X$、$Y$ 和模数 $m$ 作为输入参数,输出为 $R = X \times Y \pmod{m}$。输入和输出操作数用二进制表示,但计算过程中的中间结果(移位模加法)以进位保存格式存储,有助于避免进位传播。最终结果 $R$ 需要以二进制表示,这需要额外的进位传播加法器(CPA)或反复使用可用的 CSA 进行格式转换。
超级会员免费看
订阅专栏 解锁全文
21

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



