CN109547199B - 一种多方联合生成sm2数字签名的方法 - Google Patents

一种多方联合生成sm2数字签名的方法 Download PDF

Info

Publication number
CN109547199B
CN109547199B CN201811379398.9A CN201811379398A CN109547199B CN 109547199 B CN109547199 B CN 109547199B CN 201811379398 A CN201811379398 A CN 201811379398A CN 109547199 B CN109547199 B CN 109547199B
Authority
CN
China
Prior art keywords
sid
sig
participants
input
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.)
Active
Application number
CN201811379398.9A
Other languages
English (en)
Other versions
CN109547199A (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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201811379398.9A priority Critical patent/CN109547199B/zh
Publication of CN109547199A publication Critical patent/CN109547199A/zh
Application granted granted Critical
Publication of CN109547199B publication Critical patent/CN109547199B/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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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

Landscapes

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

Abstract

本发明公开了一种多方联合生成SM2数字签名的方法,该方法包括以下步骤:参与数字签名的各参与方P1,P2,...,Pτ,分别随机选取部分私钥
Figure DDA0001871525120000011
以及两个部分随机数
Figure DDA0001871525120000012
Figure DDA0001871525120000013
随后各参与方通过交互式理想函数
Figure DDA0001871525120000014
计算得SM2的公钥
Figure DDA0001871525120000015
以及两个中间变量
Figure DDA0001871525120000016
和α=xρmod n;对于消息m,各参与方分别计算杂凑值e=h(m)和第一部分签名r=rx+e mod n,并通过交互式理想函数
Figure DDA0001871525120000017
计算得第三个中间变量β=ρ(k+r)mod n。最后各参与方分别计算第二部分签名s=min{α‑1β‑r,n‑α‑1β+r},在签名验证通过后,输出完整的SM2数字签名(r,s)。本发明实现了多方联合生成SM2数字签名,签名过程中保证各参与方都不会暴露部分私钥,同时数字签名必须由所有参与方同时参与,这样实现了多方签名的安全性和公平性。

Description

一种多方联合生成SM2数字签名的方法
技术领域
本发明涉及信息安全技术,尤其涉及一种多方联合生成SM2数字签名的方法。
背景技术
数字签名是公钥密码体系中重要的一部分,在很多场合有着重要的作用。通常来说,每个用户拥有一对密钥,即(私钥,公钥)。数字签名由用户的私钥生成,可以使用公钥验证。但是随着互联网的发展,许多事务在网络上开展,如电子商务、电子证券等。这些电子事务的完成通常涉及若干个参与方,需要各参与者同时对相关消息进行签名,其安全性和参与者之间的公平性需求催生了关于多方数字签名体制的研究。
对于此类问题,比较常见的解决方法是使用秘密共享来联合生成数字签名。在这种方法中,私钥被分割为t个部分私钥,例如门限秘密分割,这些部分私钥将被安全地分给n个参与方掌管。当需要使用私钥进行签名时,这些参与者中的k个及以上可以重构私钥,少于k个参与者则无法获得关于完整私钥的信息。但是一旦私钥被恢复,持有完整私钥的一方就可以在其他参与方不知晓的情况下独立地进行签名运算,威胁了安全性和公平性,甚至造成巨大的利益损失。
针对这种情况,本专利设计了一种多方联合生成SM2数字签名的方案,此方案在多方联合生成签名的情况下,既能保证签名的正确性,又能保证签名的私钥不被泄露,且生成签名的过程中必须由所有参与方同时执行操作。
SM2是由国家密码管理局颁布的一种椭圆曲线公钥密码算法(参见《SM2椭圆曲线公钥密码算法》规范,国家密码管理局,2010年12月),基于此算法能实现数字签名、密钥交换及数据加密。在这里,不同于各种普通的密钥分割或门限秘密分割。本专利提出的多方联合产生SM2数字签名的方法与系统,必须在所有参与者共同运算下才能产生,并且任何一方都无法得到原始的私钥。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种多方联合生成SM2数字签名的方法。
本发明解决其技术问题所采用的技术方案是:一种多方联合生成SM2数字签名的方法,参与数字签名的所有参与方为P1,P2,…,Pτ,该方法包括以下步骤:
1)每个参与方分别产生自己的部分私钥,并借助理想函数
Figure GDA0001971614610000022
得到共同的公钥;
1.1)参与方Pi,i∈{1,…,τ},在
Figure GDA0001971614610000021
中随机选择一个整数xi作为自己的部分私钥,发送(input,sidsk,xi)给理想函数
Figure GDA00019716146100000316
其中,sidsk为唯一私钥标识符;
其中,
Figure GDA0001971614610000031
为以整数n为阶的整数域;
1.2)若
Figure GDA0001971614610000032
没有(sidsk,i,·),则保存(sidsk,i,xi);否则忽略此条消息;
1.3)若
Figure GDA0001971614610000033
收到所有参与方发来的(input,sidsk,xi),
Figure GDA0001971614610000034
计算
Figure GDA0001971614610000035
mod n,保存(sidsk,x),并把(input,sidsk)发送给所有参与方;
1.4)当所有参与方接收到
Figure GDA0001971614610000036
返回的(input,sidsk)后,发送(element-out,sidsk)给
Figure GDA0001971614610000037
1.5)当
Figure GDA0001971614610000038
收到所有参与方发来的(element-out,sidsk),如果
Figure GDA0001971614610000039
没有(sidsk,x),则忽略此条消息;否则计算Q=xG(即
Figure GDA00019716146100000310
),并以(element-out,sidsk,Q)的形式把结果发给所有参与方;其中,G为椭圆曲线点群
Figure GDA00019716146100000311
的基点;
1.6)所有参与方从
Figure GDA00019716146100000312
的返回中获得中间变量Q,计算Ppub=(Q-G)作为SM2的公钥,连同部分私钥xi一起安全保存;
2)由P1,P2,…,Pτ共同完成SM2数字签名;
2.1)Pi
Figure GDA00019716146100000313
中随机选择两个整数ki、ρi,发送(input,sidsig||1,ki)和(input,sidsig||2,ρi)给
Figure GDA00019716146100000314
其中,整数
Figure GDA00019716146100000315
整数
Figure GDA00019716146100000317
Figure GDA0001971614610000041
并且分别由sidsig||1和sidsig||2唯一标识;sidsig为签名会话的标识符;
2.2)当
Figure GDA0001971614610000042
收到某参与方Pi,i∈{1,…,τ}发来的(input,sidsig||1,ki)和(input,sidsig||2,ρi),如果
Figure GDA0001971614610000043
没有(sidsig||1,i,·)和(sidsig||2,i,·),则保存(sidsig||1,i,ki)和(sidsig||2,i,ρi);否则忽略此条消息;
当收到所有参与方发来的(input,sidsig||1,ki)和(input,sidsig||2,ρi),i∈{1,…,τ},
Figure GDA0001971614610000044
计算
Figure GDA0001971614610000045
保存(sidsig||1,k)和(sidsig||2,ρ),并把(input,sidsig||1)和(input,sidsig||2)发送给所有参与方;
2.3)当参与方接收到(input,sidsig||1),(input,sidsig||2)后,Pi发送(mult,sidsk,sidsig||2)和(element-out,sidsig||1)给
Figure GDA0001971614610000046
2.4)当收到所有参与方发来的(mult,sidsk,sidsig||2),i∈{1,…,τ},
Figure GDA0001971614610000047
找出(sidsk,x)和(sidsig||2,ρ),计算
Figure GDA00019716146100000411
并以(mult-out,sidsk,sidsig||2,α)的形式把结果发给所有参与方;如果没有(sidsk,x)或(sidsig||2,ρ),则忽略此条消息;
当收到所有参与方发来的(element-out,sidsig||1),i∈{1,…,τ},如果
Figure GDA0001971614610000049
没有(sidsig||1,k),则忽略此条消息。否则计算R=kG(即
Figure GDA00019716146100000410
),并以(element-out,sidsig||1,R)的形式把结果发给所有参与方;
2.5)Pi
Figure GDA0001971614610000051
返回的(element-out,sidsig||1,R)和(mult-out,sidsk,sidsig||2,α)中获得第一个中间变量
Figure GDA0001971614610000052
和第二个中间变量α(α=xρmodn);
2.6)令R=(rx,ry),Pi计算第一部分签名r=e+rx mod n,其中e是消息m的杂凑值,e=h(m);
2.7)Pi发送(affine,sidsig||1,sidsig||3,1,r)给
Figure GDA0001971614610000053
(此时标识符sidsig||3代表了第三个中间变量,等于k+r mod n);
2.8)当收到某参与方Pi,i∈{1,…,τ}发来的(affine,sidsig||1,sidsig||3,1,r)时,其中x,y是
Figure GDA0001971614610000059
域内的常数,如果
Figure GDA0001971614610000055
没有(sidsig||1,k),则忽略此条消息,否则计算b=k+r mod n,保存(sidsig||3,b);
2.9)Pi发送(mult,sidsig||2,sidsig||3)给
Figure GDA0001971614610000056
2.10)当收到所有参与方发来的(mult,sidsig||2,sidsig||3),i∈{1,…,τ},
Figure GDA0001971614610000057
找出(sidsig||2,ρ)和(sidsig||3,b),计算β=ρb mod n=ρ(k+r)mod n并以(mult-out,sidsig||2,sidsig||3,β)的形式把结果发给所有参与方;如果没有(sidsig||2,ρ)或(sidsig||3,b),则忽略此条消息;
2.11)当
Figure GDA0001971614610000058
返回(mult-out,sidsig||2,sidsig||3,β)时,Pi获得第四个中间变量β(β=ρ(k+r)mod n);
2.12)Pi计算第五个中间变量s=α-1β-r mod n,为了保持签名一致,选取s=min{s,n-s′}作为第二部分签名;
2.13)Pi利用SM2的数字签名验证算法验证产生的签名,若通过则公布关于消息m的SM2签名Sig=(r,s)。
2.14)根据所有参与方Pi密钥对,联合生成SM2数字签名。
按上述方案,所述步骤1)中,在P1,P2,…,Pτ之间的通信中,各参与方使用零知识证明和同态加密保证发送数据的隐私性并且证明发送的数据是来自发送方。
本发明产生的有益效果是:1.关于私钥的安全性,目前现有的门限秘密共享方案,虽然可以将私钥进行分割,但在签名阶段,私钥会被恢复并被某一方掌握,造成了私钥的泄露,这样降低了多方签名的安全性。
2.关于签名的公平性,目前现有的门限秘密共享方案,最终持有完整私钥的一方可以独立进行签名,不需要全部参与方共同参加,这样降低了多方签名的公平性。
3.本发明实现了多方联合生成SM2数字签名,签名过程中保证各参与方都不会暴露部分私钥,同时数字签名必须由所有参与方同时参与,这样实现了多方签名的安全性和公平性。
4.本发明基于数学难题,保证即使有一方的私钥丢失,也不会泄露关于完整私钥或其他参与方持有的部分私钥的任何信息。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的交互过程示意图;
图2是本发明实施例的交互过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明提出了一个多方联合生成SM2数字签名的方案,下面给出具体描述。
在以下对本发明方案的描述中,若P,Q是椭圆曲线群中的元素(点),则P+Q、P-Q分别表示P,Q的点加、减运算,k·P表示k个椭圆曲线点P的点加,即P+P+…+P(共有k个P);省略号”…”,表示多个同样(类型)的数据项或多个同样的运算;
Figure GDA0001971614610000071
表示以整数n为阶的整数域;c-1表示整数c的模n乘法逆(即c·c-1mod n=1);min{a,b}表示取a和b中的较小值;多个整数相乘(包括整数符号相乘、常数与整数符号相乘),在不产生二义性的情况下,省略掉乘号"·",如k1·k2简化为k1k2,3·c,简化位3c;h表示杂凑函数,mod n表示模n运算(modulooperation),分别对应于《SM2椭圆曲线公钥密码算法》规范(国家密码管理局,2010年12月)中的密码杂凑函数和mod n操作;并且,模n运算的算子mod n的优先级是最低的,如a+b modn等同于(a+b)mod n,a-b mod n等同于(a-b)mod n,ab mod n等同于(ab)mod n。
在本发明方案中,生成SM2数字签名时,有τ个参与方,表示为P1,P2,…,Pτ。在生成数字签名前,P1,P2,…,Pτ根据《SM2椭圆曲线公钥密码算法》规范(国家密码管理局,2010年12月)完成初始化操作:设定SM2密码运算所使用的椭圆曲线点群
Figure GDA0001971614610000085
Figure GDA0001971614610000084
的阶n,以及
Figure GDA0001971614610000086
的基点G。
在以下对本发明签名阶段的描述中,将使用理想函数
Figure GDA0001971614610000087
实现基本的运算操作,具体包括以下几个部分(约定sid为特定标识符,用来标识变量或会话):
当收到某参与方Pi,i∈{1,…,τ}发来的(input,sid,ai),如果
Figure GDA0001971614610000081
没有(sid,i,·),则保存(sid,i,ai);否则忽略此条消息。
当收到所有参与方发来的(input,sid,ai),i∈{1,…,τ},
Figure GDA0001971614610000082
计算
Figure GDA0001971614610000083
保存(sid,a),并把(input,sid)发送给所有参与方。
当收到所有参与方发来的(mult,sid1,sid2),i∈{1,…,τ},
Figure GDA0001971614610000091
找出(sid1,a)和(sid2,b),计算
Figure GDA0001971614610000092
并以(mult-out,sid1,sid2,c)的形式把结果发给所有参与方;如果没有保存的(sid1,a)或(sid2,b),则忽略此条消息。
当收到某参与方Pi,i∈{1,…,τ}发来的(affine,sid1,sid2,x,y)时,其中x,y是
Figure GDA0001971614610000093
域内的常数。如果
Figure GDA0001971614610000094
没有(sid1,a),则忽略此条消息。否则计算b=ax+y mod n,保存(sid2,b)。
当收到所有参与方发来的(element-out,sid),i∈{1,…,τ},如果
Figure GDA0001971614610000095
没有(sid,a),则忽略此条消息。否则计算A=aG(即
Figure GDA0001971614610000096
),并以(element-out,sid,A)的形式把结果发给所有参与方。
密钥分发阶段:
在发明中,参与数字签名的P1,P2,…,Pτ,分别产生自己的部分私钥,并借助理想函数
Figure GDA0001971614610000097
得到共同的公钥。图1表示每个参与方的操作,具体包括以下步骤:
1、每个参与方Pi
Figure GDA0001971614610000098
中随机选择一个整数xi作为自己的部分私钥,即各参与方P1,P2,…,Pτ分别生成自己的部分私钥
Figure GDA0001971614610000099
发送(input,sidsk,xi)给
Figure GDA00019716146100000910
(令整数
Figure GDA00019716146100000911
表示完整私钥,并且约定”sidsk”唯一标识私钥);
2、当接收到
Figure GDA0001971614610000101
返回的(input,sidsk)后,每个参与方Pi发送(element-out,sidsk)给
Figure GDA0001971614610000102
3、各参与方从
Figure GDA0001971614610000103
的返回中获得中间变量Q(数值上等于
Figure GDA0001971614610000104
),计算Ppub=(Q-G)作为SM2的公钥,连同部分私钥xi一起安全保存。
步骤3中,在交互过程中各参与方使用ElGamal加密和Sigma协议证明Qi=xiG且
Figure GDA0001971614610000105
联合签名阶段:
在本发明中,SM2数字签名由P1,P2,…,Pτ共同完成。假定当前签名会话的标识符为sidsig。图2表示每个参与方的操作,每个包括以下操作(i=1,…,τ):
1、各参与方Pi
Figure GDA0001971614610000106
中随机选择两个整数ki、ρi,发送(input,sidsig||1,ki)和(input,sidsig||2,ρi)给
Figure GDA0001971614610000107
(令整数
Figure GDA0001971614610000108
整数
Figure GDA0001971614610000109
Figure GDA00019716146100001010
并且分别由”sidsig||1”和"sidsig||2"唯一标识);
在交互过程中各参与方使用ElGamal加密和Sigma协议为ki和ρi提供证明,i=1,…,τ。
2、当接收到(input,sidsig||1),(input,sidsig||2)后,各参与方Pi发送(mult,sidsk,sidsig||2)和(element-out,sidsig||1)给
Figure GDA00019716146100001011
3、各参与方Pi
Figure GDA0001971614610000111
返回的(element-out,sidsig||1,R)和(mult-out,sidsk,sidsig||2,α)中获得第一个中间变量R(等于
Figure GDA0001971614610000112
),和第二个中间变量α(等于xρmod n);
在交互过程中使用ElGamal加密和Sigma协议证明Ri=kiG且
Figure GDA0001971614610000113
Figure GDA0001971614610000114
),i=1,…,τ。
在交互过程中使用ElGamal加密和Sigma协议证明
Figure GDA0001971614610000115
Figure GDA0001971614610000116
4、令R=(rx,ry),Pi计算第一部分签名r=e+rx mod n,其中e是消息m的杂凑值e=h(m);
5、Pi发送(affine,sidsig||1,sidsig||3,1,r)给
Figure GDA0001971614610000117
(此时标识符sidsig||3代表了第三个中间变量,等于k+r mod n);
6、Pi发送(mult,sidsig||2,sidsig||3)给
Figure GDA0001971614610000118
7、当
Figure GDA0001971614610000119
返回(mult-out,sidsig||2,sidsig||3,β)时,Pi获得第四个中间变量β(等于ρ(k+r)mod n);并在交互过程中使用ElGamal加密和Sigma协议证明
Figure GDA00019716146100001110
8、Pi计算第五个中间变量s′=α-1β-r mod n。为了保持签名一致,选取s=min{s′,n-s′}作为第二部分签名;
9、Pi利用SM2的数字签名验证算法使用公钥Ppub验证签名的正确性,若通过则公布关于消息m的SM2签名Sig=(r,s)。
对于本发明,需要参与签名的用户P1,P2,…,Pτ分别产生部分私钥x1,x2,…,xτ和部分随机数k1,k2,…,kτ。其中每个参与方都可以在不得到完整的私钥的情况下通过交互完成对消息产生唯一的签名。在各参与方生成部分私钥x1,x2,…,xτ和部分随机数k1,k2,…,kτ之前不需要协商,并各自保存且不公开自己的部分私钥和部分随机数。
为了使方案的安全性更高,在P1,P2,…,Pτ之间的通信过程中,使用零知识证明,例如交互式的Sigma协议和同态加密,例如ElGamal加密算法,来保证发送数据的隐私性并且证明发送的数据是来自发送方,降低数据被窃取或被伪造的风险,同时也可以防止有恶意参与方干扰联合签名过程。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (2)

1.一种多方联合生成SM2数字签名的方法,其特征在于,参与数字签名的所有参与方为P1,P2,…,Pτ,该方法包括以下步骤:
1)每个参与方分别产生自己的部分私钥,并借助理想函数
Figure FDA0003027553390000017
得到共同的公钥;
其中,使用理想函数
Figure FDA0003027553390000018
实现基本的运算操作,具体包括以下几个运算操作,其中,sid为特定标识符,用来标识变量或会话:
当收到某参与方Pi,i∈{1,…,τ}发来的(input,sid,ai),如果
Figure FDA0003027553390000019
本地没有(sid,i,·),则保存(sid,i,ai);否则忽略此条消息;
当收到所有参与方发来的(input,sid,ai),i∈{1,…,τ},
Figure FDA0003027553390000011
计算
Figure FDA0003027553390000012
保存(sid,a),并把(input,sid)发送给所有参与方;
当收到所有参与方发来的(mult,sid1,sid2),i∈{1,…,τ},
Figure FDA0003027553390000013
找出(sid1,a)和(sid1,b),计算
Figure FDA0003027553390000014
并以(mult-out,sid1,sid2,c)的形式把结果发给所有参与方;如果没有保存的(sid1,a)或(sid1,b),则忽略此条消息;
当收到某参与方Pi,i∈{1,…,τ}发来的(affine,sid1,sid2,x,y)时,其中x,y是
Figure FDA0003027553390000015
域内的常数,如果
Figure FDA0003027553390000016
本地没有(sid1,a),则忽略此条消息;否则计算b=ax+y mod n,保存(sid2,b);
当收到所有参与方发来的(element-out,sid),i∈{1,…,τ},如果
Figure FDA0003027553390000021
本地没有(sid,a),则忽略此条消息;否则计算A=aG,即
Figure FDA0003027553390000022
,并以(element-out,sid,A)的形式把结果发给所有参与方;
步骤1)具体如下:
1.1)参与方Pi,i∈{1,…,τ},在
Figure FDA0003027553390000023
中随机选择一个整数xi作为自己的部分私钥,发送(input,sidsk,xi)给理想函数
Figure FDA0003027553390000024
其中,sidsk为唯一私钥标识符;
其中,
Figure FDA0003027553390000025
为以整数n为阶的整数域;
1.2)若
Figure FDA0003027553390000026
没有(sidsk,i,·),则保存(sidsk,i,xi);否则忽略此条消息;
1.3)若
Figure FDA0003027553390000027
收到所有参与方发来的(input,sidsk,xi),
Figure FDA0003027553390000028
计算
Figure FDA0003027553390000029
Figure FDA00030275533900000216
保存(sidsk,x),并把(input,sidsk)发送给所有参与方;
1.4)当所有参与方接收到
Figure FDA00030275533900000210
返回的(input,sidsk)后,发送(element-out,sidsk)给
Figure FDA00030275533900000211
1.5)当
Figure FDA00030275533900000212
收到所有参与方发来的(element-out,sidsk),如果
Figure FDA00030275533900000213
没有(sidsk,x),则忽略此条消息;否则计算Q=xG,并以(element-out,sidsk,Q)的形式把结果发给所有参与方;其中,G为椭圆曲线点群
Figure FDA00030275533900000214
的基点;
1.6)所有参与方从
Figure FDA00030275533900000215
的返回中获得中间变量Q,计算Ppub=(Q-G)作为SM2的公钥,连同部分私钥xi一起安全保存;
2)由P1,P2,…,Pτ共同完成SM2数字签名;
2.1)Pi
Figure FDA0003027553390000031
中随机选择两个整数ki、ρi,发送(input,sidsig||1,ki)和(input,sidsig||2,ρi)给
Figure FDA0003027553390000032
其中,整数
Figure FDA0003027553390000033
整数
Figure FDA0003027553390000034
Figure FDA0003027553390000035
并且分别由sidsig||1和sidsig||2唯一标识;sidsig为签名会话的标识符;
2.2)当
Figure FDA0003027553390000036
收到某参与方Pi,i∈{1,…,τ}发来的(input,sidsig||1,ki)和(input,sidsig||2,ρi),如果
Figure FDA0003027553390000037
没有(sidsig||1,i,·)和(sidsig||2,i,·),则保存(sidsig||1,i,ki)和(sidsig||2,i,ρi);否则忽略此条消息;
当收到所有参与方发来的(input,sidsig||1,ki)和(input,sidsig||2,ρi),i∈{1,…,τ},
Figure FDA0003027553390000038
计算
Figure FDA0003027553390000039
保存(sidsig||1,k)和(sidsig||2,ρ),并把(input,sidsig||1)和(input,sidsig||2)发送给所有参与方;
2.3)当参与方接收到(input,sidsig||1),(input,sidsig||2)后,Pi发送(mult,sidsk,sidsig||2)和(element-out,sidsig||1)给
Figure FDA00030275533900000310
2.4)当收到所有参与方发来的(mult,sidsk,sidsig||2),i∈{1,…,τ},
Figure FDA00030275533900000311
找出(sidsk,x)和(sidsig||2,ρ),计算
Figure FDA00030275533900000312
并以(mult-out,sidsk,sidsig||2,α)的形式把结果发给所有参与方;如果没有(sidsk,x)或(sidsig||2,ρ),则忽略此条消息;
当收到所有参与方发来的(element-out,sidsig||1),i∈{1,…,τ},如果
Figure FDA0003027553390000041
没有(sidsig||1,k),则忽略此条消息;否则计算R=kG,并以(element-out,sidsig||1,R)的形式把结果发给所有参与方;
2.5)Pi
Figure FDA0003027553390000042
返回的(element-out,sidsig||1,R)和(mult-out,sidsk,sidsig||2,α)中获得第一个中间变量R,和第二个中间变量α,α=xρmod n;
2.6)令R=(rx,ry),Pi计算第一部分签名r=e+rx mod n,其中e是消息m的杂凑值,e=h(m);
2.7)Pi发送(affine,sidsig||1,sidsig||3,1,r)给
Figure FDA0003027553390000043
标识符sidsig||3代表了第三个中间变量,等于k+r mod n;
2.8)当收到某参与方Pi,i∈{1,…,τ}发来的(affine,sidsig||1,sidsig||3,1,r)时,其中x,y是
Figure FDA0003027553390000044
域内的常数,如果
Figure FDA0003027553390000045
没有(sidsig||1,k),则忽略此条消息,否则计算b=k+rmod n,保存(sidsig||3,b);
2.9)Pi发送(mult,sidsig||2,sidsig||3)给
Figure FDA0003027553390000046
2.10)当收到所有参与方发来的(mult,sidsig||2,sidsig||3),i∈{1,…,τ},
Figure FDA0003027553390000051
找出(sidsig||2,ρ)和(sidsig||3,b),计算β=ρb mod n=ρ(k+r)mod n并以(mult-out,sidsig||2,sidsig||3,β)的形式把结果发给所有参与方;如果没有(sidsig||2,ρ)或(sidsig||3,b),则忽略此条消息;
2.11)当
Figure FDA0003027553390000052
返回(mult-out,sidsig||2,sidsig||3,β)时,Pi获得第四个中间变量β,β=ρ(k+r)mod n;
2.12)Pi计算第五个中间变量s′=α-1β-r mod n,为了保持签名一致,选取s=min{s′,n-s′}作为第二部分签名;
2.13)Pi利用SM2的数字签名验证算法验证产生的签名,若通过则公布关于消息m的SM2签名Sig=(r,s);
2.14)根据所有参与方Pi密钥对,联合生成SM2数字签名。
2.根据权利要求1所述的多方联合生成SM2数字签名的方法,其特征在于,所述步骤1)中,在P1,P2,…,Pτ之间的通信中,各参与方使用零知识证明和同态加密保证发送数据的隐私性并且证明发送的数据是来自发送方。
CN201811379398.9A 2018-11-19 2018-11-19 一种多方联合生成sm2数字签名的方法 Active CN109547199B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811379398.9A CN109547199B (zh) 2018-11-19 2018-11-19 一种多方联合生成sm2数字签名的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811379398.9A CN109547199B (zh) 2018-11-19 2018-11-19 一种多方联合生成sm2数字签名的方法

