CN112134704A - 一种sm2性能优化实现方法 - Google Patents

一种sm2性能优化实现方法 Download PDF

Info

Publication number
CN112134704A
CN112134704A CN202010992268.3A CN202010992268A CN112134704A CN 112134704 A CN112134704 A CN 112134704A CN 202010992268 A CN202010992268 A CN 202010992268A CN 112134704 A CN112134704 A CN 112134704A
Authority
CN
China
Prior art keywords
point
multiplication
elliptic curve
coordinate system
addition
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
Application number
CN202010992268.3A
Other languages
English (en)
Other versions
CN112134704B (zh
Inventor
姜孟杉
王震
白健
安红章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Electronic Technology Cyber Security Co Ltd
Original Assignee
China Electronic Technology Cyber Security Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Electronic Technology Cyber Security Co Ltd filed Critical China Electronic Technology Cyber Security Co Ltd
Priority to CN202010992268.3A priority Critical patent/CN112134704B/zh
Publication of CN112134704A publication Critical patent/CN112134704A/zh
Application granted granted Critical
Publication of CN112134704B publication Critical patent/CN112134704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种sm2性能优化实现方法,其所述方法为针对sm2的椭圆曲线上的点运算进行优化,包括:(1)将椭圆曲线点的标准坐标转化到仿射坐标系;(2)在仿射坐标系下,使用预计算优化椭圆曲线点加、倍点和点乘运算过程。本发明使用了转化仿射坐标和预计算来优化椭圆曲线点加、倍点和点乘运算过程,从而减少点加、倍点和点乘运算的次数,提高运算效率。

Description

一种sm2性能优化实现方法
技术领域
本发明涉及是一种sm2性能优化实现方法。
背景技术
国密sm2是国家密码管理局发布的椭圆曲线公钥密码算法,目前已广泛应用于包括金融领域在内的商用密码体系中。
针对sm2p256曲线(椭圆曲线)优化sm2算法,计算效率是椭圆曲线密码体制中最关心的问题之一,在sm2签名、密钥交换和加密算法中,椭圆曲线上点运算占据了绝大部分的计算量。因此,需要对椭圆曲线上的点运算进行优化,以提高运算效率。
发明内容
本发明所要解决的技术问题是:针对上述存在的问题,提供一种sm2性能优化实现方法。
本发明采用的技术方案如下:
一种sm2性能优化实现方法,所述方法为针对sm2的椭圆曲线上的点运算进行优化,包括:
将椭圆曲线点的标准坐标转化到仿射坐标系;
在仿射坐标系下,使用预计算优化椭圆曲线点加、倍点和点乘运算过程。
进一步的,所述仿射坐标系为雅各比坐标系、标准仿射坐标系或Chudnovsky仿射坐标系。
进一步的,当仿射坐标系为雅各比坐标系时,椭圆曲线倍点的运算过程如下:
P=(X1,Y1,Z1),R=(X3,Y3,Z3)=P+P;
point_double(R,P);
Figure BDA0002691154650000021
X3=S2-2T,
Figure BDA0002691154650000022
Z3=2Y1Z1
其中,P为椭圆曲线上的点;point_double()为椭圆曲线倍点运算;R为倍点运算结果。
进一步的,当仿射坐标系为雅各比坐标系时,椭圆曲线点加的运算过程如下:
P=(X1,Y1,Z1),Q=(X2,Y2,Z2),R=(X3,Y3,Z3)=P+Q;
point_add(R,P,Q);
Figure BDA0002691154650000023
if(T1==T2)then
if(S1!=S2)X3=0,Y3=1,Z3=0;
else point_double(R,P);
end;
end;
U=T1-T2,W=S1-S2
X3=W2-U3-2T1U2
Y3=W(T1U2-X3)-S1U3
Z3=UZ1Z2
其中,P、Q为椭圆曲线上的两点;point_add()为椭圆曲线点加运算;point_double()为椭圆曲线倍点运算;R为点加运算结果。
进一步的,当仿射坐标系为雅各比坐标系,且椭圆曲线点为生成元G时,点乘的运算过程如下:
(1)将把256bit分成37个窗口,每个窗口7bit,计算表:
table[i][j]=27i·(j+1)G i=0,1,…,36,j=0,1,…,63
并把表中每一个点的雅各布Z坐标转换成1;
(2)计算生成元G的点乘kG时,先对k使用窗口大小等于7的booth编码,使得每个窗口中的7bit所表示的整数都是绝对值小于等于64的有符号数;然后通过36次查表和36次点加计算点乘;本步骤过程如下:
R=k*G
point_mul_G(R,G,k)
R=O
k=booth_encode7(k)
for i=0 to 36
if(ki>0)T=table[i][ki-1]
else T=O
end
if(ki是正数)R=R+T
else R=R-T
end
end
其中,ki是k的第i个窗口;point_mul_G()为椭圆曲线点为生成元G的点乘运算;booth_encode7()为窗口大小等于7的booth编码,R为椭圆曲线点为生成元G的点乘运算结果。
进一步的,当仿射坐标系为雅各比坐标系,且椭圆曲线点为一般点P时,点乘的运算过程如下:
(1)计算表:
table[j]=(j+1)P j=0,1,…,15
(2)计算一般点P的点乘kP时,先对k使用窗口大小等于5的booth编码,使得每个窗口中的5bit所表示的整数都是绝对值小于等于16的有符号数;然后通过52次查表、52次点加和260次倍点计算点乘;本步骤过程如下:
R=k*P
point_mul_P(R,P,k)
R=O
k=booth_encode5(k)
for i=52 to 0
if(ki>0)T=table[ki-1]
else T=O
end
if(ki是正数)R=R+T
else R=R-T
end
point_double(R,R)
point_double(R,R)
point_double(R,R)
point_double(R,R)
point_double(R,R)
end
其中,ki是k的第i个窗口;point_mul_P()为椭圆曲线点为一般点P的点乘运算;booth_encode5()为窗口大小等于5的booth编码,R为椭圆曲线点为一般点P的点乘运算结果。
进一步的,对于椭圆曲线点加、倍点和点乘运算中的模乘,使用蒙哥马利模乘运算。
进一步的,对于椭圆曲线点加、倍点和点乘运算中的模乘,使用蒙哥马利模乘运算的方法为:
(1)对于椭圆曲线点加、倍点和点乘运算中的模乘表示为:
a×b mod p
其中,a、b为大整数,p为模数;
(2)将椭圆曲线点加、倍点和点乘运算中的模乘在蒙哥马利域中转化为:
MM(A,B)=A×B×2-l mod p
其中,l为中间参数,A=a*l mod p,B=b*l mod p;
(3)当模数p满足-1/p mod 2s=1,s=32或64,则蒙哥马利模乘运算过程如下:
r=A×B×2-l mod p
montgomery(r,A,B,p)
T=A*B
for i=1 to K
T1=T mod 2s
T2=T1*p
T3=T+T1
T=T3/2s
end
if T≥p r=T-p
else r=T
end
其中,K为运算次数,r为椭圆曲线点加、倍点和点乘运算中的模乘在蒙哥马利域中的表示;montgomery()为蒙哥马利模乘运算。
进一步的,l=256。
进一步的,在64位操作系统中,s=64,K=4。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明使用了转化仿射坐标和预计算来优化椭圆曲线点加、倍点和点乘运算过程,从而减少点加、倍点和点乘运算的次数,提高运算效率。
2、本发明使用了蒙哥马利模乘运算,以进一步对椭圆曲线点加、倍点和点乘运算进行优化。
3、本发明使用了汇编语言实现点加、倍点和点乘运算,以及蒙哥马利模乘运算,使用SIMD指令和BMI2指令进一步加快运算速度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明对sm2性能优化的流程图。
图2为本发明中的倍点运算流程图。
图3为本发明中的点加运算流程图。
图4为本发明中使用的booth编码和查表示意图。
图5为本发明中的点乘生成点运算流程图。
图6为本发明中的点乘一般点运算流程图。
图7为本发明中的蒙哥马利模乘算法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明的一种sm2性能优化实现方法,为针对sm2的椭圆曲线(sm2p256曲线)上的点运算进行优化,该椭圆曲线的方程为:
y2=x3+ax+b
sm2的椭圆曲线(sm2p256曲线)常用且较为耗时的点运算是点加、倍点和点乘运算:
点加运算为P+Q,P≠Q,其中P、Q为椭圆曲线上的两个点;
倍点运算为P+Q=2P,P=Q;
点乘运算为kP=P+P+...+P,即k个点相加,其中k为整数。
因此,本发明的sm2性能优化实际上是针对sm2的椭圆曲线(sm2p256曲线)上的点加、倍点和点乘运算进行优化。本发明从两个步骤进行优化:
第一步:将椭圆曲线点的标准坐标转化到仿射坐标系;椭圆曲线点的标准坐标形式为(x,y),在进行点的运算时可转化为仿射坐标以减少求逆的运算,从而节省运算时间。所述仿射坐标系一般分为雅各比坐标系、标准仿射坐标系或Chudnovsky仿射坐标系。以雅各比仿射坐标系为例,椭圆曲线点的标准坐标(x,y)对应的雅各比坐标为(X,Y,Z),其中满足x=X/Z2,y=Y/Z3
第二步:在仿射坐标系下,使用预计算优化椭圆曲线点加、倍点和点乘运算过程。即通过预计算的方法提高效率。
1、倍点运算
当仿射坐标系为雅各比坐标系时,如图2所示,椭圆曲线倍点的运算过程如下:
P=(X1,Y1,Z1),R=(X3,Y3,Z3)=P+P;
point_double(R,P);
Figure BDA0002691154650000081
X3=S2-2T,
Figure BDA0002691154650000082
Z3=2Y1Z1
其中,P为椭圆曲线上的点,X1,Y1,Z1为点P的雅各比坐标;point_double()为椭圆曲线倍点运算;R为倍点运算结果,X3,Y3,Z3为倍点运算结果的雅各比坐标。
2、点加运算
当仿射坐标系为雅各比坐标系时,如图3所示,椭圆曲线点加的运算过程如下:
P=(X1,Y1,Z1),Q=(X2,Y2,Z2),R=(X3,Y3,Z3)=P+Q;
point_add(R,P,Q);
Figure BDA0002691154650000083
if(T1==T2)then
if(S1!=S2)X3=0,Y3=1,Z3=0;
else point_double(R,P);
end;
end;
U=T1-T2,W=S1-S2
X3=W2-U3-2T1U2
Y3=W(T1U2-X3)-S1U3
Z3=UZ1Z2
其中,P、Q为椭圆曲线上的两点,X1,Y1,Z1为点P的雅各比坐标,X2,Y2,Z2为点Q的雅各比坐标;point_add()为椭圆曲线点加运算;point_double()为椭圆曲线倍点运算;R为点加运算结果,X3,Y3,Z3为点加运算结果的雅各比坐标。
3、点乘运算
计算点乘运算时,根据椭圆曲线点是生成元G或者是一般点P,点乘运算不同。
3.1、椭圆曲线点为生成元G
由于椭圆曲线生成元G为固定的点,因此可以采用大量的预计算来提高效率。即,当仿射坐标系为雅各比坐标系,且椭圆曲线点为生成元G时,点乘的运算过程如下:
(1)将把256bit分成37个窗口,每个窗口7bit,计算表:
table[i][j]=27i·(j+1)G i=0,1,…,36,j=0,1,…,63
并把表中每一个点的雅各布Z坐标转换成1,以减少存储量,预计算表大小约150KB;
(2)计算生成元G的点乘kG时,先对k使用窗口大小等于7的booth编码,使得每个窗口中的7bit所表示的整数都是绝对值小于等于64的有符号数;然后通过36次查表和36次点加计算点乘,booth编码和查表的示例如图4所示;如图5所示,本步骤过程如下:
R=k*G
point_mul_G(R,G,k)
R=O//无穷远点
k=booth_encode7(k)
for i=0 to 36
if(ki>0)T=table[i][ki-1]
else T=O
end
if(ki是正数)R=R+T
else R=R-T
end
end
其中,ki是k的第i个窗口;point_mul_G()为椭圆曲线点为生成元G的点乘运算;booth_encode7()为窗口大小等于7的booth编码,R为椭圆曲线点为生成元G的点乘运算结果。
3.2、椭圆曲线点为一般点P
由于椭圆曲线一般点P不是固定的点,不能用大量的预计算来提高运算速度,取而代之的是用更小的窗口和更少的预计算来加速一般点P的点乘运算。即当仿射坐标系为雅各比坐标系,且椭圆曲线点为一般点P时,如图6所示,点乘的运算过程如下:
(1)计算表:
table[j]=(j+1)P j=0,1,…,15
(2)计算一般点P的点乘kP时,先对k使用窗口大小等于5的booth编码,使得每个窗口中的5bit所表示的整数都是绝对值小于等于16的有符号数;然后通过52次查表、52次点加和260次倍点计算点乘;本步骤过程如下:
R=k*P
point_mul_P(R,P,k)
R=O//无穷远点
k=booth_encode5(k)
for i=52 to 0
if(ki>0)T=table[ki-1]
else T=O
end
if(ki是正数)R=R+T
else R=R-T
end
point_double(R,R)
point_double(R,R)
point_double(R,R)
point_double(R,R)
point_double(R,R)
end
其中,ki是k的第i个窗口;point_mul_P()为椭圆曲线点为一般点P的点乘运算;booth_encode_5()为窗口大小等于5的booth编码,R为椭圆曲线点为一般点P的点乘运算结果。
综上所述,本发明使用了转化仿射坐标和预计算来优化椭圆曲线点加、倍点和点乘运算过程,从而减少点加、倍点和点乘运算的次数,提高运算效率。
4、模乘优化
蒙哥马利模乘运算是高效计算模乘运算的技术,因此,本发明对于椭圆曲线点加、倍点和点乘运算中的模乘,使用蒙哥马利模乘运算,以进一步对椭圆曲线点加、倍点和点乘运算进行优化。具体地:
(1)对于椭圆曲线点加、倍点和点乘运算中的模乘表示为:
a×b mod p
其中,a、b为大整数,p为模数;
(2)将椭圆曲线点加、倍点和点乘运算中的模乘在蒙哥马利域中转化为:
MM(A,B)=A×B×2-l mod p
其中,l为中间参数,A=a*l mod p,B=b*l mod p;
(3)当模数p满足-1/p mod 2s=1,s=32或64,如图7所示,则蒙哥马利模乘运算过程如下:
r=A×B×2-l mod p
montgomery(r,A,B,p)
T=A*B
for i=1 to K
T1=T mod 2s
T2=T1*p
T3=T+T1
T=T3/2s
end
if T≥p r=T-p
else r=T
end
其中,K为运算次数,r为椭圆曲线点加、倍点和点乘运算中的模乘在蒙哥马利域中的表示;montgomery()为蒙哥马利模乘运算。
与普通的模乘运算相比,蒙哥马利模乘运算将大整数的模运算简化成模2s和除2s,这些运算可以用移位来高效实现。对于椭圆曲线参数p,其长度为256bit,因此一般设置l=256。而在64位操作系统中,可设置s=64,K=4。
从点加、倍点和点乘运算,以及蒙哥马利模乘运算的过程中可以看出,本发明使用了汇编语言实现点加、倍点和点乘运算,以及蒙哥马利模乘运算,使用SIMD指令和BMI2指令进一步加快运算速度。
示例:
测试环境为:操作系统:Ubuntu18.04;CPU:i7-67003.41GHz(单线程)
通过本发明优化后的运算效率如表1所示。
表1:
Figure BDA0002691154650000131
从表1中可以看出,按照本发明的优化方法实现的sm2算法比国密SSL的算法实现效率更高,可以明显提高运算效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种sm2性能优化实现方法,其特征在于,所述方法为针对sm2的椭圆曲线上的点运算进行优化,包括:
将椭圆曲线点的标准坐标转化到仿射坐标系;
在仿射坐标系下,使用预计算优化椭圆曲线点加、倍点和点乘运算过程。
2.根据权利要求1所述的sm2性能优化实现方法,其特征在于,所述仿射坐标系为雅各比坐标系、标准仿射坐标系或Chudnovsky仿射坐标系。
3.根据权利要求2所述的sm2性能优化实现方法,其特征在于,当仿射坐标系为雅各比坐标系时,椭圆曲线倍点的运算过程如下:
P=(X1,Y1,Z1),R=(X3,Y3,Z3)=P+P;
point_double(R,P);
Figure FDA0002691154640000011
X3=S2-2T,
Figure FDA0002691154640000012
Z3=2Y1Z1
其中,P为椭圆曲线上的点;point_double()为椭圆曲线倍点运算;R为倍点运算结果。
4.根据权利要求2所述的sm2性能优化实现方法,其特征在于,当仿射坐标系为雅各比坐标系时,椭圆曲线点加的运算过程如下:
P=(X1,Y1,Z1),Q=(X2,Y2,Z2),R=(X3,Y3,Z3)=P+Q;
point_add(R,P,Q);
Figure FDA0002691154640000013
if(T1==T2)then
if(S1!=S2)X3=0,Y3=1,Z3=0;
else point_double(R,P);
end;
end;
U=T1-T2,W=S1-S2
X3=W2-U3-2T1U2
Y3=W(T1U2-X3)-S1U3
Z3=UZ1Z2
其中,P、Q为椭圆曲线上的两点;point_add()为椭圆曲线点加运算;point_double()为椭圆曲线倍点运算;R为点加运算结果。
5.根据权利要求2所述的sm2性能优化实现方法,其特征在于,当仿射坐标系为雅各比坐标系,且椭圆曲线点为生成元G时,点乘的运算过程如下:
(1)将把256bit分成37个窗口,每个窗口7bit,计算表:
table[i][j]=27i·(j+1)G i=0,1,…,36,j=0,1,…,63
并把表中每一个点的雅各布Z坐标转换成1;
(2)计算生成元G的点乘kG时,先对k使用窗口大小等于7的booth编码,使得每个窗口中的7bit所表示的整数都是绝对值小于等于64的有符号数;然后通过36次查表和36次点加计算点乘;本步骤过程如下:
R=k*G
point_mul_G(R,G,k)
R=O
k=booth_encode7(k)
for i=0 to 36
if(ki>0)T=table[i][ki-1]
else T=O
end
if(ki是正数)R=R+T
else R=R-T
end
end
其中,ki是k的第i个窗口;point_mul_G()为椭圆曲线点为生成元G的点乘运算;booth_encode7()为窗口大小等于7的booth编码,R为椭圆曲线点为生成元G的点乘运算结果。
6.根据权利要求2所述的sm2性能优化实现方法,其特征在于,当仿射坐标系为雅各比坐标系,且椭圆曲线点为一般点P时,点乘的运算过程如下:
(1)计算表:
table[j]=(j+1)P j=0,1,…,15
(2)计算一般点P的点乘kP时,先对k使用窗口大小等于5的booth编码,使得每个窗口中的5bit所表示的整数都是绝对值小于等于16的有符号数;然后通过52次查表、52次点加和260次倍点计算点乘;本步骤过程如下:
R=k*P
point_mul_P(R,P,k)
R=O
k=booth_encode5(k)
for i=52 to 0
if(ki>0)T=table[ki-1]
else T=O
end
if(ki是正数)R=R+T
else R=R-T
end
point_double(R,R)
point_double(R,R)
point_double(R,R)
point_double(R,R)
point_double(R,R)
end
其中,ki是k的第i个窗口;point_mul_P()为椭圆曲线点为一般点P的点乘运算;booth_encode5()为窗口大小等于5的booth编码,R为椭圆曲线点为一般点P的点乘运算结果。
7.根据权利要求1-6任一项所述的sm2性能优化实现方法,其特征在于,对于椭圆曲线点加、倍点和点乘运算中的模乘,使用蒙哥马利模乘运算。
8.根据权利要求7所述的sm2性能优化实现方法,其特征在于,对于椭圆曲线点加、倍点和点乘运算中的模乘,使用蒙哥马利模乘运算的方法为:
(1)对于椭圆曲线点加、倍点和点乘运算中的模乘表示为:
a×b mod p
其中,a、b为大整数,p为模数;
(2)将椭圆曲线点加、倍点和点乘运算中的模乘在蒙哥马利域中转化为:
MM(A,B)=A×B×2-lmod p
其中,l为中间参数,A=a*l mod p,B=b*l mod p;
(3)当模数p满足-1/p mod 2s=1,s=32或64,则蒙哥马利模乘运算过程如下:
r=A×B×2-lmod p
montgomery(r,A,B,p)
T=A*B
for i=1 to K
T1=T mod 2s
T2=T1*p
T3=T+T1
T=T3/2s
end
if T≥p r=T-p
else r=T
end
其中,K为运算次数,r为椭圆曲线点加、倍点和点乘运算中的模乘在蒙哥马利域中的表示;montgomery()为蒙哥马利模乘运算。
9.根据权利要求8所述的sm2性能优化实现方法,其特征在于,l=256。
10.根据权利要求7所述的sm2性能优化实现方法,其特征在于,在64位操作系统中,s=64,K=4。
CN202010992268.3A 2020-09-21 2020-09-21 一种sm2性能优化实现方法 Active CN112134704B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010992268.3A CN112134704B (zh) 2020-09-21 2020-09-21 一种sm2性能优化实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010992268.3A CN112134704B (zh) 2020-09-21 2020-09-21 一种sm2性能优化实现方法

Publications (2)

Publication Number Publication Date
CN112134704A true CN112134704A (zh) 2020-12-25
CN112134704B CN112134704B (zh) 2022-04-01

Family

ID=73841685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010992268.3A Active CN112134704B (zh) 2020-09-21 2020-09-21 一种sm2性能优化实现方法

Country Status (1)

Country Link
CN (1) CN112134704B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114531241A (zh) * 2022-04-22 2022-05-24 北京智芯微电子科技有限公司 数据加密方法、装置、使用该方法的电子设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104482A (zh) * 2009-12-21 2011-06-22 上海华虹集成电路有限责任公司 椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法
CN102761413A (zh) * 2011-04-27 2012-10-31 航天信息股份有限公司 p元域SM2椭圆曲线公钥密码算法的实现系统
CN104503730A (zh) * 2014-10-24 2015-04-08 山东华芯半导体有限公司 一种基于指令的大数点加、倍点运算电路及实现方法
CN106549769A (zh) * 2016-12-08 2017-03-29 广东工业大学 一种素域Fp下SM2椭圆曲线签名系统
CN107547201A (zh) * 2017-09-28 2018-01-05 哈尔滨工程大学 一种提高椭圆曲线密码体制中的标量乘计算效率的方法
CN108667623A (zh) * 2018-05-28 2018-10-16 广东工业大学 一种sm2椭圆曲线签名验证算法
US20180337780A1 (en) * 2015-12-23 2018-11-22 Intel Corporation Elliptic curve hardware integrated circuit
CN108964914A (zh) * 2017-05-17 2018-12-07 中国科学技术大学 抗侧信道攻击的sm2点乘架构
US20200044846A1 (en) * 2017-02-13 2020-02-06 Infosec Global Inc. System and method for optimized elliptic curve cryptography operations

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104482A (zh) * 2009-12-21 2011-06-22 上海华虹集成电路有限责任公司 椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法
CN102761413A (zh) * 2011-04-27 2012-10-31 航天信息股份有限公司 p元域SM2椭圆曲线公钥密码算法的实现系统
CN104503730A (zh) * 2014-10-24 2015-04-08 山东华芯半导体有限公司 一种基于指令的大数点加、倍点运算电路及实现方法
US20180337780A1 (en) * 2015-12-23 2018-11-22 Intel Corporation Elliptic curve hardware integrated circuit
CN106549769A (zh) * 2016-12-08 2017-03-29 广东工业大学 一种素域Fp下SM2椭圆曲线签名系统
US20200044846A1 (en) * 2017-02-13 2020-02-06 Infosec Global Inc. System and method for optimized elliptic curve cryptography operations
CN108964914A (zh) * 2017-05-17 2018-12-07 中国科学技术大学 抗侧信道攻击的sm2点乘架构
CN107547201A (zh) * 2017-09-28 2018-01-05 哈尔滨工程大学 一种提高椭圆曲线密码体制中的标量乘计算效率的方法
CN108667623A (zh) * 2018-05-28 2018-10-16 广东工业大学 一种sm2椭圆曲线签名验证算法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
李玉生: "SM2椭圆曲线公钥加密算法的研究与实现", 《无线互联科技》 *
邬贵明等: "一种基于FPGA的素域椭圆曲线标量乘结构", 《计算机工程与科学》 *
陈威: "基于雅可比加重射影坐标系的ECC算法设计及硬件实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114531241A (zh) * 2022-04-22 2022-05-24 北京智芯微电子科技有限公司 数据加密方法、装置、使用该方法的电子设备和存储介质
CN114531241B (zh) * 2022-04-22 2022-08-30 北京智芯微电子科技有限公司 数据加密方法、装置、使用该方法的电子设备和存储介质

Also Published As

Publication number Publication date
CN112134704B (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
CA2935823C (en) Accelerated verification of digital signatures and public keys
US7904498B2 (en) Modular multiplication processing apparatus
US8428252B1 (en) Using multiples above two with running totals in elliptic curve cryptography scalar multiplication acceleration tables
CA2297059A1 (en) Method and apparatus for fast elliptical encryption with direct embedding
EP2350811B1 (en) Method and apparatus for modulus reduction
WO2015164996A1 (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
CN113628094B (zh) 一种基于gpu的高吞吐量sm2数字签名计算系统及方法
CN109145616B (zh) 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统
CN113221193B (zh) 基于gpu的sm2数字签名与验签快速实现方法及系统
Hasegawa et al. A practical implementation of elliptic curve cryptosystems over GF (p) on a 16-bit microcomputer
CN112134704B (zh) 一种sm2性能优化实现方法
CN113010142A (zh) 一种新型脉动结点式标量点乘的双域实现系统及方法
CN112350827B (zh) 一种基于Koblitz曲线的加速标量乘计算的椭圆曲线加解密方法和系统
CN116527274B (zh) 基于多标量乘快速计算的椭圆曲线验签方法及系统
Wang et al. Tractable rational map signature
Long Binary quadratic forms
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
US20060198516A1 (en) Systems and methods for generating random addition chains
Hasegawa et al. A small and fast software implementation of elliptic curve cryptosystems over GF (p) on a 16-bit microcomputer
JP4598269B2 (ja) 楕円曲線上の高速有限体演算
Seo et al. MoTE-ECC based encryption on MSP430
Leprévost et al. Generating anomalous elliptic curves
Reyhani-Masoleh et al. On efficient normal basis multiplication
CN114143005A (zh) 一种Tate双线性对及其变体的加速方法
CN116545621B (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