CN110752931B - 一种sm2椭圆曲线公钥密码体制优化方法 - Google Patents

一种sm2椭圆曲线公钥密码体制优化方法 Download PDF

Info

Publication number
CN110752931B
CN110752931B CN201910982577.XA CN201910982577A CN110752931B CN 110752931 B CN110752931 B CN 110752931B CN 201910982577 A CN201910982577 A CN 201910982577A CN 110752931 B CN110752931 B CN 110752931B
Authority
CN
China
Prior art keywords
algorithm
optimization
multiple point
curve
adopting
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
Application number
CN201910982577.XA
Other languages
English (en)
Other versions
CN110752931A (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.)
Shaoxing Jianyuan Electric Power Group Co ltd
Zhejiang Shuangcheng Electrical Co ltd
Shaoxing Power Supply Co of State Grid Zhejiang Electric Power Co Ltd
Original Assignee
Shaoxing Jianyuan Electric Power Group Co ltd
Zhejiang Shuangcheng Electrical Co ltd
Shaoxing Power Supply Co of State Grid Zhejiang Electric Power 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 Shaoxing Jianyuan Electric Power Group Co ltd, Zhejiang Shuangcheng Electrical Co ltd, Shaoxing Power Supply Co of State Grid Zhejiang Electric Power Co Ltd filed Critical Shaoxing Jianyuan Electric Power Group Co ltd
Priority to CN201910982577.XA priority Critical patent/CN110752931B/zh
Publication of CN110752931A publication Critical patent/CN110752931A/zh
Application granted granted Critical
Publication of CN110752931B publication Critical patent/CN110752931B/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及计算机领域,尤其涉及一种SM2椭圆曲线公钥密码体制优化方法,对于SM2数字签名算法中的固定点多倍点运算,采用两个预存表的comb算法进行优化;对于SM2公钥加密算法中的固定点多倍点运算,采用两个预存表的comb算法进行优化;对于
Figure DDA0002235678240000011
曲线上的未定点多倍点运算,采用多倍点Montgomery方法进行优化;对于E(GFp)曲线上的未定点多倍点运算,采用射影坐标算法进行优化。本发明通过优化算法提高了运算效率,并且优化其数字签名、密钥交换、数据加密性能。

Description

