CN109933304A - 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 - Google Patents
适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 Download PDFInfo
- Publication number
- CN109933304A CN109933304A CN201910214678.2A CN201910214678A CN109933304A CN 109933304 A CN109933304 A CN 109933304A CN 201910214678 A CN201910214678 A CN 201910214678A CN 109933304 A CN109933304 A CN 109933304A
- Authority
- CN
- China
- Prior art keywords
- sm2p256v1
- close
- state
- algorithm
- quick
- 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
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公布了适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,通过信息安全芯片中的蒙哥马利乘模器来实现,在蒙哥马利乘模器进行初始化操作后完成大数乘法运算然后进行一次循环累加计算最后进行一次无符号大数减法运算得出结果,大量减少蒙哥马利模乘中耗时的乘法运算,从而提高信息安全芯片在运算sm2p256v1曲线参数时蒙哥马利模乘器的运算效率,减少相同运算过程的功耗。
Description
技术领域
本发明涉及信息安全领域用的模乘算法,尤其涉及适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法。
背景技术
在信息安全芯片进行国密运算时,蒙哥马利模乘器是调用频率最高最耗时的模块,虽然通用算法可以适配任何国密曲线参数,但是针对使用频率占绝对优势的国密推荐曲线sm2p256v1,现有的信息安全芯片使用嵌套循环的计算方式,提高了时间复杂度,使得系统性能较差,同时芯片的功耗较大。
发明内容
本发明的目的在于,大量减少信息安全芯片中蒙哥马利模乘器耗时的乘法运算,从而提高在国密sm2p256v1曲线参数下蒙哥马利模乘器的运算效率,减少相同运算过程的功耗。
本发明的发明目的是通过以下技术方案实现的:适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,通过信息安全芯片中的蒙哥马利乘模器来实现,经过优化运算方法,从而降低芯片的运算功耗,其特征在于,蒙哥马利乘模器运算包括以下步骤:
S1:进行初始化操作;
S2:完成大数乘法运算;
S3:进行一次循环累加计算;
S4:进行一次无符号大数减法运算。
进一步的,所述的初始化操作具体为:首先初始化Z=(Z16,...,Z0)=0,Z是数据位宽为544bit的大数,初始化进位寄存器CARRY=0,CARRY的数据位宽为32bit.
进一步的,所述的大数乘法运算为:Z=(Z16,...,Z0)=A×B,Z=(Z16,...,Z0)为循环累加所需的中间变量,A和B为两个n-bit输入,均为位宽为256bit大整数。
进一步的,所述的循环累加计算为:在每一轮循环累加前,初始化进位寄存器C为0,其中C的数据位宽为32bit,并分别通过公式T=Zi、X1=T<<32-T和X2=X1-T计算X1和X2,其中X1和X2为临时变量,数据位宽均为64bit,然后按照以下步骤依次计算出(Zi+8,...,Zi+0):
S41:(C,Zi+0)=Zi+0+X1+C;
S42:(C,Zi+1)=Zi+1+X1+C;
S43:(C,Zi+2)=Zi+2+0+C;
S44:(C,Zi+3)=Zi+3+X1+C;
S45:(C,Zi+4)=Zi+4+X1+C;
S46:(C,Zi+5)=Zi+5+X1+C;
S47:(C,Zi+6)=Zi+6+X1+C;
S48:(C,Zi+7)=Zi+7+X2+C;
S49:(CARRY,Zi+8)=Zi+8+C+CAARY;
如S41中(C,Zi+0)=Zi+0+X1+C,其中其中Zi、Zi+0的数据位宽均为32bit,C的数据位宽为64bit,步骤S42~S49以此类推,Zi为32bit中间变量。
进一步的,所述的无符号的大数运算具体为:循环完成8次上述运算过程后,计算Z16=CARRY,然后判断如果(Z16,...,Z8)≥M,则R=(Z16,...,Z8)-M,否则R=(Z15,...,Z8),最后输出R,其中M是n-bit模数。
有益效果:本发明将信息安全芯片中原有的蒙哥马利模乘器中的嵌套循环改进为一次循环累加的计算,从而大量减少蒙哥马利模乘器中耗时的乘法运算,并且提高了信息安全芯片在运算国密sm2p256v1曲线参数时蒙哥马利模乘器的运算效率,减少相同运算过程的功耗,在降低芯片运算功耗的基础上可以相应的简化信息安全芯片的内部结构,从而降低芯片的生产制造成本。基于sm2p256v1曲线参数的蒙哥马利模乘方法中的M×T运算,仅需要1次移位操作,2次减法运算,以及6次进位累加操作,该方法可以在椭圆曲线运算的软件程序中实施,也可以在可编程逻辑器件中实施,以SM2签名为例,使用该方法每次签名可以减少20万次左右的乘法运算。
具体实施方式
对本发明做进一步的描述,但本发明的保护范围不局限于以下所述。
本发明的发明目的是通过以下技术方案实现的:适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,通过信息安全芯片中的蒙哥马利乘模器来实现,经过优化运算方法,从而降低芯片的运算功耗,其特征在于,蒙哥马利乘模器运算包括以下步骤:
S1:进行初始化操作;
S2:完成大数乘法运算;
S3:进行一次循环累加计算;
S4:进行一次无符号大数减法运算。
进一步的,所述的初始化操作具体为:首先初始化Z=(Z16,...,Z0)=0,Z是数据位宽为544bit的大数,初始化进位寄存器CARRY=0,CARRY的数据位宽为32bit。
进一步的,所述的大数乘法运算为:Z=(Z16,...,Z0)=A×B,Z=(Z16,...,Z0)为循环累加所需的中间变量,A和B为两个n-bit输入,均为位宽为256bit大整数。
进一步的,所述的循环累加计算为:在每一轮循环累加前,初始化进位寄存器C为0,其中C的数据位宽为32bit,并分别通过公式T=Zi、X1=T<<32-T和X2=X1-T计算X1和X2,其中X1和X2为临时变量,数据位宽均为64bit,然后按照以下步骤依次计算出(Zi+8,...,Zi+0):
S41:(C,Zi+0)=Zi+0+X1+C;
S42:(C,Zi+1)=Zi+1+X1+C;
S43:(C,Zi+2)=Zi+2+0+C;
S44:(C,Zi+3)=Zi+3+X1+C;
S45:(C,Zi+4)=Zi+4+X1+C;
S46:(C,Zi+5)=Zi+5+X1+C;
S47:(C,Zi+6)=Zi+6+X1+C;
S48:(C,Zi+7)=Zi+7+X2+C;
S49:(CARRY,Zi+8)=Zi+8+C+CAARY;
如S41中(C,Zi+0)=Zi+0+X1+C,其中Zi、Zi+0的数据位宽均为32bit,X1和C的数据位宽均为64bit,步骤S42~S49以此类推,Zi为32bit中间变量。
进一步的,所述的无符号的大数运算具体为:循环完成8次上述运算过程后,计算Z16=CARRY,然后判断如果(Z16,...,Z8)≥M,则R=(Z16,...,Z8)-M,否则R=(Z15,...,Z8),最后输出R,其中M是n-bit模数。
进一步的,所述的国密sm2p256v1算法是国密推荐的素数域256位椭圆曲线参数,椭圆曲线方程为y2=x3+ax+b,曲线参数如下:
p=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFFFFFFFFFF
a=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFFFFFFFFFC
b=28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD414D940E93
n=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF40939D54123
Gx=32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589334C74C7
Gy=BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E52139F0A0
其中参数p为蒙哥马利模乘中需要固定使用参数。
进一步的,适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法的执行流程为:
输入:整数M=(MS-1,...,M0)r,A=(AS-1,...,A0)r,B=(BS-1,...,B0)r,其中0≤A,B≤M,r=2W,R=rs且gcd(M,r)=1,M'=M-1mod r;
输出:A×B×R-1mod M;
计算过程:
有益效果:本发明将信息安全芯片中原有的蒙哥马利模乘器中的嵌套循环改进为一次循环累加计算,从而大量减少蒙哥马利模乘器中耗时的乘法运算,并且提高了信息安全芯片在运算国密sm2p256v1曲线参数时蒙哥马利模乘器的运算效率,减少相同运算过程的功耗,在降低芯片运算功耗的基础上可以相应的简化信息安全芯片的内部结构,从而降低芯片的生产制造成本。基于sm2p256v1曲线参数的蒙哥马利模乘方法中的M×T运算,仅需要1次移位操作,2次减法运算,以及6次进位累加操作,该方法可以在椭圆曲线运算的软件程序中实施,也可以在可编程逻辑器件中实施,以SM2签名为例,使用该方法每次签名可以减少20万次左右的乘法运算。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (6)
1.适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,蒙哥马利乘模器运算包括以下步骤:
S1:进行初始化操作;
S2:完成大数乘法运算;
S3:进行一次循环累加计算;
S4:进行一次无符号大数减法运算。
2.如权利要求1所述的适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,所述的初始化操作具体为:首先初始化Z=(Z16,...,Z0)=0,Z是数据位宽为544bit的大数,初始化进位寄存器CARRY=0,CARRY的数据位宽为32bit。
3.如权利要求1所述的适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,所述的大数乘法运算为:Z=(Z16,...,Z0)=A×B,Z=(Z16,...,Z0)为循环累加所需的中间变量,A和B为两个n-bit输入,均为位宽为256bit大整数。
4.如权利要求1所述的适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,所述的循环累加计算为:在每一轮循环累加前,初始化进位寄存器C为0,其中C的数据位宽为32bit,并分别通过公式T=Zi、X1=T<<32-T和X2=X1-T计算X1和X2,其中X1和X2为临时变量,数据位宽均为64bit,然后按照以下步骤依次计算出(Zi+8,...,Zi+0):
S41:(C,Zi+0)=Zi+0+X1+C;
S42:(C,Zi+1)=Zi+1+X1+C;
S43:(C,Zi+2)=Zi+2+0+C;
S44:(C,Zi+3)=Zi+3+X1+C;
S45:(C,Zi+4)=Zi+4+X1+C;
S46:(C,Zi+5)=Zi+5+X1+C;
S47:(C,Zi+6)=Zi+6+X1+C;
S48:(C,Zi+7)=Zi+7+X2+C;
S49:(CARRY,Zi+8)=Zi+8+C+CAARY;
如S41中(C,Zi+0)=Zi+0+X1+C,其中Zi、Zi+0的数据位宽均为32bit,C的数据位宽为64bit,步骤S42~S49以此类推,Zi为32bit中间变量。
5.如权利要求1所述的适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,所述的无符号的大数运算具体为:循环完成8次上述运算过程后,计算Z16=CARRY,然后判断如果(Z16,...,Z8)≥M,则R=(Z16,...,Z8)-M,否则R=(Z15,...,Z8),最后输出R,其中M是n-bit模数。
6.如权利要求1所述的适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法,其特征在于,所述的国密sm2p256v1算法是国密推荐的素数域256位椭圆曲线参数,椭圆曲线方程为y2=x3+ax+b。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910214678.2A CN109933304B (zh) | 2019-03-20 | 2019-03-20 | 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910214678.2A CN109933304B (zh) | 2019-03-20 | 2019-03-20 | 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933304A true CN109933304A (zh) | 2019-06-25 |
CN109933304B CN109933304B (zh) | 2022-06-21 |
Family
ID=66987795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910214678.2A Active CN109933304B (zh) | 2019-03-20 | 2019-03-20 | 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933304B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338049A (zh) * | 2022-03-14 | 2022-04-12 | 山东区块链研究院 | 基于模归约的国密算法sm2的快速实现方法及系统 |
CN114745099A (zh) * | 2022-04-19 | 2022-07-12 | 麦田云网(杭州)信息技术有限公司 | 一种基于FPGA的poseidon哈希算法的优化方法 |
CN116610290A (zh) * | 2023-07-20 | 2023-08-18 | 南京邮电大学 | 蒙哥马利算法在有限域中实现四则运算的硬件实现方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001318785A (ja) * | 2000-05-10 | 2001-11-16 | Toshiba Corp | モンゴメリ乗算装置及び方法 |
CN1492316A (zh) * | 2003-09-09 | 2004-04-28 | 大唐微电子技术有限公司 | 一种蒙格玛丽模乘算法及其模乘、模幂运算电路 |
CN1648853A (zh) * | 2004-01-26 | 2005-08-03 | 富士通株式会社 | 多字乘法-累加电路和蒙哥马利模乘法-累加电路 |
CN101470598A (zh) * | 2007-12-28 | 2009-07-01 | 航天信息股份有限公司 | 提高大整数Montgomery模乘运算速度的方法 |
CN103942031A (zh) * | 2014-04-28 | 2014-07-23 | 山东华芯半导体有限公司 | 椭圆域曲线运算方法和椭圆域曲线运算器 |
CN104765586A (zh) * | 2015-04-15 | 2015-07-08 | 深圳国微技术有限公司 | 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 |
CN104793919A (zh) * | 2015-04-15 | 2015-07-22 | 深圳国微技术有限公司 | 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片 |
CN104951279A (zh) * | 2015-05-27 | 2015-09-30 | 四川卫士通信息安全平台技术有限公司 | 一种基于NEON引擎的向量化Montgomery模乘器的设计方法 |
CN106411498A (zh) * | 2016-12-23 | 2017-02-15 | 艾体威尔电子技术(北京)有限公司 | 一种实现国密算法的方法 |
CN109145616A (zh) * | 2018-08-01 | 2019-01-04 | 上海交通大学 | 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 |
-
2019
- 2019-03-20 CN CN201910214678.2A patent/CN109933304B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001318785A (ja) * | 2000-05-10 | 2001-11-16 | Toshiba Corp | モンゴメリ乗算装置及び方法 |
CN1492316A (zh) * | 2003-09-09 | 2004-04-28 | 大唐微电子技术有限公司 | 一种蒙格玛丽模乘算法及其模乘、模幂运算电路 |
CN1648853A (zh) * | 2004-01-26 | 2005-08-03 | 富士通株式会社 | 多字乘法-累加电路和蒙哥马利模乘法-累加电路 |
CN101470598A (zh) * | 2007-12-28 | 2009-07-01 | 航天信息股份有限公司 | 提高大整数Montgomery模乘运算速度的方法 |
CN103942031A (zh) * | 2014-04-28 | 2014-07-23 | 山东华芯半导体有限公司 | 椭圆域曲线运算方法和椭圆域曲线运算器 |
CN104765586A (zh) * | 2015-04-15 | 2015-07-08 | 深圳国微技术有限公司 | 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 |
CN104793919A (zh) * | 2015-04-15 | 2015-07-22 | 深圳国微技术有限公司 | 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片 |
CN104951279A (zh) * | 2015-05-27 | 2015-09-30 | 四川卫士通信息安全平台技术有限公司 | 一种基于NEON引擎的向量化Montgomery模乘器的设计方法 |
CN106411498A (zh) * | 2016-12-23 | 2017-02-15 | 艾体威尔电子技术(北京)有限公司 | 一种实现国密算法的方法 |
CN109145616A (zh) * | 2018-08-01 | 2019-01-04 | 上海交通大学 | 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 |
Non-Patent Citations (1)
Title |
---|
苏蛟: "面向RSA的密码芯片硬件体系结构的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338049A (zh) * | 2022-03-14 | 2022-04-12 | 山东区块链研究院 | 基于模归约的国密算法sm2的快速实现方法及系统 |
CN114745099A (zh) * | 2022-04-19 | 2022-07-12 | 麦田云网(杭州)信息技术有限公司 | 一种基于FPGA的poseidon哈希算法的优化方法 |
CN116610290A (zh) * | 2023-07-20 | 2023-08-18 | 南京邮电大学 | 蒙哥马利算法在有限域中实现四则运算的硬件实现方法 |
CN116610290B (zh) * | 2023-07-20 | 2023-09-22 | 南京邮电大学 | 蒙哥马利算法在有限域中实现四则运算的硬件实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109933304B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933304A (zh) | 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 | |
CN110351087A (zh) | 流水线型的蒙哥马利模乘运算方法及计算装置 | |
US20070140478A1 (en) | Encryption apparatus and encryption method | |
CN103761068B (zh) | 优化的蒙哥马利模乘硬件 | |
CN111966324B (zh) | 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质 | |
CN101216754B (zh) | 基于模乘运算的数据加解密处理的方法及装置 | |
CN113628094B (zh) | 一种基于gpu的高吞吐量sm2数字签名计算系统及方法 | |
CN102207847A (zh) | 基于蒙哥马利模乘运算的数据加解密处理方法及装置 | |
CN109145616B (zh) | 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 | |
CN103684749B (zh) | 一种基于面积与性能平衡优化的klein加密实现方法 | |
CN114297571A (zh) | 一种适用于格密码算法的多项式乘法硬件实现系统 | |
CN109067526A (zh) | 层次公私钥对生成方法和装置 | |
CN107547201B (zh) | 一种提高椭圆曲线密码体制中的标量乘计算效率的方法 | |
CN113794572A (zh) | 一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法 | |
CN106330424B (zh) | 基于sm3算法的密码模块的防攻击方法及装置 | |
CN112799634B (zh) | 一种基于基22mdc ntt结构的高性能环多项式乘法器 | |
CN113467754A (zh) | 一种基于分解约简的格加密模乘运算方法及架构 | |
CN117692126A (zh) | 一种基于低复杂度模乘算法的Paillier同态加密方法及系统 | |
CN109284085B (zh) | 一种基于fpga的高速模乘和模幂运算方法及装置 | |
CN109379191B (zh) | 一种基于椭圆曲线基点的点乘运算电路和方法 | |
CN116561819A (zh) | 一种基于Toom-Cook环上多项式乘法的加解密方法及环上多项式乘法器 | |
CN112988235B (zh) | 一种高效率第三代安全散列算法的硬件实现电路及方法 | |
CN103944714A (zh) | 基于ecc实现抗dpa攻击的标量乘算法的方法及装置 | |
CN110555519B (zh) | 一种基于符号随机计算的低复杂度卷积神经网络架构 | |
CN104267926B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211008 Address after: Floor 12 and 13, building 3, 333 Yunhua Road, high tech Zone, Chengdu, Sichuan 610000 Applicant after: CHENGDU 30JAVEE MICROELECTRONICS Co.,Ltd. Address before: Building 2, 333 Yunhua Road, high tech Zone, Chengdu, Sichuan 610000 Applicant before: SICHUAN WEISHITONG INFORMATION SECURITY PLATFORM TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |