[go: up one dir, main page]

CN114157427A - 基于sm2数字签名的门限签名方法 - Google Patents

基于sm2数字签名的门限签名方法 Download PDF

Info

Publication number
CN114157427A
CN114157427A CN202111473086.6A CN202111473086A CN114157427A CN 114157427 A CN114157427 A CN 114157427A CN 202111473086 A CN202111473086 A CN 202111473086A CN 114157427 A CN114157427 A CN 114157427A
Authority
CN
China
Prior art keywords
participant
signature
participants
algorithm
threshold
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
CN202111473086.6A
Other languages
English (en)
Other versions
CN114157427B (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.)
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing University of Posts and Telecommunications
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 Nanjing University of Posts and Telecommunications filed Critical Nanjing University of Posts and Telecommunications
Priority to CN202111473086.6A priority Critical patent/CN114157427B/zh
Publication of CN114157427A publication Critical patent/CN114157427A/zh
Application granted granted Critical
Publication of CN114157427B publication Critical patent/CN114157427B/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/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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/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/3255Cryptographic 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 group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明所述的基于SM2数字签名的门限签名方法,主要包括公共参数生成阶段、秘钥生成阶段和签名阶段,其中:在公共参数生成阶段,多个参与者协作生成CL加密的参数gq;在秘钥生成阶段,选择各自随机的私钥份额,生成算法的公钥作为公开值,使用可验证秘密共享协议重新生成参与方各自的私钥份额;在签名阶段,使用CL方法解决秘密值的乘法问题,交互过程中获得的秘密份额可以验证对方是否诚实,利用诚实参与者各自的签名累加生成最后的总签名。本发明的(t,n)SM2门限签名方案中,参与方人数n仅要求大于等于t+1,CL方案的消息空间与SM2签名算法中使用的大素数相同,避免了范围证明,每一方的签名都可以验证其合法性。

Description

基于SM2数字签名的门限签名方法
技术领域
本发明涉及门限签名领域,具体是涉及基于SM2数字签名的门限签名方法。
背景技术
国家密码管理局发布的SM2椭圆曲线公钥密码算法是我国商用公钥密码标准算法,共包含总则、数字签名算法、密钥交换协议、密钥封装机制、公钥加密算法和参数定义五个部分。SM2算法的参数需要利用算法产生,同时加入了用户特异性的椭圆曲线参数、基点、用户公钥点信息,使SM2算法相较于ECC算法安全性有明显提升。
普通签名算法中,只有一个用户拥有私钥。当攻击者窃取该用户的私钥后可以伪造签名信息。门限签名的思想能够有效针对这个问题。门限签名是门限秘密共享技术和数字签名的一种结合,由潜在的参与方共同运行,只有预定部分的参与方同意时,才可以生成特定消息下的签名。在(t,n)门限签名方案中,由n个成员组成一个签名群体,群体中有一对公私钥,当多于t个成员诚实时,可以代表群体用群私钥进行签名,任何人可利用该群体的公钥进行签名验证。其中,t是门限值,任意不少于t+1个人的签名都可以恢复出签名,群体中任何t个或更少的成员不能代表该群体进行签名,同时任何成员不能假冒其他成员进行签名。采用门限签名方式可以有效实现权力分配,同时避免滥用职权。
尚铭等人在2014年提出的SM2椭圆曲线门限密码算法中,私钥信息被分享给独立的多个参与者,签名需要多个参与者同意,但是,该方法中总成员数n必须大于等于2t+1,不适用(2,3)等区块链签名。签名过程中需要公开签名中的乘法分量,且无法确定不诚实用户,存在秘密份额泄露的风险。
ZL2018113793989一种多方联合生成SM2数字签名的方法,每个参与方在不得到完整的私钥的情况下通过交互完成对消息产生唯一的签名,使用零知识证明来保证发送数据的隐私性并且证明发送的数据是来自发送方,但签名过程需要所有参与方共同参与,一旦参与方中存在多数的不诚实者,就会造成签名失败,威胁了安全性和公平性,甚至造成巨大的利益损失。
ZL2018114738527一种基于SM2签名算法的门限签名方法,采用DSA的签名算法,多个用户联合生成DSA公私钥,通过同态性加密的性质共同计算得到DSA签名的加密值,最后对该值解密就生成消息摘要的签名。此方法的签名过程中需要计算n方参与者之间的乘法运算,计算复杂度大。
发明内容
为解决上述技术问题,本发明提供了一种基于SM2数字签名的门限签名方法,可以在不诚实者占多数的前提下,保证签名的有效性。
本发明所述的基于SM2数字签名的门限签名方法,其步骤为:
S1、公共参数生成阶段:所有参与者协作生成CL加密方案的公共参数gq,作为公开值在用户之间共享;
S2、秘钥生成阶段:所有参与方生成各自的SM2公钥和私钥,将各自的公钥发送给其他参与方,生成SM2系统公钥,私密保存各自的私钥;
S3、签名阶段:所有参与方利用CL加密方案传输密文,与其他参与方交互生成各自的签名,所有参与方广播各自的签名并累加生成SM2最后的总签名。
进一步的,S1所述的公共参数生成阶段的具体步骤为:
S1-1、计算基本判别式和生成类群需要用到的随机公共参数
Figure BDA0003388899230000021
S1-1-1、n方参与者
Figure BDA0003388899230000022
输入公共参数(q,1λ),协作运行ISetup算法,其中,λ是安全参数,q是有限域Fq的阶;参与方
Figure BDA0003388899230000023
选择随机数ri
Figure BDA0003388899230000024
计算ri的承诺(gci,gdi)←Com(ri),并广播gci;其中,Com指承诺算法,gci为承诺信息,gdi为打开承诺的信息;
S1-1-2、各参与方
Figure BDA0003388899230000025
收到其余方
Figure BDA0003388899230000026
的承诺{gcj}j≠i后,广播gdi
S1-1-3、各参与方
Figure BDA0003388899230000031
收到广播的gdi后,执行ri←Open(gci,gdi),揭开ri,Open为打开承诺的算法;
S1-1-4各参与方
Figure BDA0003388899230000032
计算公共参数
Figure BDA0003388899230000033
Figure BDA0003388899230000034
S1-2、协作生成公共参数gq
S1-2-1、各参与方
Figure BDA0003388899230000035
运行
Figure BDA0003388899230000036
其中,
Figure BDA0003388899230000037
是λ比特整数,子群
Figure BDA0003388899230000038
Figure BDA0003388899230000039
生成,
Figure BDA00033888992300000310
子群F由f生成,
Figure BDA00033888992300000311
Figure BDA00033888992300000312
阶的上限,生成CL方案的公共参数;
S1-2-2、各参与方
Figure BDA00033888992300000313
选择一个随机数ti,
Figure BDA00033888992300000314
计算
Figure BDA00033888992300000315
生成各自随机的gi份额;
S1-2-3、各参与方
Figure BDA00033888992300000316
计算gi的承诺
Figure BDA00033888992300000317
广播
Figure BDA00033888992300000318
为承诺信息,
Figure BDA00033888992300000319
为打开承诺的信息;;
S1-2-4、各参与方
Figure BDA00033888992300000320
收到其余方
Figure BDA00033888992300000321
的承诺
Figure BDA00033888992300000322
后,广播
Figure BDA00033888992300000323
S1-2-5、各参与方
Figure BDA00033888992300000324
收到广播的
Figure BDA00033888992300000325
后,执行
Figure BDA00033888992300000326
揭开gi
S1-2-6、各参与方
Figure BDA00033888992300000327
广播ti的零知识证明ZKPoK,
Figure BDA00033888992300000328
证明自己知道ti
S1-2-7、
Figure BDA00033888992300000329
收到广播的零知识证明后进行验证,若验证失败,则终止协议;
S1-2-8、各参与方
Figure BDA0003388899230000041
计算出CL加密方案的公共参数gq
Figure BDA0003388899230000042
输出CL方案的公共参数
Figure BDA0003388899230000043
进一步的,S2中SM2密钥生成阶段的具体步骤为:
S2-1、生成SM2门限签名公钥;
S2-1-1、各参与方
Figure BDA0003388899230000044
选择一个随机数ui
Figure BDA0003388899230000045
计算iG的承诺,
[kgci,kgdi]←Com(uiG),G为椭圆曲线上的基点;
S2-1-2、各参与方
Figure BDA0003388899230000046
生成CL加密方案的一对公私钥(ski,pki),
(ski,pki)←CL.KeyGen(1λ);CL.KeyGen(1λ)秘钥生成算法:选择
Figure BDA0003388899230000047
Figure BDA0003388899230000048
计算
Figure BDA0003388899230000049
返回(sk,pk);
S2-1-3、各参与方
Figure BDA00033888992300000410
广播自己的公钥和对uiG的承诺(pki,kgci);
S2-1-4、各参与方
Figure BDA00033888992300000411
广播打开承诺的信息kgdi
S2-1-5、各参与方
Figure BDA00033888992300000412
收到其余方
Figure BDA00033888992300000413
的广播后,揭开每方的承诺Pi←Open(kgci,kgdi),其中,Pi=uiG为各参与方
Figure BDA00033888992300000414
的公钥;
S2-1-6、各参与方
Figure BDA00033888992300000415
计算SM2算法公钥
Figure BDA00033888992300000416
S2-2、生成SM2门限签名私钥;
S2-2-1、各参与方
Figure BDA00033888992300000417
执行ui的门限(t,n)Feldman-Vss算法,
Figure BDA00033888992300000418
其中,ai,k为选择的k项个系数,X为自变量;
S2-2-2、当各参与者
Figure BDA00033888992300000419
与其他参与方
Figure BDA00033888992300000420
交互时,向
Figure BDA00033888992300000421
发送σi,j,其中,{σi,j:=pi(j)}j∈[n]为多项式的计算结果;
S2-2-3、收到各方发来的σi,j后,各参与方
Figure BDA00033888992300000422
计算di:=∑k∈[n]pk(i),其中,di是签名私钥d的(t,n)Shamir门限份额;
S2-2-4、各参与方
Figure BDA0003388899230000051
向所有参与方广播Feldman-Vss算法系数和基点的乘积{Vi,k}k∈[t],其中,{Vi,k:=ai,kG}k∈[t]
S2-2-5、各参与方
Figure BDA0003388899230000052
计算零知识证明
Figure BDA0003388899230000053
并广播πkg,i,证明自己知道di
S2-2-6、
Figure BDA0003388899230000054
收到广播的零知识证明后进行验证,若验证失败,则终止协议。
进一步的,S3签名阶段的具体步骤为:
S3-1、参与方生成各自的(t,n)门限秘密份额;
S3-2、对秘密份额加密;
S3-3、生成各自的可加份额;
S3-4、计算SM2签名的第一部分r;
S3-5、计算SM2签名的第二部分s。
进一步的,S3-1参与方生成各自的(t,n)门限秘密份额的具体步骤为:
S3-1-1、各参与方
Figure BDA0003388899230000055
使用适当的拉格朗日系数将私钥d的(t,n)份额{di}i∈[n]转换为d的(t,t)份额{wi}i∈S,得到d=∑wi
S3-1-2、各参与方
Figure BDA0003388899230000056
计算1+d的(t,t)份额{vi}i∈S,其中(1+d)-1=∑vi
由于Di=di·G和拉格朗日系数是公共值,所有方都可以计算出
Figure BDA0003388899230000057
进一步的,S3-2对秘密份额加密的具体步骤为:
S3-2-1、各参与方
Figure BDA0003388899230000058
输入签名信息m后,首先选择随机的私有共享(ki,γi),
Figure BDA0003388899230000059
选择随机数ri和ri′,
Figure BDA00033888992300000510
用CL加密算法对随机数Ki加密,
Figure BDA00033888992300000511
得到
Figure BDA00033888992300000512
CL.Enc(pk,m)加密算法:选择
Figure BDA00033888992300000513
返回
Figure BDA00033888992300000514
S3-2-2、各参与方
Figure BDA0003388899230000061
对私有份额vi加密,
Figure BDA0003388899230000062
得到
Figure BDA0003388899230000063
其中,使用到的CL.Enc(pk,m)加密算法为:选择
Figure BDA0003388899230000064
返回
Figure BDA0003388899230000065
S3-2-3、各参与方
Figure BDA0003388899230000066
计算γiG的承诺,[sci,sdi]←Com(γiG);其中,sci为承诺信息,sdi为打开承诺的信息;
S3-2-4、各参与方
Figure BDA0003388899230000067
计算零知识证明ZKAok
Figure BDA0003388899230000068
Figure BDA0003388899230000069
来保证CL密文形式正确;
S3-2-5、各参与方
Figure BDA00033888992300000610
Figure BDA00033888992300000611
广播给其余参与方
Figure BDA00033888992300000612
Figure BDA00033888992300000613
验证证明失败,则终止协议。
进一步的,S3-3生成各自的可加份额的具体步骤为:
S3-3-1、定义由n方参与者生成签名算法过程中的乘法份额,k:=∑i∈Ski,γ:=∑i∈Sγi,kγ=∑i,j∈Skjγi,k(1+d)-1=∑i,j∈Skjvi,(1+d)-1d=∑i,j∈Svjwi
S3-3-2、各参与方
Figure BDA00033888992300000614
选择交互过程中己方的随机加法份额
Figure BDA00033888992300000615
计算Bji:=βj,i·G,Cj,i∶=vj,i·G用于验证对方在签名过程中是否诚实;用交互的
Figure BDA00033888992300000616
的公钥pkj
Figure BDA00033888992300000617
使用CL加密算法加密,
Figure BDA00033888992300000618
导到
Figure BDA00033888992300000619
得到
Figure BDA00033888992300000620
得到
Figure BDA00033888992300000621
S3-3-3、各参与方
Figure BDA00033888992300000622
使用CL同态加密方法中的转化和算法、转化标量算法计算计算
Figure BDA00033888992300000623
得到
Figure BDA0003388899230000071
利用同样的加密方法
Figure BDA0003388899230000072
得到
Figure BDA0003388899230000073
Figure BDA0003388899230000074
得到
Figure BDA0003388899230000075
S3-3-4、各参与方
Figure BDA0003388899230000076
将将密文和验证信息
Figure BDA0003388899230000077
广播给
Figure BDA0003388899230000078
S3-3-5、
Figure BDA0003388899230000079
解密密文
Figure BDA00033888992300000710
以恢复出另一半可加份额(αj,i,μj,i,τj,i)
Figure BDA00033888992300000711
Figure BDA00033888992300000712
解密后得到明文αj,i=kjvij,i,μj,i=vjwi-vj,i
Figure BDA00033888992300000713
S3-3-6、
Figure BDA00033888992300000714
验证
Figure BDA00033888992300000715
若等式不成立,说明有参与者使用了与秘密共享阶段不同的私钥,验证不通过,中止协议;
S3-3-7、各参与方
Figure BDA00033888992300000716
保存(ρi,σi,δi),其中,ρi=kivi+∑j≠ii,jj,i),σi=viwi+∑j≠ii,j+vj,i)作为计算签名算法中s的信息,
Figure BDA00033888992300000717
作为计算签名算法中r的信息。
进一步的,S3-4、计算SM2签名中的r的具体步骤为:
S3-4-1、各参与方
Figure BDA00033888992300000718
广播自己的δi,所有的参与方计算δ=∑i∈Sδi=kγ-1
S3-4-2、各参与方
Figure BDA00033888992300000719
广播承诺中的sdi来解除对Γi的承诺,其中Γi=γiG=Open(sci,sdi);
S3-4-3、各参与方
Figure BDA00033888992300000720
计算零知识证明
Figure BDA00033888992300000721
并广播,证明自己知道γi
Figure BDA00033888992300000722
收到后若验证不通过,中止协议;
S3-4-4、各参与方
Figure BDA00033888992300000723
计算R:=δ(∑i∈SΓi)=k·G,r:=Rx+e;其中,Rx是R的横坐标,e是消息m的哈希值。
进一步的,S3-5、计算SM2签名中的S的具体步骤为
S3-5-1、各参与方
Figure BDA0003388899230000081
计算各自的签名信息si=ρi-rσi
S3-5-2、各参与方
Figure BDA0003388899230000082
选择独立随机数(ηi,θi),计算验证信息Vi:=si(G+P)+ηiG;Ai:=θiG;
Figure BDA0003388899230000083
并广播
Figure BDA0003388899230000084
S3-5-3、各参与方
Figure BDA0003388899230000085
收到其余方
Figure BDA0003388899230000086
广播的对验证信息的承诺信息
Figure BDA0003388899230000087
后,通过广播
Figure BDA0003388899230000088
来解除承诺,
Figure BDA0003388899230000089
同时计算(si,ηi,θi)的零知识证明NIZKPoK,
Figure BDA00033888992300000810
证明自己知道(si,ηi,θi);
S3-5-4、
Figure BDA00033888992300000811
收到后检查零知识证明NIZKPoK,若验证不通过,中止协议;各参与方
Figure BDA00033888992300000812
利用消息m,签名信息R和r以及公钥P计算
V:=m+rP-R+∑i∈SVi,A:=∑i∈SAi
S3-5-5、各参与方
Figure BDA00033888992300000813
计算Ui:=θiV,Ti:=ηiA,对Ui和Ti计算承诺
Figure BDA00033888992300000814
广播
Figure BDA00033888992300000815
S3-5-6、各参与方
Figure BDA00033888992300000816
收到其余方
Figure BDA00033888992300000817
广播的
Figure BDA00033888992300000818
后,广播
Figure BDA00033888992300000819
Figure BDA00033888992300000820
收到后
Figure BDA00033888992300000821
解除承诺,
Figure BDA00033888992300000822
S3-5-7、各参与方
Figure BDA00033888992300000823
检查∑i∈STi=∑i∈SUi,若验证不通过,中止协议;
S3-5-8、各参与方
Figure BDA00033888992300000824
广播si,所有参与方都计算s:=∑i∈Ssi
S3-5-9、各参与方
Figure BDA00033888992300000825
检查(r,s)是否是合理的SM2签名,输出(r,s),否则停止协议。
本发明所述的有益效果为:本发明的(t,n)SM2门限签名协议中,参与方人数n仅要求大于等于t+1;使用CL方法解决秘密值的乘法问题,将乘法份额转变为可加份额,签名过程中n方之间的乘法转化为一对乘法,降低了计算复杂度;CL方案的消息空间与SM2签名算法中使用的大素数相同,从而避免范围证明;每一方的签名都可以验证合法性。
附图说明
为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对本发明作进一步详细的说明。
图1为本发明实施例中门限签名算法的流程图;
图2为本发明实施例中生成公共参数交互示意图;
图3为本发明实施例中生成公私钥交互示意图;
图4为本发明实施例中生成签名交互示意图。
具体实施方式
本发明所述的基于SM2数字签名的门限签名方法,主要包括公共参数生成阶段、秘钥生成阶段和签名阶段,其中:在系统建立阶段,多个参与者协作生成CL加密的参数gq,作为公开值在用户之间共享;在秘钥生成阶段,选择各自随机的私钥份额,生成算法的公钥作为公开值;在签名阶段使用Feldman Vss协议重新生成参与方各自的私钥份额,使用CL方法解决秘密值的乘法问题,与其他参与方交互将乘法份额转变为可加份额,n方之间的乘法转化为一对乘法,交互过程中获得的加法份额可以验证对方是否诚实;利用诚实参与者各自的签名累加生成最后的总签名。
在秘钥生成阶段和签名阶段的步骤1、2、4、5,所有参与方对各自的输入都执行相同的操作,在本发明中只描述某些方
Figure BDA0003388899230000091
的执行步骤。若
Figure BDA0003388899230000092
广播某个值vi
Figure BDA0003388899230000093
也隐式地接受
Figure BDA0003388899230000094
广播的vj;签名阶段的步骤3由n个参与方中所有的
Figure BDA0003388899230000095
对执行。
在本实施例中,引用文献“Castagnos,G.,Catalano,D.,Laguillaumie,F.,Savasta,F.,Tucker,I.:Bandwidth-efficient threshold EC-DSA.Cryptology ePrintArchive,Report 2020/084(2020).”中描述的零知识证明作为实施例中用到的ZKPoK算法,Feldman可验证秘密共享和承诺算法作为本发明的Feldman-Vss算法和Com算法。
n个参与方的的公共参数(E(Fq),q,G)是SM2数字签名算法的系统参数,其中,E(Fq)表示Fq上椭圆曲线E的所有有理点,有限域Fq的阶是素数q,G表示椭圆曲线上的基点,G的阶为n。选取椭圆曲线方程E为y2=x3+ax+b,其中,a,b∈Fq。本发明中使用国密SM3哈希算法,系统参数的选取符合SM2数字签名算法、SM3哈希算法的标准规范。
本发明所述的基于SM2数字签名的门限签名方法,其具体步骤为:
S1、公共参数生成阶段:所有参与者协作生成CL加密方案的公共参数gq,作为公开值存用户之间共享;
S2、秘钥生成阶段;所有参与方生成各自的SM2公钥和私钥,将各自的公钥发送个其他参与方,生成SM2系统公钥,私密保存各自的私钥;
S3、签名阶段:所有参与方利用CL加密方案与其他参与方交互生成各自的签名,所有参与方广播各自的签名并累加生成SM2最后的总签名。
其中,公共参数生成阶段的具体步骤为:
S1-1、计算基本判别式和生成类群需要用到的随机公共参数
Figure BDA0003388899230000101
S1-1-1、n方参与者
Figure BDA0003388899230000102
输入公共参数(q,1λ),协作运行ISetup算法,其中,λ是安全参数,q是有限域Fq的阶;参与方
Figure BDA0003388899230000103
选择随机数ri
Figure BDA0003388899230000104
计算ri的承诺(gci,gdi)←Com(ri),并广播gci;其中,Com指承诺算法,gci为承诺信息,gdi为打开承诺的信息;
S1-1-2、各参与方
Figure BDA0003388899230000105
收到其余方
Figure BDA0003388899230000106
的承诺{gcj}j≠i后,广播gdi
S1-1-3、各参与方
Figure BDA0003388899230000107
收到广播的gdi后,执行ri←Open(gci,gdi),揭开ri,Open为打开承诺的算法;
S1-1-4各参与方
Figure BDA0003388899230000111
计算公共参数
Figure BDA0003388899230000112
Figure BDA0003388899230000113
S1-2、协作生成公共参数gq
S1-2-1、各参与方
Figure BDA0003388899230000114
运行
Figure BDA0003388899230000115
其中,
Figure BDA0003388899230000116
是λ比特整数,子群
Figure BDA0003388899230000117
Figure BDA0003388899230000118
生成,
Figure BDA0003388899230000119
子群F由f生成,
Figure BDA00033888992300001110
Figure BDA00033888992300001111
阶的上限,生成CL方案的公共参数;
S1-2-2、各参与力
Figure BDA00033888992300001112
选择一个随机数ti
Figure BDA00033888992300001113
计算
Figure BDA00033888992300001114
生成各自随机的gi份额;
S1-2-3、各参与方
Figure BDA00033888992300001115
汁算gi的承诺
Figure BDA00033888992300001116
广播
Figure BDA00033888992300001117
为承诺信息,
Figure BDA00033888992300001118
为打开承诺的信息;;
S1-2-4、各参与方
Figure BDA00033888992300001119
收到其余方
Figure BDA00033888992300001120
的承诺
Figure BDA00033888992300001121
后,广播
Figure BDA00033888992300001122
S1-2-5、各参与方
Figure BDA00033888992300001123
收到广播的
Figure BDA00033888992300001124
后,执行
Figure BDA00033888992300001125
揭开gi
S1-2-6、各参与方
Figure BDA00033888992300001126
广播ti的零知识证明ZKPoK,
Figure BDA00033888992300001127
证明自己知道ti
S1-2-7、
Figure BDA00033888992300001128
收到广播的零知识证明后进行验证,若验证失败,则终止协议;S1-2-8、各参与方
Figure BDA00033888992300001129
计算出CL加密方案的公共参数gq
Figure BDA0003388899230000121
输出CL方案的公共参数
Figure BDA0003388899230000122
SM2密钥生成阶段的具体步骤为:
S2-1、生成SM2门限签名公钥;
S2-1-1、各参与方
Figure BDA0003388899230000123
选择一个随机数ui
Figure BDA0003388899230000124
计算uiG的承诺,[kgci,kgdi]←Com(uiG),G为椭圆曲线上的基点;
S2-1-2、各参与方
Figure BDA0003388899230000125
生成CL加密方案的一对公私钥(ski,pki),(ski,pki)←CL.KeyGen(1λ);CL.KeyGen(1λ)秘钥生成算法:选择
Figure BDA0003388899230000126
Figure BDA0003388899230000127
计算
Figure BDA0003388899230000128
返回(sk,pk);
S2-1-3、各参与方
Figure BDA0003388899230000129
广播自己的公钥和对uiG的承诺(pki,kgci);
S2-1-4、各参与方
Figure BDA00033888992300001210
广播打开承诺的信息kgdi
S2-1-5、各参与方
Figure BDA00033888992300001211
收到其余方
Figure BDA00033888992300001212
的广播后,揭开每方的承诺Pi←Open(kgci,kgdi),其中,Pi=uiG为各参与方
Figure BDA00033888992300001213
的公钥;
S2-1-6、各参与方
Figure BDA00033888992300001214
计算SM2算法公钥
Figure BDA00033888992300001215
S2-2、生成SM2门限签名私钥;
S2-2-1、各参与方
Figure BDA00033888992300001216
执行ui的门限(t,n)Feldman-Vss算法,
Figure BDA00033888992300001217
其中,ai,k为选择的k项个系数,X为自变量;S2-2-2、当各参与者
Figure BDA00033888992300001218
与其他参与方
Figure BDA00033888992300001219
交互时,向
Figure BDA00033888992300001220
发送σi,j,其中,{σi,j:=pi(j)}j∈[n]为多项式的计算结果;
S2-2-3、收到各方发来的σi,j后,各参与方
Figure BDA00033888992300001221
汁算di:=∑k∈[n]pk(i),其中,di是签名私钥d的(t,n)Shamir门限份额;
S2-2-4、各参与方
Figure BDA00033888992300001222
向所有参与方广播Feldman-Vss算法系数和基点的乘积{Vi,k}k∈[t],其中,{Vi,k:=ai,kG}k∈[t]
S2-2-5、各参与方
Figure BDA0003388899230000131
计算零知识证明
Figure BDA0003388899230000132
并广播πkg,i,证明自己知道di
S2-2-6、
Figure BDA0003388899230000133
收到广播的零知识证明后进行验证,若验证失败,则终止协议。
签名阶段,将乘法份额转变为可加份额的签名方案:
在SM2签名算法中,r=kG+e,s=k(1+d)-1-(1+d)-1rd;本实施例中存在n方参与者的情况下,多方参与者交互生成乘法秘密值,最终合作生成签名的算法过程如下:令kG=kγ-1γG=(∑i,j∈[S]kiγj -1)·(∑i∈[S]γiG)=[∑i∈[S](∑j∈[S](kiγj))]·(∑i∈[S]γiG),k(1+d)-1=∑i,j∈[S]kjvi=∑i∈[S](∑j∈[S](kivj)),(1+d)-1d=∑i,j∈[S]vjwi=∑i∈[S](∑j∈[S](viwj));
Figure BDA0003388899230000134
ρi=∑i∈[S](kivj)=kivi+∑i≠j(kivj)=kivi+∑j≠ii,jj,i),σi=(∑i∈[S](viwj)=viwi+∑i≠j(viwj)=viwi+∑j≠ii,d+vj,i);则可以得到kG=∑i∈[S]δi·(∑i∈[S]γiG)=∑i∈[S]δi·∑i∈[S]Γi,r=kG+e,s=∑i∈[S]ρi-r∑i∈[S]σi=∑i∈[S]i-rσi);
又si=∑i∈[S]i-rσi),因此,s=∑i∈[S]si
S3-1参与方生成各自的(t,n)门限秘密份额:
S3-1-1、各参与方
Figure BDA0003388899230000135
使用适当的拉格朗日系数将私钥d的(t,n)份额(di}i∈[n]转换为d的(t,t)份额{wi}i∈S,得到d=∑wi
S3-1-2、各参与方
Figure BDA0003388899230000136
计算1+d的(t,t)份额{vi}i∈S,其中(1+d)-1=∑vi
由于Di=di·G和拉格朗日系数是公共值,所有方都可以计算出
Figure BDA0003388899230000137
S3-2对秘密份额加密:
S3-2-1、各参与方
Figure BDA0003388899230000141
输入签名信息m后,首先选择随机的私有共享(ki,γi),
Figure BDA0003388899230000142
选择随机数ri和ri′,
Figure BDA0003388899230000143
用CL加密算法对随机数ki加密,
Figure BDA0003388899230000144
得到
Figure BDA0003388899230000145
CL.Enc(pk,m)加密算法:选择
Figure BDA0003388899230000146
返回
Figure BDA0003388899230000147
S3-2-2、各参与方
Figure BDA0003388899230000148
对私有份额vi加密,
Figure BDA0003388899230000149
得到
Figure BDA00033888992300001410
其中,使用到的CL.Enc(pk,m)加密算法为:选择
Figure BDA00033888992300001411
返回
Figure BDA00033888992300001412
S3-2-3、各参与方
Figure BDA00033888992300001413
计算γiG的承诺,[sci,sdi]←Com(γiG);其中,sci为承诺信息,sdi为打开承诺的信息;
S3-2-4、各参与方
Figure BDA00033888992300001414
计算零知识证明ZKAok
Figure BDA00033888992300001415
Figure BDA00033888992300001416
来保证CL密文形式正确;
Figure BDA00033888992300001417
证明:Prover执行
Figure BDA00033888992300001418
c:=(c1,c2),其中,
Figure BDA00033888992300001419
r为随机数,
Figure BDA00033888992300001420
为取值范围;
Figure BDA00033888992300001421
其中,Gen为参数生成算法,gq为CL方案参数,t为随机数,
Figure BDA00033888992300001422
是挑战集合;
Prover输入
Figure BDA00033888992300001423
Verifier输入((pk,c));
Prover选择随机数(r1,r2),
Figure BDA00033888992300001424
计算
Figure BDA00033888992300001425
将(t1,t2)发送给Verifier;Verifier收到(t1,t2)后将随机数k发送给Prover;Prover计算u1:=r1+kr,
Figure BDA00033888992300001426
并将(u1,u2)发送给Verifier;Verifier计算
Figure BDA0003388899230000151
并验证
Figure BDA0003388899230000152
u2∈Z/qZ.
Figure BDA0003388899230000153
用同样的方法验证;
S3-2-5、各参与方
Figure BDA0003388899230000154
Figure BDA0003388899230000155
广播给其余参与方
Figure BDA0003388899230000156
Figure BDA0003388899230000157
验证证明失败,则终止协议。
S3-3生成各自的可加份额:
S3-3-1、定义由n方参与者生成签名算法中的乘法份额,k:=∑i∈Ski,γ:=∑i∈Sγi,kγ=∑i,j∈skjγi,k(1+d)-1=∑i,j∈Skjvi,(1+d)-1d=∑i,j∈Sviwi
这个阶段在每对
Figure BDA0003388899230000158
之间对等进行,是为了将
Figure BDA0003388899230000159
的乘法份额kj
Figure BDA00033888992300001510
(包括(kjvi)的kj和vi,(vjwi)的vj和wi)转换为可加份额,其中,
Figure BDA00033888992300001511
αj,ij,i=kjvi,μj,i+vj,i=vjwi
S3-3-2、各参与方
Figure BDA00033888992300001512
选择交互过程中己方的随机加法份额
Figure BDA00033888992300001513
计算Bj,i:=βj,i·G,Cj,i:=vj,i·G用于验证对方在签名过程中是否诚实;用交互的
Figure BDA00033888992300001514
的公钥pkj
Figure BDA00033888992300001515
使用CL加密算法加密,
Figure BDA00033888992300001516
得到
Figure BDA00033888992300001517
得到
Figure BDA00033888992300001518
得到
Figure BDA00033888992300001519
S3-3-3、各参与方
Figure BDA00033888992300001520
使用CL同态加密方法中的转化和算法、转化标量算法计算
Figure BDA00033888992300001521
得到
Figure BDA00033888992300001522
利用同样的加密方法
Figure BDA00033888992300001523
得到
Figure BDA0003388899230000161
得到
Figure BDA0003388899230000162
S3-3-4、各参与方
Figure BDA0003388899230000163
将密文和验证信息
Figure BDA0003388899230000164
广播给
Figure BDA0003388899230000165
S3-3-5、
Figure BDA0003388899230000166
解密密文
Figure BDA0003388899230000167
以恢复出另一半可加份额(αj,i,μj,i,τj,i)
Figure BDA0003388899230000168
Figure BDA0003388899230000169
解密后得到明文,αj,i=kjvij,i,μj,i=vjwi-vj,i
Figure BDA00033888992300001610
CL.Dec(sk,(c1,c2))解密算法:计算
Figure BDA00033888992300001611
返回Slove(M);
S3-3-6、
Figure BDA00033888992300001612
验证
Figure BDA00033888992300001613
若等式不成立,说明有参与者使用了与秘密共享阶段不同的私钥,验证不通过,中止协议;
S3-3-7、各参与方
Figure BDA00033888992300001614
保存(ρi,σi,δi),其中,ρi=kivi+∑j≠ii,jj,i),σi=viwi+∑j≠ii,j+vj,i)作为计算签名算法中S的信息,
Figure BDA00033888992300001615
作为计算签名算法中r的信息。
S3-4、计算SM2签名中的r:
S3-4-1、各参与方
Figure BDA00033888992300001616
广播自己的δi,所有的参与方计算δ=∑i∈Sδi=kγ-1
S3-4-2、各参与方
Figure BDA00033888992300001617
广播承诺中的sdi来解除对Γi的承诺,其中Γi=γiG=Open(sci,sdi);
S3-4-3、各参与力
Figure BDA00033888992300001618
计算零知识证明
Figure BDA00033888992300001619
并广播,证明自己知道γi
Figure BDA00033888992300001620
收到后若验证不通过,中止协议;
S3-4-4、各参与力
Figure BDA00033888992300001621
计算R:=δ(∑i∈SΓi)=k·G,r:=Rx+e;其中,Rx是R的横坐标,e是消息m的哈希值。
国密局颁发的SM2签名算法中e的计算方法如下:用户首先输入消息m,设ID是长度为entlen比特的标识,ENTL是由entlen转换而成的两个字节,Z=H256(ENTL||ID||a||b||xG||yG||xP||yP);其中,(a,b)是椭圆曲线方程的参数,(xG,yG)是基点G的坐标,(xP,yP)是公钥P的坐标;这些值转换为比特串后,再用H256进行哈希,取
Figure BDA0003388899230000171
Hv是输出v比特长的哈希函数。
S3-5、计算SM2签名中的s:
S3-5-1、各参与方
Figure BDA0003388899230000172
计算各自的签名信息si=ρi-rσi
S3-5-2、各参与方
Figure BDA0003388899230000173
选择独立随机数(ηi,θi),计算验证信息Vi:=si(G+P)+ηiG;Ai:=θiG;
Figure BDA0003388899230000174
并广播
Figure BDA0003388899230000175
S3-5-3、各参与方
Figure BDA0003388899230000176
收到其余方
Figure BDA0003388899230000177
广播的对验证信息的承诺信息
Figure BDA0003388899230000178
后,通过广播
Figure BDA0003388899230000179
来解除承诺,
Figure BDA00033888992300001710
同时计算(si,ηi,θi)的零知识证明NIZKPoK,
Figure BDA00033888992300001711
证明自己知道(si,ηi,θi);
S3-5-4、
Figure BDA00033888992300001712
收到后检查零知识证明NIZKPoK,若验证不通过,中止协议;各参与方
Figure BDA00033888992300001713
利用消息m,签名信息R和r以及公钥P计算
V:=m+rP-R+∑i∈SVi,A:=∑i∈sAi
S3-5-5、各参与方
Figure BDA00033888992300001714
汁算Ui:=θiV,Ti:=ηiA,对Ui和Ti计算承诺
Figure BDA00033888992300001715
广播
Figure BDA00033888992300001716
S3-5-6、各参与方
Figure BDA00033888992300001717
收到其余方
Figure BDA00033888992300001718
广播的
Figure BDA00033888992300001719
后,广播
Figure BDA00033888992300001720
收到后
Figure BDA00033888992300001721
解除承诺,
Figure BDA00033888992300001722
S3-5-7、各参与方
Figure BDA00033888992300001723
检查∑i∈sTi=∑i∈sUi,若验证不通过,中止协议;
S3-5-8、各参与方
Figure BDA00033888992300001724
广播si,所有参与方都计算s:=∑i∈ssi
S3-5-9、各参与方
Figure BDA0003388899230000181
检查(r,s)是否是合理的SM2签名,输出(r,s),否则停止协议。
本发明使用CL方案解决SM2门限签名中秘密值的乘法问题,每个参与方通过与其他参与方交互,将乘法份额转变为可加份额,n方之间的乘法转化为一对乘法,交互过程中可以验证对方是否诚实,实现了在不诚实者占多数的前提下,保证签名的有效性。
举例来说,本发明所述的SM2门限签名方案可以应用于区块链钱包消费系统。将安全有效的门限SM2签名算法应用于以太坊的钱包控制上,即有n个用户对钱包有监管权,当钱包进行交易消费时,需n个用户中超过阈值t个用户共同生成门限签名,才可以进行消费。
以转账发起人A为例:
1.用户A输入转账地址以及转账数额;
2.签名成员合作生成系统参数以及生成公私钥;
(1)签名群体中的参与者合作生成系统参数;
(2)各参与者选择随机的私钥,通过公开各自的公钥来生成系统公钥,而私钥秘密保存。
3.利用本发明中的门限SM2签名方法交互生成系统签名;
(1)各参与者选择签名算法中的随机份额,加密后将密文发送给其他参与者,同时提供密文完整性的零知识证明。
(2)各参与者收到密文和零知识证明后,首先验证零知识证明,若验证不通过,中止签名过程;
(3)各参与者利用同态加密方法对收到的密文和自己的密文加密发送给其他参与者,同时发送验证信息;
(4)各参与者首先需要判断验证信息是否合法,若不合法,中止签名过程;
(5)各参与者利用解密得到的明文计算签名的部分信息;
(6)各参与者广播自己关于签名的部分信息,计算得到签名中的r。
(7)各参与者生成各自的签名,向其他参与者发送签名的零知识证明以及其他验证信息;
(8)各参与者验证零知识证明以及其他验证信息是否正确,若验证不通过,中止签名;
(9)各参与者通过广播各自的签名生成最终的签名s。
4.验证;
(1)钱包消费系统验证签名(r,s)的合法性;
(2)签名通过验证后,用户A完成转账过程。
若交易中存在欺骗等恶意行为会引起签名过程失败,交易不能加入区块链中,用户A无法完成转账。
基于本发明的方法,很容易构建实施区块链钱包消费系统。
以上所述仅为本发明的优选方案,并非作为对本发明的进一步限定,凡是利用本发明说明书及附图内容所作的各种等效变化均在本发明的保护范围之内。

Claims (9)

1.基于SM2数字签名的门限签名方法,其特征在于,所述方法步骤为:
S1、公共参数生成阶段:所有参与者协作生成CL加密方案的公共参数gq,作为公开值在用户之间共享;
S2、秘钥生成阶段:所有参与方生成各自的SM2公钥和私钥,将各自的公钥发送给其他参与方,生成SM2系统公钥,私密保存各自的私钥;
S3、签名阶段:所有参与方利用CL加密方案传输密文,与其他参与方交互生成各自的签名,所有参与方广播各自的签名并累加生成SM2最后的总签名。
2.根据权利要求1所述的基于SM2数字签名的门限签名方法,其特征在于,S1所述的公共参数生成阶段的具体步骤为:
S1-1、计算基本判别式和生成类群需要用到的随机公共参数
Figure FDA0003388899220000011
S1-1-1、n方参与者
Figure FDA0003388899220000012
输入公共参数(q,1λ),协作运行ISetup算法,其中,λ是安全参数,q是有限域Fq的阶;参与方
Figure FDA0003388899220000013
选择随机数ri
Figure FDA0003388899220000014
计算ri的承诺(gci,gdi)←Com(ri),并广播gci;其中,Com指承诺算法,gci为承诺信息,gdi为打开承诺的信息;
S1-1-2、各参与方
Figure FDA0003388899220000015
收到其余方
Figure FDA00033888992200000113
的承诺{gcj}j≠i后,广播gdi
S1-1-3、各参与方
Figure FDA0003388899220000016
收到广播的gdi后,执行ri←Open(gci,gdi),揭开ri,Open为打开承诺的算法;
S1-1-4各参与方
Figure FDA0003388899220000017
计算公共参数
Figure FDA0003388899220000018
Figure FDA0003388899220000019
S1-2、协作生成公共参数gq
S1-2-1、各参与方
Figure FDA00033888992200000110
运行
Figure FDA00033888992200000111
其中,
Figure FDA00033888992200000112
是λ比特整数,子群
Figure FDA0003388899220000021
Figure FDA0003388899220000022
生成,
Figure FDA0003388899220000023
子群F由f生成,
Figure FDA00033888992200000226
Figure FDA0003388899220000024
阶的上限,生成CL方案的公共参数;
S1-2-2、各参与方
Figure FDA0003388899220000025
选择一个随机数ti
Figure FDA0003388899220000026
计算
Figure FDA0003388899220000027
生成各自随机的gi份额;
S1-2-3、各参与方
Figure FDA0003388899220000028
计算gi的承诺
Figure FDA0003388899220000029
广播
Figure FDA00033888992200000210
为承诺信息,
Figure FDA00033888992200000211
为打开承诺的信息;;
S1-2-4、各参与方
Figure FDA00033888992200000212
收到其余方
Figure FDA00033888992200000227
的承诺
Figure FDA00033888992200000213
后,广播
Figure FDA00033888992200000214
S1-2-5、各参与方
Figure FDA00033888992200000215
收到广播的
Figure FDA00033888992200000216
后,执行
Figure FDA00033888992200000217
揭开gi
S1-2-6、各参与方
Figure FDA00033888992200000218
广播ti的零知识证明ZKPoK,
Figure FDA00033888992200000219
证明自己知道ti
S1-2-7、
Figure FDA00033888992200000220
收到广播的零知识证明后进行验证,若验证失败,则终止协议;
S1-2-8、各参与方
Figure FDA00033888992200000221
计算出CL加密方案的公共参数gq
Figure FDA00033888992200000222
输出CL方案的公共参数
Figure FDA00033888992200000223
3.根据权利要求1所述的基于SM2数字签名的门限签名方法,其特征在于,S2中SM2密钥生成阶段的具体步骤为:
S2-1、生成SM2门限签名公钥;
S2-1-1、各参与方
Figure FDA00033888992200000224
选择一个随机数ui
Figure FDA00033888992200000225
计算uiG的承诺,[kgci,kgdi]←Com(uiG),G为椭圆曲线上的基点;
S2-1-2、各参与方
Figure FDA0003388899220000031
生成CL加密方案的一对公私钥(ski,pki),(ski,pki)←CL.KeyGen(1λ);CL.KeyGen(1λ)秘钥生成算法:选择
Figure FDA0003388899220000032
Figure FDA0003388899220000033
计算
Figure FDA0003388899220000034
返回(sk,pk);
S2-1-3、各参与方
Figure FDA0003388899220000035
广播自己的公钥和对uiG的承诺(pki,kg ci);
S2-1-4、各参与方
Figure FDA0003388899220000036
广播打开承诺的信息kg di
S2-1-5、各参与方
Figure FDA0003388899220000037
收到其余方
Figure FDA0003388899220000038
的广播后,揭开每方的承诺Pi←Open(kgci,kgdi),其中,Pi=uiG为各参与方
Figure FDA0003388899220000039
的公钥;
S2-1-6、各参与方
Figure FDA00033888992200000310
计算SM2算法公钥
Figure FDA00033888992200000311
S2-2、生成SM2门限签名私钥;
S2-2-1、各参与方
Figure FDA00033888992200000312
执行ui的门限(t,n)Feldman-Vss算法,
Figure FDA00033888992200000313
其中,ai,k为选择的k项个系数,X为自变量;
S2-2-2、当各参与者
Figure FDA00033888992200000314
与其他参与方
Figure FDA00033888992200000315
交互时,向
Figure FDA00033888992200000316
发送σi,j,其中,{σi,j:=pi(j)}j∈[n]为多项式的计算结果;
S2-2-3、收到各方发来的σi,j后,各参与方
Figure FDA00033888992200000317
计算di:=∑k∈[n]pk(i),其中,di是签名私钥d的(t,n)Shamir门限份额;
S2-2-4、各参与方
Figure FDA00033888992200000318
向所有参与方广播Feldman-Vss算法系数和基点的乘积{Vi,k}k∈[t],其中,{Vi,k:=ai,kG}k∈[t]
S2-2-5、各参与方
Figure FDA00033888992200000319
计算零知识证明
Figure FDA00033888992200000321
并广播πkg,i,证明自己知道di
S2-2-6、
Figure FDA00033888992200000320
收到广播的零知识证明后进行验证,若验证失败,则终止协议。
4.根据权利要求1所述的基于SM2数字签名的门限签名方法,其特征在于,S3签名阶段的具体步骤为:
S3-1、参与方生成各自的(t,n)门限秘密份额;
S3-2、对秘密份额加密;
S3-3、生成各自的可加份额;
S3-4、计算SM2签名的第一部分r;
S3-5、计算SM2签名的第二部分s。
5.根据权利要求4所述的基于SM2数字签名的门限签名方法,其特征在于,S3-1参与方生成各自的(t,n)门限秘密份额的具体步骤为:
S3-1-1、各参与方
Figure FDA0003388899220000041
使用适当的拉格朗日系数将私钥d的(t,n)份额{di}i∈[n]转换为d的(t,t)份额{wi}i∈S,得到d=∑wi
S3-1-2、各参与方
Figure FDA0003388899220000042
计算1+d的(t,t)份额{vi}i∈S,其中(1+d)-1=∑vi
由于Di=di·G和拉格朗日系数是公共值,所有方都可以计算出
Figure FDA0003388899220000043
6.根据权利要求4所述的基于SM2数字签名的门限签名方法,其特征在于,S3-2对秘密份额加密的具体步骤为:
S3-2-1、各参与方
Figure FDA0003388899220000044
输入签名信息m后,首先选择随机的私有共享(ki,γi),
Figure FDA0003388899220000045
选择随机数ri和ri′,
Figure FDA0003388899220000046
用CL加密算法对随机数ki加密,
Figure FDA0003388899220000047
得到
Figure FDA0003388899220000048
CL.Enc(pk,m)加密算法:选择
Figure FDA0003388899220000049
返回
Figure FDA00033888992200000410
S3-2-2、各参与方
Figure FDA00033888992200000411
对私有份额vi加密,
Figure FDA00033888992200000412
得到
Figure FDA00033888992200000413
其中,使用到的CL.Enc(pk,m)加密算法为:选择
Figure FDA00033888992200000416
返回
Figure FDA00033888992200000414
S3-2-3、各参与方
Figure FDA00033888992200000415
计算γiG的承诺,[sci,sdi]←Com(γiG);其中,sci为承诺信息,sdi为打开承诺的信息;
S3-2-4、各参与方
Figure FDA0003388899220000051
计算零知识证明ZKAok
Figure FDA0003388899220000052
Figure FDA0003388899220000053
来保证CL密文形式正确;
S3-2-5、各参与方
Figure FDA0003388899220000054
Figure FDA0003388899220000055
广播给其余参与方
Figure FDA0003388899220000056
Figure FDA0003388899220000057
验证证明失败,则终止协议。
7.根据权利要求4所述的基于SM2数字签名的门限签名方法,其特征在于,S3-3生成各自的可加份额的具体步骤为:
S3-3-1、定义由n方参与者生成签名算法过程中的乘法份额,k:=∑i∈Ski,γ:=∑i∈Sγi,kγ=∑i,j∈Skjγi,k(1+d)-1=∑i,j∈Skjvi,(1+d)-1d=∑i,j∈Svjwi
S3-3-2、各参与方
Figure FDA0003388899220000058
选择交互过程中己方的随机加法份额
Figure FDA0003388899220000059
计算Bj,i:=βj,i·G,Cj,i:=vj,i·G用于验证对方在签名过程中是否诚实;用交互的
Figure FDA00033888992200000510
的公钥pkj
Figure FDA00033888992200000511
使用CL加密算法加密,
Figure FDA00033888992200000512
得到
Figure FDA00033888992200000513
得到
Figure FDA00033888992200000514
得到
Figure FDA00033888992200000515
S3-3-3、各参与方
Figure FDA00033888992200000516
使用CL同态加密方法中的转化和算法、转化标量算法计算计算
Figure FDA00033888992200000517
得到
Figure FDA00033888992200000518
利用同样的加密方法
Figure FDA00033888992200000519
得到
Figure FDA00033888992200000520
Figure FDA00033888992200000521
得到
Figure FDA00033888992200000522
S3-3-4、各参与方
Figure FDA0003388899220000061
将将密文和验证信息
Figure FDA0003388899220000062
广播给
Figure FDA0003388899220000063
S3-3-5、
Figure FDA0003388899220000064
解密密文
Figure FDA0003388899220000065
以恢复出另一半可加份额(αj,i,μj,i,τj,i),
Figure FDA0003388899220000066
Figure FDA0003388899220000067
解密后得到明文αj,i=kjvij,i,μj,i=vjwi-vj,i
Figure FDA0003388899220000068
S3-3-6、
Figure FDA0003388899220000069
验证
Figure FDA00033888992200000610
若等式不成立,说明有参与者使用了与秘密共享阶段不同的私钥,验证不通过,中止协议;
S3-3-7、各参与方
Figure FDA00033888992200000611
保存(ρi,σi,δi),其中,ρi=kivi+∑j≠ii,jj,i),σi=viwi+∑j≠ii,j+vj,i)作为计算签名算法中s的信息,
Figure FDA00033888992200000612
作为计算签名算法中r的信息。
8.根据权利要求4所述的基于SM2数字签名的门限签名方法,其特征在于,S3-4、计算SM2签名中的r的具体步骤为:
S3-4-1、各参与方
Figure FDA00033888992200000613
广播自己的δi,所有的参与方计算δ=∑i∈Sδi=kγ-1
S3-4-2、各参与方
Figure FDA00033888992200000614
广播承诺中的sdi来解除对Γi的承诺,其中Γi=γiG=Open(sci,sdi);
S3-4-3、各参与方
Figure FDA00033888992200000615
计算零知识证明
Figure FDA00033888992200000616
并广播,证明自己知道γi
Figure FDA00033888992200000617
收到后若验证不通过,中止协议;
S3-4-4、各参与方
Figure FDA00033888992200000618
计算R:=δ(∑i∈SΓi)=k·G,r:=Rx+e;其中,Rx是R的横坐标,e是消息m的哈希值。
9.根据权利要求4所述的基于SM2数字签名的门限签名方法,其特征在于,S3-5、计算SM2签名中的s的具体步骤为
S3-5-1、各参与方
Figure FDA00033888992200000619
计算各自的签名信息si=ρi-rσi
S3-5-2、各参与方
Figure FDA0003388899220000071
选择独立随机数(θi,θi),计算验证信息Vi:=si(G+P)+ηiG;
Figure FDA0003388899220000072
并广播
Figure FDA0003388899220000073
S3-5-3、各参与方
Figure FDA0003388899220000074
收到其余方
Figure FDA0003388899220000075
广播的对验证信息的承诺信息
Figure FDA0003388899220000076
后,通过广播
Figure FDA0003388899220000077
来解除承诺,
Figure FDA0003388899220000078
同时计算(si,ηi,θi)的零知识证明NIZKPoK,
Figure FDA0003388899220000079
证明自己知道(si,ηi,θi);
S3-5-4、
Figure FDA00033888992200000710
收到后检查零知识证明NIZKPoK,若验证不通过,中止协议;各参与方
Figure FDA00033888992200000711
利用消息m,签名信息R和r以及公钥P计算V:=m+rP-R+∑i∈SVi,A:=∑i∈SAi
S3-5-5、各参与方
Figure FDA00033888992200000712
计算Ui:=θiV,Ti:=ηiA,对Ui和Ti计算承诺
Figure FDA00033888992200000713
广播
Figure FDA00033888992200000714
S3-5-6、各参与方
Figure FDA00033888992200000715
收到其余方
Figure FDA00033888992200000716
广播的
Figure FDA00033888992200000717
后,广播
Figure FDA00033888992200000718
Figure FDA00033888992200000719
收到后
Figure FDA00033888992200000720
解除承诺,
Figure FDA00033888992200000721
S3-5-7、各参与方
Figure FDA00033888992200000722
险查∑i∈STi=∑i∈SUi,若验证不通过,中止协议;
S3-5-8、各参与方
Figure FDA00033888992200000723
广播si,所有参与方都计算s:=∑i∈Ssi
S3-5-9、各参与方
Figure FDA00033888992200000724
检查(r,s)是否是合理的SM2签名,输出(r,s),否则停止协议。
CN202111473086.6A 2021-12-02 2021-12-02 基于sm2数字签名的门限签名方法 Active CN114157427B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111473086.6A CN114157427B (zh) 2021-12-02 2021-12-02 基于sm2数字签名的门限签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111473086.6A CN114157427B (zh) 2021-12-02 2021-12-02 基于sm2数字签名的门限签名方法

