CN115276960A - 一种sm2蒙哥马利域上的快速模逆芯片实现装置及方法 - Google Patents
一种sm2蒙哥马利域上的快速模逆芯片实现装置及方法 Download PDFInfo
- Publication number
- CN115276960A CN115276960A CN202210919020.3A CN202210919020A CN115276960A CN 115276960 A CN115276960 A CN 115276960A CN 202210919020 A CN202210919020 A CN 202210919020A CN 115276960 A CN115276960 A CN 115276960A
- Authority
- CN
- China
- Prior art keywords
- bit
- register
- registers
- storing
- carry
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000008569 process Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 abstract description 2
- 238000011160 research Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 101150052478 LSB3 gene Proteins 0.000 description 2
- 101100511858 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) LSB1 gene Proteins 0.000 description 2
- 101100244005 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PIN3 gene Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
Description
技术领域
本发明涉及信息安全领域,特别涉及一种SM2蒙哥马利域上的快速模逆芯片实现装置及方法。
背景技术
模逆运算广泛应用在公钥密码体制中,针对椭圆曲线加密算法,不论是在仿射坐标系下点加与倍点,还是射影坐标系与仿射坐标系下点的转换中都需要运用模逆,所以提高模逆的效率是提升椭圆曲线公钥密码的重点之一。
目前,求解模逆运算的方法主要包括模幂算法、扩展欧几里得算法、Stein算法、二进制扩展欧几里得算法等。模幂算法主要以费马小定理为基础,将模逆运算转换成模幂运算。扩展欧几里得算法基于裴蜀定理,通过辗转相除法计算最大公因子求解模逆。Stein算法与二进制扩展欧几里得算法均为二进制算法,基于素数的性质对数进行约简求取模逆。然而,基于费马小定理的模幂算法不仅无法判断其模逆结果是否存在,而且还需要大规模模乘器作为硬件运算单元,空间复杂度与时间复杂度均巨大;扩展欧几里得算法通过辗转相除得到最大公因子,依赖于大数除法器作为硬件运算单元,实现复杂,运算费时;Stein算法与二进制扩展欧几里得算法均通过将扩展欧几里得算法的除法操作变换为加减法与移位操作,相比其余算法具备明显优势,可在此基础上进一步改进,以达到更好的性能。已有的模逆算法方法大多基于整数域求解,然而在椭圆曲线公钥密码中大多运算建立在蒙哥马利域上,在实际应用时需要将运算过程中的蒙哥马利域上的数转化到整数域上再进行求解模逆运算。
SM2作为椭圆曲线公钥密码,使用256位的ECC加密,其加密安全性基于Abel群中离散对数问题,相比于同等安全性的RSA,其密钥长度更短,且目前尚未存在对SM2椭圆曲线公钥密码的有效供给方式,相关研究成为当下研究热点,存在较高的研究价值。其硬件的高效实现也成为重点的研究领域。
发明内容
为解决上述技术问题,本发明提供了一种SM2蒙哥马利域上的快速模逆芯片实现装置及方法,以达到提高模逆运算的吞吐量并降低资源占用,平衡功耗、工作频率的目的。
为达到上述目的,本发明的技术方案如下:
一种SM2蒙哥马利域上的快速模逆芯片实现装置,包括输入寄存器、迭代求解器、快速取模器和输出寄存器;
所述迭代求解器包括寄存器A、P、U、V、K和运算器,寄存器A用于存储输入寄存器输入的蒙哥马利域数并存储中间迭代运算结果a,寄存器P用于存储输入寄存器输入的椭圆曲线素数并存储中间迭代运算结果p,寄存器U用于存储中间迭代运算结果u,寄存器V用于存储中间迭代运算结果v并输出最终运算结果v,寄存器K用于和一个8比特行波进位加法器构成计数器;所述运算器包括2个256比特行波进位减法器,2个320比特行波进位减法器,1个256比特比较器,2个256比特右移移位器,2个320比特左移移位器,6个256比特数据选择器,6个320比特数据选择器,运算器用于根据寄存器A、P的值a,p的奇偶性与大小关系确定参数,并利用参数更新寄存器A、P、U、V的值a,p,u,v;计数器用于计数迭代周期;
所述快速取模器包括拆分器、进位运算电路和组合器,所述进位运算电路包括32比特行波进位加法器、32比特行波进位减法器、进位链电路和3组寄存器,第一组寄存器为10个32比特寄存器B0,…,B9,第二组寄存器为9个32比特寄存器R0,…,R8,第三组寄存器为8个32比特寄存器S0,…,S7;所述拆分器用于将寄存器V输入的320比特整数v拆分为10个32比特整数b0,…,b9,所述寄存器B0,…,B9用于存储10个32比特整数b0,…,b9,所述寄存器R0,…,R8用于存储进位运算电路第一阶段运算结果r0,…,r8,所述寄存器S0,…,S7用于存储进位运算电路第二阶段运算结果s0,…,s7;所述组合器用于将寄存器S0,…,S7的值s0,…,s7从低位到高位拼接出256比特运算结果,并输出到输出寄存器中;
所述输出寄存器用于暂时存储向外部输出的模逆运算结果。
一种SM2蒙哥马利域上的快速模逆芯片实现方法,采用如上所述的一种SM2蒙哥马利域上的快速模逆芯片实现装置,包括如下过程:
步骤二,进入迭代求解器后,初始化320比特寄存器U、V的值u,v分别为1,0,从输入寄存器中将待求模逆的整数x的蒙哥马利域数存储入256比特寄存器A中,椭圆曲线素数存储入寄存器P中;在每一轮迭代中,分别比较当前寄存器A、P的值a,p的奇偶性与大小关系,利用运算器确定参数后,并利用参数更新寄存器A、P、U、V的值a,p,u,v;
同时,初始化一个用于计数的8比特寄存器K的值k为0,每一个时钟周期其内值自增一,其自增过程使用一个8比特行波进位加法器实现,寄存器K和8比特行波进位加法器构成一个计数器;
利用该计数器计数共256个时钟周期,每个时钟周期完成一轮迭代运算,即更新寄存器A、P、U、V中的值a,p,u,v,计数到第256个时钟周期运算完成后退出迭代,将此时320比特寄存器V中的结果v输出给快速取模器;
步骤三,在快速取模器中,首先使用拆分器将输入的320比特整数v拆分为10个32比特的整数b0,…,b9,并存储入10个32比特寄存器B0,…,B9中,10个32比特寄存器B0,…,B9的值b0,…,b9进入第一阶段运算,运算结果存储入9个32比特寄存器R0,…,R8中,这9个32比特寄存器R0,…,R8的值r0,…,r8进入第二阶段运算,运算结果存储入8个32比特寄存器S0,…,S7中,最终,由组合器将这8个32比特寄存器S0,…,S7的值s0,…,s7从低位到高位拼接出256比特运算结果,并输出到输出寄存器中;
步骤四,输出寄存器将最终的模逆运算结果输出。
上述方案中,步骤二中,参数包括αi,βi,γi,ωi,i表示第i个时钟周期,参数的确定方法如下:
在a,p均为奇数的情况下:
当p>5a时,αi=1,βi=-3/2,γi=0,ωi=1/2;
当3a<p<5a时,αi=-3/2,βi=1,γi=1/2,ωi=0;
当a<p<3a时,αi=-1/2,βi=1,γi=1/2,ωi=0;
在a为奇数,p为偶数的情况下:
当p>4a时,αi=1,βi=-1,γi=0,ωi=1/2;
当2a<p<4a时,αi=-1,βi=1,γi=1/2,ωi=0;
当a<p<2a时,αi=0,βi=1,γi=1/2,ωi=0;
在a为偶数,p任意的情况下:
当p>2.5a时,αi=1/2,βi=-2,γi=0,ωi=1;
当2a<p<2.5a时,αi=-2,βi=1/2,γi=1,ωi=0;
当1.5a<p<2a时,αi=1/2,βi=-1,γi=0,ωi=1;
当a<p<1.5a时,αi=-1,βi=1/2,γi=1,ωi=0。
上述方案中,步骤二中,寄存器A、P、U、V的值a,p,u,v更新公式如下:
上述方案中,步骤三中,p=2256-2224-296+264-1,其模运算使用以下同余式进行简化:
2256=2224+296-264+1mod p
2288=2224+2128-264+232+1mod p
320比特整数v满足如下关系:
v=b92288+…+b1232+b0。
上述方案中,步骤三中,第一阶段运算过程如下:
利用同余式化简得到中间同余结果r:
r=v mod p=[(b9+b8+b7)·2224+b6·2192+b5·2160+(b9+b4)·2128+(b3+b8)·296+(b2-b8-b9)·264+(b1+b9)·232+(b0+b9+b8)]mod p将r再次分解为9个32比特整数r0,r1,r2,r3,r4,r5,r6,r7,r8,即
r=r82256+…+r1232+r0
满足以下映射关系:
r8=c7
{c7,r7}=b9+b8+b7+c6
{c6,r6}=b6+c5
{c5,r5}=b5+c4
{c4,r4}=b9+b4+c3
{c3,r3}=b8+b3+c2
{c2,r2}=b2-b8-b9+c1
{c1,r1}=b9+b1+c0
{c0,r0}=b0+b9+b8
其中,c0,...,c7表示进位运算结果,使用进位链电路对以上进位运算结果进行处理。
上述方案中,步骤三中,第二阶段运算过程如下:
再次利用同余式进行化简,即得:
s=r mod p=[(r7+r8)·2224+r6·2192+r5·2160+r4·2128+(r3+r8)·296+(r2-r8)·264+r1·232+(r0+r8)]mod p
得到的s即为最终256比特模逆运算结果,其中:
s=s72224+…+s1232+s0
满足以下映射关系:
s7=r7+r8+d6
{d6,s6}=r6+d5
{d5,s5}=r5+d4
{d4,s4}=r4+d3
{d3,s3}=r3+r8+d2
{d2,s2}=r2-r8+d1
{d1,s1}=r1+d0
{d0,s0}=r0+r8
其中,d0,...,d7表示进位运算结果,使用进位链电路对以上进位运算结果进行处理。
通过上述技术方案,本发明提供的一种SM2蒙哥马利域上的快速模逆芯片实现装置及方法具有如下有益效果:
1、本发明首次提出了一种在蒙哥马利域上求解模逆的硬件装置和方法。
2、本发明综合了考虑面积与计算延时性能,设计了高频率,高吞吐量的硬件装置。
3、本发明设计的蒙哥马利域上求解模逆方法效化简了在实际应用时需要将待求取模逆数从蒙哥马利域转化到整数域的过程。
4、本发明设计的蒙哥马利域上的模逆方法运算时间固定,在硬件具体实现时等效为时钟周期数固定,每一个时钟周期的时间取决于硬件的最高频率,一个时钟周期等于频率的倒数(不同系列的FPGA能达到最高频率不同)。固定数量的时钟周期有利于减少侧信道信息泄露,增强了硬件的安全性,防止攻击者通过运算所需要的时钟周期数预测输入。
5、本发明设计的迭代求解器适合于各种GF(p)域上的椭圆曲线。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例所公开的一种SM2蒙哥马利域上的快速模逆芯片实现装置示意图。
图2为本发明中迭代求解器的运算过程图;
图3为本发明中快速取模器的运算过程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明提供了一种SM2蒙哥马利域上的快速模逆芯片实现装置,如图1所示,包括输入寄存器、迭代求解器、快速取模器和输出寄存器。
一、输入寄存器
二、迭代求解器
迭代求解器包括寄存器A、P、U、V、K和运算器,寄存器A用于存储输入寄存器输入的蒙哥马利域数并存储中间迭代运算结果a,寄存器P用于存储输入寄存器输入的椭圆曲线素数并存储中间迭代运算结果p,寄存器U用于存储中间迭代运算结果u,寄存器V用于存储中间迭代运算结果v并输出最终运算结果v,寄存器K用于和一个8比特行波进位加法器构成计数器,计数器用于计数迭代周期。在每个时钟上升沿,寄存器迭代单元根据相应的映射关系完成对于相关寄存器的运算,计数器内值自增一。
运算器包括2个256比特行波进位减法器,2个320比特行波进位减法器,1个256比特比较器,2个256比特右移移位器,2个320比特左移移位器,6个256比特数据选择器,6个320比特数据选择器,运算器用于根据寄存器A、P的值a,p的奇偶性与大小关系确定参数,并利用参数更新寄存器A、P、U、V的值a,p,u,v。
三、快速取模器
快速取模器包括拆分器、进位运算电路和组合器,进位运算电路包括32比特行波进位加法器、32比特行波进位减法器、进位链电路和3组寄存器,第一组寄存器为10个32比特寄存器B0,…,B9,第二组寄存器为9个32比特寄存器R0,…,R8,第三组寄存器为8个32比特寄存器S0,…,S7;拆分器用于将寄存器V输入的320比特整数v拆分为10个32比特整数b0,…,b9,寄存器B0,…,B9用于存储10个32比特整数b0,…,b9,寄存器R0,…,R8用于存储进位运算电路第一阶段运算结果r0,…,r8,寄存器S0,…,S7用于存储进位运算电路第二阶段运算结果s0,…,s7;组合器用于将寄存器S0,…,S7的值s0,…,s7从低位到高位拼接出256比特运算结果,并输出到输出寄存器中。
四、输出寄存器
输出寄存器用于暂时存储向外部输出的模逆运算结果。
一种SM2蒙哥马利域上的快速模逆芯片实现方法,采用如上的一种SM2蒙哥马利域上的快速模逆芯片实现装置,包括如下过程:
步骤二,进入迭代求解器后,如图2所示,初始化320比特寄存器U、V的值u,v分别为1,0,从输入寄存器中将待求模逆的整数x的蒙哥马利域数存储入256比特寄存器A中,椭圆曲线素数存储入寄存器P中;在每一轮迭代中,分别比较当前寄存器A、P的值a,p的奇偶性与大小关系,利用运算器确定参数后,并利用参数更新寄存器A、P、U、V的值a,p,u,v;
参数包括αi,βi,γi,ωi,i表示第i个时钟周期,参数的确定方法如表1所示:
表1参数的确定
根据上述参数的结果,寄存器A、P、U、V的值a,p,u,v更新公式如下:
将以上矩阵展开,实际运算占用2个256比特行波进位减法器,2个320比特行波进位减法器,1个256比特比较器,2个256比特右移移位器,2个320比特左移移位器,6个256比特数据选择器,6个320比特数据选择器。其中数据选择器完成2选1的功能,比较器比较两个输入值的大小并输出0或1,移位器实现对寄存器进行左/右移一位的功能。
具体更新见表2的关系:
表2 a,p,u,v更新结果
表中,√表示是,×表示否,○表示奇偶均可。
在表2中涉及的比较采用256比特比较器实现,减法采用256比特行波进位减法器实现,乘2,乘3,乘4,除2采用256比特移位器实现。实现表2的全部过程需要2个256比特行波进位减法器,2个320比特行波进位减法器,1个256比特比较器,2个256比特右移移位器,2个320比特左移移位器,6个256比特数据选择器,6个320比特数据选择器。经过256轮迭代运算后,保持寄存器v中的值不变。图2中LSB1,LSB2,LSB3表示最低比特位,cmp为比较器输出的结果,LSB1,LSB2,LSB3,cmp用于为数据选择器提供选择信号。
同时,初始化一个用于计数的8比特寄存器K的值k为0,每一个时钟周期其内值自增一,其自增过程使用一个8比特行波进位加法器实现,寄存器K和8比特行波进位加法器构成一个计数器。在7系列FPGA中使用2个CARRY4结构组成,在UltraScale系列FPGA中使用1个CARRY8结构组成,CARRY4、CARRY8为对应系列FPGA内部硬件资源。
利用该计数器计数共256个时钟周期,每个时钟周期完成一轮迭代运算,即更新寄存器A、P、U、V中的值a,p,u,v,计数到第256个时钟周期运算完成后退出迭代,将此时320比特寄存器V中的结果v输出给快速取模器。
步骤三,在快速取模器中,如图3所示,首先使用拆分器将输入的320比特整数v拆分为10个32比特的整数b0,…,b9,并存储入10个32比特寄存器B0,…,B9中,10个32比特寄存器B0,…,B9的值b0,…,b9进入第一阶段运算,运算结果存储入9个32比特寄存器R0,…,R8中,这9个32比特寄存器R0,…,R8的值r0,…,r8进入第二阶段运算,运算结果存储入8个32比特寄存器S0,…,S7中,最终,由组合器将这8个32比特寄存器S0,…,S7的值s0,…,s7从低位到高位拼接出256比特运算结果,并输出到输出寄存器中。
p=2256-2224-296+264-1,其模运算使用以下同余式进行简化:
2256=2224+296-264+1modp
2288=2224+2128-264+232+1mod p
320比特整数v满足如下关系:
v=b92288+…+b1232+b0。
第一阶段运算过程如下:
利用同余式化简得到中间同余结果r:
r=v mod p=[(b9+b8+b7)·2224+b6·2192+b5·2160+(b9+b4)·2128+(b3+b8)·296+(b2-b8-b9)·264+(b1+b9)·232+(b0+b9+b8)]mod p
求解得到的r仍然有可能超过256比特,将r再次分解为9个32比特整数r0,r1,r2,r3,r4,r5,r6,r7,r8,即
r=r82256+…+r1232+r0
满足以下映射关系:
r8=c7
{c7,r7}=b9+b8+b7+c6
{c6,r6}=b6+c5
{c5,r5}=b5+c4
{c4,r4}=b9+b4+c3
{c3,r3}=b8+b3+c2
{c2,r2}=b2-b8-b9+c1
{c1,r1}=b9+b1+c0
{c0,r0}=b0+b9+b8
其中,由于运算可能产生进位,c0,...,c7表示进位运算结果,使用进位链电路对以上进位运算结果进行处理。
第二阶段运算过程如下:
再次利用同余式进行化简,即得:
s=r mod p=[(r7+r8)·2224+r6·2192+r5·2160+r4·2128+(r3+r8)·296+(r2-r8)·264+r1·232+(r0+r8)]mod p
得到的s即为最终256比特模逆运算结果,其中:
s=s72224+…+s1232+s0
满足以下映射关系:
s7=r7+r8+d6
{d6,s6}=r6+d5
{d5,s5}=r5+d4
{d4,s4}=r4+d3
{d3,s3}=r3+r8+d2
{d2,s2}=r2-r8+d1
{d1,s1}=r1+d0
{d0,s0}=r0+r8
其中,由于运算可能产生进位,d0,...,d7表示进位运算结果,使用进位链电路对以上进位运算结果进行处理。
将32比特寄存器S0,…,S7的值s0,…,s7拼接出256比特s的过程由组合器完成,使得最终s=s72224+…+s1232+s0。最终运算结果s输出到输出寄存器中。
图3中每一个加法符号代表32比特行波进位加法器,每一个减法符号代表32比特行波进位减法器,标注有进位处使用进位链电路。
在快速取模器首先使用拆分器将输入拆分为10个32比特的整数,使用多个32比特行波进位加法器/减法器与进位链完成相应的运算。在7系列FPGA中一个32比特行波进位加法器/减法器由8个CARRY4结构串联构成,在UltraScale系列FPGA这一个32比特行波进位加法器/减法器由4个CARRY8结构串联构成,CARRY4、CARRY8为对应系列FPGA内部硬件资源,其本身也由门电路组成。利用同余关系得到相应的进位运算电路,进位运算电路分为两个阶段:
第一阶段输入拆分完的10个32比特整数存储入寄存器B0,…,B9中,求解得到9个32比特整数的中间运算结果存储入寄存器R0,…,R8中。第二阶段再利用这9个32比特整数进行进位运算得到最终8个32比特的整数存储入寄存器S0,…,S7中,使用组合器从低位到高位拼接出最终256比特输出模逆结果。
步骤四,输出寄存器将最终的模逆运算结果输出。
本发明的装置及方法在Xilinx 7系列FPGA上(Virtex-7),使用面积时间积优化方案时,占用2.4k个LUT,1.1k个FF,共计722个Slice,最高运行频率为116MHz,单次运算达2.37μs,吞吐率达到108.02Mbps,AT达1.711。
在Ultrascale系列的FPGA上(zynq Ultrascale),使用面积时间积优化方案时,占用2.7k个LUT,1.1k个FF,共计459个Slice,最高运行频率为151MHz,单次运算达1.82μs,吞吐率达到140.66Mbps,AT达0.835。
其中,AT的计算公式为Slice面积与单次模逆运算延时的乘积,吞吐率计算公式为单次运算输出256比特乘上1秒内可以计算模逆的次数。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种SM2蒙哥马利域上的快速模逆芯片实现装置,其特征在于,包括输入寄存器、迭代求解器、快速取模器和输出寄存器;
所述迭代求解器包括寄存器A、P、U、V、K和运算器,寄存器A用于存储输入寄存器输入的蒙哥马利域数a~并存储中间迭代运算结果a,寄存器P用于存储输入寄存器输入的椭圆曲线素数p~并存储中间迭代运算结果p,寄存器U用于存储中间迭代运算结果u,寄存器V用于存储中间迭代运算结果v并输出最终运算结果v,寄存器K用于和一个8比特行波进位加法器构成计数器;所述运算器包括2个256比特行波进位减法器,2个320比特行波进位减法器,1个256比特比较器,2个256比特右移移位器,2个320比特左移移位器,6个256比特数据选择器,6个320比特数据选择器,运算器用于根据寄存器A、P的值a,p的奇偶性与大小关系确定参数,并利用参数更新寄存器A、P、U、V的值a,p,u,v;计数器用于计数迭代周期;
所述快速取模器包括拆分器、进位运算电路和组合器,所述进位运算电路包括32比特行波进位加法器、32比特行波进位减法器、进位链电路和3组寄存器,第一组寄存器为10个32比特寄存器B0,…,B9,第二组寄存器为9个32比特寄存器R0,…,R8,第三组寄存器为8个32比特寄存器S0,…,S7;所述拆分器用于将寄存器V输入的320比特整数v拆分为10个32比特整数b0,…,b9,所述寄存器B0,…,B9用于存储10个32比特整数b0,…,b9,所述寄存器R0,…,R8用于存储进位运算电路第一阶段运算结果r0,…,r8,所述寄存器S0,…,S7用于存储进位运算电路第二阶段运算结果s0,…,s7;所述组合器用于将寄存器S0,…,S7的值s0,…,s7从低位到高位拼接出256比特运算结果,并输出到输出寄存器中;
所述输出寄存器用于暂时存储向外部输出的模逆运算结果。
2.一种SM2蒙哥马利域上的快速模逆芯片实现方法,采用如权利要求1所述的一种SM2蒙哥马利域上的快速模逆芯片实现装置,其特征在于,包括如下过程:
步骤二,进入迭代求解器后,初始化320比特寄存器U、V的值u,v分别为1,0,从输入寄存器中将待求模逆的整数x的蒙哥马利域数存储入256比特寄存器A中,椭圆曲线素数存储入寄存器P中;在每一轮迭代中,分别比较当前寄存器A、P的值a,p的奇偶性与大小关系,利用运算器确定参数后,并利用参数更新寄存器A、P、U、V的值a,p,u,v;
同时,初始化一个用于计数的8比特寄存器K的值k为0,每一个时钟周期其内值自增一,其自增过程使用一个8比特行波进位加法器实现,寄存器K和8比特行波进位加法器构成一个计数器;
利用该计数器计数共256个时钟周期,每个时钟周期完成一轮迭代运算,即更新寄存器A、P、U、V中的值a,p,u,v,计数到第256个时钟周期运算完成后退出迭代,将此时320比特寄存器V中的结果v输出给快速取模器;
步骤三,在快速取模器中,首先使用拆分器将输入的320比特整数v拆分为10个32比特的整数b0,…,b9,并存储入10个32比特寄存器B0,…,B9中,10个32比特寄存器B0,…,B9的值b0,…,b9进入第一阶段运算,运算结果存储入9个32比特寄存器R0,…,R8中,这9个32比特寄存器R0,…,R8的值r0,…,r8进入第二阶段运算,运算结果存储入8个32比特寄存器S0,…,S7中,最终,由组合器将这8个32比特寄存器S0,…,S7的值s0,…,s7从低位到高位拼接出256比特运算结果,并输出到输出寄存器中;
步骤四,输出寄存器将最终的模逆运算结果输出。
3.根据权利要求2所述的一种SM2蒙哥马利域上的快速模逆芯片实现方法,其特征在于,步骤二中,参数包括αi,βi,γi,ωi,i表示第i个时钟周期,参数的确定方法如下:
在a,p均为奇数的情况下:
当p>5a时,αi=1,βi=-3/2,γi=0,ωi=1/2;
当3a<p<5a时,αi=-3/2,βi=1,γi=1/2,ωi=0;
当a<p<3a时,αi=-1/2,βi=1,γi=1/2,ωi=0;
在a为奇数,p为偶数的情况下:
当p>4a时,αi=1,βi=-1,γi=0,ωi=1/2;
当2a<p<4a时,αi=-1,βi=1,γi=1/2,ωi=0;
当a<p<2a时,αi=0,βi=1,γi=1/2,ωi=0;
在a为偶数,p任意的情况下:
当p>2.5a时,αi=1/2,βi=-2,γi=0,ωi=1;
当2a<p<2.5a时,αi=-2,βi=1/2,γi=1,ωi=0;
当1.5a<p<2a时,αi=1/2,βi=-1,γi=0,ωi=1;
当a<p<1.5a时,αi=-1,βi=1/2,γi=1,ωi=0。
5.根据权利要求2所述的一种SM2蒙哥马利域上的快速模逆芯片实现方法,其特征在于,步骤三中,p=2256-2224-296+264-1,其模运算使用以下同余式进行简化:
2256=2224+296-264+1 mod p
2288=2224+2128-264+232+1 mod p
320比特整数v满足如下关系:
v=b92288+…+b1232+b0。
6.根据权利要求5所述的一种SM2蒙哥马利域上的快速模逆芯片实现方法,其特征在于,步骤三中,第一阶段运算过程如下:
利用同余式化简得到中间同余结果r:
r=v mod p=[(b9+b8+b7)·2224+b6·2192+b5·2160+(b9+b4)·2128+(b3+b8)·296+(b2-b8-b9)·264+(b1+b9)·232+(b0+b9+b8)]mod p
将r再次分解为9个32比特整数r0,r1,r2,r3,r4,r5,r6,r7,r8,即
r=r82256+…+r1232+r0
满足以下映射关系:
r8=c7
{c7,r7}=b9+b8+b7+c6
{c6,r6}=b6+c5
{c5,r5}=b5+c4
{c4,r4}=b9+b4+c3
{c3,r3}=b8+b3+c2
{c2,r2}=b2-b8-b9+c1
{c1,r1}=b9+b1+c0
{c0,r0}=b0+b9+b8
其中,c0,...,c7表示进位运算结果,使用进位链电路对以上进位运算结果进行处理。
7.根据权利要求5所述的一种SM2蒙哥马利域上的快速模逆芯片实现方法,其特征在于,步骤三中,第二阶段运算过程如下:
再次利用同余式进行化简,即得:
s=r mod p=[(r7+r8)·2224+r6·2192+r5·2160+r4·2128+(r3+r8)·296+(r2-r8)·264+r1·232+(r0+r8)]mod p
得到的s即为最终256比特模逆运算结果,其中:
s=s72224+…+s1232+s0
满足以下映射关系:
s7=r7+r8+d6
{d6,s6}=r6+d5
{d5,s5}=r5+d4
{d4,s4}=r4+d3
{d3,s3}=r3+r8+d2
{d2,s2}=r2-r8+d1
{d1,s1}=r1+d0
{d0,s0}=r0+r8
其中,d0,...,d7表示进位运算结果,使用进位链电路对以上进位运算结果进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210919020.3A CN115276960B (zh) | 2022-08-02 | 2022-08-02 | 一种sm2蒙哥马利域上的快速模逆芯片实现装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210919020.3A CN115276960B (zh) | 2022-08-02 | 2022-08-02 | 一种sm2蒙哥马利域上的快速模逆芯片实现装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115276960A true CN115276960A (zh) | 2022-11-01 |
CN115276960B CN115276960B (zh) | 2024-03-15 |
Family
ID=83746799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210919020.3A Active CN115276960B (zh) | 2022-08-02 | 2022-08-02 | 一种sm2蒙哥马利域上的快速模逆芯片实现装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115276960B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10269060A (ja) * | 1997-01-27 | 1998-10-09 | Toshiba Corp | モンゴメリ除算装置及びモンゴメリ逆元計算装置並びにモンゴメリ除算方法及びモンゴメリ逆元計算方法 |
US6088453A (en) * | 1997-01-27 | 2000-07-11 | Kabushiki Kaisha Toshiba | Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation |
US20010002486A1 (en) * | 1998-01-02 | 2001-05-31 | Cryptography Research, Inc. | Leak-resistant cryptographic method and apparatus |
US6282290B1 (en) * | 1997-03-28 | 2001-08-28 | Mykotronx, Inc. | High speed modular exponentiator |
EP1536320A2 (de) * | 2003-11-28 | 2005-06-01 | Giesecke & Devrient GmbH | Erweiterte Montgomery-Multiplikation und Montgomery-Multiplikation mit vergrösserter Operandenlänge |
US20120197953A1 (en) * | 2011-01-31 | 2012-08-02 | Samsung Electronics Co., Ltd | Montgomery inverse calculation device and method of calculating montgomery inverse using the same |
CN112865954A (zh) * | 2021-04-26 | 2021-05-28 | 深圳致星科技有限公司 | 用于Paillier解密的加速器、芯片及系统 |
CN114553425A (zh) * | 2022-02-25 | 2022-05-27 | 东南大学 | 基于高性能模逆的椭圆数字签名曲线硬件实现方法及系统 |
CN114615069A (zh) * | 2022-03-19 | 2022-06-10 | 山东大学 | 一种Quartet轻量级加密算法的实现装置及方法 |
-
2022
- 2022-08-02 CN CN202210919020.3A patent/CN115276960B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10269060A (ja) * | 1997-01-27 | 1998-10-09 | Toshiba Corp | モンゴメリ除算装置及びモンゴメリ逆元計算装置並びにモンゴメリ除算方法及びモンゴメリ逆元計算方法 |
US6088453A (en) * | 1997-01-27 | 2000-07-11 | Kabushiki Kaisha Toshiba | Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation |
US6282290B1 (en) * | 1997-03-28 | 2001-08-28 | Mykotronx, Inc. | High speed modular exponentiator |
US20010002486A1 (en) * | 1998-01-02 | 2001-05-31 | Cryptography Research, Inc. | Leak-resistant cryptographic method and apparatus |
EP1536320A2 (de) * | 2003-11-28 | 2005-06-01 | Giesecke & Devrient GmbH | Erweiterte Montgomery-Multiplikation und Montgomery-Multiplikation mit vergrösserter Operandenlänge |
US20120197953A1 (en) * | 2011-01-31 | 2012-08-02 | Samsung Electronics Co., Ltd | Montgomery inverse calculation device and method of calculating montgomery inverse using the same |
CN112865954A (zh) * | 2021-04-26 | 2021-05-28 | 深圳致星科技有限公司 | 用于Paillier解密的加速器、芯片及系统 |
CN114553425A (zh) * | 2022-02-25 | 2022-05-27 | 东南大学 | 基于高性能模逆的椭圆数字签名曲线硬件实现方法及系统 |
CN114615069A (zh) * | 2022-03-19 | 2022-06-10 | 山东大学 | 一种Quartet轻量级加密算法的实现装置及方法 |
Non-Patent Citations (2)
Title |
---|
MOUNA BEDOUI: "An Efficient Fault Detection Method for Elliptic Curve Scalar Multiplication Montgomery Algorithm", 《2019 IEEE INTERNATIONAL CONFERENCE ON DESIGN & TEST OF INTEGRATED MICRO & NANO-SYSTEMS》, 1 May 2019 (2019-05-01) * |
马丕明: "基于QoS 要求的全双工中继多载波安全系统的功率分配研究", 《电子与信息学报》, 30 April 2017 (2017-04-30) * |
Also Published As
Publication number | Publication date |
---|---|
CN115276960B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | High-Performance Pipelined Architecture of Elliptic Curve Scalar Multiplication Over GF (${2}^{m} $) | |
CN109145616B (zh) | 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 | |
Güneysu | Utilizing hard cores of modern FPGA devices for high-performance cryptography | |
CN115344237A (zh) | 结合Karatsuba和蒙哥马利模乘的数据处理方法 | |
Feng et al. | Accelerating an FHE integer multiplier using negative wrapped convolution and ping-pong FFT | |
Bajard et al. | RNS arithmetic approach in lattice-based cryptography: Accelerating the" rounding-off" core procedure | |
Tan et al. | High-speed modular multiplier for lattice-based cryptosystems | |
Wang et al. | An efficient quantum meet-in-the-middle attack against NTRU-2005 | |
CN115048076A (zh) | 一种基于sm2特定域的快速模乘芯片实现装置及方法 | |
Putranto et al. | Another concrete quantum cryptanalysis of binary elliptic curves | |
CN113193962B (zh) | 基于轻量级模乘的sm2数字签名生成与验证器 | |
US8582758B2 (en) | Apparatus and a method for calculating a multiple of a point an elliptic curve | |
Putranto et al. | Depth-optimization of quantum cryptanalysis on binary elliptic curves | |
Rezai et al. | High-performance modular exponentiation algorithm by using a new modified modular multiplication algorithm and common-multiplicand-multiplication method | |
Du et al. | Efficient polynomial multiplier architecture for ring-LWE based public key cryptosystems | |
Ding et al. | A reconfigurable high-speed ECC processor over NIST primes | |
CN115276960B (zh) | 一种sm2蒙哥马利域上的快速模逆芯片实现装置及方法 | |
CN114594925A (zh) | 适用于sm2加密运算的高效模乘电路及其运算方法 | |
WO2019120066A1 (zh) | 一种适合sm2算法的快速模约减方法和介质 | |
Hollmann et al. | A multi-layer recursive residue number system | |
Rodríguez et al. | An FPGA arithmetic logic unit for computing scalar multiplication using the half-and-add method | |
Rezai et al. | Algorithm design and theoretical analysis of a novel CMM modular exponentiation algorithm for large integers | |
CN114513306B (zh) | 数据加密传输方法、系统 | |
Cui et al. | An area-efficient and low-latency elliptic curve scalar multiplication accelerator over prime field | |
Reddy et al. | MNHOKA-PPA Efficient M-Term Non-Homogeneous Hybrid Overlap-free Karatsuba Multiplier for GF (2 n) Polynomial Multiplier |
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 |