Publications (2)

Publication Number Publication Date
CN109547199A CN109547199A (zh) 2019-03-29
CN109547199B true CN109547199B (zh) 2021-07-02

Family

ID=65848383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811379398.9A Active CN109547199B (zh) 2018-11-19 2018-11-19 一种多方联合生成sm2数字签名的方法

Country Status (1)

Country Link
CN (1) CN109547199B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113541926A (zh) * 2020-04-14 2021-10-22 成都天瑞芯安科技有限公司 Sm2三方联合签名方法与系统
CN112417489B (zh) * 2020-12-04 2022-09-30 矩阵元技术(深圳)有限公司 数字签名的生成方法、装置和服务器
CN112653554B (zh) * 2020-12-30 2023-03-31 成都卫士通信息产业股份有限公司 一种签名方法、系统、设备及可读存储介质
CN113259094B (zh) * 2021-04-21 2022-03-25 山东大学 一种通用的层级签名加密系统与构建方法
CN113972981B (zh) * 2021-09-29 2023-07-04 中国科学院大学 一种基于sm2密码算法的高效门限签名方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014120121A1 (en) * 2013-01-29 2014-08-07 Certicom Corp. Modified sm2 elliptic curve signature algorithm supporting message recovery
CN107483212A (zh) * 2017-08-15 2017-12-15 武汉信安珞珈科技有限公司 一种双方协作生成数字签名的方法
CN107872322A (zh) * 2017-11-02 2018-04-03 武汉理工大学 基于同态加密的数字签名协同生成方法及系统
CN108667623A (zh) * 2018-05-28 2018-10-16 广东工业大学 一种sm2椭圆曲线签名验证算法
CN108667625A (zh) * 2018-07-19 2018-10-16 数安时代科技股份有限公司 协同sm2的数字签名方法
CN108667626A (zh) * 2018-07-20 2018-10-16 陕西师范大学 安全的两方协作sm2签名方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736445A (en) * 1986-01-21 1988-04-05 International Business Machines Corporation Measure of distinguishability for signature verification
US8971528B2 (en) * 2013-01-29 2015-03-03 Certicom Corp. Modified elliptic curve signature algorithm for message recovery
GB2526619A (en) * 2014-05-30 2015-12-02 Vodafone Ip Licensing Ltd Service provisioning

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014120121A1 (en) * 2013-01-29 2014-08-07 Certicom Corp. Modified sm2 elliptic curve signature algorithm supporting message recovery
CN107483212A (zh) * 2017-08-15 2017-12-15 武汉信安珞珈科技有限公司 一种双方协作生成数字签名的方法
CN107872322A (zh) * 2017-11-02 2018-04-03 武汉理工大学 基于同态加密的数字签名协同生成方法及系统
CN108667623A (zh) * 2018-05-28 2018-10-16 广东工业大学 一种sm2椭圆曲线签名验证算法
CN108667625A (zh) * 2018-07-19 2018-10-16 数安时代科技股份有限公司 协同sm2的数字签名方法
CN108667626A (zh) * 2018-07-20 2018-10-16 陕西师范大学 安全的两方协作sm2签名方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SM2椭圆曲线密码系统的软件设计与实现;李绛绛;《中国优秀硕士学位论文期刊全文数据库》;20150415;全文 *

