可重构双基双域模乘器设计与实现
2012-06-03戴紫彬杨同杰
倪 乐,戴紫彬,杨同杰,李 淼,陈 韬
(信息工程大学 电子技术学院,河南 郑州450004)
基于椭圆曲线离散对数问题 (ECDLP)的椭圆曲线密码 ECC(Elliptic Curve Cryptography)[1-2]已经被证明是一种比RSA更安全、计算上更高效的公钥密码体制,因此正逐步取代RSA成为下一代公钥密码标准[3]。作为椭圆曲线密码算法的核心运算,模乘运算的性能至关重要,如何灵活、高效地实现模乘运算是当前的一个研究热点。
ECC的基域有素数域和二进制域两种,在实际应用中,常常需要能够支持两个域上的模乘运算,为此设计了一种双域模乘器是一种有效的解决方案。Montgomery模乘算法[4]是目前应用最为广泛且最为高效的模乘算法,它将传统模乘运算中的除法运算以移位操作代替,大大加快了模乘运算的速度和效率,非常适合硬件实现。由于两个域上的传统模乘器设计的延迟不同,因此本文选取适合双域运算的Montgomery算法进行分析,采用选取不同字长的设计方法,提出了可重构的双基双域模乘器设计方案。结果表明,本设计有效提高了二进制域上模乘运算的速度,使得两个有限域上模乘运算的时钟频率更加匹配。
1 双域Montgomery模乘算法
素数域和二进制域上基于字的Montgomery模乘算法如算法1所示。其中,A、B表示被乘数和乘数,N表示模数,C表示Montgomery模乘运算的乘积。字长为w,基r为 2w,s=「m/w(m是模数N的位长)。A(i)代表A的第i个字,B(j)、C(j)、N(j)分别代表B、C、N的第j个字。
算法1基于字的Montgomery模乘算法


算法1是一种对原始Montgomery模乘算法的改进,它对操作数按字进行了分割,把大整数的乘法运算分割成小整数的乘法,避免了硬件实现中大整数运算带来的时钟延迟较大的问题。……
