传感器开发平台
直播中

侯倩

7年用户 204经验值
私信 关注

Montgomery双域模乘器如何高效实现?

随着计算机网络的发展和普及,信息安全问题越来越多地被人们所关注。公钥密码体制有效地解决了在公共信道上保护信息的抗抵赖性、身份认证、密钥分发等问题。椭圆曲线密码ECC(Elliptic Curve Cryptography)是一种基于椭圆曲线离散对数问题的公钥密码,1985年分别由Miller [1]和Koblitz[2]独立提出。相对于其他公钥密码系统,椭圆曲线密码系统具有计算速度快、存储空间小、带宽要求低等优点,特别适用于各种无线设备和智能卡等计算资源受限的设备,因而受到了人们的广泛关注,成为新一代公钥密码标准。而模乘运算是椭圆曲线加密算法中的核心运算,如何高效地实现模乘运算是当前的一个研究热点。

回帖(2)

杨军

2020-3-20 11:37:03
Montgomery模乘算法[3]是目前应用最为广泛、同时也是最为高效的模乘算法。但Montgomery模乘算法存在的主要问题是模乘运算数据长度固定,不具备可配置性。另一个缺陷就是模乘运算的数据路径延迟达到2级n位全加器的延迟,极大地限制了电路的时钟频率。Bajard将Montgomery模乘算法扩展到剩余数系统RNS(Residue Number System),并进一步提高了模乘的性能,但数系转换硬件实现复杂,并且不支持双域运算[4]。在对算法进行硬件实现时,一般是将运算数据分成若干个字,对运算数据按字进行处理,以提高算法并行度和电路时钟频率,参考文献[5]提出了基于高基阵列的Montgomery模乘算法。
目前Montgomery模乘运算的扩展和优化实现算法主要可以分为以下四种类型:比特级-完全长度BLFP(Bit-Level Full-Precision)算法;比特级-字级BLWL(Bit-Level Word-Level)算法;字级-完全长度WLFP(Word-Level Full-Precision)算法,对另一个运算数据按完全长度进行处理;字级-字级WLWL(Word-Level Word-Level)算法。因为BLFP和WLFP类型的算法与原始Montgomery模乘算法存在相同的缺陷,所以考虑到设计高效的模乘运算单元,本文基于BLWL和WLWL这两种类型的算法,结合FIOS(Finely Integrated Operand Scanning) Montgomery模乘扩展算法,提出了一种Montgomery双域模乘器实现方案。结果表明,相比较于传统的Montgomery模乘器,本文的设计减少了近一半的时钟周期数,不仅大大提高了模乘运算速度,而且支持运算长度可配置的两个有限域GF(p)和GF(2n)的模乘运算,提高了模乘处理的灵活性。
1 FIOS类型的Montgomery模乘算法
Montgomery模乘算法按求乘法部分积与约简运算结合方式的不同,参考文献[6]提出了SOS(Separated Operand Scanning)、CIOS(Coarsely Integrated Operand Scanning)、FIOS(Finely Integrated Operand Scanning)、FIPS(Finely Integrated Product Scanning)、CIHS(Coarsely Integrated Hybrid Scanning)这五种不同类型的Montgomery扩展算法,算法详细内容可参阅文献。
五种算法中,在不考虑并行实现算法的前提下,FIOS算法的运算量最少。
1.1 BLWL类型的FIOS算法
为缩短电路数据路径中的延迟,首先将BLWL类型的FIOS算法中的中间变量全部采用TS-TC这样的冗余数表示,以进位保留加法运算完成算法中的加法运算。在算法中以这样的形式表示进位保留加法(TC,TS)=X+Y+Z。算法中Ai表示A的第i 位, B(i)表示B的第i个字,运算数据字长为w bit,字数为s=「n/w?骎,该算法描述如下:


2 两种算法的流水线组织结构分析
2.1 BLWL类型算法的流水线组织结构
通过对算法1的分析研究,可以采用多处理单元 的流水线结构来实现算法。流水线运算流程如图1所示,每一竖列表示一级流水线,每一横行表示一个运算周期,其中X和Y为运算处理单元。从图1可以看出,在外部循环i=0和内部j=1这两个过程经两个时钟周期完成后,才能够得到下一级流水线处理单元PU所需的(C(0),S(0)),即此时才开始对A的第2个bit进行扫描。也就是说在第i个外部循环的第1个内部循环经两个时钟周期完成后才可以开始第i+1个外部循环的运算,所以采用这种流水线组织形式,每级流水线之间的延迟为两个时钟周期。因为流水线每级间存在两个时钟周期的延迟,所以需要两级寄存器用来存储中间结果,而且这种流水线组织形式会增加时钟周期数,降低运算速度。


可以看出,采用这样的流水线组织结构,两级流水线之间的时钟延迟已经由2个时钟缩短为1个时钟。所以在存在足够的运算单元的条件下,完成两个位数据的模乘运算需要n+e-1个时钟周期,而采用改进前的流水线组织结构则时需要2n+e-1个时钟周期[4]。
2.2 WLWL类型算法的流水线组织结构
通过对算法2的分析研究,模乘运算的多处理单元流水线运算流程中,在i=0及j=1这两步运算完成后,得到下一级流水线处理单元X进行运算所需的T0,这时开始进行由A的第2个字对B的逐字扫描。也就是说在第i个外部循环的第1个内部循环完成后可以开始进行第i+1个外部循环。所以说对于WLWL类型算法,在不同的i循环之间存在并行性,采用多处理单元流水线的设计方式可以提高运算效率,相邻两级流水线之间的延迟为两个处理单元的运算时间。
若流水线中有不少于k=[s/2]个处理单元,流水线运算将连续地进行下去,不会因为没有空闲的处理单元而停顿部分时钟周期,所以完成两个n位数据的模乘运算需要3s-1个时钟周期。当电路中的处理单元少于k=[s/2]个,流水线运算将会因为没有空闲的处理单元而停顿部分时钟周期,此时完成模乘运算需要([n/2k]-1)([s/2]+1-k)+3s-1个时钟周期。
举报