一种SM2椭圆曲线公钥密码体制优化方法
技术领域
本发明涉及计算机领域,尤其涉及一种SM2椭圆曲线公钥密码体制优化方法。
背景技术
SM2是我国自主设计的椭圆曲线公钥密码体制,被认为具有优于其他椭圆曲线密码体制的安全性。SM2国家标准可应用于金融、政务、安全等领域提供加密、认证、密钥协商等服务,然而对于大多应用场景来说运算效率是重要的。
由于椭圆曲线公钥密码体制涉及数学运算复杂,且呈现层次关系,优化技术实现也随之复杂、互相牵制。
软件优化实现研究不如硬件优化实现充分,且实现受到软件计算平台特性影响较大,影响优化效果,优化算法需要根据软件平台特点改变形式。
发明内容
为解决上述问题,本发明提出一种SM2椭圆曲线公钥密码体制优化方法。
一种SM2椭圆曲线公钥密码体制优化方法,包括:
对于SM2数字签名算法中的固定点多倍点运算,采用两个预存表的comb算法进行优化;
对于SM2公钥加密算法中的固定点多倍点运算,采用两个预存表的comb算法进行优化;
对于E(GF2m)曲线上的未定点多倍点运算,采用多倍点Montgomery方法进行优化;
对于E(GFp)曲线上的未定点多倍点运算,采用射影坐标算法进行优化。
优选的,所述采用两个预存表的comb算法进行优化包括:
S11:对于所有窗口宽度为w的二进制串(aw,…,a1,a0),预计算[aw-1,…,a1,a0]P,2e[aw-1,…,a1,a0]P,…,2(n-1)e[aw-1,…,a1,a0]P,其中[aw-1,…,a1,a0]P=(aw-12(w-1)d+aw-22(w-2)d+…+a12d+a0)P,
Figure BDA0002235678220000025
其中n表示预计算个数;
S12:若需要,则用0填充k的左边,记k=Kw-1||…||K1||K0,每个Kj是长度为d的位串,Kj i表示Kj的i位;
S13:Q←o;
S14:对于i从e-1到0,重复执行:
S141:Q←2Q;
S142:
Figure BDA0002235678220000022
Figure BDA0002235678220000023
S15:返回Q。
优选的,所述对于E(GF2m)曲线上的未定点多倍点运算,采用多倍点Montgomery方法进行优化包括:
S21:对于次数低于m的二进制多项式a(z),b(z),计算c(z)=a(z)·b(z)modg(z);
S22:预计算,对于所有次数低于窗口宽度w的多项式u(z),计算Bu=u(z)·b(z)modg(z);
S23:预计算,对于所有次数低于w的多项式u(z),计算ru=u(z)·r(z)最高次数m+w-2,其中r(z)+zm=g(z);
S24:初始令c=0,对于k从
Figure BDA0002235678220000031
到0,重复执行;
S25:对于j从0到t-1,重复执行;
S26:令u=(uw-1,uw-2,…,u1,u0),其中ui是A[j]的(wk+i)位,c[j]=Bu+c[j]
S27:若k≠0,则c←c·zw
得到的多项式c最高次数2m-2,从高位向低位找到第一个u=(uw-1,uw-2,…,u1,u0)=(ci,ci-1,…,ci-w+2,ci-w+1),若i-w≥w+m-2,则(ci-w,ci-w-1,…,ci-w-m+2,…)=(ci-w,ci-w-1,…,ci-w-m+2,…)+ru,由高位对齐,从而消去了高w位;若i-w≤w+m-2,则使用一次一位模约减完成余下部分模约减。
优选的,所述对于E(GFp)曲线上的未定点多倍点运算,采用射影坐标算法进行优化包括:
根据Karatsuba-Ofman乘法思想对两个多精度表示的大数进行二分,x,y是两个22l比特大数,x=x12l+x0,y=y12l+y0,则xy=(x12l+x0)(y12l+y0)=x1y122l+[(x0+x1)(y0+y1)-x0y0-x1y1]2l+x0y0
本发明具备以下有益效果:
1.多个预计算表的comb乘法比单个、两个预计算表更加灵活,更多预计算表提高了效率;
2.E(GFp)曲线的多倍点下层的模乘采用Karatsuba-Ofman乘法的思想提高蒙哥马利算法的乘法效率,并且保留蒙哥马利算法约减容易、可以计算过程中同时约减的优点;
3.E(GF2m)曲线的多倍点Montgomery方法利用预计算表优化多项式模乘的模约减,提高了效率。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明实施例中多个预存表的comb算法的优化流程图;
图2是本发明实施例中多倍点Montgomery方法的优化流程图。
具体实施方式
以下结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
本发明实施例的基本思想是对于SM2数字签名算法中的固定点多倍点运算,采用两个预存表的comb算法进行优化;对于SM2公钥加密算法中的固定点多倍点运算,采用两个预存表的comb算法进行优化;对于E(GF2m)曲线上的未定点多倍点运算,采用多倍点Montgomery方法进行优化;对于E(GFp)曲线上的未定点多倍点运算,采用射影坐标算法进行优化。本发明通过优化算法提高了运算效率,并且优化其数字签名、密钥交换、数据加密性能。
基于上述构想,本发明实施例提出一种SM2椭圆曲线公钥密码体制优化方法,包括:
对于SM2数字签名算法中的固定点多倍点运算,采用两个预存表的comb算法进行优化;
对于SM2公钥加密算法中的固定点多倍点运算,采用两个预存表的comb算法进行优化;
对于E(GF2m)曲线上的未定点多倍点运算,采用多倍点Montgomery方法进行优化;
对于E(GFp)曲线上的未定点多倍点运算,采用射影坐标算法进行优化。
SM2数字签名算法为:
用户A(签名者):
1)令
Figure BDA0002235678220000052
Figure BDA0002235678220000053
表示是需要杂凑运算的比特串,符号||表示比特串的连接;
2)计算
Figure BDA0002235678220000054
e是计算得到的杂凑值的整数形式;函数Hv()为密码杂凑函数;
3)产生随机数k∈[1,n-1];
4)计算椭圆曲线上的点(x1,y1)=[k]G;
5)计算r=(e+x1)mod n,若r=0或r+k=n,则返回3;
6)计算s=((1+dA)-1·(k-r·dA))modn,若s=0,则返回3;
7)输出对消息M签名(r,s)。
对于用户B接收到消息M′及其数字签名(r′,s′),验证算法如下:
1)检验r′,s′∈[1,n-1];
2)令
Figure BDA0002235678220000055
3)计算
Figure BDA0002235678220000056
4)验证(s′+r′)modn≠0;
5)计算椭圆曲线上的点(x′,y′)=[s′]G+[t]PA
6)计算R=(e′+x1′)modn,检验R=r′。
用户A(即签名者)将身份信息、曲线参数等和需签名的文件连接起来
Figure BDA0002235678220000061
并使用哈希函数Hv计算
Figure BDA0002235678220000062
的杂凑值
Figure BDA0002235678220000063
对于椭圆曲线生成元G,计算(x1,y1)=[k]G,其中随机数k∈[1,n-1]。这里的G是选择的椭圆曲线参数的一部分,多倍点运算[k]G使用优化的多个预计算表的comb方法。
用户A接下来计算r=(e+x1)mod n,其中n为素数,则可利用Barrett模约减实现。若r=0或r+k=n,则重新选择随机数k进行相应计算。计算s=((1+dA)-1·(k-r·dA))modn,这里求逆采用二进制求逆或共同求逆计算得到,模约减仍使用Barrett模约减。若s=0,则重新选择随机数k进行相应计算,若得到有效结果,用户A输出对消息M签名(r,s)。
用户B(数字签名验证者)接收到消息M′及其数字签名(r′,s′),检验r′,s′∈[1,n-1]。类似地,计算
Figure BDA0002235678220000064
使用Barrett模约减验证(s′+r′)modn≠0。计算椭圆曲线上的点(x′,y′)=[s′]G+[t]PA,这里可使用已经公开的同时多倍点计算方法实现。最后计算R=(e′+x1′)modn,检验R=r′。若每一步均验证成功,则签名有效。
SM2公钥加密算法为:
用户A:
1)产生随机数k∈[1,n-1];
2)计算椭圆曲线上的点c1=[k]G=(x1,y1),并按照x1||y1转换为比特串;
3)计算椭圆曲线上的点S=[h]PB,若S为无穷远点o,则报错退出;
4)计算椭圆曲线上的点[k]PB=(x2,y2);
5)计算t=KDF(x2||y2,klen),若t=0,则返回1;
6)计算
Figure BDA0002235678220000065
7)计算c2=hash(x2||M||y2);
8)输出密文c=c1||c2||c3
用户B:
1)取出比特串c1,检验其是否满足椭圆曲线方程,不满足则报错退出;
2)计算椭圆曲线上的点S=[h]c1,若S为无穷远点ο,则报错退出;
3)计算椭圆曲线上的点[dB]c1=(x2,y2);
4)计算t=KDF(x2||y2,klen),若t=0,则报错退出;
5)取出比特串c2计算
Figure BDA0002235678220000071
6)计算u=hash(x2||M′||y2),若u≠c3则报错退出;
7)输出明文M′。
用户A产生随机数k∈[1,n-1],计算椭圆曲线上的点c1=[k]G=(x1,y1),并按照x1||y1转换为比特串,[k]G的计算采用优化的多个预计算表的comb方法。计算椭圆曲线上的点S=[h]PB,若S为无穷远点ο,则报错退出。h为n的余因子,PB是加密通信另一方的公钥,故视为非固定点。[h]PB的计算采用优化的多倍点Montgomery算法。仍采用优化的多倍点Montgomery算法计算椭圆曲线上的点[k]PB=(x2,y2)。计算t=KDF(x2||y2,klen),若t=0,则另选随机数k进行相应计算。计算
Figure BDA0002235678220000072
计算c2=hash(x2||M||y2),输出密文c=c1||c2||c3
用户B取出比特串c1,检验其是否满足椭圆曲线方程,不满足则报错退出。采用优化的多倍点Montgomery算法计算椭圆曲线上的点S=[h]c1,若S为无穷远点ο,则报错退出。采用优化的多倍点Montgomery算法计算椭圆曲线上的点[dB]c1=(x2,y2)。计算t=KDF(x2||y2,klen),若t=0,则报错退出。取出比特串c2计算
Figure BDA0002235678220000073
计算u=hash(x2||M′||y2),若u≠c3则报错退出。验证成功则输出明文M′。
SM2密钥交换算法为:
用户A:
1)产生随机数rA∈[1,n-1];
2)计算椭圆曲线上的点RA=[rA]G=(x1,y1);
3)将RA发送给用户B。
用户B:
1)产生随机数rB∈[1,n-1];
2)计算椭圆曲线上的点RB=[rB]G=(x2,y2);
3)计算
Figure BDA0002235678220000081
4)计算
Figure BDA0002235678220000082
5)验证RA满足椭圆曲线方程,不满足则报错退出;满足则计算
Figure BDA0002235678220000083
Figure BDA0002235678220000084
6)计算椭圆曲线上的点
Figure BDA0002235678220000085
若V是无穷远点则协商失败;
7)计算KB=KDF(xV||yV||ZA||ZB,klen);
8)计算SB=hash(0x02||yV||hash(xV||ZA||ZB||x1||y1||x2||y2));
9)将RB,SB发给用户A。
用户A:
4)从RA取出元素x1,计算
Figure BDA0002235678220000086
5)计算
Figure BDA0002235678220000087
6)验证RB满足椭圆曲线方程,不满足则报错退出;满足则计算
Figure BDA0002235678220000088
Figure BDA0002235678220000089
7)计算椭圆曲线上的点
Figure BDA0002235678220000091
若U是无穷远点则协商失败。
8)计算KA=KDF(xV||yV||ZA||ZB,klen);
9)计算S1=hash(0x02||yV||hash(xV||ZA||ZB||x1||y1||x2||y2)),检验S1=SB是否成立,不成立则协商失败。
10)计算SA=hash(0x03||yV||hash(xV||ZA||ZB||x1||y1||x2||y2)),发送给用户B。
用户B:
11)计算S2=hash(0x03||yV||hash(xV||ZA||ZB||x1||y1||x2||y2)),并检验S2=SA是否成立,不成立则密钥协商失败。
用户A:产生随机数rA∈[1,n-1],计算椭圆曲线上的点RA=[rA]G=(x1,y1),采用多个预计算表的comb方法,然后将RA发送给用户B。
用户B:产生随机数rB∈[1,n-1],计算椭圆曲线上的点RB=[rB]G=(x2,y2),采用多个预计算表的comb方法。计算
Figure BDA0002235678220000092
计算
Figure BDA0002235678220000093
采用Barrett模约减。验证RA满足椭圆曲线方程,不满足则报错退出;满足则计算
Figure BDA0002235678220000094
计算椭圆曲线上的点
Figure BDA0002235678220000095
若V是无穷远点则协商失败。可采用已公开的同时多倍点计算方法。计算KB=KDF(xV||yV||ZA||ZB,klen)。计算SB=hash(0x02||yV||hash(xV||ZA||ZB||x1||y1||x2||y2));将RB,SB发给用户A。
用户A:从RA取出元素x1,计算
Figure BDA0002235678220000096
计算
Figure BDA0002235678220000097
Figure BDA0002235678220000098
采用Barrett模约减实现。验证RB满足椭圆曲线方程,不满足则报错退出;满足则计算
Figure BDA0002235678220000099
计算椭圆曲线上的点
Figure BDA00022356782200000910
若U是无穷远点则协商失败。计算KA=KDF(xV||yV||ZA||ZB,klen)。
计算S1=hash(0x02||yV||hash(xV||ZA||ZB||x1||y1||x2||y2)),检验S1=SB是否成立,不成立则协商失败。计算SA=hash(0x03||yV||hash(xV||ZA||ZB||x1||y1||x2||y2)),发送给用户B。
用户B:计算S2=hash(0x03||yV||hash(xV||ZA||ZB||x1||y1||x2||y2)),并检验S2=SA是否成立,不成立则密钥协商失败。
如图1所示,在上述SM2数字签名、公钥加密、密钥交换过程中采用优化的多个预存表的comb算法为:
S11:对于所有窗口宽度为w的二进制串(aw,…,a1,a0),预计算[aw-1,…,a1,a0]P,2e[aw-1,…,a1,a0]P,…,2(n-1)e[aw-1,…,a1,a0]P,其中
[aw-1,…,a1,a0]P=(aw-12(w-1)d+aw-22(w-2)d+…+a12d+a0)P,e=[d/n],其中n表示预计算个数;
S12:若需要,则用0填充k的左边,记k=Kw-1||…||K1||K0,每个Kj是长度为d的位串,Kj i表示Kj的i位;
S13:Q←o;
S14:对于i从e-1到0,重复执行:
S141:Q←2Q;
S142:
Figure BDA0002235678220000101
Figure BDA0002235678220000102
S15:返回Q。
通过comb算法优化灵活改变预计算表的个数,较多预计算表可以提高计算效率,可以充分利用软件平台上的存储空间。
如图2所示,在上述SM2数字签名、公钥加密、密钥交换过程中对于E(GF2m)曲线上的未定点多倍点运算,采用多倍点Montgomery方法进行优化为:
S21:对于次数低于m的二进制多项式a(z),b(z),计算c(z)=a(z)·b(z)modg(z);
S22:预计算,对于所有次数低于窗口宽度w的多项式u(z),计算Bu=u(z)·b(z)modg(z);
S23:预计算,对于所有次数低于w的多项式u(z),计算ru=u(z)·r(z)最高次数m+w-2,其中r(z)+zm=g(z);
S24:初始令c=0,对于k从
Figure BDA0002235678220000111
到0,重复执行;
S25:对于j从0到t-1,重复执行;
S26:令u=(uw-1,uw-2,…,u1,u0),其中ui是A[j]的(wk+i)位,c[j]=Bu+c[j]
S27:若k≠0,则c←c·zw
得到的多项式c最高次数2m-2,从高位向低位找到第一个u=(uw-1,uw-2,…,u1,u0)=(ci,ci-1,…,ci-w+2,ci-w+1),若i-w≥w+m-2,则(ci-w,ci-w-1,…,ci-w-m+2,…)=(ci-w,ci-w-1,…,ci-w-m+2,…)+ru,由高位对齐,从而消去了高w位;若i-w≤w+m-2,则使用一次一位模约减完成余下部分模约减。
对于E(GF2m)曲线上的未定点多倍点蒙哥马利方法,本发明优化算法中包含的GF2m上的模乘,使用窗口comb乘法加速并改进取模,总体上利用一定额外存储空间加速了乘法,同时一次多位模约减优于未优化的一次一位模约减。
在上述SM2数字签名、公钥加密、密钥交换过程中采用的对于E(GFp)曲线上的未定点多倍点运算,采用射影坐标算法进行优化为:
根据Karatsuba-Ofman乘法思想对两个多精度表示的大数进行二分,x,y是两个22l比特大数,x=x12l+x0,y=y12l+y0,则xy=(x12l+x0)(y12l+y0)=x1y122l+[(x0+x1)(y0+y1)-x0y0-x1y1]2l+x0y0,这种二分将原本的乘法转化了较小的三个乘法和几个代价较小加法(减法)。需要指出,这种二分并不需要平均分割大数,并且可以在适当情况下停止。
使用改进多精度表示的蒙哥马利模乘,对xR,yR mod N计算xyR mod N,其中进制基数为b,xR=(xn-1xn-2…x0)b,yR=(yn-1yn-2…y0)b,N=(Nn-1Nn-2…N0)b,N<R,R=bn,xRyR<NR。
对xR,yR分别进行二分,不要求平均分割,但分割不破坏最小的单精度表示(即不分割xi,yi),在此仍以平均分割为例简明叙述:
递归地进行分割,直到分割得到的单精度整数可以直接相乘,每一级分割后先计算x0y0,再计算[(x0+x1)(y0+y1)-x0y0-x1y1]2l,最后计算x1y122l,设T=xRyR=(T2n-1T2n-2…T0)b,则T0,T1,…T2n-1会依次被计算出。
在计算过程中同步进行蒙哥马利约减,即计算TR-1mod N。具体是,对i=0,1,…n-1,Karatsuba-Ofman乘法计算出Ti后,T←T+bi*N*(-TiN-1)mod R,则Ti=0且T mod N不变。最终结果xyR mod N=(T2n-1T2n-2…Tn)b
传统的蒙哥马利模乘在软件平台上的多精度形式(称为multi precisioncase)为积扫描方式(对于i计算xiybi相加得到xy),这是没有优化过的乘法实现方式,本发明优化乘法实现方式,并且保留蒙哥马利模乘不需要做平凡除法的优点和在计算乘积同时约化的优点(T←T+bi*N*(-TiN-1)mod R后Ti为0)。
本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (1)

