CN109547209B - 一种两方sm2数字签名生成方法 - Google Patents
一种两方sm2数字签名生成方法 Download PDFInfo
- Publication number
- CN109547209B CN109547209B CN201811381814.9A CN201811381814A CN109547209B CN 109547209 B CN109547209 B CN 109547209B CN 201811381814 A CN201811381814 A CN 201811381814A CN 109547209 B CN109547209 B CN 109547209B
- Authority
- CN
- China
- Prior art keywords
- calculating
- party
- met
- proof
- private key
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/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
- H04L9/3239—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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
Abstract
本发明公布了一种两方SM2数字签名的生成方法,属于信息安全技术领域,利用Paillier同态加密方案使互不信任的双方可以合作生成SM2数字签名。本发明还针对性的给出了零知识证明的构造方法,以证明双方在合作过程中没有违反协议的行为,当签名失败时,通过零知识证明可以快速鉴别出不合作的一方。相比基于多项式秘密共享的两方签名方案,本发明方法具有更高的效率、更好的安全性及隐私性。
Description
技术领域
本发明属于信息安全技术领域,涉及数字签名生成方法,尤其涉及一种两方SM2数字签名生成方法。
背景技术
SM2椭圆曲线公钥密码算法(简称SM2)是由国家密码管理局于2010年12月17日发布的公钥加密标准。在商用密码体系中,SM2主要用于替换RSA(Rivest-Shamir-Adleman)加密算法。SM2基于椭圆曲线密码学(ECC),安全性与NIST Prime256相当。
SM2签名流程如图1所示,SM2验签流程如图2所示。在使用SM2签名的过程中,如果密钥只由一方来保管,往往有泄露或监管的风险,因此在许多应用场景中就需要密钥被两方(可能完全不互信)分别持有,且签名只有在两方的共同参与下才能生成,任何一方都无法单独的生成签名。
但是,两方SM2数字签名并不能直接生成。在现有的两方SM2签名生成方案中,有些基于秘密共享的方法实现,但是,这类方法必须公开自己的秘密给对方,私钥使用一次之后必须重新协商,并且计算量也比较大,无法满足某些场景的实际需求。
Paillier加密系统是1999年由Pascal Paillier发明的概率公钥加密系统,基于复合剩余类的困难问题。该加密算法是一种同态加密,满足加法和数乘同态,即:
其中:m1,m2为消息,Dsk()为解密函数,Epk()为加密函数,+pk为同态加,×pk为同态乘,sk为私钥,pk为公钥。
发明内容
为了克服上述现有技术的不足,本发明提供一种两方SM2数字签名生成方法,该方法允许不互相信任的双方可以在不泄露自己的私钥的情况下签出只有双方合作才可以签出的签名。本发明基于Paillier同态加密方案实现,并附带零知识证明的构造方法,当签名失败时,通过零知识证明可以鉴别出不合作的一方。
为方便起见,定义以下参数及相应含义说明:
h1:由可信第三方生成的安全参数;
h2:由可信第三方生成的安全参数;
d1:双方中的第一方(如Alice)的私钥;
d2:双方中第二方(如Bob)的私钥;
m:消息;
pk:第一方Alice的Paillier加密公钥;
pk′:第二方Bob的Paillier加密公钥;
sk:第一方Alice的Paillier加密私钥;
sk′:第二方Bob的Paillier加密私钥;
n:椭圆曲线的阶;
k1:临时随机数;
k2:临时随机数;
G:椭圆曲线的基点;
e:消息m的hash;
s:签名的一部分;
本发明提供的技术方案是:
一种利用Paillier同态加密方案实现的两方SM2数字签名的生成方法;假设d是双方的公共私钥,满足d≡nd1d2-1,其中是第一方知道的秘密参数(第一方的私钥);是第二方知道的秘密参数(第二方的私钥);P=dG、P1=d1G、P2=d2G,均为双方所共知的公钥,双方通过以下步骤合作对消息m签出公钥P对应的签名:
1)初始化;
2)进行签名;
两方合作对消息m签出私钥d1d2-1对应的签名,且签名过程中两方都不会向对方泄露自己的私钥;具体执行如下操作:
21)第一方生成临时私钥k1,并将消息m及(d1)-1、(d1)-1k1用pk加密后的值即<m,α,ζ>发给第二方;
22)第二方对从第一方收到的数据进行一致性校验,并生成临时私钥k2,将Q2(k2G)发送给第一方;
23)第一方收到Q2后计算出临时公钥Q,并将Q附带一个零知识证明∏发送给第二方,零知识证明∏可以使第二方确信第二方后续发送给第一方的消息不会泄露第二方的私钥;
24)第二方收到<Q,∏>后,校验∏及Q,如果校验通过,利用步骤21)收到的α、ζ、m、Q及自己的临时私钥k2,私钥x2进行一系列的同态乘(×pk)及同态加(+pk)操作生成密文u,并将u,u′←Epk′((k2)-1)及一个零知识证明∏′发送给第一方;
25)第一方收到<u,u′,∏′>后对u、u′及∏′进行校验,校验通过后解密u,然后经过一系列计算得到签名;
3)验签:其他人可利用公钥P对第一方得到的签名进行验签;
31)采用SM2标准的验签方法(如图2)进行验签。
4)ProofΠ的生成及校验
41)生成证明Proof∏;
42)进行校验;
5)ProofΠ′的生成及校验;
41)生成证明ProofΠ′;
42)进行校验;
通过上述步骤,实现基于SM2的两方签名。
与现有技术相比,本发明的有益效果:
本发明提供一种两方SM2数字签名的生成方法,该方法允许不信任的双方在不泄露己方的私钥的情况下签出只有双方合作才可以签出的签名。
本发明方法具有更小的计算量,更少的交互,双方所持有的秘密信息(私钥)不会泄露,密钥可以重复使用,且可以在两方完全不信任的情况下合作完成签名;本发明方法还附带零知识证明的构建方法,当签名失败时,通过零知识证明可以有效的鉴别出不合作的一方。
附图说明
图1是SM2签名方法的流程框图。
图2是SM2验签方法的流程框图。
图3是本发明实施例提供的两方SM2数字签名生成方法的流程框图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种两方SM2数字签名生成方法,允许不信任的双方在不泄露自己的私钥的情况下签出只有双方合作才可以签出的签名。本发明中,假设d是双方(例如Alice和Bob)的公共私钥,满足d≡nd1d2-1,其中是Alice知道的秘密参数;是Bob知道的秘密参数;P=dG、P1=d1G、P2=d2G,均为Alice和Bob所共知的公钥,Alice和Bob要合作对消息m签出公钥P对应的签名。图3是本发明实施例两方SM2数字签名生成方法的流程框图。表示了第一方Alice和第二方Bob合作生成SM2数字签名的过程,具体实施流程包括:
1)初始化
2)进行签名
假设d1、d2分别为Alice和Bob的私钥,Alice要跟Bob合作对消息m签出私钥d1d2-1对应的签名,且签名过程中Alice与Bob都不会向对方泄露自己的私钥。pk、pk′分别为Alice和Bob的Paillier加密公钥,sk、sk′为对应的私钥,n是椭圆曲线的阶,签名流程如下:
21)Alice生成临时私钥k1,并将(d1)-1、(d1)-1k1用pk加密后发给Bob;具体执行如下操作:
求私钥的逆:z1←(d1)-1mod n;
对私钥的逆进行加密:α=Epk(z1);
将私钥的逆与随机数的乘积进行加密:ζ←Epk(k1z1);
Alice将<m,α,ζ>发送给Bob。
22)Bob对收到从Alice收到的数据做一致性校验,并生成临时私钥k2,将k2G发送给Alice;具体执行如下操作:
求随机数与G的乘积:Q2←[k2]G;
Bob将Q2发送给Alice。
23)Alice收到Q2后计算出临时公钥Q,并将Q附带一个零知识证明∏发送给Bob,∏可以使Bob确信Bob后续发送给Alice的消息不会泄露自己的私钥。具体执行如下操作:
求k1、k2、G的乘积:Q←[k1]Q2;
生成零知识证明:
Alice将<Q,∏>发送给Bob。
24)Bob收到<Q,∏>后,Bob校验∏及Q,如果校验通过,Bob利用之前收到的α、ζ、m、Q及自己的临时私钥k2,私钥x2进行一系列的同态乘(×pk)及同态加(+pk)操作生成密文u(其中u解密后再模n就得到签名s)。在计算过程中,Bob加了一个很大的随机数cn来混淆明文,使Alice在解密得到明文后也很难获取Bob私钥的任何信息。除了将u发送给Alice外,Bob还将u′←Epk′((k2)-1)及一个零知识证明∏′发送给Alice;具体执行如下操作:
如果verify(∏)=false则终止交互;
计算m的Hash:e←hash(m);
计算椭圆曲线上的点:(x′,y′)←Q;
计算:r′←(e+x′)modn;
计算逆:z2←(d2)-1modn;
计算:u←(ζ×pk z2k2)+pk(α×pk(-r′z2))+pk(Epk(-r′))+pk(Epk(cn));
用pk′加密:u′←Epk′(z2);
生成零知识证明:
Bob将<u,u′,∏′>发送给Alice。
25)Alice收到<u,u′,∏′>后对u、u′及∏′进行校验,校验通过后解密u经过计算得到签名;执行如下操作:
如果verify(∏′)=false则终止交互;
解密并取模:s←Dsk(u)mod n;
计算椭圆曲线上的点:(x′,y′)←Q;
计算:r′←(e+x′)mod n;
Alice得到签名:<r′,s>;
3)验签
其他人可以利用公钥P([d1d2-1]G)对Alice得到的签名进行验签,验签流程如图2所示。
4)ProofΠ的生成及校验方法
41)生成证明;
如上所述,Proof∏满足:
其中pk=<N,g>为Paillier同态加密的公钥,sk=<N,g,λ(N)>为对应的私钥,满足N>n6,各参数含义如上所述。生成证明需要知道 使得[η1]P1≡G,[η2/η1]G≡Q1,及生成证明的步骤如下:
411)生成随机参数;
412)计算得到Proof∏中的各项参数;
计算:U1←[σ]P1
计算:u2←gσβNmodN2
计算:Y←[η2+ρ3]G
计算:V1←[δ+∈]G
计算:V2←[σ]Q1+[∈]G
计算:v3←gδμNmodN2
计算hash:e←hash(P1,G,G,Q1,α,ζ,z1,U1,u2,u3,z2,Y,V1,V2,v3,v4)
计算:s1←eη1+σ
计算:s2←(r1)eβ mod N
计算:s3←eρ1+γ
计算:t1←eη2+δ
计算:t2←eρ3+∈ mod n
计算:t3←(r2)eμ mod N2
计算:t4←eρ2+ν
413)生成Proof∏
∏←<z1,U1,u2,u3,z2,Y,V1,V2,v3,v4,s1,s2,s3,t1,t2,t3,t4>
42)校验;校验步骤如下:
取值:<z1,U1,u2,u3,z2,Y,V1,V2,v3,v4,s1,s2,s3,t1,t2,t3,t4>←∏
计算hash:e←hash(P1,G,G,Q1,α,ζ,z1,U1,u2,u3,z2,Y,V1,V2,v3,v4)
校验是否满足:[s1]P1≡[e]G+U1
校验是否满足:[t1+t2]G≡[e]Y+V1
校验是否满足:[s1]Q1+[t2]G≡[e]Y+V2
如果上面的校验全部通过,则Proof校验通过。
5)ProofΠ′的生成及校验方法
Proof∏′可以构造为如下形式:
其中,pk=<N,g>、sk=<N,g,λ(N)>及pk′=<N′,g′>、sk′=<N′,g′,λ(N′)>为两对Paillier加密的公私钥,且满足N>n8,N′>n6,n1,n2∈[-n4,n4],Dsk(m3)=n1,Dsk(m4)=n2,生成证明需要知道:使得[η1]P2≡G、[η2/η1]G≡Q2、及构建过程如下:
5.1生成
1、生成随机参数
2、计算Proof中的各项参数
计算:U1←[α]P2
计算:u2←(g′)αβN′mod(N′)2
计算:Y←[η1+η2]G
计算:V1←[δ+∈]G
计算:V2←[α]Q2+[∈]G
计算:v3←(m3)α(m4)δgnσuN mod N2
计算hash:e←Hash(P2,G,Q2,m1,m2,z1,U1,u2,u3,z2,z3,Y,V1,V2,v3,v4,v5)
计算:s1←eη1+α
计算:s2←(r1)eβ mod N′
计算:s3←eρ1+γ
计算:t1←eη2+δ
计算:t2←eρ3+∈ mod n
计算:t3←(r2)eμ mod N
计算:t4←eρ2+ν
计算:t5←eη3+σ
计算:t6←eρ4+τ
3、生成Proof
∏′←<z1,U1,u2,u3,z2,z3,Y,V1,V2,v3,v4,v5,s1,s2,s3,t1,t2,t3,t4,t5,t6>
5.2校验
校验步骤如下:
取值:<z1,U1,u2,u3,z2,z3,Y,V1,V2,v3,v4,v5,s1,s2,s3,t1,t2,t3,t4,t5,t6>←∏′
计算hash:e←Hash(P2,G,Q2,m1,m2,z1,U1,u2,u3,z2,z3,Y,V1,V2,v3,v4,v5)
校验是否满足:[s1]P2≡[e]G+U1
校验是否满足:[t1+t2]G≡[e]Y+V1
校验是否满足:[s1]Q2+[t2]G≡[e]Y+V2
如果上面的校验全部通过,则Proof校验通过。
实施例1:基于SM2的证书分发
本发明可以用于基于SM2的证书分发系统,如果某个证书只有两个机构共同签署时才能够分发,则机构A可以生成公私钥<d1,P1>,机构B生成公私钥<d2,P2>,他们可以约定只有当有公钥[d1d2]G-G([d1]P2-G,[d2]P1-G)对应的签名时证书才能够分发,则他们可以利用该发明的方法签出对应的签名。同时由于签名过程中不会泄露自己的私钥,则私钥可以多次使用。又因为有零知识证明的存在,可以避免某方故意不合作而导致签名失败。
实施例2:基于SM2的双U盾方案
本发明可以用于基于SM2的双U盾方案,假设银行的某个账户或者某个系统需要两个人共同授权才能访问,则可以构建两个U盾,分别存放私钥d1、d2,约定只有当有公钥[d1d2]G-G对应的签名时才可以访问账号或系统,则可以将两个U盾分别给不同的两个人或机构,持有U盾的两方可以使用本发明提供的方法去合作生成[d1d2]G-G对应的签名,从而对系统或账户进行访问。
实施例3:基于SM2的区块链系统的两方签名
本发明可以用于基于SM2的区块链系统,使其能够支持两方签名。假设Alice和Bob共同持有区块链上的某笔财产,要求只有当Alice和Bob都同意时才可以花该资产,则Alice和Bob可以分别生成一对公私钥<d1,P1>和<d2,P2>,Alice和Bob可以将这笔资产存入地址为[d1d2]G-G([d1]P2-G,[d2]P1-G)的区块链账户,则当某方想花这笔资产时,可以利用该发明签出[d1d2]G-G对应的签名,从而花掉该资产。同时由于签名过程中不会泄露给对方自己的私钥,所以该方法可以多次使用而不用更换私钥。由于零知识证明的存在,可以避免某方故意不合作而导致签名失败。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (4)
1.一种两方SM2数字签名的生成方法,所述SM2为SM2椭圆曲线公钥密码算法的简称;所述方法基于Paillier同态加密方案实现;
通过以下步骤实现两方合作对消息m签出公钥P对应的SM2签名:
1)初始化,执行如下操作:
2)进行签名:两方合作对消息m签出私钥d1d2-1对应的签名,且签名过程中两方均不会向对方泄露自己的私钥;具体执行如下操作:
21)第一方生成临时私钥k1,并将消息m及(d1)-1、(d1)-1k1用pk加密后的值即<m,α,ζ>发给第二方;pk为第一方的Paillier加密的公钥;执行如下操作:
212)求私钥的逆:z1←(d1)-1modn;
213)对私钥的逆进行加密:α=Epk(z1);
214)将私钥的逆与随机数的乘积进行加密:ζ←Epk(k1z1);
215)第一方将<m,α,ζ>发送给第二方;
22)第二方对从第一方收到的数据进行一致性校验,并生成临时私钥k2,将Q2=k2G发送给第一方;执行如下操作:
223)求随机数与G的乘积:Q2←[k2]G;
224)第二方将Q2发送给第一方;
23)第一方收到Q2后计算出临时公钥Q;并将Q附带一个零知识证明Π发送给第二方;Π可使第二方确信第二方后续发送给第一方的消息不会泄露自己的私钥;执行如下操作:
232)求k1、k2、G的乘积:Q←[k1]Q2;
233)生成零知识证明,表示如下:
234)第一方将<Q,П>发送给第二方;
24)第二方收到<Q,П>后,校验∏及Q;如果校验通过,利用步骤21)收到的α、ζ、m、Q及自己的临时私钥k2、私钥x2,进行一系列同态乘操作×pk及同态加操作+pk,生成密文u;第二方将u、u′←Epk′((k2)-1)及零知识证明Π′即<u,u′,П′>发送给第一方;执行如下操作:
242)如果verify(Π)=false则终止交互;
243)计算m的Hash:e←hash(m);
244)计算椭圆曲线上的点:(x′,y′)←Q;
245)计算:r′←(e+x′)modn;
246)计算逆:z2←(d2)-1modn;
248)计算:u←(ζ×pkz2k2)+pk(α×pk(-r′z2))+pk(Epk(-r′))+pk(Epk(cn));
用pk’加密:u′←Epk’(z2);
249)生成零知识证明,表示为:
然后,第二方将<u,u′,П′>发送给第一方;
25)第一方收到<u,u′,Π′>后对u、u′及∏′进行校验,校验通过后解密u,经过计算得到签名;执行如下操作:
252)如果verify(∏′)=false则终止交互;
253)解密并取模:s←Dsk(u)modn;
254)计算椭圆曲线上的点:(x′,y′)←Q;
255)计算:r′←(e+x′)modn;
256)第一方得到签名:<r′,s>;
3)验签:其他人利用公钥P对第一方得到的签名进行验签;
4)生成证明ProofΠ及进行校验;执行如下操作:
ProofΠ满足:
其中,pk=<N,g>为Paillier同态加密的公钥;sk=<N,g,λ(N)>为对应的私钥,满足N>n6;
41)生成随机参数,包括:σ、β、γ、ρ1、δ、μ、v、ρ2、ρ3、∈;具体执行如下操作:
42)计算得到ProofΠ中的各项参数,包括:z1、U1、u2、u3、z2、Y、V1、V2、v3、v4、e、s1、s2、s3、t1、t2、t3、t4;具体执行如下操作:
计算:U1←[σ]P1;
计算:u2←gσβNmodN2;
计算:Y←[η2+ρ3]G;
计算:V1←[δ+∈]G;
计算:V2←[σ]Q1+[∈]G;
计算:v3←gδμNmodN2;
计算hash:e←hash(P1,G,G,Q1,α,ζ,z1,U1,u2,u3,z2,Y,V1,V2,v3,v4);
计算:s1←eη1+σ;
计算:s2←(r1)eβmodN;
计算:s3←eρ1+γ;
计算:t1←eη2+δ;
计算:t2←eρ3+εmodn;
计算:t3←(r2)eμmodN2;
计算:t4←eρ2+v;
43)生成Proof∏:Π←<z1,U1,u2,u3,z2,Y,V1,V2,v3,v4,s1,s2,s3,t1,t2,t3,t4>;
5)ProofΠ′的生成及校验;
ProofΠ′构造为如下形式:
其中,pk=<N,g>;sk=<N,g,λ(N)>及pk′=<N′,g′>、sk′=<N′,g′,λ(N′)>为两对Paillier加密的公私钥,且满足N>n8,N′>n6,n1,n2∈[-n4,n4],Dsk(m3)=n1,Dsk(m4)=n2,
51)生成随机参数,包括:α、β、γ、ρ1、δ、μ、v、ρ2、ρ3、ρ4、∈、σ、τ;具体执行如下操作:
52)计算ProofΠ′中的各项参数,包括:z1、U1、u2、u3、z2、Y、V1、V2、v3、v4、z3、v5、e、s1、s2、s3、t1、t2、t3、t4、t5、t6;具体执行如下操作:
计算:U1←[α]P2
计算:u2←(g′)αβN′mod(N′)2
计算:Y←[η1+η2]G
计算:V1←[δ+∈]G
计算:V2←[α]Q2+[∈]G
计算:v3←(m3)α(m4)δgnσuNmodN2
计算hash:e←Hash(P2,G,Q2,m1,m2,z1,U1,u2,u3,z2,z3,Y,V1,V2,v3,v4,v5)
计算:s1←eη1+α
计算:s2←(r1)eβmodN′
计算:s3←eρ1+γ
计算:t1←eη2+δ
计算:t2←eρ3+∈modn
计算:t3←(r2)eμmodN
计算:t4←eρ2+v
计算:t5←eη3+σ
计算:t6←eρ4+τ
53)生成ProofΠ′:
Π′←<z1,U1,u2,u3,z2,z3,Y,V1,V2,v3,v4,v5,s1,s2,s3,t1,t2,t3,t4,t5,t6>
通过上述步骤,实现两方合作生成SM2数字签名。
2.如权利要求1所述两方SM2数字签名的生成方法,其特征是,在步骤24)计算过程中,第二方加一个随机数cn来混淆明文,使得第一方在解密得到明文后也很难获取Bob私钥的任何信息。
3.如权利要求1所述两方SM2数字签名的生成方法,其特征是,步骤4)所述校验具体执行如下操作:
取值:<z1,U1,u2,u3,z2,Y,V1,V2,v3,v4,s1,s2,s3,t1,t2,t3,t4>←Π;
计算hash:e←hash(P1,G,G,Q1,α,ζ,z1,U1,u2,u3,z2,Y,V1,V2,v3,v4);
校验是否满足:[s1]P1≡[e]G+U1;
校验是否满足:[t1+t2]G≡[e]Y+V1;
校验是否满足:[s1]Q1+[t2]G≡[e]Y+V2;
如果上述校验全部通过,则Proof校验通过。
4.如权利要求1所述两方SM2数字签名的生成方法,其特征是,步骤5)中:进行校验包括如下步骤:
取值:<z1,U1,u2,u3,z2,z3,Y,V1,V2,v3,v4,v5,s1,s2,s3,t1,t2,t3,t4,t5,t6>←П′
计算hash:e←Hash(P2,G,Q2,m1,m2,z1,U1,u2,u3,z2,z3,Y,V1,V2,v3,v4,v5)
校验是否满足:[s1]P2≡[e]G+U1
校验是否满足:[t1+t2]G≡[e]Y+V1
校验是否满足:[s1]Q2+[t2]G≡[e]Y+V2
如果上述校验全部通过,则ProofΠ′校验通过。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811381814.9A CN109547209B (zh) | 2018-11-19 | 2018-11-19 | 一种两方sm2数字签名生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811381814.9A CN109547209B (zh) | 2018-11-19 | 2018-11-19 | 一种两方sm2数字签名生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109547209A CN109547209A (zh) | 2019-03-29 |
CN109547209B true CN109547209B (zh) | 2020-09-08 |
Family
ID=65848660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811381814.9A Active CN109547209B (zh) | 2018-11-19 | 2018-11-19 | 一种两方sm2数字签名生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109547209B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110061828B (zh) * | 2019-04-04 | 2021-05-04 | 西安电子科技大学 | 无可信中心的分布式数字签名方法 |
CN110113165B (zh) * | 2019-04-24 | 2020-09-04 | 武汉理工大学 | 支持混合秘密共享的sm2数字签名协同生成方法及系统 |
CN110380846B (zh) * | 2019-06-28 | 2022-05-27 | 杭州师范大学 | 一种电子病历患者签名方法及系统 |
CN111010285B (zh) * | 2019-11-25 | 2023-04-18 | 武汉大学 | 一种适用于轻量级客户端的sm2两方协同签名方法及介质 |
CN111245626B (zh) * | 2020-01-19 | 2021-05-18 | 平安科技(深圳)有限公司 | 零知识证明方法、装置及存储介质 |
CN111669275B (zh) * | 2020-07-07 | 2023-04-07 | 广东工业大学 | 一种无线网络环境下可选择从节点的主从协作签名方法 |
CN114553443B (zh) * | 2022-04-25 | 2022-07-12 | 湖南三湘银行股份有限公司 | 一种对接第三方数据模型的方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102412971B (zh) * | 2011-11-30 | 2015-04-29 | 西安西电捷通无线网络通信股份有限公司 | 基于sm2密钥交换协议的密钥协商方法及装置 |
CN106209360A (zh) * | 2016-07-22 | 2016-12-07 | 安徽皖通邮电股份有限公司 | 一种基于国密算法的预共享密钥的身份鉴别方法 |
CN107017993B (zh) * | 2017-04-01 | 2020-05-05 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN107124274B (zh) * | 2017-05-18 | 2019-10-25 | 深圳奥联信息安全技术有限公司 | 基于sm2的数字签名方法和装置 |
CN107634836B (zh) * | 2017-09-05 | 2020-09-08 | 何德彪 | 一种sm2数字签名生成方法及系统 |
-
2018
- 2018-11-19 CN CN201811381814.9A patent/CN109547209B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109547209A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547209B (zh) | 一种两方sm2数字签名生成方法 | |
WO2021042685A1 (zh) | 一种区块链的交易方法、装置及系统 | |
CN109309569B (zh) | 基于sm2算法的协同签名的方法、装置及存储介质 | |
JP3560439B2 (ja) | 暗号キーの回復を実行する装置 | |
CN108199835B (zh) | 一种多方联合私钥解密方法 | |
US11233659B2 (en) | Method of RSA signature or decryption protected using a homomorphic encryption | |
Barker et al. | Transitions: Recommendation for transitioning the use of cryptographic algorithms and key lengths | |
CN109510708B (zh) | 一种基于Intel SGX机制的公钥密码计算方法和系统 | |
US11831787B2 (en) | Temporal key generation and PKI gateway | |
US11870891B2 (en) | Certificateless public key encryption using pairings | |
US9762560B2 (en) | Method for generating cryptographic “one-time pads” and keys for secure network communications | |
US10826694B2 (en) | Method for leakage-resilient distributed function evaluation with CPU-enclaves | |
CN109951276B (zh) | 基于tpm的嵌入式设备远程身份认证方法 | |
JP2015501110A (ja) | グループ暗号化方法およびデバイス | |
JP6041864B2 (ja) | データの暗号化のための方法、コンピュータ・プログラム、および装置 | |
CN108055134B (zh) | 椭圆曲线点数乘及配对运算的协同计算方法及系统 | |
Kumar et al. | An efficient implementation of digital signature algorithm with SRNN public key cryptography | |
Barker et al. | Sp 800-131a. transitions: Recommendation for transitioning the use of cryptographic algorithms and key lengths | |
CN111565108B (zh) | 签名处理方法、装置及系统 | |
CN110798313B (zh) | 基于秘密动态共享的包含秘密的数的协同生成方法及系统 | |
US20220038267A1 (en) | Methods and devices for secured identity-based encryption systems with two trusted centers | |
JP5171787B2 (ja) | サインクリプションシステムおよびサインクリプション生成方法 | |
Barker | Cryptographic Standards in the Federal Government: Cryptographic Mechanisms | |
Barker et al. | Recommendation for the Transitioning of Cryptographic Algorithms and Key Lengths | |
CN113141249B (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 |