Also Published As

Publication number Publication date
CN109547199A (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
CN109547199B (zh) 一种多方联合生成sm2数字签名的方法
CN107707358B (zh) 一种ec-kcdsa数字签名生成方法及系统
CN109474422B (zh) 一种多方协同产生sm2数字签名的方法
CN109660361B (zh) 一种对称环境下多方联合生成sm9数字签名的方法
CN109194478B (zh) 一种非对称环境下多方联合生成sm9数字签名的方法
CN108667627B (zh) 基于两方协同的sm2数字签名方法
CN107634836B (zh) 一种sm2数字签名生成方法及系统
CN107733648B (zh) 一种基于身份的rsa数字签名生成方法及系统
CN108667625B (zh) 协同sm2的数字签名方法
CN109547212B (zh) 一种基于sm2签名算法的门限签名方法
CN110011803B (zh) 一种轻量级sm2两方协同生成数字签名的方法
CN107579819A (zh) 一种sm9数字签名生成方法及系统
CN110414981B (zh) 一种支持ZKPs的同态加密方法和区块链交易金额加密方法
CN107947913A (zh) 一种基于身份的匿名认证方法与系统
CN109639439B (zh) 一种基于两方协同的ecdsa数字签名方法
CN107682151B (zh) 一种gost数字签名生成方法及系统
CN111010285B (zh) 一种适用于轻量级客户端的sm2两方协同签名方法及介质
CN114157427A (zh) 基于sm2数字签名的门限签名方法
CN107968710A (zh) Sm9数字签名分离交互生成方法及系统
CN109981269B (zh) 一种安全高效的sm9多方密钥分发方法与装置
CN107888380A (zh) 一种两方分布式基于身份的rsa数字签名生成方法与系统
CN110855425A (zh) 一种轻量级多方协同sm9密钥生成、密文解密方法与介质
CN109951292A (zh) 精简的sm9数字签名分离交互生成方法及系统
CN111030821B (zh) 一种基于双线性映射技术的联盟链的加密方法
CN113132104A (zh) 一种主动安全的ecdsa数字签名两方生成方法

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