1.一种SM2椭圆曲线公钥密码体制优化方法,其特征在于,包括:
对于SM2数字签名算法中的固定点多倍点运算,采用两个预存表的comb算法进行优化;
对于SM2公钥加密算法中的固定点多倍点运算,采用两个预存表的comb算法进行优化;
对于
Figure FDA0003761860410000014
曲线上的未定点多倍点运算,采用多倍点Montgomery方法进行优化;
对于E(GFp)曲线上的未定点多倍点运算,采用射影坐标算法进行优化;
所述采用两个预存表的comb算法进行优化包括:
S11:对于所有窗口宽度为w的二进制串(aw,…,a1,a0),预计算[aw-1,…,a1,a0]P,2e[aw-1,…,a1,a0]P,…,2(n-1)e[aw-1,…,a1,a0]P,其中[aw-1,…,a1,a0]P=(aw-12(w-1)d+aw-22(w-2)d+…+a12d+a0)P,
Figure FDA0003761860410000011
其中n表示预计算个数;
S12:若需要,则用0填充k的左边,记k=Kw-1||…||K1||K0,每个Kj是长度为d的位串,Kj i表示Kj的i位;
S13:Q←ο;
S14:对于i从e-1到0,重复执行:
S141:Q←2Q;
S142:
Figure FDA0003761860410000012
Figure FDA0003761860410000013
S15:返回Q;
所述对于
Figure FDA0003761860410000015
曲线上的未定点多倍点运算,采用多倍点Montgomery方法进行优化包括:
S21:对于次数低于m的二进制多项式a(z),b(z),计算c(z)=a(z)·b(z)modg(z);
S22:预计算,对于所有次数低于窗口宽度w的多项式u(z),计算Bu=u(z)·b(z)modg(z);
S23:预计算,对于所有次数低于w的多项式u(z),计算ru=u(z)·r(z)最高次数m+w-2,其中r(z)+zm=g(z);
S24:初始令c=0,对于k从
Figure FDA0003761860410000021
到0,重复执行;
S25:对于j从0到t-1,重复执行;
S26:令u=(uw-1,uw-2,…,u1,u0),其中ui是A[j]的(wk+i)位,c[j]=Bu+c[j]
S27:若k≠0,则c←c·zw
得到的多项式c最高次数2m-2,从高位向低位找到第一个u=(uw-1,uw-2,…,u1,u0)=(ci,ci-1,…,ci-w+2,ci-w+1),若i-w≥w+m-2,则(ci-w,ci-w-1,…,ci-w-m+2,…)=(ci-w,ci-w-1,…,ci-w-m+2,…)+ru,由高位对齐,从而消去了高w位;若i-w≤w+m-2,则使用一次一位模约减完成余下部分模约减;
所述对于E(GFp)曲线上的未定点多倍点运算,采用射影坐标算法进行优化包括:
根据Karatsuba-Ofman乘法思想对两个多精度表示的大数进行二分,x,y是两个22l比特大数,x=x12l+x0,y=y12l+y0,则xy=(x12l+x0)(y12l+y0)=x1y122l+[(x0+x1)(y0+y1)-x0y0-x1y1]2l+x0y0
CN201910982577.XA 2019-10-16 2019-10-16 一种sm2椭圆曲线公钥密码体制优化方法 Active CN110752931B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910982577.XA CN110752931B (zh) 2019-10-16 2019-10-16 一种sm2椭圆曲线公钥密码体制优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910982577.XA CN110752931B (zh) 2019-10-16 2019-10-16 一种sm2椭圆曲线公钥密码体制优化方法