Publications (2)

Publication Number Publication Date
CN114157427A true CN114157427A (zh) 2022-03-08
CN114157427B CN114157427B (zh) 2023-06-20

Family

ID=80452988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111473086.6A Active CN114157427B (zh) 2021-12-02 2021-12-02 基于sm2数字签名的门限签名方法

Country Status (1)

Country Link
CN (1) CN114157427B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640451A (zh) * 2022-03-29 2022-06-17 蚂蚁区块链科技(上海)有限公司 区块链上实现分布式密钥生成的方法、系统和共识节点
CN114640450A (zh) * 2022-03-29 2022-06-17 蚂蚁区块链科技(上海)有限公司 一种区块链上实现分布式密钥生成的方法、系统
CN114650132A (zh) * 2022-03-29 2022-06-21 蚂蚁区块链科技(上海)有限公司 区块链上实现分布式密钥生成的方法、系统和共识节点
CN114760055A (zh) * 2022-06-15 2022-07-15 山东区块链研究院 基于梅森素数的秘密分享方法、系统、存储介质及设备
CN115208586A (zh) * 2022-09-13 2022-10-18 中安网脉(北京)技术股份有限公司 一种基于秘密分享的数字签名方法及系统
CN115378616A (zh) * 2022-10-21 2022-11-22 三未信安科技股份有限公司 一种基于Ed25519的门限签名方法
CN115412260A (zh) * 2022-08-30 2022-11-29 云海链控股股份有限公司 Sm2门限签名方法、系统、设备及计算机可读存储介质
CN116132068A (zh) * 2023-02-28 2023-05-16 蚂蚁区块链科技(上海)有限公司 一种多方签名方法、系统和设备
CN116886311A (zh) * 2023-07-24 2023-10-13 三未信安科技股份有限公司 基于区块链隐私安全的策略签名方法、系统及存储介质
CN117499039A (zh) * 2023-10-09 2024-02-02 贵州大学 基于椭圆曲线公钥密码算法的区块链签名方法
WO2024139083A1 (zh) * 2022-12-28 2024-07-04 苏州元脑智能科技有限公司 一种基于零知识的门限身份认证方法、装置及云计算系统
WO2025043916A1 (zh) * 2023-08-31 2025-03-06 蚂蚁区块链科技(上海)有限公司 一种实现门限签名的方法、系统和节点
WO2025043917A1 (zh) * 2023-08-31 2025-03-06 蚂蚁区块链科技(上海)有限公司 一种实现门限签名的方法、计算机设备和存储介质
CN119653363A (zh) * 2024-12-31 2025-03-18 安徽大学 基于移动主动秘密共享技术的无人机群组分布式管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547212A (zh) * 2018-12-04 2019-03-29 中国电子科技集团公司第三十研究所 一种基于sm2签名算法的门限签名方法
CN113507374A (zh) * 2021-07-02 2021-10-15 恒生电子股份有限公司 门限签名方法、装置、设备以及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547212A (zh) * 2018-12-04 2019-03-29 中国电子科技集团公司第三十研究所 一种基于sm2签名算法的门限签名方法
CN113507374A (zh) * 2021-07-02 2021-10-15 恒生电子股份有限公司 门限签名方法、装置、设备以及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DOERNER J. ETC.: "Secure two-party threshold ECDSA from ECDSA assumption", 《IEEE》, pages 980 - 997 *
谢豪等: "物联网中无身份弱终端的通用认证框架", 《南京邮电大学学报(自然科学版)》, vol. 39, no. 2, pages 105 - 110 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640451A (zh) * 2022-03-29 2022-06-17 蚂蚁区块链科技(上海)有限公司 区块链上实现分布式密钥生成的方法、系统和共识节点
CN114640450A (zh) * 2022-03-29 2022-06-17 蚂蚁区块链科技(上海)有限公司 一种区块链上实现分布式密钥生成的方法、系统
CN114650132A (zh) * 2022-03-29 2022-06-21 蚂蚁区块链科技(上海)有限公司 区块链上实现分布式密钥生成的方法、系统和共识节点
CN114760055A (zh) * 2022-06-15 2022-07-15 山东区块链研究院 基于梅森素数的秘密分享方法、系统、存储介质及设备
CN114760055B (zh) * 2022-06-15 2022-09-09 山东区块链研究院 基于梅森素数的秘密分享方法、系统、存储介质及设备
CN115412260B (zh) * 2022-08-30 2023-10-20 云海链控股股份有限公司 Sm2门限签名方法、系统、设备及计算机可读存储介质
CN115412260A (zh) * 2022-08-30 2022-11-29 云海链控股股份有限公司 Sm2门限签名方法、系统、设备及计算机可读存储介质
CN115208586A (zh) * 2022-09-13 2022-10-18 中安网脉(北京)技术股份有限公司 一种基于秘密分享的数字签名方法及系统
CN115378616A (zh) * 2022-10-21 2022-11-22 三未信安科技股份有限公司 一种基于Ed25519的门限签名方法
CN115378616B (zh) * 2022-10-21 2023-01-10 三未信安科技股份有限公司 一种基于Ed25519的门限签名方法
WO2024139083A1 (zh) * 2022-12-28 2024-07-04 苏州元脑智能科技有限公司 一种基于零知识的门限身份认证方法、装置及云计算系统
CN116132068A (zh) * 2023-02-28 2023-05-16 蚂蚁区块链科技(上海)有限公司 一种多方签名方法、系统和设备
CN116132068B (zh) * 2023-02-28 2025-10-10 蚂蚁区块链科技(上海)有限公司 一种多方签名方法、系统和设备
CN116886311A (zh) * 2023-07-24 2023-10-13 三未信安科技股份有限公司 基于区块链隐私安全的策略签名方法、系统及存储介质
CN116886311B (zh) * 2023-07-24 2024-08-16 三未信安科技股份有限公司 基于区块链隐私安全的策略签名方法、系统及存储介质
WO2025043916A1 (zh) * 2023-08-31 2025-03-06 蚂蚁区块链科技(上海)有限公司 一种实现门限签名的方法、系统和节点
WO2025043917A1 (zh) * 2023-08-31 2025-03-06 蚂蚁区块链科技(上海)有限公司 一种实现门限签名的方法、计算机设备和存储介质
CN117499039B (zh) * 2023-10-09 2024-03-26 贵州大学 基于椭圆曲线公钥密码算法的区块链签名方法
CN117499039A (zh) * 2023-10-09 2024-02-02 贵州大学 基于椭圆曲线公钥密码算法的区块链签名方法
CN119653363A (zh) * 2024-12-31 2025-03-18 安徽大学 基于移动主动秘密共享技术的无人机群组分布式管理方法
CN119653363B (zh) * 2024-12-31 2025-10-17 安徽大学 基于移动主动秘密共享技术的无人机群组分布式管理方法

