CN109144472A - 一种二元扩域椭圆曲线的标量乘法及其实现电路 - Google Patents
一种二元扩域椭圆曲线的标量乘法及其实现电路 Download PDFInfo
- Publication number
- CN109144472A CN109144472A CN201810783678.XA CN201810783678A CN109144472A CN 109144472 A CN109144472 A CN 109144472A CN 201810783678 A CN201810783678 A CN 201810783678A CN 109144472 A CN109144472 A CN 109144472A
- Authority
- CN
- China
- Prior art keywords
- register
- mould
- squarer
- output
- value
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种二元扩域椭圆曲线的标量乘法及其实现电路,属于公钥中椭圆曲线密码的技术领域。标量乘法根据椭圆曲线上基点的投影坐标以及椭圆参数初始化数据,对初始化后数据重组后进行包含两级流水的主循环操作求解椭圆曲线上的输出点坐标,再对输出点坐标进行仿射变换得到标量乘法结果。该标量乘法通过包含三路并行的乘法器、两个模加器、三个模平方器的电路实现,最大程度地利用标量乘法算法中的并行度,达到最快的计算速度,同时提升了乘法器的资源利用率。
Description
技术领域
本发明涉及公钥中椭圆曲线密码的技术领域,具体的涉及一种二元扩域椭圆曲线的标量乘法及其实现电路。
背景技术
公钥密码学在信息安全领域中的数字签名、身份鉴别、完整性鉴别、密钥交换等方面起着关键性的作用。基于大数分解问题的RSA算法越来越容易受到攻击,而基于椭圆离散对数问题的ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学),能提供更高的安全性,同时也具备计算资源上的优势。在相同安全级别下,ECC算法密钥长度小于RSA算法,相比于RSA具有计算速度更快、存储量更少、通信带宽要求更低的优点,更适合应用在计算资源受限的设备上。ECC算法具有层级结构,椭圆密码系统的实现速度高度依赖于标量乘法的高性能实现。
随着电子商务的不断发展,大量的安全协议需要更加高速的处理,因此对公钥密码系统的速度提出了更高的要求。椭圆曲线密码系统中,标量乘法的实现存在一定的数据依赖关系,因此提升其并行度受到一定的限制。在大量重复的迭代过程中,计算速度缓慢,资源利用率低下。
为解决上述问题,将分析标量乘法运算中的数据依赖关系,通过重组数据,提升数据并行度,从而降低循环迭代中所需要的计算时间,同时提升资源利用率。
发明内容
本发明的发明目的是针对上述背景技术的不足,提供了一种二元扩域椭圆曲线的标量乘法及其实现电路,通过对标量乘法中运算数据进行重组以提升数据并行度,实现了高性能的标量乘法,解决了椭圆曲线密码系统计算速度缓慢且资源利用率低下的技术问题。
本发明为实现上述发明目的采用如下技术方案:
一种用于实现椭圆曲线密码系统中标量乘法架构,包括运算阵列和向运算阵列传送控制信号的控制单元,运算阵列包含:第一至第三模乘器、第一和第二模加器、第一至第三模平方器、多个选择器,以及,存储椭圆曲线上基点坐标(x,1)的寄存器Rx_in和RZ1,存储椭圆参数b的存储器Rb,存储基点投影坐标(X1,Z1)、(X2,Z2)的存储器存储中间计算结果的存储器RX、RZ,。
第一模乘器通过两个选择器输入乘数与被乘数,将模乘计算结果输出至下一个选择器中供第一模加器使用或由模乘计算结果存储在寄存器中。
第二模乘器通过一个选择器输入乘数并与读取的被乘数进行模乘计算,将模乘计算结果输出至下一个选择器中供第一模加器使用或存储在寄存器中。
第三模乘器通过一个选择器输入乘数并与读取的被乘数进行模乘计算,将模乘计算结果输出至第二模加器使用或存储在寄存器中。
第一模加器通过两个选择器输入两个加法操作数,将模加计算结果输出至下一个选择器中供模平方器(第一或第三模平方器)使用或存储在寄存器(或)中。
第二模加器对第三模乘器输出的模乘结果以及从寄存器直接读取的数据进行模加操作,将模加计算结果输出至下一个选择器中供第一模平方器使用或存储在寄存器中。
第一模平方器通过一个选择器输入基点横坐标x或与任意模加器输出的模加结果作为平方操作数,将模平方计算结果输出至下一个选择器中供第二模平方器使用或存储在寄存器(或或RX)中。
第二模平方器通过一个选择器输入第一模平方器输出的模平方计算结果或从寄存器直接读取的数据作为平方操作数,将模平方计算结果输出至与第一模加器相连的选择器中供第一模加器使用或存储在寄存器(RX或RZ)中。
第三模平方器通过一个选择器输入第一模加器输出的模加结果或从存储器直接读取的数据作为平方操作数,将模平方计算结果存储在寄存器(RX或RZ)中。
控制单元包含一个寄存器Rk与控制逻辑单元,寄存器Rk用来存储标量k,控制逻辑单元用于调度标量乘法的标量和椭圆参数的输入以及传送标量乘法实现过程中多种有效状态下各个选择器的控制信号。
该标量乘法架构执行1次标量乘法包含三个步骤:初始化、主循环、坐标转换。
初始化:需要1个周期来完成,根据椭圆曲线上基点(x,1)的投影坐标(X1,Z1)、(X2,Z2)以及椭圆参数b初始化寄存器Rx_in、Rb、以及存储中间计算结果的存储器RX、RZ,Rx_in=x,Rb=b, RX=(x4+b)2,RZ=x4;
包含多轮迭代的主循环:,每一轮迭代仅需要2个周期来完成,每一轮迭代均包含两级流水操作,
第一级流水操作,计算以更新寄存器的值,计算以更新寄存器的值,计算以更新寄存器的值,计算RX·RZ以更新寄存器的值,计算以更新寄存器RX的值,计算以更新寄存器RZ的值,
第二级流水操作,计算以更新寄存器的值,计算RX+Rb·RZ以更新寄存器的值,在标量下一位为1时,分别计算(RX+Rb·RZ)2、以更新寄存器RX、寄存器RZ的值,重新执行第一级流水操作,在标量的下一位为0时,分别计算以更新寄存器RX、寄存器RZ的值,以寄存器的存储值为椭圆曲线上的输出点坐标。
坐标转换:包含1次求逆运算、10次模乘、1次模平方、6次模加,对椭圆曲线上的输出点坐标进行仿射变换得到标量乘法结果,其中,1次求逆运算通过模乘器及三个模平方单元来实现,加速模逆的计算速度,10次乘法、1次模平方、6次模加将在5个周期中完成。
本发明采用上述技术方案,具有以下有益效果:分析标量乘法运算中的数据依赖关系,在初始化阶段对数据进行重组,采用三路模乘器并行的架构实现主循环数据的最大并行度处理,主循环周期数进位2m-2(m为标量位数)模乘器的硬件利用率达到100%,,进而加快了二元扩域椭圆曲线的标量乘法的计算速度。
附图说明
图1为实现高性能标量乘法架构的电路图;
图2为实现高性能标量乘法算法的伪码;
图3为实现本发明实施例所述的用于椭圆曲线密码系统中标量乘法的主循环数据流图。
图中标号说明:MUL1、MUL2、MUL3为模乘器,ADD1、ADD2为模加器,SQR1、SQR2、SQR3为模平方器,MUX为选择器,M1、M2、M3为模乘器,A1、A2为模加器,S1、S2、S3为模平方器。
具体实施方式
下面结合附图对发明的技术方案进行详细说明。
如图1所示,用于实现高性能的模乘器架构包括运算阵列和向运算阵列传送控制信号的控制单元。控制单元用于调度标量乘法中标量和椭圆参数的输入及传送标量乘法实现过程中多种有效状态下各个选择器的控制信号。用于域运算中数据的模运算的运算阵列包括模乘器MUL1(即权利要求书中的第一模乘器)、模乘器MUL2(即权利要求书中的第二模乘器)、模乘器MUL3(即权利要求书中的第三模乘器)、模加器ADD1(即权利要求书中的第一模加器)、模加器ADD2(即权利要求书中的第二模加器)、模平方器SQR1(即权利要求书中的第一模平方器)、模平方器SQR 2(即权利要求书中的第二模平方器)、模平方器SQR 3(即权利要求书中的第三模平方器),及多个选择器。
如图2所示,用于实现高性能标量乘法算法,包括三个步骤:初始化,主循环,坐标转换。初始化部分,将初始化椭圆曲线上基点(x,1)的投影坐标(X1,Z1)、(X2,Z2)根据椭圆曲线上基点(x,1)的投影坐标(X1,Z1)、(X2,Z2)以及椭圆参数b初始化寄存器Rx_in、Rb、以及存储中间计算结果的存储器RX、RZ为主循环做准备;主循环包含m-1次循环迭代,同时执行点加、倍点运算的每轮迭代共包括6次乘法,通过两级流水操作在两个周期内完成,每个周期中进行3个乘法。这样使得乘法的资源利用率达到最大值,同时提高了主循环的计算速度。坐标转换中,将除逆计算外的10个乘法安排在5个周期内完成。
标量乘法的初始化步骤和主循环步骤的数据流如图3所示。
在初始化步骤,寄存器Rx_in和的初始化值为输入数据x;寄存器的初始化值为1;寄存器Rb的初始化值为b;输入数据x输入至模平方器S1中,模平方器S1的结果输入至模平方器S2中,模平方器S2的结果和输入数据b输入至模加器A1中,寄存器的初始化值为模加器A1的结果;寄存器的初始化值为模平方器S1的结果;寄存器RZ的初始化值为模平方器S2的结果;模加器A1的结果输入至模平方器S3中,寄存器RX的初始化值为模平方器S3的结果,模平方器S3在初始化时对A1输出的x4+b进行模平方运算。
在流水级1中,寄存器和的值输入至模乘器M1中,模乘器M1的结果保存至寄存器寄存器和的值输入至模乘器M2中,模乘器M2的结果保存至寄存器模乘器M1和M2的结果输入至模加器A1中,模加器A1的结果输入至模平方器S1中,模平方器S1的结果保存至寄存器寄存器RX和RZ的值输入至模乘器M3中,模乘器M3的结果保存至寄存器寄存器RX的值输入至模平方器S2中,模平方器S2的结果保存至寄存器RX;寄存器RZ的值输入至模平方器S3中,模平方器S3的结果保存至寄存器RZ。
在流水级2中,寄存器Rx_in和的值输入至模乘器M1中,寄存器和的值输入至模乘器M2中,模乘器M1和M2的结果输入至模加器A1中,模加器A1的结果保存至寄存器寄存器Rb和寄存器RZ的值输入至模乘器M3中,模乘器M3的结果和寄存器RX的值输入至模加器A2中,模加器A2的结果保存至寄存器当ki-1=1(ki-1为输入标量k的下一位)时,模加器A2的结果输入至模平方器S1中,模平方器S1的结果保存至寄存器RX,寄存器的值输入至模平方器S2中,模平方器S2的结果保存至寄存器RZ;当ki-1=0时,模加器A1的结果输入至模平方器S1中,模平方器S1的结果保存至寄存器RX,寄存器的值输入至模平方器S2中,模平方器S2的结果保存至寄存器RZ。
观察可知,在主循环中,模乘器M1、M2、M3在每个流水级中均有数据输入输出,资源利用率达到100%;模平方器S1和S2在每个流水级中均有数据输入输出,模平方器S3在流水级1中存在数据输入输出;模加器A1在每个流水级中均有数据输入输出,模加器A2仅在流水级2中有数据输入输出。
如此主循环迭代m-1次,即本发明中的标量乘法算法的主循环操作需要的周期数为2m-2,计算周期比传统算法减少30%以上。
最后应说明的是:以上仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例进行修改或者对其中部分技术特征进行等同替换。凡在本发明宗旨下所作的任何修改、等同替换、改进均应包含在本发明的保护范围之内。
Claims (2)
1.一种二元扩域椭圆曲线的标量乘法,其特征在于,
根据椭圆曲线上基点(x,1)的投影坐标(X1,Z1)、(X2,Z2)以及椭圆参数b初始化寄存器Rx_in、Rb、以及存储中间计算结果的存储器RX、RZ,Rx_in=x,Rb=b,RX=(x4+b)2,RZ=x4;
对基点的仿射变换坐标进行包含两级流水操作的主循环操作得到椭圆曲线上的输出点坐标:
第一级流水操作,计算以更新寄存器的值,计算以更新寄存器的值,计算以更新寄存器的值,计算RX·RZ以更新寄存器的值,计算以更新寄存器RX的值,计算以更新寄存器RZ的值,
第二级流水操作,计算以更新寄存器的值,计算RX+Rb·RZ以更新寄存器的值,在标量下一位为1时,分别计算(RX+Rb·RZ)2、以更新寄存器RX、寄存器RZ的值,重新执行第一级流水操作,在标量的下一位为0时,分别计算 以更新寄存器RX、寄存器RZ的值,以寄存器的存储值为椭圆曲线上的输出点坐标;
对椭圆曲线上的输出点坐标进行仿射变换得到标量乘法结果。
2.权利要求1所述二元扩域椭圆曲线的标量乘法的实现电路,其特征在于,包括:
第一模乘器,其一输入端经选择器与寄存器Rx_in或寄存器连接,其另一输入端经选择器与寄存器或寄存器连接,
第二模乘器,其一输入端经选择器与寄存器或寄存器连接,其另一输入端与寄存器连接,
第三模乘器,其一输入端经选择器寄存器RX或寄存器Rb连接,其另一输入端与寄存器RZ连接,
第一模加器,其一输入端经选择器与第一模乘器的输出端连接或输入椭圆参数b,其另一输入端经选择器与第二模乘器输出端或第二模平方器的输出端连接,
第二模加器,其一输入端接第三模乘器的输出端,其另一输入端接寄存器RX,
第一模平方器,其输入端经选择器输入基点横坐标x或与第一模加器的输出端或与第二模加器的输出端连接,
第二模平方器,其输入端经选择器与第一模平方器的输出端或寄存器RX或寄存器或寄存器连接,
第三模平方器,其输入端经选择器与第一模加器的输出端或寄存器RZ连接,及,
控制单元,用于存储标量并向各选择器发送控制信号以完成两级流水操作,通过控制与寄存器连接的选择器选取基点横坐标x或第一模乘器输出的或第一模加器输出的更新寄存器的存储值,通过控制与寄存器连接的选择器选取基点纵坐标1或第一模平方器输出的更新寄存器的存储值,通过控制与寄存器连接的选择器选取第二模乘器输出的或第二模加器输出的RX+Rb·RZ或第一模加器输出的x4+b更新寄存器的存储值,通过控制与寄存器连接的选择器选取第三模乘器输出的RX·RZ或第一模平方器输出的x2更新寄存器的存储值,通过控制与寄存器RX连接的选择器选取第三模平方器输出的(x4+b)2或第二模平方器输出的或第一模平方器输出的(RX+Rb·RZ)2或第一模平方器输出的更新寄存器RX的存储值,通过控制与寄存器RZ连接的选择器选取第二模平方器输出的x4或第三模平方器输出的或第二模平方器输出的或第二模平方器输出的更新寄存器RZ的存储值,在标量下一位为1时控制第一模平方器输出计算(RX+Rb·RZ)2,在标量下一位为1时控制第二模平方器计算在标量的下一位为0时控制第一模平方器输出计算在标量下一位为1时控制第二模平方器计算
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810783678.XA CN109144472B (zh) | 2018-07-17 | 2018-07-17 | 一种二元扩域椭圆曲线的标量乘法及其实现电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810783678.XA CN109144472B (zh) | 2018-07-17 | 2018-07-17 | 一种二元扩域椭圆曲线的标量乘法及其实现电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144472A true CN109144472A (zh) | 2019-01-04 |
CN109144472B CN109144472B (zh) | 2023-02-28 |
Family
ID=64800803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810783678.XA Active CN109144472B (zh) | 2018-07-17 | 2018-07-17 | 一种二元扩域椭圆曲线的标量乘法及其实现电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144472B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633574A (zh) * | 2019-09-17 | 2019-12-31 | 北京智芯微电子科技有限公司 | 用于电力系统安全传输的ecc加密模块 |
CN115062565A (zh) * | 2022-06-22 | 2022-09-16 | 北京理工大学 | 一种低时延椭圆曲线点乘电路设计方法 |
CN116820394A (zh) * | 2023-08-29 | 2023-09-29 | 无锡沐创集成电路设计有限公司 | 一种面向椭圆曲线加密算法的标量乘电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547089A (zh) * | 2008-03-28 | 2009-09-30 | 上海爱信诺航芯电子科技有限公司 | 集成电路中素数域椭圆曲线密码算法的实现方法 |
CN101630244A (zh) * | 2009-07-28 | 2010-01-20 | 哈尔滨工业大学深圳研究生院 | 一种流水线型椭圆曲线双标量乘法系统及方法 |
US20100322422A1 (en) * | 2007-05-02 | 2010-12-23 | King Fahd University Of Petroleum And Minerals | Method for elliptic curve scalar multiplication using parameterized projective coordinates |
CN104184578A (zh) * | 2014-07-30 | 2014-12-03 | 山东大学 | 一种基于fpga的椭圆曲线标量乘法加速电路及其算法 |
-
2018
- 2018-07-17 CN CN201810783678.XA patent/CN109144472B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100322422A1 (en) * | 2007-05-02 | 2010-12-23 | King Fahd University Of Petroleum And Minerals | Method for elliptic curve scalar multiplication using parameterized projective coordinates |
CN101547089A (zh) * | 2008-03-28 | 2009-09-30 | 上海爱信诺航芯电子科技有限公司 | 集成电路中素数域椭圆曲线密码算法的实现方法 |
CN101630244A (zh) * | 2009-07-28 | 2010-01-20 | 哈尔滨工业大学深圳研究生院 | 一种流水线型椭圆曲线双标量乘法系统及方法 |
CN104184578A (zh) * | 2014-07-30 | 2014-12-03 | 山东大学 | 一种基于fpga的椭圆曲线标量乘法加速电路及其算法 |
Non-Patent Citations (1)
Title |
---|
但永平等: "并行设计的高性能随机椭圆曲线加密协处理器", 《计算机工程与科学》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633574A (zh) * | 2019-09-17 | 2019-12-31 | 北京智芯微电子科技有限公司 | 用于电力系统安全传输的ecc加密模块 |
CN110633574B (zh) * | 2019-09-17 | 2021-06-29 | 北京智芯微电子科技有限公司 | 用于电力系统安全传输的椭圆曲线密码学ecc加密模块 |
CN115062565A (zh) * | 2022-06-22 | 2022-09-16 | 北京理工大学 | 一种低时延椭圆曲线点乘电路设计方法 |
CN115062565B (zh) * | 2022-06-22 | 2024-01-05 | 北京理工大学 | 一种低时延椭圆曲线点乘电路设计方法 |
CN116820394A (zh) * | 2023-08-29 | 2023-09-29 | 无锡沐创集成电路设计有限公司 | 一种面向椭圆曲线加密算法的标量乘电路 |
CN116820394B (zh) * | 2023-08-29 | 2023-11-03 | 无锡沐创集成电路设计有限公司 | 一种面向椭圆曲线加密算法的标量乘电路 |
Also Published As
Publication number | Publication date |
---|---|
CN109144472B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Roy et al. | FPGA-based high-performance parallel architecture for homomorphic computing on encrypted data | |
CN100470464C (zh) | 基于改进的蒙哥马利算法的模乘器 | |
CN108009126B (zh) | 一种计算方法及相关产品 | |
CN106685663B (zh) | 一种环域上误差学习问题的加密方法及电路 | |
CN109144472A (zh) | 一种二元扩域椭圆曲线的标量乘法及其实现电路 | |
CN105912501B (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 | |
CN106888088B (zh) | 椭圆曲线密码快速实现方法及其装置 | |
CN114297571A (zh) | 一种适用于格密码算法的多项式乘法硬件实现系统 | |
CN113078996B (zh) | Sm4密码算法的fpga优化实现方法、系统及应用 | |
CN111966324A (zh) | 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质 | |
CN113628094A (zh) | 一种基于gpu的高吞吐量sm2数字签名计算系统及方法 | |
CN101021777B (zh) | 基于除数(2n-1)的有效求模操作运算 | |
CN106716344A (zh) | 用于密码运算的指数分裂 | |
CN105790939A (zh) | 一种vlsi实现加速器的素数域椭圆曲线密码系统 | |
Koppermann et al. | 18 seconds to key exchange: Limitations of supersingular isogeny Diffie-Hellman on embedded devices | |
CN101630244A (zh) | 一种流水线型椭圆曲线双标量乘法系统及方法 | |
CN102117195B (zh) | 大数模乘器电路 | |
Liu et al. | Efficient digit-serial KA-based multiplier over binary extension fields using block recombination approach | |
CN111314080B (zh) | 一种基于sm9算法的协同签名方法、装置、介质 | |
CN117155572A (zh) | 一种基于gpu并行实现密码技术中大整数乘法的方法 | |
Bardis | Secure, green implementation of modular arithmetic operations for IoT and cloud applications | |
CN103645883A (zh) | 基于fpga的高基模乘器 | |
CN110417545A (zh) | 有限域离散对数量子求解线路优化构造方法 | |
CN104123431A (zh) | 一种元素的模逆计算方法及装置 | |
CN111079934A (zh) | 应用于环域上误差学习加密算法的数论变换单元和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |