CN101753306B - 运用Montgomery型椭圆曲线的数字签名认证方法 - Google Patents
运用Montgomery型椭圆曲线的数字签名认证方法 Download PDFInfo
- Publication number
- CN101753306B CN101753306B CN2009102005314A CN200910200531A CN101753306B CN 101753306 B CN101753306 B CN 101753306B CN 2009102005314 A CN2009102005314 A CN 2009102005314A CN 200910200531 A CN200910200531 A CN 200910200531A CN 101753306 B CN101753306 B CN 101753306B
- Authority
- CN
- China
- Prior art keywords
- user
- signature
- elliptic curve
- calculate
- mod
- 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.)
- Expired - Fee Related
Links
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/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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3252—Cryptographic 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
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)
- Collating Specific Patterns (AREA)
Abstract
本发明公开了一种运用Montgomery型椭圆曲线的数字签名认证方法,其步骤如下:1、定义椭圆曲线域参数D:D=(F,a,b,p),其中,F表示有限域GF(pn),a,b∈GF(pn),P表示一个基点,#E(GF(pn)为椭圆曲线的阶;2、建立用户A和用户B之间通信链路:3、用户A采用ECDSA算法对消息M签名发送给用户B;4、用户B验证(r,s)用户A发送的消息M的签名是否是有效签名,若v=r成立,签名有效,接受信息。该方法能够用a=(u1+u2*kA)modp1 n代替(x1,y1)=u1G+u2Q运算直接参与点乘运算,然后将快速Montgomery运算和Montgomery曲线特性相结合,能够减少后续步骤的运算,实验结果表明,这种方法虽然加大信道的传输容量,但是避免了(x1,y1)=u1G+u2Q异步运算,使验证签名运算时间降低为产生签名运算时间约为1.1倍,缩短签名运算时间,提高运算速度,能有效抵抗时间攻击和能量攻击。
Description
技术领域
本发明涉及一种运用Montgomery型椭圆曲线的数字签名认证方法,在有限的资源条件下建立通信连接时,能够快速实现安全数字签名及其认证的方法。
背景技术
随着电子签名法在世界范围内的发展使得数字签名的基础设施不断地发展,有效的实现公钥密码系统(如数字签名)变得越来越重要。数字签名是通过某种密码运算对要传输的信息进行处理生成用以确认信息来源以及核实信息是否发生变化的数字串,这种电子式的签名还可进行技术验证,其验证的准确度比一般手工签名和图章的验证准确度更高。数字签名是目前电子商务、电子政务中应用最普遍、技术最成熟、可操作性最强的一种电子签名方法。数字签名认证方法可以通过规范程序和科学方法来鉴定签名人的身份、验证传输文件有无被窜改、鉴定电子数据内容,以确保传输文件的完整性、真实性和不可抵赖性。数字签名的应用范围十分广泛,凡是需要对用户的身份进行判断的情况都可以使用,比如加密信件、商务信函、定货购买系统、远程金融交易、自动模式处理等,同时,保障电子数据交换(EDI)安全性的应用是一个突破性的进展。
1985年Neal Koblitz和Victor Miller提出了椭圆曲线密码(ECC),由于椭圆曲线的安全性高、占用带宽小、计算复杂度高等众多优势,能够充分地保证各种通信网络的安全,所以对这一密码体制的研究和实现迅速普及。椭圆曲线数字签名算法(ECDSA)是椭圆曲线密码体制的重要组成部分,它由签名的产生和签名的认证两部分组成。其中在ECDSA的仿真计算中,影响计算速度的关键是椭圆曲线中倍点运算。所以,如何设计出适合快速认证算法,其中的关键是降低模乘。对于Weierstrass椭圆曲线计算倍点,最常用标量乘法为NAF滑动窗口法,为了减少预计算量,窗口应由NAF的最左边向右移动,直到所在二进制表示对应的数为奇数才进行操作。另外,由于椭圆曲线群是特殊的Abel群,所以两点相加和两点相减所需要的计算量相同。对于Weierstrass型椭圆曲线上的点加运算,在射影坐标下由于计算Y坐标,所以点加的计算量为12M+2S(M表示为乘法,S为平方,I为求逆),倍点所需要的计算量为7M+3S。在传统的ECDSA算法中,在计算(x1,y1)=u1G+u2Q时,首先分别计算多倍点u1G和u2Q,然后再计算u1G+u2Q的点加运算,最后再进行验证运算,因此,验证签名所用时间常用是签名产生所用时间的两倍。根据传统ECDSA的缺陷,本发明在改进ECDSA算法中应尽量避免(x1,y1)=u1G+u2Q的运算,在通信传输和Montgomery型椭圆曲线倍点运算中作出必要的改进。
1987年,Montgomery引入了Montgomery型椭圆曲线,与传统的Weierstrass型ECC曲线相比,它具有下列优点:(1)更快的模乘计算速度;(2)不需要预计算,可以在存储空间有限的条件下实现;(3)可以并行计算,提高计算速度;(4)能够有效的抵抗时间攻击和能量攻击,因此在ECC密码体系中,加快ECDSA的签名认证速度,同时减少签名与认证之间的运算差距,具有一定优势。
然而,对于模运算,模乘和模幂运算是两种相对于模加和模减运算计算度比较大的运算,由于在ECDSA中,存在必要的模逆运算,不可避免要牵涉到模幂运算。对于大整数模幂乘运算Me mod n,例如,通常的算法是将指数e二进制化来实现的,即将指数e表示成二进制形式:ei∈{0,1},i=0,1,2…k-1,之后再进行一系列迭代运算:
1)设e=ek-1ek-2…e1e0;
2)置变量c=1;
3)for j=k-1 to 0 step-1
c=c2 mod n
if ei=1 then c=c*m mod n;
4)c即为所求。
发明内容
鉴于以上所述现有技术存在的问题和不足,本发明的目的在于提供一种运用Montgomery型椭圆曲线的数字签名认证方法,它在签名和签名认证过程中能减少后续步骤的运算,避免异步运算,缩短签名运算时间,提高运算速度,能有效抵抗时间攻击和能量攻击,提高椭圆曲线密码实现效率。
为达到上述目的,解决现有技术存在的问题,本发明所采用的技术方案是:上述运用Montgomery型椭圆曲线的数字签名认证方法,其具体步骤如下:
(1)定义椭圆曲线域参数D:
D=(F,a,b,p),
其中,F表示有限域GF(pn),a,b∈GF(pn),P表示一个基点,n表示点P的阶,p为域的特征,#E(GF(pn))为椭圆曲线的阶;其具体求取是利用Weil定理,步骤如下:
11、建立素数域,建立ECC计算平台;
12、建立椭圆曲线方程,利用穷举法和数论中二次剩余项充要条件具体求取素数域中曲线的阶数,即cout=#E(FP),其中Fp为素域;
13、在计算出素数域的椭圆曲线的阶后,利用Weil定理、Hasse定理以及数论部分知识,求取在扩域中的pn的椭圆曲线的阶数;
(2)建立用户A和用户B之间通信链路;
(3)用户A采用ECDSA算法对消息M签名发送给用户B,其具体步骤如下:
31、在区间[1,n-1]上生成二个随机数k,kA,n为点P的阶;
32、计算kG=(x1,y1)和r=x1 mod p1 n,其中y1不计算,(x1,y1)为椭圆曲线上的坐标,G为基点,p1为域的特征;
33、计算k-1 mod p1 n;
34、计算e=MD5(M);
35、计算s=k-1(e+kAr)mod p1 n,若s=0,则转步骤31,否则转步骤36;
36、用户A对消息M的签字是(r,s),用户A将(m||r||s||kA)传给用户B,其中,M为消息、A为用户,(r,s)为用户A的签字,kA为随机数,||是连接符号;
(4)用户B验证(r,s)是否是用户A发送的消息M的有效签名,其中,(r,s)是用户A的签字,其签名认证步骤如下:
41、验证(r,s)是否是整数,若是[1,p1 n]上的整数,则转步骤42,若不是,则丢弃该签名,结束验证;
42、计算e=MD5(M),其中,M表示消息;
43、依次计算以下四式:w=s-1 mod p1 n,u1=ew mod p1 n,
u2=rw mod p1 n,a=(u1+u2*kA)mod p1 n;
其中,kA为用户A传来的随机数,mod是模运算符;
44、在Montgomery曲线上计算a*G的倍点运算;
45、计算v=x1 mod p1 n;
46、检验v=r是否成立,若v=r成立,则用户B接受该签字,签名有效,接受信息;否则拒绝接受该签字,拒绝接受信息。
本发明的运用Montgomery型椭圆曲线的数字签名认证方法与已有技术相比较,具有如下显而易见的突出实质性特点和显著优点:该方法能够避免现有技术通常的算法中直接计算(x1,y1)=u1G+u2Q,它的验证签名算法的时间远远比产生签名算法的时间长,用a=(u1+u2*kA)mod p1 n代替(x1,y1)=u1G+u2Q运算直接参与点乘运算,同时引入模运算,使得在求欧拉函数时只需进行一次模幂运算,一次模除运算,一次模减运算,然后将快速Montgomery运算和Montgomery曲线特性相结合,能够减少后续步骤的运算(即在Montgomery型曲线上的快速点乘计算)。实验结果表明,这种方法虽然加大信道的传输容量,但是避免了(x1,y1)=u1G+u2Q异步运算,使验证签名运算时间降低为产生签名运算时间约为1.1倍,减少约45%,缩短签名运算时间,提高运算速度,能有效抵抗时间攻击和能量攻击,其算法提高了椭圆曲线密码实现效率。
附图说明
图1为本发明的运用Montgomery型椭圆曲线的数字签名认证方法流程图;
图2为本发明中的小数模为3时两种验证签名算法认证与生成签名时间比例对比图,其中纵坐标为验证签名时间与产生签名时间的比例,横坐标为文件大小,横虚线表示现有最好的验证签名时间与产生签名时间比例,斜细线表示本发明算法验证签名时间与产生签名时间比例。
具体实施方式
下面结合附图对本发明的运用Montgomery型椭圆曲线数字签名认证方法作进一步详细的说明。
本发明的运用Montgomery型椭圆曲线的数字签名认证方法的签名流程步骤如下:
(1)定义椭圆曲线域参数D:首先,要给出椭圆曲线域参数,定义一条椭圆曲线和一个基点,进而确定曲线上的各点运算。在ECDSA过程,定义椭圆曲线域参数D为:
D=(F,a,b,p),
其中,F表示有限域GF(pn),a,b∈GF(pn),P表示一个基点,n表示点P的阶,p为域的特征,#E(GF(pn))为椭圆曲线的阶,其具体求取是利用Weil定理,步骤如下:
11、建立素数域F,建立ECC计算平台;
12、建立椭圆曲线方程,利用穷举法和数论中二次剩余项充要条件具体求取素数域中曲线的阶,即count=#E(Fp),其中Fp为素域;
13、在计算出素数域的椭圆曲线的阶以后,利用Weil定理、Hasse定理以及数论部分知识,求取在扩域中的pn的椭圆曲线的阶:首先根据Weil定理,首先计算A=p+1-#E(Fp),同时程序记入此值;随后建立二次方程X2-AX+p=0,同时利用二次方程的万能求根公式求取此方程x1和x2,并记入两个根值;最后利用Weil定理求取扩域的阶:完成对扩域阶的计算;
(2)建立用户A和用户B之间通信链路:当两个任意用户A和B需要进行数字签名时,建立用户A和B之间通信链路,如图1所示;
(3)用户A采用ECDSA算法对消息M签名发送给用户B,如图1所示,其数字签名步骤如下:
31、在区间[1,n-1]上生成二个随机数k,kA,n为点P的阶;
32、计算kG=(x1,y1)和r=x1 mod p1 n,其中,y1不计算,(x1,y1)为椭圆曲线上的坐标,G为基点,p1为域的特征;
33、计算k-1 mod p1 n
34、计算e=MD5(M);
35、计算s=k-1(e+kAr)mod p1 n,若s=0,则转步骤31;若s≠0,则转步骤36;
36、用户A对消息M的签字是(r,s),用户A将(M ||r||s||kA)传给用户B,其中,M为消息,A为用户,(r,s)为用户A的签字,kA为随机数,||是连接符号;
(4)用户B接收到信息M后,验证(r,s)是否是用户A发送的消息M的有效签名,其中(r,s)是用户A的签字,如图1所示,步骤如下:
41、验证r,s是否是[1,p1 n]上的整数,若是[1,p1 n]上的整数,则转步骤42,若不是,则丢弃该签名,结束验证;
42、计算e=MD5(M),其中,M表示消息;
43、依次计算以下四式:w=s-1 mod p1 n,u1=ew mod p1 n,
u2=rw mod p1 n,a=(u1+u2*kA)mod p1 n
其中,kA为用户A传来的随机数,mod为模运算符;
44、在Montgomery曲线上计算a*G的倍点运算;
46、验证用户A发送的消息M的签名是否是有效签名,检验v=r是否成立,若v=r成立,则用户B接受该签字,签名有效,接受信息,否则拒绝接受该签字,拒绝接受信息。
如图2所示,图2是小数模为3时两种签名算法认证与生成签名时间比例对比图,实验结果表明,这种方法虽然加大信道的传输容量,但是避免了(x1,y1)=u1G+u2Q异步运算使验证签名运算时间降低为产生签名运算时间约为1.1倍,减少约45%,缩短签名运算时间。
Claims (1)
1.一种运用Montgomery型椭圆曲线的数字签名认证方法,其特征在于该方法具体步骤如下:
(1)定义椭圆曲线域参数D:
D=(F,a,b,p),
其中,F表示有限域GF(pn),a,b∈GF(pn),P表示一个基点,n表示点P的阶,p为域的特征,#E(GF(pn))为椭圆曲线的阶,其具体求取是利用Weil定理,步骤如下:
11、建立素数域,建立椭圆曲线密码ECC计算平台;
12、建立椭圆曲线方程,利用穷举法和数论中二次剩余项充要条件具体求取素数域中曲线的阶数,即cout=#E(FP),其中Fp为素数域;
13、在计算出素数域的椭圆曲线的阶后,利用Weil定理、Hasse定理以及数论部分知识,求取在扩域中的pn的椭圆曲线的阶数;
(2)建立用户A和用户B之间通信链路;
(3)用户A采用椭圆曲线数字签名算法,即ECDSA算法对消息M签名发送给用户B,其具体步骤如下:
31、在区间[1,n-1]上生成二个随机数k,kA,n为点P的阶;
32、计算kG=(x1,y1)和r=x1 mod p1 n 其中,y1不计算,(x1,y1)为椭圆曲线上的坐标,G为基点,p1为域的特征;
33、计算k-1 mod p1 n;
34、计算e=MD5(M);
35、计算s=k-1(e+kAr)mod p1 n,若s=0,则转步骤31,否则转步骤36;
36、用户A对消息M的签名是(r,s),用户A将(M‖r‖s‖kA)传给用户B,其中,M为消息,A为用户,(r,s)为用户A的签名,kA为随机数,||是连接符号;
(4)用户B验证(r,s)是否是用户A发送的消息M的有效签名,其中(r,s)是用户A的签名,其具体认证步骤如下:
41、验证(r,s)是否是整数,若是[1,p1 n]上的整数,则转步骤42,若不是,则丢弃该签名,结束验证;
42、计算e=MD5(M),其中,M表示消息;
43、依次计算以下四式:w=s-1 mod p1 n,u1=ewmod p1 n,u2=rwmod p1 n,a=(u1+u2*kA)mod p1 n
其中,kA为用户A传来的随机数,mod为模运算符;
44、在Montgomery曲线上计算a*G的倍点运算;
45、计算v=x1 mod p1 n;
46、检验v=r是否成立,若v=r成立,则用户B接受该签名,签名有效,接受信息;否则拒绝接受该签名,拒绝接受信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102005314A CN101753306B (zh) | 2009-12-22 | 2009-12-22 | 运用Montgomery型椭圆曲线的数字签名认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102005314A CN101753306B (zh) | 2009-12-22 | 2009-12-22 | 运用Montgomery型椭圆曲线的数字签名认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101753306A CN101753306A (zh) | 2010-06-23 |
CN101753306B true CN101753306B (zh) | 2012-08-15 |
Family
ID=42479749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102005314A Expired - Fee Related CN101753306B (zh) | 2009-12-22 | 2009-12-22 | 运用Montgomery型椭圆曲线的数字签名认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101753306B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111314081A (zh) * | 2020-01-16 | 2020-06-19 | 西安邮电大学 | 一种用于物联网设备的轻量级椭圆曲线数字签名方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761415B (zh) * | 2011-04-27 | 2015-04-08 | 航天信息股份有限公司 | p元域SM2椭圆曲线的数字签名生成、验证及混合系统 |
US8850213B2 (en) * | 2013-01-29 | 2014-09-30 | Infineon Technologies Ag | Method for verifying an electronic signature and data processing device |
CN105610583B (zh) * | 2014-11-04 | 2018-10-26 | 上海华虹集成电路有限责任公司 | 用于抵御错误曲线攻击的ecdsa方法 |
CN106817214B (zh) * | 2015-11-30 | 2019-11-12 | 上海华虹集成电路有限责任公司 | 标量的规则naf序列的生成方法 |
US10505744B2 (en) * | 2017-06-29 | 2019-12-10 | Intel Corporation | Technologies for robust computation of elliptic curve digital signatures |
CN108667621A (zh) * | 2018-05-14 | 2018-10-16 | 河南科技大学 | 一种椭圆曲线数字签名方法 |
CN109981289B (zh) * | 2019-03-26 | 2020-03-31 | 电子科技大学 | 隐式证书下的椭圆曲线数字签名算法的批认证方法 |
CN110752931B (zh) * | 2019-10-16 | 2022-10-14 | 浙江双成电气有限公司 | 一种sm2椭圆曲线公钥密码体制优化方法 |
CN110933675B (zh) * | 2019-11-08 | 2021-02-02 | 北京邮电大学 | 一种无线传感器网络认证方法、系统与电子设备 |
CN111756538B (zh) * | 2020-06-28 | 2023-10-13 | 哈尔滨理工大学 | 一种基于素数预处理的ecc标量乘法器的实现方法及装置 |
CN113032844B (zh) * | 2021-03-31 | 2022-02-11 | 郑州信大捷安信息技术股份有限公司 | 椭圆曲线的签名方法、验签方法和装置 |
-
2009
- 2009-12-22 CN CN2009102005314A patent/CN101753306B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111314081A (zh) * | 2020-01-16 | 2020-06-19 | 西安邮电大学 | 一种用于物联网设备的轻量级椭圆曲线数字签名方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101753306A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101753306B (zh) | 运用Montgomery型椭圆曲线的数字签名认证方法 | |
CN101641905B (zh) | 隐式证书验证 | |
CN107040385B (zh) | 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统 | |
CN112202568B (zh) | 软硬件协同设计sm9数字签名通信方法和系统 | |
EP0704124A4 (en) | CRYPTOGRAPHIC PROCESS | |
CN109145616B (zh) | 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 | |
CN107911217B (zh) | 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 | |
CN100428140C (zh) | 椭圆曲线密码体制协处理器的实现方法 | |
WO2006104362A1 (en) | Fast batch verification method and apparatus there-of | |
CN103095459B (zh) | 公钥密码体制中模幂运算方法、设备和服务器 | |
CN110896351B (zh) | 基于全域哈希的身份基数字签名方法 | |
CN107171788B (zh) | 一种基于身份且签名长度恒定的在线离线聚合签名方法 | |
Junru | The improved elliptic curve digital signature algorithm | |
MXPA02010310A (es) | Metodo de criptografia en curvas elipticas. | |
CN112446052A (zh) | 一种适用于涉密信息系统的聚合签名方法及系统 | |
US6480606B1 (en) | Elliptic curve encryption method and system | |
CN105245343A (zh) | 一种基于多变量密码技术的在线离线签名系统及方法 | |
CN113032845B (zh) | 一种用于资源受限芯片的EdDSA签名实现方法和装置 | |
CN113114462A (zh) | 一种应用于ecc安全硬件电路的小面积标量乘电路 | |
Panjwani et al. | Hardware-software co-design of elliptic curve digital signature algorithm over binary fields | |
Panjwani | Scalable and parameterized hardware implementation of elliptic curve digital signature algorithm over prime fields | |
US20150281256A1 (en) | Batch verification method and apparatus thereof | |
CN112350827B (zh) | 一种基于Koblitz曲线的加速标量乘计算的椭圆曲线加解密方法和系统 | |
Li et al. | A novel algorithm for scalar multiplication in ecdsa | |
CN102394747B (zh) | 一种快速嵌入明文到椭圆曲线上一点的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120815 Termination date: 20141222 |
|
EXPY | Termination of patent right or utility model |