郑涵

2020-3-20 11:37:09
3 算法的硬件实现
根据算法1和算法2以及前面对于BLWL算法和WLWL算法流水线结构的分析,基于FIOS 类型Montgomery双域模乘器的整体硬件实现结构如图3所示。

图中,双域模乘器整体结构主要由数据输入和输出、状态机控制、模乘运算等单元构成。数据的输入和输出单元与外部的数据接口宽度可以根据具体的应用环境进行灵活设计,外部数据的写操作和输出结果数据的读操作均在状态机控制模块的控制下完成,数据输入单元中各个操作数寄存器的数据输出同样也在状态机控制模块的控制下完成,所有控制信号由输入的数据长度值产生。
模乘运算电路的主要功能单元有流水线处理单元X和Y,对于BLWL算法的模乘器需要每级流水线最后一步移位运算的移位单元Z;而对于WLWL算法的模乘器则不需要。对于BLWL算法的模乘器,模乘运算电路每个时钟输出w bit的TS和TC值,若进行的是二进制域上的运算,那么TS直接就是最终运算结果,进行素数域上运算时,需要将TS和TC值相加得到最终运算结果。模乘单元每个时钟周期输出w bit的TS和TC,所以只需要一个w bit的加法器与模乘单元按流水线方式进行计算。对于WLWL算法的模乘器,模乘运算单元的整体电路中不需要位加法器对冗余表示数进行数据转换。
4 性能分析和比较
在设计可配置模乘电路时,考虑到NIST推荐的有限域长度,并根据以上对模乘运算流水线组织结构的分析,本文在BLWL类型模乘运算单元电路中设计1个处理单元X和17个处理单元Y,在WLWL类型运算单元电路中设计1个处理单元X和8个处理单元Y。这样两种模乘运算单元均支持长度在163~571 bit之间任意数据的运算,并保证流水线运算连续进行。基于运算部件的关键路径延迟与运算速度折衷的考虑,选择32作为运算数据字长和电路接口宽度。将以上设计的模乘器用VerilogHDL硬件语言进行代码描述,并使用ModelSim SE 6.0c进行功能仿真。在功能仿真正确后,使用Synopsys公司的Design Complier 在SIMC 0.18 μm工艺库下进行综合。
对于BLWL算法,采用改进的流水线组织结构模乘单元实现结果如表1所示。表格中的周期数为模乘运算和最终进行字加法运算以及减法运算共需的周期数。
由表1得出,采用改进的流水线组织结构设计模乘单元,能够达到与改进前流水线组织结构相近的时钟频率,并且由于减少了近一半的时钟周期数,其模乘运算时间也大为缩短。

乘运算单元在运算速度方面略有劣势,但在电路面积方面具有优势,若采用相同的工艺,WLWL类型模乘运算单元电路时钟频率会更高,因而运算速度会更优。与参考文献[8]中采用乘法器的设计相比,BLWL类型模乘运算单元虽然电路面积较大,但在运算速度方面具有优势。
本文基于FIOS的Montgomery模乘算法,设计了BLWL和WLWL类型的双域模乘运算单元。根据以上的分析和比较,本文设计的两种模乘运算单元在电路面积和运算速度方面各有优势,而且具有运算长度可配置功能,支持目前椭圆曲线密码576 bit长度以内的有限域模乘运算具备了很大的灵活性,满足现代通信网络对公钥密码处理高速性和灵活性的要求。
参考文献
[1] MILLER V S. Use of elliptic curves in cryptography[C]. Proc. of CRYPTO’85. Berlin: Springer-Verlag, 1986: 417-426.
[2] KOBLITZ N, Elleptic curve cryptosystems[J].Mathematics of  computation, 1987,48(4):203-209.
[3] MONTGOMERY P L. Modular multiplication without trialdivision[J]. Mathematics of Computation, 1985,44:519-521.
[4] BAJARD J C, KAIHARA M, PLANTARD T. Selected RNS bases for modular multiplication[J]. IEEE computer society, 2009,20:25-32.
[5] 胡进,何德彪,陈建华. 基于高基阵列乘法器的高速模乘单元设计与实现[J]. 计算机工程与设计,2010,31(6):1202-1204.
[6] KOC C K, ACAR T. Analyzing and comparing montgomery  multiplication algorithms[J]. IEEE. Micro,1996,16(3):26-33.
[7] SAVAS E, TENCA A F, KOC C K. A scalable and unified multiplier architecture for fields GF(p) and GF(2m)[C]. Cryptographic Hardware and Embedded Systems(CHES 2000). New York: Springer-Verlag, 2000: 1-20.
[8] SATOH A, TAKANO K. A scalable dual-field elliptic curve cryptographic processor[J]. IEEE.Transactions on Computers, 2003,52(4):449-460.
[9] 史焱, 吴行军. 高速双有限域加密协处理器设计[J]. 微电子学与计算机, 2005, 22(5): 8-12.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分