CN103914277B - 一种基于改进的Montgomery模乘算法的可扩展模乘器电路 - Google Patents
一种基于改进的Montgomery模乘算法的可扩展模乘器电路 Download PDFInfo
- Publication number
- CN103914277B CN103914277B CN201410145671.7A CN201410145671A CN103914277B CN 103914277 B CN103914277 B CN 103914277B CN 201410145671 A CN201410145671 A CN 201410145671A CN 103914277 B CN103914277 B CN 103914277B
- Authority
- CN
- China
- Prior art keywords
- partial product
- circuit
- pcsa
- modular
- depositor
- 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.)
- Active
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明属于高性能公钥密码学集成电路设计技术领域,具体为一种基于改进的Montgomery模乘算法的可扩展模乘器电路。本发明通过引入一个额外的参数,使得Montgomery域的数据位宽相比原来得以减小,从而减小整个***的硬件开销。本发明还基于上述算法,设计了一个高性能可扩展乘法器电路。其主要由时序控制器、部分积产生电路、进位保存加法器压缩树电路、部分积反馈电路、模乘器扩展相关电路和时序控制器构成;其使得较大位宽的模乘可以通过多个模乘器联合起来实现,计算延时降低,扩展性能良好,模乘效率显著提高。
Description
技术领域
本发明属于公钥密码学集成电路设计技术领域,具体涉及一种基于改进的商流水Montgomery模乘算法的可扩展模乘器电路结构。
背景技术
近些年来,随着计算机技术与互联网技术的不断发展,云计算的时代正在悄悄来临。随着云计算技术的不断深入,如何保障用户的数据安全与隐私,成为了一个重要的挑战。高安全的数据加密与身份验证是云计算发展的必然。无论是对于数据加密还是身份验证,公钥密码学,由于其非对称加密特性,使得其在这些应用中扮演了重要的角色。模乘是公钥密码学中最为核心的运算。如何进行高性能的模乘器设计,是解决云计算的相关挑战的重要技术基础。
随着物联网、移动互联网、无线通信应用技术的不断发展,无线接入设备越来越多,对于无线接入点的接入认证任务也越来越重。由其对于移动多媒体流应用,频繁的切换接入点会带来较差的用户体验。如何解决低延时的接入认证,是解决上述问题的基础。目前的接入认证主要也是基于公钥密码学,所以低延时的模乘器设计成为了解决挑战的关键技术。
随着密码攻击与破解技术的不断提升,较小的秘钥宽度已经很难保证加密后的数据具有足够的安全性。随着秘钥宽度的不断增加,带来了计算量的大幅提升。在安全性增加的同时,为了实现可以接受的运算时间,高性能的模乘器设计是首先需要考虑的。与此同时,为了满足不同的安全性需求,加密协议中的位宽往往是可以变化的,如ECC-256、ECC-521、RSA-1024、RSA-2048等。为了满足不同协议的需求,可扩展的模乘器设计是技术关键。
发明内容
为了克服现有技术的不足,本发明的目的在于提供一种基于改进的商流水Montgomery模乘算法及基于该算法的高性能可扩展的电路,其有助于解决当前云计算、移动无线接入等技术领域面临的挑战。
本发明首先对原有的商流水Montgomery模乘算法进行改进,提出了一种可以减小Montgomery域数据位宽的改进的算法。所述改进的Montgomery模乘算法基于原始商流水Montgomery模乘算法增加了一个用于运算的参数,该参数通过下面方法获得:
新增的参数用于
其中,M 为模乘中的模数,k 为模乘的基;改进算法中的与原始算法中的相同;Sn+1与Sn+2为迭代运算中的运算结果,Qn为第n次迭代的Q值。具体见说明书附录部分的附录2和附录4。
与原始商流水Montgomery模乘算法要求相比,其位宽可以减少k-1比特;由于高性能模乘设计几乎都是采用高基的实现方法,而高基实现方法中,k值较大,通常为几十或几百的量级。所以,k-1比特的减少对于硬件设计来说是一个比较大的改进,可以较大的减少***中运算单元与寄存器堆等的数据位宽,从而使得***的开销得到减小,并有利于达到更好的时序性能,实现更高的工作频率。
在改进的算法的基础上,本发明还提出了一种基于改进的Montgomery模乘算法的可扩展模乘器电路。该电路结构主要由部分积产生电路、第一级流水线进位保存加法器(PCSA)压缩树、第二级PCSA压缩树、部分积反馈电路、模乘器扩展相关电路和时序控制器构成;其中:
所述部分积产生电路由单个部分积产生电路构成,其在时序控制器的控制信号下,根据寄存器B(附录2中的参数B)、寄存器B+M2(附录2中的参数B和参数的累加结果)、寄存器M2(附录2中的参数)、寄存器M1(附录2中的参数)、以及寄存器A(附录2中的参数A)和寄存器Q(附录2中的参数Q i )的输出,产生相应的操作数高半部分或者低半部分的的部分积并送给第一级PCSA压缩树的输入端;作为部分积产生电路的输入
所述第一级PCSA压缩树在时序控制器产生的控制信号控制下对部分积产生电路所产生的部分积进行压缩,并将压缩后的结果送到流水线寄存器进行寄存;
所述第二级PCSA压缩树在时序控制器产生的控制信号控制下,对寄存后的部分积、部分积反馈电路产生的部分积、以及加法器产生的进位信号进行压缩,并把压缩后的结果送到相应的结果寄存器进行保存;
所述部分积反馈电路根据结果寄存器以及扩展信号中的 S值(多模乘器扩展时,其它模乘运算中产生的S值,如图1中加法器电路生产的24比特S值输出信号)输入在时序控制器的控制下产生用于反馈的部分积,并把其送到第二级PCSA压缩树的输入端;
所述模乘器扩展相关电路包括引出的数据线接口、部分积反馈电路中的部分逻辑、以及加法器和复用器;用于扩展的S值输入直接接入到部分积反馈电路模块,经过寄存器寄存后送给复用器;加法器对结果寄存器中的低部分比特进行累加实现Q值(对应于算法中的Q i ,如附录4所示)的计算,其进位值送给第二级PCSA压缩树,其输出直接引出作为用于扩展的S值输出信号;加法器的输出经过寄存器Q’寄存后作为用于扩展的Q值输出;外部输入的用于扩展的Q值和寄存器Q’的值通过复用器进行选择并送给寄存器Q进行寄存;作为部分积产生电路的输入信号。
上述第一级PCSA压缩树和第二级PCSA压缩树采用的方法实现;所述第一级和第二级PCSA压缩树由若干个流水线进位保存加法器(PCSA)经过一定的树状连接构成;PCSA可以减小进位保存加法器的位宽,从N比特减少到[N/2]+1比特,其主要由[N/2]+1比特的进位保存加法器和一个进位寄存器构成;[N/2]+1比特的进位保存加法器的输入为三个操作数的高半部分或者低半部分数据;[N/2]+1比特的进位保存加法器的进位输出(CH/CL的最高位,CMSB)会经过一个一比特的寄存器进行寄存;寄存后的CMSB会拼接到CH/CL信号的最低位用作PCSA的CH/CL输出,对于进位保存加法器的SH/SL的输出直接作为PCSA的CH/CL输出。PCSA将操作数低半部分压缩的进位信号通过一个1比特寄存器进行暂存,到下一个时钟周期拼接到操作数高半部分压缩结果的最低比特位置。
上述部分积产生电路中,单个部分积产生电路主要由复用器构成。其中时序控制器产生的M1M2选择信号会对M1与M2的值进行选择并送到下一级4输入复用器;寄存器A信号和Q值信号对4输入复用器的输入信号进行选择并作为部分积输出。
本发明的有益效果在于:其采用改进的Montgomery模乘算法,并且基于PCSA压缩树的结构,使得模乘操作数的高半部分和低半部分可以流水操作,从而避免了直接实现中较大的数据通路开销,并且可以达到较好的时序性能,实现较高的电路工作频率。与此同时还将用于扩展的Q值信号和S值信号引出,从而实现了可扩展的设计,使得一个较大位宽的模乘可以通过多个模乘器联合起来实现,实现较低的计算延时,实现很好的扩展性能。本发明通过算法与电路结构的创新,提出了改进的模乘算法与高性能可扩展的模乘器的电路结构设计。经过验证,模乘效率显著提高。
附图说明
图1是高性能可扩展模乘器整体电路结构图。
图2是部分积产生电路结构图。
图3是 进位保存加法器(CSA)与流水线进位保存加法器(PCSA)结构图。
图4是 第一级24-8流水线进位保存加法器(PCSA)压缩树。
图5是 第二级9-3流水线进位保存加法器(PCSA)压缩树。
图6是 部分积反馈电路结构图。
图7是 两级压缩树种的操作数高低部分流水线调度图。
图8是 四模乘器扩展结构图。
图9 是四模乘器模乘任务划分图。
具体实施方式
下面结合附图和实施例对本发明进一步详细阐述。
本发明的目的在于提供一种改进的商流水Montgomery模乘算法及其高性能可扩展的电路,有助于解决当前云计算、移动无线接入等技术领域面临的挑战。
本发明基于原始的商流水Montgomery模乘算法进行改进,提出了一种可以减小Montgomery域数据位宽的改进的算法。原始算法说明书附录(附录3)所示,该算法的符号定义如附录1所示。可以看出其Montgomery域数据位宽需满足kn≥ω+2k+2。改进后的算法如说明书附录(附录2、附录4)所示,可以看出其Montgomery域数据位宽只需满足kn≥ω+k+3。与之前的要求相比,可以发现其位宽可以减少k-1比特。由于高性能模乘设计几乎都是采用高基的实现方法,而高基实现方法中,k值较大,通常为几十或几百的量级。所以,k-1比特的减少对于硬件设计来说是一个比较大的改进,可以较大的减少***中运算单元与寄存器堆等的数据位宽,从而提高性能。
在改进的算法的基础上,本发明还提出了一种高性能可扩展的模乘器电路结构。其结构图如图1所示。该结构主要由部分积产生电路、第一级PCSA压缩树、第二级PCSA压缩树、部分积反馈电路、模乘器扩展相关电路与时序控制器构成。
其中,部分积产生电路可以在时序控制器的控制下产生操作数高半部分的k个部分积或者低半部分的k个部分积。该电路由k个单个部分积产生电路构成,如图2所示。其中单个部分积产生电路主要由一个用于选择M1与M2复用器(MUX)与一个用于选择0、M1与M2复用器输出、B、B+M2的4输入复用器构成。
其中,第一级和第二级压缩树采用PCSA的方法实现,分别如4、图5所示。在第二级压缩过程中,先对寄存器输出的6个部分积进行压缩再把反馈的部分积与其他部分积一起送入9-3压缩树进行压缩,这样可以减少反馈部分积在压缩过程中的延时,为部分积反馈电路腾出时间进行计算,从而实现较好的时序性能。PCSA将操作数低半部分压缩的进位信号通过一个1比特寄存器进行暂存,到下一个时钟周期拼接到操作数高半部分压缩结果的最低比特位置。其电路结构如图3所示。
其中,部分积反馈电路将用于模乘扩展的S信号引入,并在时序控制器的控制下对S2的值进行拼接。然后通过S使能信号来对S2的值与拼接后的值进行选择。然后三个反馈信号在时序控制器的控制下先后进行移位操作、高低部分选择与输出使能操作。详见图6。
为了演示该乘法器的可扩展性,这里给出了一个用四个模乘器联合起来完成一个长位宽的模乘的连接方法,如图8所示。其中,长操作数A被分为4段,分别我为A[3]、A[2]、A[1]、A[0]。其他操作数类似,其任务划分如图9所示。其中用一个用于Q值广播的开关网络,是为了实现可配置性。应用于选择把某个模乘器的Q值最为Q值得输入。S值传递通过一个环来实现,在图中所示的操作数的配置下,模乘器3的S输入处于非使能状态,所以图中采用虚线来表示。
对基于该专利方法的288比特模乘器在TSMC 65nm LP该工艺下进行了综合,其工作频率可以达到约1GHz,对于一个288比特的模乘只需要约30个周期(32ns)即可完成,对于一个1056比特的摸乘,在四个模乘器联合实现下只需要约100周期(100ns)即可完成。可见其非常低的延时和较高的性能。
附录
附录1原始算法中的符号意义
附录2 改进算法中的符号意义
附录3 原始商流水Montgomery模乘算法
附录4改进的商流水Montgomery模乘算法
。
Claims (2)
1.一种基于改进的Montgomery模乘算法的可扩展模乘器电路,其特征在于:
其包括部分积产生电路、第一级PCSA压缩树、第二级PCSA压缩树、部分积反馈电路、模乘器扩展相关电路和时序控制器;其中:
所述部分积产生电路由若干个单个部分积产生电路构成,其在时序控制器的控制信号下,根据寄存器B、寄存器B+M2、寄存器M2、寄存器M1、以及寄存器A和寄存器Q的输出,产生相应的操作数高半部分或者低半部分的的部分积并送给第一级PCSA压缩树的输入端;
所述第一级PCSA压缩树在时序控制器产生的控制信号控制下对部分积产生电路所产生的部分积进行压缩,并将压缩后的结果送到流水线寄存器进行寄存;
所述第二级PCSA压缩树在时序控制器产生的控制信号控制下,对寄存后的部分积、部分积反馈电路产生的部分积、以及加法器产生的进位信号进行压缩,并把压缩后的结果送到相应的结果寄存器进行保存;
所述部分积反馈电路根据结果寄存器以及扩展信号中的 S值输入在时序控制器的控制下产生用于反馈的部分积,并把其送到第二级PCSA压缩树的输入端;
所述模乘器扩展相关电路包括引出的数据线接口、部分积反馈电路中的部分逻辑、以及加法器和复用器;用于扩展的S值输入直接接入到部分积反馈电路模块,经过寄存器寄存后送给复用器;加法器对结果寄存器中的低部分比特进行累加实现Q值的计算,其进位值送给第二级PCSA压缩树,其输出直接引出作为用于扩展的S值输出信号;加法器的输出经过寄存器Q’寄存后作为用于扩展的Q值输出;外部输入的用于扩展的Q值和寄存器Q’的值通过复用器进行选择并送给寄存器Q进行寄存;作为部分积产生电路的输入信号;
所述第一级和第二级PCSA压缩树由若干个流水线进位保存加法器经过一定的树状连接构成;流水线进位保存加法器包括[N/2]+1比特的进位保存加法器和一个进位寄存器;[N/2]+1比特的进位保存加法器的输入为三个操作数的高半部分或者低半部分数据;[N/2]+1比特的进位保存加法器的进位输出CH/CL的最高位,CMSB经过一个一比特的寄存器进行寄存;寄存后的CMSB拼接到CH/CL信号的最低位用作PCSA的CH/CL输出,对于进位保存加法器的SH/SL的输出直接作为PCSA的CH/CL输出。
2.根据权利要求1所述的基于改进的Montgomery模乘算法的可扩展模乘器电路,其特征在于,所述改进的Montgomery模乘算法基于原始商流水Montgomery模乘算法增加了一个用于运算的参数,该参数通过下面方法获得:
新增的参数用于
其中,M为模乘中的模数,k为模乘的基;改进算法中的与原始算法中的相同;Sn+1与Sn+2为迭代运算中的运算结果,Qn为第n次迭代的Q值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410145671.7A CN103914277B (zh) | 2014-04-14 | 2014-04-14 | 一种基于改进的Montgomery模乘算法的可扩展模乘器电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410145671.7A CN103914277B (zh) | 2014-04-14 | 2014-04-14 | 一种基于改进的Montgomery模乘算法的可扩展模乘器电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103914277A CN103914277A (zh) | 2014-07-09 |
CN103914277B true CN103914277B (zh) | 2017-02-15 |
Family
ID=51039986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410145671.7A Active CN103914277B (zh) | 2014-04-14 | 2014-04-14 | 一种基于改进的Montgomery模乘算法的可扩展模乘器电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103914277B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107665109B (zh) * | 2016-07-28 | 2020-04-14 | 中国科学院声学研究所 | 一种适用于嵌入式***的Montgomery模乘计算方法 |
CN107688854B (zh) * | 2016-08-05 | 2021-10-19 | 中科寒武纪科技股份有限公司 | 一种能支持不同位宽运算数据的运算单元、方法及装置 |
TWI802095B (zh) | 2021-11-22 | 2023-05-11 | 財團法人工業技術研究院 | 模數乘法電路與對應之計算模數乘法之方法 |
-
2014
- 2014-04-14 CN CN201410145671.7A patent/CN103914277B/zh active Active
Non-Patent Citations (3)
Title |
---|
An 800Mhz Cryptographic Pairing Processor in 65nm CMOS;Yang Li等;《Solid State Circuits Conference (A-SSCC),2012 IEEE Asian》;20121114;第218页右栏,第219页,图3-4 * |
基于流水线的Montgomery模乘算法硬件实现;梁鹏飞;《中国优秀硕士学位论文全文数据库 信息科技辑》;20111215(第12期);第20-32页 * |
长位宽模乘器设计;闫银宝;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090815(第8期);第14-30页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103914277A (zh) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cao et al. | A residue-to-binary converter for a new five-moduli set | |
CN103914277B (zh) | 一种基于改进的Montgomery模乘算法的可扩展模乘器电路 | |
Rouholamini et al. | A new design for 7: 2 compressors | |
CN104536913A (zh) | 一种基于多块ram的大数运算电路及数据转移方法 | |
CN102184161A (zh) | 基于余数***的矩阵求逆装置及方法 | |
Hossain et al. | Efficient fpga implementation of modular arithmetic for elliptic curve cryptography | |
CN104090737A (zh) | 一种改进型部分并行架构乘法器及其处理方法 | |
CN104102470A (zh) | 可配置可扩展的流水线乘累加器 | |
US9992053B1 (en) | Multi-channel, multi-lane encryption circuitry and methods | |
CN103853524A (zh) | 一种乘法器装置和实现乘法运算的方法 | |
MuthuKumar et al. | High speed hardware implementation of an elliptic curve cryptography (ECC) co-processor | |
CN103078729B (zh) | 基于fpga的双精度混沌信号发生器 | |
CN102117195B (zh) | 大数模乘器电路 | |
CN107092462B (zh) | 一种基于fpga的64位异步乘法器 | |
CN109271137A (zh) | 一种基于公钥加密算法的模乘装置及协处理器 | |
CN103955585B (zh) | 一种适用于低功耗容错电路的fir滤波器结构 | |
CN104007953A (zh) | 一种基于四操作数Montgomery模乘算法的模乘器电路结构 | |
CN202395792U (zh) | 基于fpga的双精度混沌信号发生器 | |
CN113890548B (zh) | 用于信号上变频的装置及现场可编程门阵列 | |
Kim et al. | CSD-based programmable multiplier design for predetermined coefficient groups | |
Khurshid et al. | A hardware intensive approach for efficient implementation of numerical integration for FPGA platforms | |
CN203119915U (zh) | 一种基于硬件加密数据的装置 | |
CN113253972A (zh) | 一种lac中稀疏多项式乘法加速器的fpga实现方法 | |
Zhao et al. | Exploring the speed limit of SM2 | |
Patronik et al. | Design of an RNS reverse converter for a new five-moduli special set |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |