CN110086630A - 基于爱德华兹曲线数字签名的生成方法 - Google Patents

基于爱德华兹曲线数字签名的生成方法 Download PDF

Info

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
Application number
CN201910329297.9A
Other languages
English (en)
Other versions
CN110086630B (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.)
Shaanxi Normal University
Original Assignee
Shaanxi Normal University
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 Shaanxi Normal University filed Critical Shaanxi Normal University
Priority to CN201910329297.9A priority Critical patent/CN110086630B/zh
Publication of CN110086630A publication Critical patent/CN110086630A/zh
Application granted granted Critical
Publication of CN110086630B publication Critical patent/CN110086630B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/3236Cryptographic 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
    • 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

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′相等。
CN201910329297.9A 2019-04-23 2019-04-23 基于爱德华兹曲线数字签名的生成方法 Expired - Fee Related CN110086630B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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签名方法
CN107947913B (zh) 一种基于身份的匿名认证方法与系统
CN109257184B (zh) 基于匿名广播加密的可链接环签名方法
CN108667625B (zh) 协同sm2的数字签名方法
CN107623570B (zh) 一种基于加法密钥分割的sm2签名方法
Almajed et al. SE-ENC: A secure and efficient encoding scheme using elliptic curve cryptography
US20120096274A1 (en) Authenticated encryption for digital signatures with message recovery
JP2013539295A (ja) メッセージ復元を伴うデジタル署名の認証された暗号化
Ben Hamouda et al. Efficient UC-secure authenticated key-exchange for algebraic languages
CN109639439B (zh) 一种基于两方协同的ecdsa数字签名方法
CN110086630A (zh) 基于爱德华兹曲线数字签名的生成方法
US9088419B2 (en) Keyed PV signatures
CN114157427A (zh) 基于sm2数字签名的门限签名方法
CN110278088A (zh) 一种sm2协同签名方法
CN109995509A (zh) 基于消息恢复签名的认证密钥交换方法
CN110011803A (zh) 一种轻量级sm2两方协同生成数字签名的方法
CN114095181B (zh) 一种基于国密算法的门限环签名方法及系统
Shao et al. Unidirectional identity-based proxy re-signature
Huang et al. P 2 OFE: Privacy-preserving optimistic fair exchange of digital signatures
CN111447065A (zh) 一种主动安全的sm2数字签名两方生成方法
CN109257181B (zh) 无证书环境下椭圆曲线盲签密方法
CN114065247A (zh) 一种量子数字混合签密方法
CN111245615B (zh) 一种基于身份的数字签名密码逆向防火墙方法
CN116760530A (zh) 一种电力物联终端轻量级认证密钥协商方法
Wang et al. Perfect ambiguous optimistic fair exchange

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