Also Published As

Publication number Publication date
CN114157427B (zh) 2023-06-20

Similar Documents

Publication Publication Date Title
CN114157427A (zh) 基于sm2数字签名的门限签名方法
CN107634836B (zh) 一种sm2数字签名生成方法及系统
CN107196763B (zh) Sm2算法协同签名及解密方法、装置与系统
CN109257184B (zh) 基于匿名广播加密的可链接环签名方法
CN107947913B (zh) 一种基于身份的匿名认证方法与系统
CN108667625B (zh) 协同sm2的数字签名方法
CN107733648B (zh) 一种基于身份的rsa数字签名生成方法及系统
CN104821880B (zh) 一种无证书广义代理签密方法
CN107659395B (zh) 一种多服务器环境下基于身份的分布式认证方法及系统
Wang et al. Generalization of threshold signature and authenticated encryption for group communications
EP2792098B1 (en) Group encryption methods and devices
CN113132104B (zh) 一种主动安全的ecdsa数字签名两方生成方法
CN109547212A (zh) 一种基于sm2签名算法的门限签名方法
US12489620B2 (en) Threshold secret share generation for distributed symmetric cryptography
CN109639439A (zh) 一种基于两方协同的ecdsa数字签名方法
CN102340483B (zh) 民主群签名的生成、验证、追踪方法和民主群签名系统
CN111355582A (zh) 基于sm2算法的两方联合签名和解密的方法及系统
CN106936584B (zh) 一种无证书公钥密码系统的构造方法
CN111030821A (zh) 一种基于双线性映射技术的联盟链加密方法
TWI593267B (zh) 具有時戳驗證的免憑證公開金鑰管理方法
Jiang et al. Fully distributed identity-based threshold signatures with identifiable aborts
Iwamura et al. Secure user authentication with information theoretic security using secret sharing based secure computation
Oh et al. How to solve key escrow and identity revocation in identity-based encryption schemes
Chung et al. Ring signature scheme for ECC-based anonymous signcryption
CN115378572B (zh) 一种去中心化的多服务器安全聚合系统和方法

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