CN104007953A - 一种基于四操作数Montgomery模乘算法的模乘器电路结构 - Google Patents
一种基于四操作数Montgomery模乘算法的模乘器电路结构 Download PDFInfo
- Publication number
- CN104007953A CN104007953A CN201410236323.0A CN201410236323A CN104007953A CN 104007953 A CN104007953 A CN 104007953A CN 201410236323 A CN201410236323 A CN 201410236323A CN 104007953 A CN104007953 A CN 104007953A
- Authority
- CN
- China
- Prior art keywords
- register
- operand
- output
- input
- mould
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明属于高性能公钥密码学硬件设计技术领域,具体为一种基于四操作数Montgomery模乘算法的模乘器电路结构。本发明对原始算法进行改进,通过对其中部分的部分积的共享,实现了四操作数的Montgomery模乘算法,可以完成形如(A·B+C·D)modP的运算。由于对部分的部分积进行了共享,从而相对于传统的双操作数Montgomery模乘算法可以减少25%的部分积。与此同时,基于该算法本发明还提出了一种基于布斯编码的模乘器电路结构,实现了较小的压缩树开销,并且可以完成较为复杂的运算。从而提高了公钥密码学相关应用的性能。
Description
技术领域
本发明属于高性能公钥密码学硬件设计技术领域,具体涉及一种基于四操作数Montgomery模乘算法的模乘器电路结构。
技术背景
公钥密码学在互联网、用户认证、数据加解密等应用场合都得到了广泛的应用。而支撑公钥密码学运算的基础就是形如A∙Bmod P的模乘操作。由于操作数的数据位宽较宽,常几百或者上千比特。所以该操作实现起来具有一定的复杂性,并且不能被当前的一些通用处理器高效的支持。如何用专用的硬件单元来实现高性能的模乘器是实现高性能公钥密码学的基础,这也是当前所面临的挑战。
近年来,随着一些新的加解密算法的提出,在支持灵活的加解密方案的同时,也带来了计算量的提高。如双线性对加解密算法,该算法一般是在扩域上进行运算。对于Fp 2域的乘法运算可以表示为
其中,,可以看出上式右边两项具有相同的运算模式,即A∙B+C∙D。如何设计一个高效的模乘器来实现该模式的运算,是减少算法执行时间的关键。本发明正是基于这些算法特性来对模乘算法以及模乘器架构进行高效实现。
发明内容
为了克服现有技术的不足,本发明的目的在于提供一个高效的实现(A∙B+C∙D)mod P形式运算的电路结构,其电路结构基于四操作数Montgomery模乘算法,该算法对原始算法中部分的部分积(算法第4步中的qi-1∙P2 ’项)进行共享,使得等效部分积的数量减少了25%;运算速度和效率大大。
本发明具体技术方案如下。
本发明提供一种基于四操作数Montgomery模乘算法的模乘器电路结构,其中所述四操作数Montgomery模乘算法用于实现高性能计算,可以完成如(A∙B+C∙D)mod P形式的运算;该算法描述如下:
其中,A 、 B 、 C 、 D为输入操作数。P为模数,r为乘法的基,R为Montgomery常量,P1 、 P2 、 P1 ’、 P2 ’为根据P和r产生的用于计算的参数。Si 为算法在迭代中的模乘结果。
对于上述算法的正确性和输出范围证明如下:
首先根据算法第4步,对2 riSi 进行迭代,可得
当i=n时,有
代入算法第6步,则有
对于算法正确性,由于,显然有
对于算法输出范围,由于操作数的输入范围为0 ≤ A, B, C, D<β∙2 r ∙P,代入(1)式可得:
又由于β 2 ∙P<2 r(n-1) ,所以
证毕。
本发明基于该算法的模乘器电路结构包括操作数寄存器、布斯编码部分积产生器、压缩树1、流水线寄存器、压缩树2、临时寄存器、S反馈模块、结果寄存器、Q值产生模块和时序控制器;模乘器开始信号输入给时序控制器来启动模乘器的时序控制;其中时序控制器产生的控制信号输出给整个模乘器的数据路径;当完成一个模乘运算后,时序控制器输出模乘结束信号;操作数B、D分别输入到具有高低部分交换功能的操作数寄存器;操作数P1 ’、 P2 ’经过选择器后输入到具有高低部分交换功能的操作数寄存器;操作数A、C分别输入到具有移位功能的操作数寄存器;操作数寄存器的输出都输入给布斯编码部分积产生器;布斯编码部分积产生器用于产生若干个部分积,并把该若干个部分积送给压缩树1进行压缩;压缩树1对布斯编码部分积产生器产生的信号进行第一步压缩,并把压缩后的部分积送给流水线寄存器进行寄存;流水线寄存器的输出送给压缩树2进行第二步压缩;压缩树2的结果输出到临时寄存器0和临时寄存器1进行寄存;S反馈模块(S0反馈和S1反馈)的输入为压缩树的输出和临时寄存器的输出;S反馈模块产生的结果作为流水线寄存器的输入;结果寄存器分为S0H寄存器、S0L寄存器、S1H寄存器和S1L寄存器;S0H寄存器和S0L寄存器的输入为临时寄存器0的输出;S0H寄存器和S0L寄存器的输出为模乘的运算结果0;S1H寄存器和S1L寄存器的输入为临时寄存器1的输出;S1H寄存器和S1L寄存器的输出为模乘的运算结果1;Q值产生模块的输入为压缩树的输出;Q值产生模块的进位输出作为压缩树2的输入,Qi 值作为布斯编码部分积产生器的输入。
本发明中,布斯编码部分积产生器,主要由三个布斯控制器、三个布斯编码器、部分积选择阵列和寄存器构成;其中操作数A移位寄存器的输出Ai 信号输入给布斯控制器1产生若干布斯选择信号并送给寄存器进行寄存;操作数C移位寄存器的输出Ci 信号输入给布斯控制器2产生若干布斯选择信号并送给寄存器进行寄存;Q值产生模块产生的Qi 值输入给布斯控制器3产生若干布斯选择信号并送给寄存器进行寄存;操作数B高低部分交换寄存器的输出B H/L信号送给布斯编码器1进行操作数的布斯编码;操作数D高低部分交换寄存器的输出D H/L信号送给布斯编码器2进行操作数的布斯编码;操作数P ’高低部分交换寄存器的输出P ’ H/L信号送给布斯编码器3进行操作数的布斯编码;部分积选择阵列的输入为经过寄存器寄存的选择信号和布斯编码器产生的操作数的布斯编码;部分积选择阵列的输出为经过选择信号选择出的部分积输出。
本发明的有益效果在于:本发明电路结构实现了较小的压缩树开销,并且可以完成较为复杂的运算,从而提高了公钥密码学相关应用的性能。
附图说明
图 1是 四操作数模乘器的电路结构。
图 2是布斯编码部分积产生器的电路结构。
具体实施方式
本发明基于公钥密码学的算法特点,为了提高运算速度和效率,提出了四操作数Montgomery模乘算法和基于该算法的电路结构。该算法利用了对算法中部分的部分积(算法第4步中的qi-1∙P2 ’项)进行共享,从而使得等效部分积的数量减少了25%。具体实施方式如下:
本发明提出了一种四操作数Montgomery模乘算法用于实现高性能计算,可以完成如(A∙B+C∙D)mod P形式的运算。该算法描述如下:
其中,A 、 B 、 C 、 D为输入操作数。P为模数,r为乘法的基,R为Montgomery常量,P1 、 P2 、 P1 ’、 P2 ’为根据P和r产生的用于计算的参数。Si 为算法在迭代中的模乘结果。
对于该算法的正确性和输出范围证明如下:
首先根据算法第4步,对2 riSi 进行迭代,可得
当i=n时,有
代入算法第6步,则有
对于算法正确性,由于,显然有
对于算法输出范围,由于操作数的输入范围为0 ≤ A, B, C, D<β∙2 r ∙P,代入(1)式可得:
又由于β 2 ∙P<2 r(n-1) ,所以
证毕。
本发明基于该算法的模乘器电路结构主要有操作数寄存器、布斯编码部分积产生器、压缩树1、流水线寄存器、压缩树2、临时寄存器、S反馈模块、结果寄存器、Q值产生模块和时序控制器等模块构成,如图1所示。模乘器开始信号输入给时序控制器来启动模乘器的时序控制;其中时序控制器产生的控制信号输出给整个模乘器的数据路径;当完成一个模乘运算后,时序控制器输出模乘结束信号;操作数B、D分别输入到具有高低部分交换功能的操作数寄存器;操作数P1 ’、 P2 ’经过选择器后输入到具有高低部分交换功能的操作数寄存器;操作数A、C分别输入到具有移位功能的操作数寄存器;操作数寄存器的输出都输入给布斯编码部分积产生器;布斯编码部分积产生器用于产生若干个部分积,并把该若干个部分积送给压缩树1进行压缩;压缩树1对部分积产生器产生的信号进行第一步压缩,并把压缩后的部分积送给流水线寄存器进行寄存;流水线寄存器的输出送给压缩树2进行第二步压缩;压缩树2的结果输出到临时寄存器0和临时寄存器1进行寄存;S反馈模块(S0反馈和S1反馈)的输入为压缩树的输出和临时寄存器的输出;S反馈模块产生的结果作为流水线寄存器的输入;结果寄存器分为S0H寄存器、S0L寄存器、S1H寄存器和S1L寄存器;S0H寄存器和S0L寄存器的输入为临时寄存器0的输出;S0H寄存器和S0L寄存器的输出为模乘的运算结果0;S1H寄存器和S1L寄存器的输入为临时寄存器1的输出;S1H寄存器和S1L寄存器的输出为模乘的运算结果1;Q值产生模块的输入为压缩树的输出;Q值产生模块的进位输出作为压缩树2的输入,Qi 值作为布斯编码部分积产生器的输入。
所述布斯编码部分积产生器,其主要由三个布斯控制器、三个布斯编码器、部分积选择阵列和寄存器构成,如图2所示。其中操作数A移位寄存器的输出Ai 信号输入给布斯控制器1产生若干布斯选择信号并送给寄存器进行寄存;操作数C移位寄存器的输出Ci 信号输入给布斯控制器2产生若干布斯选择信号并送给寄存器进行寄存;Q值产生模块产生的Qi 值输入给布斯控制器3产生若干布斯选择信号并送给寄存器进行寄存;操作数B高低部分交换寄存器的输出B H/L信号送给布斯编码器1进行操作数的布斯编码;操作数D高低部分交换寄存器的输出D H/L信号送给布斯编码器2进行操作数的布斯编码;操作数P ’高低部分交换寄存器的输出P ’ H/L信号送给布斯编码器3进行操作数的布斯编码;部分积选择阵列的输入为经过寄存器寄存的选择信号和布斯编码器产生的操作数的布斯编码;部分积选择阵列的输出为经过选择信号选择出的部分积输出。
本发明提出的四操作数模乘器已在TSMC 65nm LP工艺下进行了流片,其操作数的数据位宽为320比特,基r为53。实测可以工作在800MHz的频率,仅需要18个周期(22.5ns)就可以完成一次(A∙B+C∙D)mod P运算。
Claims (3)
1.一种基于四操作数的Montgomery模乘算法的模乘器电路结构,其特征在于:所述四操作数Montgomery模乘算法用于完成如(A∙B+C∙D)mod P形式的运算;该算法描述如下:
其中,A 、 B 、 C 、 D为输入操作数,P为模数,r为乘法的基,R为Montgomery常量,P1 、 P2 、 P1 ’、 P2 ’为根据P和r产生的用于计算的参数,Si 为算法在迭代中的模乘结果。
2.一种基于四操作数的Montgomery模乘算法的模乘器电路结构,其特征在于:模乘器电路结构包括操作数寄存器、布斯编码部分积产生器、压缩树1、流水线寄存器、压缩树2、临时寄存器、S反馈模块、结果寄存器、Q值产生模块和时序控制器模块;
模乘器开始信号输入给时序控制器来启动模乘器的时序控制;其中时序控制器产生的控制信号输出给整个模乘器的数据路径;当完成一个模乘运算后,时序控制器输出模乘结束信号;操作数B、D分别输入到具有高低部分交换功能的操作数寄存器;操作数P1 ’、 P2 ’经过选择器后输入到具有高低部分交换功能的操作数寄存器;操作数A、C分别输入到具有移位功能的操作数寄存器;操作数寄存器的输出都输入给布斯编码部分积产生器;布斯编码部分积产生器用于产生若干个部分积,并把该若干个部分积送给压缩树1进行压缩;压缩树1对布斯编码部分积产生器产生的信号进行第一步压缩,并把压缩后的部分积送给流水线寄存器进行寄存;流水线寄存器的输出送给压缩树2进行第二步压缩;压缩树2的结果输出到临时寄存器0和临时寄存器1进行寄存;所述S反馈模块由S0反馈和S1反馈组成,所述S反馈模块的输入为压缩树的输出和临时寄存器的输出;S反馈模块产生的结果作为流水线寄存器的输入;结果寄存器分为S0H寄存器、S0L寄存器、S1H寄存器和S1L寄存器;S0H寄存器和S0L寄存器的输入为临时寄存器0的输出;S0H寄存器和S0L寄存器的输出为模乘的运算结果0;S1H寄存器和S1L寄存器的输入为临时寄存器1的输出;S1H寄存器和S1L寄存器的输出为模乘的运算结果1;Q值产生模块的输入为压缩树的输出;Q值产生模块的进位输出作为压缩树2的输入,Qi 值作为布斯编码部分积产生器的输入。
3.根据权利要求2所述的电路结构,其特征在于:所述布斯编码部分积产生器,其主要由三个布斯控制器、三个布斯编码器、部分积选择阵列和寄存器构成;其中操作数A移位寄存器的输出Ai 信号输入给布斯控制器1产生若干布斯选择信号并送给寄存器进行寄存;操作数C移位寄存器的输出Ci 信号输入给布斯控制器2产生若干布斯选择信号并送给寄存器进行寄存;Q值产生模块产生的Qi 值输入给布斯控制器3产生若干布斯选择信号并送给寄存器进行寄存;操作数B高低部分交换寄存器的输出B H/L信号送给布斯编码器1进行操作数的布斯编码;操作数D高低部分交换寄存器的输出D H/L信号送给布斯编码器2进行操作数的布斯编码;操作数P ’高低部分交换寄存器的输出P ’ H/L信号送给布斯编码器3进行操作数的布斯编码;部分积选择阵列的输入为经过寄存器寄存的选择信号和布斯编码器产生的操作数的布斯编码;部分积选择阵列的输出为经过选择信号选择出的部分积输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410236323.0A CN104007953A (zh) | 2014-05-30 | 2014-05-30 | 一种基于四操作数Montgomery模乘算法的模乘器电路结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410236323.0A CN104007953A (zh) | 2014-05-30 | 2014-05-30 | 一种基于四操作数Montgomery模乘算法的模乘器电路结构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104007953A true CN104007953A (zh) | 2014-08-27 |
Family
ID=51368622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410236323.0A Pending CN104007953A (zh) | 2014-05-30 | 2014-05-30 | 一种基于四操作数Montgomery模乘算法的模乘器电路结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104007953A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228138A (zh) * | 2017-12-28 | 2018-06-29 | 南京航空航天大学 | 一种sidh中特殊域快速模乘的方法 |
CN108255463A (zh) * | 2017-12-28 | 2018-07-06 | 深圳市紫光同创电子有限公司 | 一种数字逻辑运算方法、电路和fpga芯片 |
CN110554854A (zh) * | 2019-09-24 | 2019-12-10 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN113190211A (zh) * | 2021-05-19 | 2021-07-30 | 哈尔滨理工大学 | 一种用于双线性对的四输入fios模乘算法及架构设计 |
CN110554854B (zh) * | 2019-09-24 | 2024-05-03 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761068A (zh) * | 2014-01-26 | 2014-04-30 | 上海交通大学 | 优化的蒙哥马利模乘方法、模平方方法和模乘硬件 |
-
2014
- 2014-05-30 CN CN201410236323.0A patent/CN104007953A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761068A (zh) * | 2014-01-26 | 2014-04-30 | 上海交通大学 | 优化的蒙哥马利模乘方法、模平方方法和模乘硬件 |
Non-Patent Citations (3)
Title |
---|
YANG LI等: "An 800Mhz Cryptographic Pairing Processor in 65nm CMOS", 《SOLID STATE CIRCUITS CONFERENCE (A-SSCC),2012 IEEE ASIAN》 * |
梁鹏飞: "基于流水线的Montgomery模乘算法硬件实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
闫银宝: "长位宽模乘器设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228138A (zh) * | 2017-12-28 | 2018-06-29 | 南京航空航天大学 | 一种sidh中特殊域快速模乘的方法 |
CN108255463A (zh) * | 2017-12-28 | 2018-07-06 | 深圳市紫光同创电子有限公司 | 一种数字逻辑运算方法、电路和fpga芯片 |
CN108255463B (zh) * | 2017-12-28 | 2020-12-22 | 深圳市紫光同创电子有限公司 | 一种数字逻辑运算方法、电路和fpga芯片 |
CN108228138B (zh) * | 2017-12-28 | 2021-12-10 | 南京航空航天大学 | 一种sidh中特殊域快速模乘的方法 |
CN110554854A (zh) * | 2019-09-24 | 2019-12-10 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN110554854B (zh) * | 2019-09-24 | 2024-05-03 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN113190211A (zh) * | 2021-05-19 | 2021-07-30 | 哈尔滨理工大学 | 一种用于双线性对的四输入fios模乘算法及架构设计 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pan et al. | Novel systolization of subquadratic space complexity multipliers based on toeplitz matrix–vector product approach | |
CN110351087B (zh) | 流水线型的蒙哥马利模乘运算方法 | |
CN101216754B (zh) | 基于模乘运算的数据加解密处理的方法及装置 | |
Wollinger | Software and hardware implementation of hyperelliptic curve cryptosystems | |
CN101097511A (zh) | 使用折叠的模归约 | |
CN104184578B (zh) | 一种基于fpga的椭圆曲线标量乘法加速电路及其算法 | |
Meher et al. | Low-Latency, Low-Area, and Scalable Systolic-Like Modular Multipliers for $ GF (2^{m}) $ Based on Irreducible All-One Polynomials | |
CN104038770B (zh) | 一种基于随机计算的离散余弦变换实现方法及系统 | |
CN104007953A (zh) | 一种基于四操作数Montgomery模乘算法的模乘器电路结构 | |
Chen et al. | FPGA realization of low register systolic all-one-polynomial multipliers over $ GF (2^{m}) $ and their applications in trinomial multipliers | |
Abd-Elkader et al. | Efficient implementation of Montgomery modular multiplier on FPGA | |
CN101295237A (zh) | 求商和余数的高速除法器 | |
Li et al. | An 800Mhz cryptographic pairing processor in 65nm CMOS | |
CN100435091C (zh) | 大数模幂系统的硬件高基实现方法 | |
CN103412737A (zh) | 基4-Booth编码方法及门电路和流水线大数乘法器 | |
CN103914277B (zh) | 一种基于改进的Montgomery模乘算法的可扩展模乘器电路 | |
CN103942027B (zh) | 一种可重构的快速并行乘法器 | |
CN102135871B (zh) | 利用混沌原理产生随机数的装置及其动态口令牌 | |
Lee et al. | Efficient subquadratic space complexity architectures for parallel MPB single-and double-multiplications for all trinomials using Toeplitz matrix-vector product decomposition | |
Kadu et al. | Hardware implementation of efficient elliptic curve scalar multiplication using vedic multiplier | |
CN109510699B (zh) | 一种六维离散超混沌系统及六维离散超混沌信号发生器 | |
Dake et al. | Low complexity digit serial multiplier for finite field using redundant basis | |
Xie et al. | Low-complexity systolic multiplier for GF (2 m) using toeplitz matrix-vector product method | |
Wang et al. | TCPM: A reconfigurable and efficient Toom-Cook-based polynomial multiplier over rings using a novel compressed postprocessing algorithm | |
Thomas et al. | A survey on various algorithms used for elliptic curve cryptography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140827 |
|
WD01 | Invention patent application deemed withdrawn after publication |