Publications (2)

Publication Number Publication Date
CN110752931A CN110752931A (zh) 2020-02-04
CN110752931B true CN110752931B (zh) 2022-10-14

Family

ID=69278470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910982577.XA Active CN110752931B (zh) 2019-10-16 2019-10-16 一种sm2椭圆曲线公钥密码体制优化方法

Country Status (1)

Country Link
CN (1) CN110752931B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114895870B (zh) * 2022-04-29 2022-11-25 中国人民解放军93216部队 基于fpga实现的高效可重构sm2点乘方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753306A (zh) * 2009-12-22 2010-06-23 上海大学 运用Montgomery型椭圆曲线的数字签名认证方法
CN102761413A (zh) * 2011-04-27 2012-10-31 航天信息股份有限公司 p元域SM2椭圆曲线公钥密码算法的实现系统
CN102761412A (zh) * 2011-04-27 2012-10-31 航天信息股份有限公司 p元域SM2椭圆曲线公钥加密、解密与加解密混合系统
CN107425968A (zh) * 2017-06-22 2017-12-01 广东工业大学 一种二进制域F2m下的SM2椭圆曲线公钥加密算法的实现系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3033965B1 (fr) * 2015-03-18 2018-12-07 Maxim Integrated Products, Inc. Systèmes et procédés de commande de dispositifs de cryptage sur courbe elliptique sécurisés

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753306A (zh) * 2009-12-22 2010-06-23 上海大学 运用Montgomery型椭圆曲线的数字签名认证方法
CN102761413A (zh) * 2011-04-27 2012-10-31 航天信息股份有限公司 p元域SM2椭圆曲线公钥密码算法的实现系统
CN102761412A (zh) * 2011-04-27 2012-10-31 航天信息股份有限公司 p元域SM2椭圆曲线公钥加密、解密与加解密混合系统
CN107425968A (zh) * 2017-06-22 2017-12-01 广东工业大学 一种二进制域F2m下的SM2椭圆曲线公钥加密算法的实现系统

