CN110086630A - 基于爱德华兹曲线数字签名的生成方法 - Google Patents
基于爱德华兹曲线数字签名的生成方法 Download PDFInfo
- Publication number
- CN110086630A CN110086630A CN201910329297.9A CN201910329297A CN110086630A CN 110086630 A CN110086630 A CN 110086630A CN 201910329297 A CN201910329297 A CN 201910329297A CN 110086630 A CN110086630 A CN 110086630A
- Authority
- CN
- China
- Prior art keywords
- communication party
- formula
- signature
- obtains
- hash
- 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 61
- 238000004891 communication Methods 0.000 claims abstract description 288
- 230000006835 compression Effects 0.000 claims abstract description 10
- 238000007906 compression Methods 0.000 claims abstract description 10
- 238000012795 verification Methods 0.000 claims abstract description 7
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000006837 decompression Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- 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/3236—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 using cryptographic hash functions
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
一种基于爱德华兹曲线数字签名的生成方法,它是由协商生成***密钥、协商生成数字签名、签名验证、步骤组成,由于本发明在协商生成***密钥中采用的子私钥由第一通信方和第二通信方各自的私钥字符串杂凑值公平且安全生成,要求第一通信方和第二通信方协商生成签名***公钥,任何一方都不能伪造签名***公钥,并使用爱德华兹曲线上点压缩方法将所得到的签名***公钥进行压缩存储,减少了***存储占用空间。在协商生成数字签名中将部分签名r拆分成两个部分,部分签名s拆分成三个部分,由同态加密方法保证双方无法获取对方的信息,任何一方不能获得对方的信息,私自伪造签名,提高了签名的安全性和双方参与的公平性。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一种爱德华兹曲线数字签名生成方法。
背景技术
随着计算机和互联网的发展,网络与信息安全成为了当前人们关注的热点。数字签名技术作为信息安全领域的重要组成部分,在身份认证,数据完整性及匿名性等方面有着重要作用。
在物联网中,很多设备执行指令需要用户和控制服务器联合签名授权执行,并且在物联网下不仅计算资源和存储资源十分受限,而且要求签名具有较高的安全性。
爱德华兹曲线数字签名(Edwards-curve Digital Signature Algorithm)由Daniel J.Bernstein等在High-speed high-security signatures[J].Journal ofCryptographic Engineering,2012,2(2):77-89.提出,现在已经广泛被应用在OpenSSH,GnuPG等国际互联网项目中,该方法是一种单方签名的方法,不能在需要双方签名的物联网场景中使用。
针对上述技术问题所存在的缺陷,2017年何德彪等人提出了“GOST数字签名生成方法及***”的双方协作生成数字签名的方法,该方法需要更多的存储空间,且直接将随机数简单的作为私钥与关键参数参与运算,由于随机数发生器自身的缺陷带来安全问题,并且验证需要计算较多。
发明内容
本发所要解决的技术问题在于克服上述现有技术的缺点,提供一种安全性好、易于验证、存储空间占用少的基于爱德华兹曲线数字签名的生成方法。
解决上述技术问题所采用的技术方案步骤如下:
(1)协商生成***密钥
1)生成第一通信方子公钥和子私钥
第一通信方选择一个长度为w1字节的随机字符串作为第一通信方私钥字符串k1,w1∈[32,64]的整数,使用密码杂凑函数Hash用式(1)得到第一通信方私钥字符串的杂凑值str1:
str1=Hash(k1) (1)
第一通信方用式(2)得到第一通信方子私钥sl1:
其中len为杂凑函数Hash输出的杂凑值的比特长度,len的取值为256或512,其中l的取值为2或4或8;第一通信方用式(3)得到第一通信方标识符perix1:
第一通信方用式(4)使用爱德华兹曲线上点乘运算由第一通信方子私钥sl1生成第一通信方子公钥p1,并将第一通信方子公钥p1发送到第二通信方。
p1=sl1[*]B (4)
其中[*]表示爱德华兹曲线上的点乘运算,B为爱德华兹曲线上的基点,取点B1或B2,B1的坐标为(15112221349535400772501151409588531511454012693041857206046113283949847762202,46316835694926478169428394003475163141307993866256225615783033603165251855960),B2的坐标为(224580040295924300187604334099896036246789641632564134246125461686950415467406032909029192869357953282578032075146446173674602635247710,298819210078481492676017930443930673437544040154080242095928241372331506189835876003536878655418784733982303233503462500531545062832660)。
2)生成第二通信方子公钥和子私钥
第二通信方选择一个长度为w2字节的随机字符串作为第二通信方私钥字符串k2,w2∈[32,64]的整数,使用密码杂凑函数Hash用式(5)得到第二通信方私钥字符串的杂凑值str2:
str2=Hash(k2) (5)
第二通信方用式(6)得到第二通信方子私钥sl2:
第二通信方用式(7)得到第二通信方标识符perix2:
第二通信方用式(8)使用爱德华兹曲线上点乘方法由第二通信方子私钥sl2生成第二通信方子公钥p2,将第二通信方子公钥p2发送到第一通信方。
p2=sl2[*]B (8)
3)生成签名***公钥
第一通信方收到第二通信方子公钥P2,用式(9)得到签名***公钥T1:
T1=sl1[*]P2 (9)
第二通信方收到第一通信方子公钥P1,用式(10)得到签名***公钥T2:
T2=sl2[*]P1 (10)
第一通信方采用爱德华兹曲线点压缩方法Encoding用式(11)得到签名***公钥T1的压缩值T1′:
T1′=Encoding(T1) (11)
第二通信方采用爱德华兹曲线点压缩方法Encoding用式(12)得到签名***公钥T2的压缩值T2′:
T2′=Encoding(T2) (12)
(2)协商生成数字签名
1)生成第一通信方签名元素
第一通信方由式(13)得到部分签名r的子生成元素r1:
r1=Hash(perix1||M)modq (13)
其中M为待签名消息、长度为有限正整数,mod表示模运算,q为爱德华兹曲线点群的阶,即爱德华兹曲线点群上的元素个数,q为2^252+27742317777372353535851937790883648493或2^446-13818066809895115352007386748515426880336692474882178609894547503885,||符号表示连接;
第一通信方用Paillier同态加密方法的密钥生成方法生成密钥对(sk,pk),其中sk为同态加密私钥,pk为同态加密公钥,用式(14)得到部分签名r的子生成元素r1的密文c1:
c1=Encpk(r1) (14)
其中Encpk为同态加密方法;第一通信方使用同态加密方法Encpk用式(15)得到第一通信方子私钥sl1的密文c2:
c2=Encpk(sl1) (15)
第一通信方用式(16)得到爱德华兹曲线上点Q:
Q=r1[*]B (16)
第一通信方将c1,c2,Q,pk发送给第二通信方。
2)协商生成完整数字签名
第二通信方用式(17)得到部分签名r的子生成元素r2:
r2=Hash(perix2||M)modq (17)
第二通信方用式(18)得到第二通信方子私钥p2的压缩值p2′:
p2′=Encoding(p2) (18)
第二通信方用式(19)、(20)得到两个第二通信方的私有大数n1与私有大数n2:
n1=Hash(perix2||p2′)modq (19)
n2=Hash(perix2||T2′)modq (20)
第二通信方用式(21)得到待签名消息M的杂凑值e:
e=Hash(M) (21)
第二通信方用式(22)得到爱德华兹曲线上点R:
R=e[*]r2[*]B (22)
第二通信方用式(23)得到部分签名r:
r=Encoding(R) (23)
第二通信方用式(24)得到签名系数k:
k=Hash(r||T2′||M)modq (24)
第二通信方分别用式(25)、(26)、(27)得到部分签名s的密文s′的三个生成元素s1、s2、s3。
s3=Encpk(n1n2q) (27)
其中表示同态乘法,表示b对应的明文与a相乘;第二通信方使用上述三个生成元素由同态加法用式(28)得到部分签名s的密文s′:
其中表示同态加法,表示a对应的明文与b对应的明文相加;第二通信方将s′和r发送到第一通信方;第一通信方收到第二通信方发送的部分签名s的密文s′与部分签名r,第一通信方用式(29)得到部分签名s:
s=Decsk(s′)modq (29)
Decsk是同态加密解密方法;第一通信方由部分签名s与部分签名r用式(30)得到完整的签名S。
S=s||r (30)
(3)签名验证
验证者和签名发布者共享的信息包括待签名消息M、签名***公钥压缩值T1′、完整签名S:
验证者用式(31)、(32)得到部分签名s与部分签名r:
其中length是完整签名S的长度,为偶数;验证者用式(33)解压部分签名r得到R:
R=Decoding(r) (33)
其中Decoding为爱德华兹曲线上的点解压缩方法;验证者用式(34)得到签名系数k:
k=Hash(r||T1′||M)modq (34)
验证者用式(35)得到签名***公钥T1:
T1=Decoding(T1′) (35)
验证者验证式(36)两边是否相等,相等则证明验证通过,得到完整签名,否则验证失败。
s[*]B=R+k[*]T1。 (36)
在本发明的协商生成***密钥步骤(1)中的步骤1)为:
1)第一通信方选择一个长度为w1字节的随机字符串作为第一通信方私钥字符串k1,w1最佳为32,使用密码杂凑函数Hash用式(1)得到第一通信方私钥字符串的杂凑值str1:
str1=Hash(k1) (1)
第一通信方用式(2)得到第一通信方子私钥sl1:
其中杂凑函数Hash选择国密SM3方法,len为杂凑函数SM3输出的杂凑值的比特长度,len的取值为256,l的取值最佳为2;第一通信方用式(3)得到第一通信方标识符perix1:
第一通信方用式(4)使用爱德华兹曲线上点乘运算由第一通信方子私钥sl1生成第一通信方子公钥p1,并将第一通信方子公钥p1发送到第二通信方。
p1=sl1[*]B (4)
其中[*]表示爱德华兹曲线上的点乘运算,B为爱德华兹曲线上的基点。
2)第二通信方选择一个长度为w2字节的随机字符串作为第二通信方私钥字符串k2,w2最佳为32,使用密码杂凑函数Hash用式(5)得到第二通信方私钥字符串的杂凑值str2:
str2=Hash(k2) (5)
第二通信方用式(6)得到第二通信方子私钥sl2:
第二通信方用式(7)得到第二通信方标识符perix2:
其中杂凑函数Hash选择国密SM3方法,len为杂凑函数SM3输出的杂凑值的比特长度,len的取值为256,l的取值最佳为2;第二通信方用式(8)使用爱德华兹曲线上点乘方法由第二通信方子私钥sl2生成第二通信方子公钥p2,将第二通信方子公钥p2发送到第一通信方。
p2=sl2[*]B (8)
在本发明的协商生成***密钥步骤(1)的步骤3)中,第一通信方的签名***公钥T1与第二通信方的签名***公钥T2相等,签名***公钥T1的压缩值T1′与签名***公钥T2的压缩值T2′相等。
由于本发明在协商生成***密钥中采用的子私钥由第一通信方和第二通信方各自的私钥字符串杂凑值公平且安全生成,要求第一通信方和第二通信方协商生成签名***公钥,任何一方都不能伪造签名***公钥,并使用爱德华兹曲线上点压缩方法将所得到的签名***公钥进行压缩存储,减少了***存储占用空间。在协商生成数字签名中将部分签名r拆分成两个部分,部分签名s拆分成三个部分,由同态加密方法保证双方无法获取对方的信息,任何一方不能获得对方的信息,私自伪造签名,提高了签名的安全性和双方参与的公平性。
附图说明
图1是本发明实施例1的流程图。
图2是图1中协商生成***密钥流程图。
图3是图1中协商生成数字签名流程图。
具体实施方式
下面结合附图和实施例对本发明进一步详细说明,但本发明不限于下述的实施例。
实施例1
本实施例的基于爱德华兹曲线数字签名的生成方法步骤如下,见图1、2、3:
(1)协商生成***密钥
1)生成第一通信方子公钥和子私钥
第一通信方选择一个长度为w1字节的随机字符串作为第一通信方私钥字符串k1,w1为32,使用密码杂凑函数Hash用式(1)得到第一通信方私钥字符串的杂凑值str1:
str1=Hash(k1) (1)
第一通信方用式(2)得到第一通信方子私钥sl1:
其中杂凑函数Hash选择国密SM3方法,len为杂凑函数SM3输出的杂凑值的比特长度,len的取值为256,l的取值为2;第一通信方用式(3)得到第一通信方标识符perix1:
第一通信方用式(4)使用爱德华兹曲线上点乘运算由第一通信方子私钥sl1生成第一通信方子公钥p1,并将第一通信方子公钥p1发送到第二通信方。
p1=sl1[*]B (4)
其中[*]表示爱德华兹曲线上的点乘运算,B为爱德华兹曲线上的基点、取点B1,B1的坐标为(15112221349535400772501151409588531511454012693041857206046113283949847762202,46316835694926478169428394003475163141307993866256225615783033603165251855960),此坐标来源于文献“Langley A,Hamburg M,Turner S.Elliptic curvesfor security[R].2016.”。
2)生成第二通信方子公钥和子私钥
第二通信方选择一个长度为w2字节的随机字符串作为第二通信方私钥字符串k2,w2为32,使用密码杂凑函数Hash用式(5)得到第二通信方私钥字符串的杂凑值str2:
str2=Hash(k2) (5)
第二通信方用式(6)得到第二通信方子私钥sl2:
第二通信方用式(7)得到第二通信方标识符perix2:
第二通信方用式(8)使用爱德华兹曲线上点乘方法由第二通信方子私钥sl2生成第二通信方子公钥p2,将第二通信方子公钥p2发送到第一通信方。
p2=sl2[*]B (8)
3)生成签名***公钥
第一通信方收到第二通信方子公钥P2,用式(9)得到签名***公钥T1:
T1=sl1[*]P2 (9)
第二通信方收到第一通信方子公钥P1,用式(10)得到签名***公钥T2:
T2=sl2[*]P1 (10)
第一通信方的签名***公钥T1与第二通信方的签名***公钥T2相等。
第一通信方采用爱德华兹曲线点压缩方法Encoding用式(11)得到签名***公钥T1的压缩值T1′:
T1′=Encoding(T1) (11)
第二通信方采用爱德华兹曲线点压缩方法Encoding用式(12)得到签名***公钥T2的压缩值T2′:
T2′=Encoding(T2) (12)
签名***公钥T1的压缩值T1′与签名***公钥T2的压缩值T2′相等。
(2)协商生成数字签名
1)生成第一通信方签名元素
第一通信方由式(13)得到部分签名r的子生成元素r1:
r1=Hash(perix1||M)modq (13)
其中M为待签名消息、长度为有限正整数,mod表示模运算,q为爱德华兹曲线点群的阶,为2^252+27742317777372353535851937790883648493,此数来源于文献“Langley A,Hamburg M,Turner S.Elliptic curves for security[R].2016.”,||符号表示连接。
第一通信方用Paillier同态加密方法的密钥生成方法生成密钥对(sk,pk),也可用Benaloh同态加密方法生成密钥对(sk,pk),还可用NS同态加密方法生成密钥对(sk,pk),其中sk为同态加密私钥,pk为同态加密公钥,用式(14)得到部分签名r的子生成元素r1的密文c1:
c1=Encpk(r1) (14)
其中Encpk为同态加密方法;第一通信方使用同态加密方法Encpk用式(15)得到第一通信方子私钥sl1的密文c2:
c2=Encpk(sl1) (15)
第一通信方用式(16)得到爱德华兹曲线上点Q:
Q=r1[*]B (16)
第一通信方将c1,c2,Q,pk发送给第二通信方;
2)协商生成完整数字签名
第二通信方用式(17)得到部分签名r的子生成元素r2:
r2=Hash(perix2||M)modq (17)
第二通信方用式(18)得到第二通信方子私钥p2的压缩值p2′:
p2′=Encoding(p2) (18)
第二通信方用式(19)、(20)得到两个第二通信方的私有大数n1与私有大数n2:
n1=Hash(perix2||p2′)modq (19)
n2=Hash(perix2||T2′)modq (20)
第二通信方用式(21)得到待签名消息M的杂凑值e:
e=Hash(M) (21)
第二通信方用式(22)得到爱德华兹曲线上点R:
R=e[*]r2[*]B (22)
第二通信方用式(23)得到部分签名r:
r=Encoding(R) (23)
第二通信方用式(24)得到签名系数k:
k=Hash(r||T2′||M)modq (24)
第二通信方分别用式(25)、(26)、(27)得到部分签名s的密文s′的三个生成元素s1、s2、s3:
s3=Encpk(n1n2q) (27)
其中表示同态乘法,表示b对应的明文与a相乘;第二通信方使用上述三个生成元素由同态加法用式(28)得到部分签名s的密文s′:
其中表示同态加法,表示a对应的明文与b对应的明文相加;第二通信方将s′和r发送到第一通信方;第一通信方收到第二通信方发送的部分签名s的密文s′与部分签名r,第一通信方用式(29)得到部分签名s:
s=Decsk(s′)modq (29)
Decsk是同态加密解密方法;第一通信方由部分签名s与部分签名r用式(30)得到完整的签名S:
S=s||r (30)
(3)签名验证
验证者和签名发布者共享的信息包括待签名消息M、签名***公钥压缩值T1′、完整签名S:验证者用式(31)、(32)得到部分签名s与部分签名r:
其中length是完整签名S的长度,为偶数;验证者用式(33)解压部分签名r得到R:
R=Decoding(r) (33)
其中Decoding为爱德华兹曲线上的点解压缩方法;验证者用式(34)得到签名系数k:
k=Hash(r||T1′||M)modq (34)
验证者用式(35)得到签名***公钥T1:
T1=Decoding(T1′) (35)
验证者验证式(36)两边是否相等,相等则证明验证通过,得到完整签名,否则验证失败。
s[*]B=R+k[*]T1 (36)
实施例2
本实施例的基于爱德华兹曲线数字签名的生成方法步骤如下:
(1)协商生成***密钥
1)生成第一通信方子公钥和子私钥
第一通信方选择一个长度为w1字节的随机字符串作为第一通信方私钥字符串k1,w1为48,使用密码杂凑函数Hash用式(1)得到第一通信方私钥字符串的杂凑值str1:
str1=Hash(k1) (1)
第一通信方用式(2)得到第一通信方子私钥sl1:
其中杂凑函数Hash选择SHA-512方法,len的取值为512,其中l为4;第一通信方用式(3)得到第一通信方标识符perix1:
第一通信方用式(4)使用爱德华兹曲线上点乘运算由第一通信方子私钥sl1生成第一通信方子公钥p1,并将第一通信方子公钥p1发送到第二通信方;
p1=sl1[*]B (4)
其中[*]表示爱德华兹曲线上的点乘运算,B为爱德华兹曲线上的基点,取点B1,B1的坐标与实施例1相同,|符号表示连接。该步骤中的其它步骤与实施例1相同。
2)生成第二通信方子公钥和子私钥
第二通信方选择一个长度为w2字节的随机字符串作为第二通信方私钥字符串k2,w2为48,使用密码杂凑函数Hash用式(5)得到第二通信方私钥字符串的杂凑值str2:
str2=Hash(k2) (5)
第二通信方用式(6)得到第二通信方子私钥sl2:
第二通信方用式(7)得到第二通信方标识符perix2:
第二通信方用式(8)使用爱德华兹曲线上点乘方法由第二通信方子私钥sl2生成第二通信方子公钥p2,将第二通信方子公钥p2发送到第一通信方;
p2=sl2[*]B (8)
3)生成签名***公钥
该步骤与实施例1相同。
(2)协商生成数字签名
该步骤与实施例1相同。
其它步骤与实施例1相同,得到完整签名。
实施例3
本实施例的基于爱德华兹曲线数字签名的生成方法步骤如下:
(1)协商生成***密钥
1)生成第一通信方子公钥和子私钥
第一通信方选择一个长度为w1字节的随机字符串作为第一通信方私钥字符串k1,w1为64,使用密码杂凑函数Hash用式(1)得到第一通信方私钥字符串的杂凑值str1:
str1=Hash(k1) (1)
第一通信方用式(2)得到第一通信方子私钥sl1:
其中杂凑函数Hash选择SHA-256方法,len的取值为256,其中l为8;第一通信方用式(3)得到第一通信方标识符perix1:
第一通信方用式(4)使用爱德华兹曲线上点乘运算由第一通信方子私钥sl1生成第一通信方子公钥p1,并将第一通信方子公钥p1发送到第二通信方;
p1=sl1[*]B (4)
其中[*]表示爱德华兹曲线上的点乘运算,B为爱德华兹曲线上的基点,取点B1,B1的坐标与实施例1相同,|符号表示连接。该步骤中的其它步骤与实施例1相同。
2)生成第二通信方子公钥和子私钥
第二通信方选择一个长度为w2字节的随机字符串作为第二通信方私钥字符串k2,w2为64,使用密码杂凑函数Hash用式(5)得到第二通信方私钥字符串的杂凑值str2:
str2=Hash(k2) (5)
第二通信方用式(6)得到第二通信方子私钥sl2:
第二通信方用式(7)得到第二通信方标识符perix2:
第二通信方用式(8)使用爱德华兹曲线上点乘方法由第二通信方子私钥sl2生成第二通信方子公钥p2,将第二通信方子公钥p2发送到第一通信方;
p2=sl2[*]B (8)
3)生成签名***公钥
该步骤与实施例1相同。
(2)协商生成数字签名
该步骤与实施例1相同。
其它步骤与实施例1相同,得到完整签名。
实施例4
在以上的实施例1~3中,协商生成***密钥(1)中的生成第一通信方子公钥和子私钥步骤1)为:
第一通信方用式(4)使用爱德华兹曲线上点乘运算由第一通信方子私钥sl1生成第一通信方子公钥p1,并将第一通信方子公钥p1发送到第二通信方;
p1=sl1[*]B (4)
其中[*]表示爱德华兹曲线上的点乘运算,B为爱德华兹曲线上的基点、取点B2,B2的坐标为(224580040295924300187604334099896036246789641632564134246125461686950415467406032909029192869357953282578032075146446173674602635247710,298819210078481492676017930443930673437544040154080242095928241372331506189835876003536878655418784733982303233503462500531545062832660)。该步骤中的其它步骤与相应的实施例相同。
以上实施例1~3中,协商生成数字签名(2)的生成第一通信方签名元素步骤1)为:
第一通信方由式(13)得到部分签名r的子生成元素r1:
r1=Hash(perix1||M)modq (13)
其中M为待签名消息、长度为有限正整数,mod表示模运算,q为爱德华兹曲线点群的阶,q为2^446-13818066809895115352007386748515426880336692474882178609894547503885,此数来源于文献“Langley A,Hamburg M,Turner S.Elliptic curves forsecurity[R].2016.”,||符号表示连接。该步骤中的其它步骤与实施例1相同。
其它步骤与实施例1相同,得到完整签名。
Claims (3)
1.一种基于爱德华兹曲线数字签名的生成方法,其特征在于它是由下述步骤组成:
(1)协商生成***密钥
1)生成第一通信方子公钥和子私钥
第一通信方选择一个长度为w1字节的随机字符串作为第一通信方私钥字符串k1,w1∈[32,64]的整数,使用密码杂凑函数Hash用式(1)得到第一通信方私钥字符串的杂凑值str1:
str1=Hash(k1) (1)
第一通信方用式(2)得到第一通信方子私钥sl1:
其中len为杂凑函数Hash输出的杂凑值的比特长度,len的取值为256或512,其中l的取值为2或4或8;第一通信方用式(3)得到第一通信方标识符perix1:
第一通信方用式(4)使用爱德华兹曲线上点乘运算由第一通信方子私钥sl1生成第一通信方子公钥p1,并将第一通信方子公钥p1发送到第二通信方;
p1=sl1[*]B (4)
其中[*]表示爱德华兹曲线上的点乘运算,B为爱德华兹曲线上的基点、取点B1或B2,B1的坐标为(15112221349535400772501151409588531511454012693041857206046113283949847762202,46316835694926478169428394003475163141307993866256225615783033603165251855960),B2的坐标为(224580040295924300187604334099896036246789641632564134246125461686950415467406032909029192869357953282578032075146446173674602635247710,298819210078481492676017930443930673437544040154080242095928241372331506189835876003536878655418784733982303233503462500531545062832660);
2)生成第二通信方子公钥和子私钥
第二通信方选择一个长度为w2字节的随机字符串作为第二通信方私钥字符串k2,w2∈[32,64]的整数,使用密码杂凑函数Hash用式(5)得到第二通信方私钥字符串的杂凑值str2:
str2=Hash(k2) (5)
第二通信方用式(6)得到第二通信方子私钥sl2:
第二通信方用式(7)得到第二通信方标识符perix2:
第二通信方用式(8)使用爱德华兹曲线上点乘方法由第二通信方子私钥sl2生成第二通信方子公钥p2,将第二通信方子公钥p2发送到第一通信方;
p2=sl2[*]B (8)
3)生成签名***公钥
第一通信方收到第二通信方子公钥P2,用式(9)得到签名***公钥T1:
T1=sl1[*]P2 (9)
第二通信方收到第一通信方子公钥P1,用式(10)得到签名***公钥T2:
T2=sl2[*]P1 (10)
第一通信方采用爱德华兹曲线点压缩方法Encoding用式(11)得到签名***公钥T1的压缩值T1′:
T1′=Encoding(T1) (11)
第二通信方采用爱德华兹曲线点压缩方法Encoding用式(12)得到签名***公钥T2的压缩值T2′:
T2′=Encoding(T2) (12)
(2)协商生成数字签名
1)生成第一通信方签名元素
第一通信方由式(13)得到部分签名r的子生成元素r1:
r1=Hash(perix1||M)modq (13)
其中M为待签名消息、长度为有限正整数,mod表示模运算,q为爱德华兹曲线点群的阶,即爱德华兹曲线点群上的元素个数,q为2^252+27742317777372353535851937790883648493或2^446-13818066809895115352007386748515426880336692474882178609894547503885,||符号表示连接;
第一通信方用Paillier同态加密方法的密钥生成方法生成密钥对(sk,pk),其中sk为同态加密私钥,pk为同态加密公钥,用式(14)得到部分签名r的子生成元素r1的密文c1:
c1=Encpk(r1) (14)
其中Encpk为同态加密方法;第一通信方使用同态加密方法Encpk用式(15)得到第一通信方子私钥sl1的密文c2:
c2=Encpk(sl1) (15)
第一通信方用式(16)得到爱德华兹曲线上点Q:
Q=r1[*]B (16)
第一通信方将c1,c2,Q,pk发送给第二通信方;
2)协商生成完整数字签名
第二通信方用式(17)得到部分签名r的子生成元素r2:
r2=Hash(perix2||M)modq (17)
第二通信方用式(18)得到第二通信方子私钥p2的压缩值p2′:
p2′=Encoding(p2) (18)
第二通信方用式(19)、(20)得到两个第二通信方的私有大数n1与私有大数n2:
n1=Hash(perix2||p2′)modq (19)
n2=Hash(perix2||T2′)modq (20)
第二通信方用式(21)得到待签名消息M的杂凑值e:
e=Hash(M) (21)
第二通信方用式(22)得到爱德华兹曲线上点R:
R=e[*]r2[*]B (22)
第二通信方用式(23)得到部分签名r:
r=Encoding(R) (23)
第二通信方用式(24)得到签名系数k:
k=Hash(r||T2′||M)modq (24)
第二通信方分别用式(25)、(26)、(27)得到部分签名s的密文s′的三个生成元素s1、s2、s3:
s3=Encpk(n1n2q) (27)
其中表示同态乘法,表示b对应的明文与a相乘;第二通信方使用上述三个生成元素由同态加法用式(28)得到部分签名s的密文s′:
其中表示同态加法,表示a对应的明文与b对应的明文相加;第二通信方将s′和r发送到第一通信方;第一通信方收到第二通信方发送的部分签名s的密文s′与部分签名r,第一通信方用式(29)得到部分签名s:
s=Decsk(s′)modq (29)
Decsk是同态加密解密方法;第一通信方由部分签名s与部分签名r用式(30)得到完整的签名S:
S=s||r (30)
(3)签名验证
验证者和签名发布者共享的信息包括待签名消息M、签名***公钥压缩值T1′、完整签名S:
验证者用式(31)、(32)得到部分签名s与部分签名r:
其中length是完整签名S的长度,为偶数;验证者用式(33)解压部分签名r得到R:
R=Decoding(r) (33)
其中Decoding为爱德华兹曲线上的点解压缩方法;验证者用式(34)得到签名系数k:
k=Hash(r||T1′||M)modq (34)
验证者用式(35)得到签名***公钥T1:
T1=Decoding(T1′) (35)
验证者验证式(36)两边是否相等,相等则证明验证通过,得到完整签名,否则验证失败;
s[*]B=R+k[*]T1 (36)
2.根据权利要求1所述的基于爱德华兹曲线数字签名的生成方法,其特征在于所述的协商生成***密钥步骤(1)中的步骤1)为:
1)第一通信方选择一个长度为w1字节的随机字符串作为第一通信方私钥字符串k1,w1为32,使用密码杂凑函数Hash用式(1)得到第一通信方私钥字符串的杂凑值str1:
str1=Hash(k1) (1)
第一通信方用式(2)得到第一通信方子私钥sl1:
其中杂凑函数Hash选择国密SM3方法,len为杂凑函数SM3输出的杂凑值的比特长度,len的取值为256,l的取值为2;第一通信方用式(3)得到第一通信方标识符perix1:
第一通信方用式(4)使用爱德华兹曲线上点乘运算由第一通信方子私钥sl1生成第一通信方子公钥p1,并将第一通信方子公钥p1发送到第二通信方;
p1=sl1[*]B (4)
其中[*]表示爱德华兹曲线上的点乘运算,B为爱德华兹曲线上的基点,为爱德华兹曲线上的生成元,B为(x,y);
2)第二通信方选择一个长度为w2字节的随机字符串作为第二通信方私钥字符串k2,w2为32,使用密码杂凑函数Hash用式(5)得到第二通信方私钥字符串的杂凑值str2:
str2=Hash(k2) (5)
第二通信方用式(6)得到第二通信方子私钥sl2:
第二通信方用式(7)得到第二通信方标识符perix2:
其中杂凑函数Hash选择国密SM3方法,len为杂凑函数SM3输出的杂凑值的比特长度,len的取值为256,l的取值为2;第二通信方用式(8)使用爱德华兹曲线上点乘方法由第二通信方子私钥sl2生成第二通信方子公钥p2,将第二通信方子公钥p2发送到第一通信方。
p2=sl2[*]B (8)
3.根据权利要求1所述的基于爱德华兹曲线数字签名的生成方法,其特征在于:所述的在协商生成***密钥步骤(1)的步骤3)中,第一通信方的签名***公钥T1与第二通信方的签名***公钥T2相等,签名***公钥T1的压缩值T1′与签名***公钥T2的压缩值T2′相等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910329297.9A CN110086630B (zh) | 2019-04-23 | 2019-04-23 | 基于爱德华兹曲线数字签名的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910329297.9A CN110086630B (zh) | 2019-04-23 | 2019-04-23 | 基于爱德华兹曲线数字签名的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110086630A true CN110086630A (zh) | 2019-08-02 |
CN110086630B CN110086630B (zh) | 2021-10-19 |
Family
ID=67416266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910329297.9A Expired - Fee Related CN110086630B (zh) | 2019-04-23 | 2019-04-23 | 基于爱德华兹曲线数字签名的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110086630B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111082945A (zh) * | 2019-12-20 | 2020-04-28 | 浙江工商大学 | 两方EdDSA协同签名协议 |
CN111901123A (zh) * | 2020-07-15 | 2020-11-06 | 浙江军盾信息科技有限公司 | 一种sm2签名的生成方法、存储介质和终端 |
CN114499860A (zh) * | 2022-03-22 | 2022-05-13 | 深圳壹账通智能科技有限公司 | 签名公钥压缩方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120243680A1 (en) * | 2011-03-23 | 2012-09-27 | Research In Motion Limited | Incorporating data into an ecdsa signature component |
US9800411B1 (en) * | 2016-05-05 | 2017-10-24 | ISARA Corporation | Using a secret generator in an elliptic curve cryptography (ECC) digital signature scheme |
CN108667626A (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
US20180336015A1 (en) * | 2017-05-18 | 2018-11-22 | Microsoft Technology Licensing, Llc | Quantum resource estimates for computing elliptic curve discrete logarithms |
-
2019
- 2019-04-23 CN CN201910329297.9A patent/CN110086630B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120243680A1 (en) * | 2011-03-23 | 2012-09-27 | Research In Motion Limited | Incorporating data into an ecdsa signature component |
US9800411B1 (en) * | 2016-05-05 | 2017-10-24 | ISARA Corporation | Using a secret generator in an elliptic curve cryptography (ECC) digital signature scheme |
US20180336015A1 (en) * | 2017-05-18 | 2018-11-22 | Microsoft Technology Licensing, Llc | Quantum resource estimates for computing elliptic curve discrete logarithms |
CN108667626A (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
Non-Patent Citations (5)
Title |
---|
S. JOSEFSSON: ""Edwards-curve Digital Signature Algorithm(EdDSA)"", 《HTTPS://TOOLS.IETF.ORG/ID/DRAFT-IRTF-CFRG-EDDSA-06.HTML》 * |
ÜNAL KOCABAŞ;JUNFENG FAN;INGRID VERBAUWHEDE: ""Implementation of binary edwards curves for very-constrained devices"", 《ASAP 2010 - 21ST IEEE INTERNATIONAL CONFERENCE ON APPLICATION-SPECIFIC SYSTEMS, ARCHITECTURES AND PROCESSORS》 * |
YOLAN ROMAILLER;SYLVAIN PELISSIER: ""Practical Fault Attack against the Ed25519 and EdDSA Signature Schemes"", 《2017 WORKSHOP ON FAULT DIAGNOSIS AND TOLERANCE IN CRYPTOGRAPHY (FDTC)》 * |
丁红发等: "二进制Edwards曲线上的点压缩算法", 《贵州大学学报(自然科学版)》 * |
成娟娟等: "Curve25519椭圆曲线算法GPU高速实现", 《信息网络安全》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111082945A (zh) * | 2019-12-20 | 2020-04-28 | 浙江工商大学 | 两方EdDSA协同签名协议 |
CN111901123A (zh) * | 2020-07-15 | 2020-11-06 | 浙江军盾信息科技有限公司 | 一种sm2签名的生成方法、存储介质和终端 |
CN111901123B (zh) * | 2020-07-15 | 2022-07-05 | 杭州安恒信息安全技术有限公司 | 一种sm2签名的生成方法、存储介质和终端 |
CN114499860A (zh) * | 2022-03-22 | 2022-05-13 | 深圳壹账通智能科技有限公司 | 签名公钥压缩方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110086630B (zh) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108667626B (zh) | 安全的两方协作sm2签名方法 | |
CN109257184B (zh) | 基于匿名广播加密的可链接环签名方法 | |
CN107947913B (zh) | 一种基于身份的匿名认证方法与*** | |
CN108667625B (zh) | 协同sm2的数字签名方法 | |
Almajed et al. | SE-ENC: A secure and efficient encoding scheme using elliptic curve cryptography | |
CN107623570B (zh) | 一种基于加法密钥分割的sm2签名方法 | |
US20120096274A1 (en) | Authenticated encryption for digital signatures with message recovery | |
JP2013539295A (ja) | メッセージ復元を伴うデジタル署名の認証された暗号化 | |
CN109639439B (zh) | 一种基于两方协同的ecdsa数字签名方法 | |
Ben Hamouda et al. | Efficient UC-secure authenticated key-exchange for algebraic languages | |
CN110086630A (zh) | 基于爱德华兹曲线数字签名的生成方法 | |
CN114157427A (zh) | 基于sm2数字签名的门限签名方法 | |
CN108667627A (zh) | 基于两方协同的sm2数字签名方法 | |
US9088419B2 (en) | Keyed PV signatures | |
CN110278088A (zh) | 一种sm2协同签名方法 | |
CN110011803A (zh) | 一种轻量级sm2两方协同生成数字签名的方法 | |
CN109995509A (zh) | 基于消息恢复签名的认证密钥交换方法 | |
Huang et al. | P 2 OFE: Privacy-preserving optimistic fair exchange of digital signatures | |
CN111447065A (zh) | 一种主动安全的sm2数字签名两方生成方法 | |
CN109257181B (zh) | 无证书环境下椭圆曲线盲签密方法 | |
CN114065247A (zh) | 一种量子数字混合签密方法 | |
CN117879833A (zh) | 一种基于改进椭圆曲线的数字签名生成方法 | |
CN111245615B (zh) | 一种基于身份的数字签名密码逆向防火墙方法 | |
CN116760530A (zh) | 一种电力物联终端轻量级认证密钥协商方法 | |
Yang et al. | On-line/off-line threshold proxy re-signature scheme through the simulation approach |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211019 |