Also Published As

Publication number Publication date
CN110752931A (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
US8184803B2 (en) Hash functions using elliptic curve cryptography
US7995752B2 (en) Method for accelerating cryptographic operations on elliptic curves
EP0503119B1 (en) Public key cryptographic system using elliptic curves over rings
Paar et al. Introduction to public-key cryptography
US20020051537A1 (en) Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
JP2002533787A (ja) 楕円曲線上での暗号操作の速度を高める方法
US6088798A (en) Digital signature method using an elliptic curve, a digital signature system, and a program storage medium having the digital signature method stored therein
EP2351287B1 (en) Method of generating a cryptographic key, network and computer program therefor
Lei et al. NTRU-KE: A lattice-based public key exchange protocol
JP2004501385A (ja) 楕円曲線暗号化方法
CN114117547B (zh) 一种基于预计算表的sm9数字签名加速生成方法以及数字签名加速验证方法
US6480606B1 (en) Elliptic curve encryption method and system
WO2009115824A1 (en) Encryption method
CN110752931B (zh) 一种sm2椭圆曲线公钥密码体制优化方法
Aydos et al. Implementing network security protocols based on elliptic curve cryptography
Bhatia et al. Post-Quantum Cryptography
JP4598269B2 (ja) 楕円曲線上の高速有限体演算
US8135131B2 (en) Method for calculating compressed RSA moduli
Krikun et al. Parallelized Montgomery Exponentiation in GF (2 k) for Diffie–Hellman Key Exchange Protocol.
Easttom More approaches to quantum-resistant cryptography
Schaefer An introduction to cryptography
Sun et al. Batch blind signatures on elliptic curves
JPH09160492A (ja) 署名方式
Easton POST-QUANTUM CRYPTOGRAPHY: AN IMPLEMENTATION OF THE LINEAR EQUIVALENCE SIGNATURE SCHEME
JP2003218858A (ja) 署名生成方法及び署名検証方法及び署名生成装置及び署名検証装置及び署名生成プログラム及び署名検証プログラム及び署名生成プログラムを格納した記憶媒体及び署名検証プログラムを格納した記憶媒体

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