CN109547209B - 一种两方sm2数字签名生成方法 - Google Patents

一种两方sm2数字签名生成方法 Download PDF

Info

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
Application number
CN201811381814.9A
Other languages
English (en)
Other versions
CN109547209A (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.)
Peking University
Original Assignee
Peking 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 Peking University filed Critical Peking University
Priority to CN201811381814.9A priority Critical patent/CN109547209B/zh
Publication of CN109547209A publication Critical patent/CN109547209A/zh
Application granted granted Critical
Publication of CN109547209B publication Critical patent/CN109547209B/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/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
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/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
    • H04L9/3239Cryptographic 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
    • 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/3263Cryptographic 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/3268Cryptographic 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椭圆曲线公钥密码算法(简称SM2)是由国家密码管理局于2010年12月17日发布的公钥加密标准。在商用密码体系中,SM2主要用于替换RSA(Rivest-Shamir-Adleman)加密算法。SM2基于椭圆曲线密码学(ECC),安全性与NIST Prime256相当。
SM2签名流程如图1所示,SM2验签流程如图2所示。在使用SM2签名的过程中,如果密钥只由一方来保管,往往有泄露或监管的风险,因此在许多应用场景中就需要密钥被两方(可能完全不互信)分别持有,且签名只有在两方的共同参与下才能生成,任何一方都无法单独的生成签名。
但是,两方SM2数字签名并不能直接生成。在现有的两方SM2签名生成方案中,有些基于秘密共享的方法实现,但是,这类方法必须公开自己的秘密给对方,私钥使用一次之后必须重新协商,并且计算量也比较大,无法满足某些场景的实际需求。
Paillier加密系统是1999年由Pascal Paillier发明的概率公钥加密系统,基于复合剩余类的困难问题。该加密算法是一种同态加密,满足加法和数乘同态,即:
Figure BDA0001870648610000011
Figure BDA0001870648610000012
其中:m1,m2为消息,Dsk()为解密函数,Epk()为加密函数,+pk为同态加,×pk为同态乘,sk为私钥,pk为公钥。
发明内容
为了克服上述现有技术的不足,本发明提供一种两方SM2数字签名生成方法,该方法允许不互相信任的双方可以在不泄露自己的私钥的情况下签出只有双方合作才可以签出的签名。本发明基于Paillier同态加密方案实现,并附带零知识证明的构造方法,当签名失败时,通过零知识证明可以鉴别出不合作的一方。
为方便起见,定义以下参数及相应含义说明:
Figure BDA0001870648610000021
由可信第三方生成的安全参数;
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:签名的一部分;
Figure BDA0001870648610000023
阶为n的有限域。
本发明提供的技术方案是:
一种利用Paillier同态加密方案实现的两方SM2数字签名的生成方法;假设d是双方的公共私钥,满足d≡nd1d2-1,其中
Figure BDA0001870648610000022
是第一方知道的秘密参数(第一方的私钥);
Figure BDA0001870648610000031
是第二方知道的秘密参数(第二方的私钥);P=dG、P1=d1G、P2=d2G,均为双方所共知的公钥,双方通过以下步骤合作对消息m签出公钥P对应的签名:
1)初始化;
由可信的第三方生成参数
Figure BDA0001870648610000032
其中
Figure BDA0001870648610000033
均为安全质数,
Figure BDA0001870648610000034
均为质数;随机生成阶为
Figure BDA0001870648610000035
的参数h2
Figure BDA0001870648610000036
R表示随机生成;随机生成随机数
Figure BDA0001870648610000037
计算
Figure BDA0001870648610000038
对两方均公开
Figure BDA0001870648610000039
h1、h2,销毁
Figure BDA00018706486100000310
χ;
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,其中
Figure BDA0001870648610000051
是Alice知道的秘密参数;
Figure BDA0001870648610000052
是Bob知道的秘密参数;P=dG、P1=d1G、P2=d2G,均为Alice和Bob所共知的公钥,Alice和Bob要合作对消息m签出公钥P对应的签名。图3是本发明实施例两方SM2数字签名生成方法的流程框图。表示了第一方Alice和第二方Bob合作生成SM2数字签名的过程,具体实施流程包括:
1)初始化
由可信的第三方生成参数
Figure BDA0001870648610000053
其中
Figure BDA0001870648610000054
Figure BDA0001870648610000055
均为安全质数;随机生成阶为
Figure BDA0001870648610000056
的参数h2
Figure BDA0001870648610000057
随机数
Figure BDA0001870648610000058
计算
Figure BDA0001870648610000059
对Alice和Bob公开
Figure BDA00018706486100000510
h1、h2,销毁
Figure BDA00018706486100000511
χ。
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;具体执行如下操作:
生成随机数:
Figure BDA00018706486100000512
求私钥的逆:z1←(d1)-1mod n;
对私钥的逆进行加密:α=Epk(z1);
将私钥的逆与随机数的乘积进行加密:ζ←Epk(k1z1);
Alice将<m,α,ζ>发送给Bob。
22)Bob对收到从Alice收到的数据做一致性校验,并生成临时私钥k2,将k2G发送给Alice;具体执行如下操作:
如果
Figure BDA00018706486100000513
则终止交互;
生成随机数:
Figure BDA0001870648610000061
求随机数与G的乘积:Q2←[k2]G;
Bob将Q2发送给Alice。
23)Alice收到Q2后计算出临时公钥Q,并将Q附带一个零知识证明∏发送给Bob,∏可以使Bob确信Bob后续发送给Alice的消息不会泄露自己的私钥。具体执行如下操作:
如果
Figure BDA0001870648610000062
则终止交互;
求k1、k2、G的乘积:Q←[k1]Q2
生成零知识证明:
Figure BDA0001870648610000063
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;具体执行如下操作:
如果
Figure BDA0001870648610000064
则终止交互;
如果verify(∏)=false则终止交互;
计算m的Hash:e←hash(m);
计算椭圆曲线上的点:(x′,y′)←Q;
计算:r′←(e+x′)modn;
计算逆:z2←(d2)-1modn;
生成随机数:
Figure BDA0001870648610000071
计算:u←(ζ×pk z2k2)+pk(α×pk(-r′z2))+pk(Epk(-r′))+pk(Epk(cn));
用pk′加密:u′←Epk′(z2);
生成零知识证明:
Figure BDA0001870648610000072
Bob将<u,u′,∏′>发送给Alice。
25)Alice收到<u,u′,∏′>后对u、u′及∏′进行校验,校验通过后解密u经过计算得到签名;执行如下操作:
如果
Figure BDA0001870648610000073
则终止交互;
如果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∏满足:
Figure BDA0001870648610000074
其中pk=<N,g>为Paillier同态加密的公钥,sk=<N,g,λ(N)>为对应的私钥,满足N>n6,各参数含义如上所述。生成证明需要知道
Figure BDA0001870648610000081
Figure BDA0001870648610000082
使得[η1]P1≡G,[η21]G≡Q1
Figure BDA0001870648610000088
Figure BDA0001870648610000089
生成证明的步骤如下:
411)生成随机参数;
Figure BDA0001870648610000083
412)计算得到Proof∏中的各项参数;
计算:
Figure BDA0001870648610000084
计算:U1←[σ]P1
计算:u2←gσβNmodN2
计算:
Figure BDA0001870648610000085
计算:
Figure BDA0001870648610000086
计算:Y←[η23]G
计算:V1←[δ+∈]G
计算:V2←[σ]Q1+[∈]G
计算:v3←gδμNmodN2
计算:
Figure BDA0001870648610000087
计算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)
校验是否满足:
Figure BDA0001870648610000091
校验是否满足:[s1]P1≡[e]G+U1
校验是否满足:
Figure BDA0001870648610000092
校验是否满足:
Figure BDA0001870648610000093
校验是否满足:[t1+t2]G≡[e]Y+V1
校验是否满足:[s1]Q1+[t2]G≡[e]Y+V2
校验是否满足:
Figure BDA0001870648610000094
校验是否满足:
Figure BDA0001870648610000095
如果上面的校验全部通过,则Proof校验通过。
5)ProofΠ′的生成及校验方法
Proof∏′可以构造为如下形式:
Figure BDA0001870648610000101
其中,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
Figure BDA0001870648610000102
生成证明需要知道:
Figure BDA0001870648610000103
使得[η1]P2≡G、[η21]G≡Q2
Figure BDA0001870648610000104
Figure BDA0001870648610000105
构建过程如下:
5.1生成
1、生成随机参数
Figure BDA0001870648610000106
2、计算Proof中的各项参数
计算:
Figure BDA0001870648610000111
计算:U1←[α]P2
计算:u2←(g′)αβN′mod(N′)2
计算:
Figure BDA0001870648610000112
计算:
Figure BDA0001870648610000113
计算:Y←[η12]G
计算:V1←[δ+∈]G
计算:V2←[α]Q2+[∈]G
计算:v3←(m3)α(m4)δguN mod N2
计算:
Figure BDA0001870648610000114
计算:
Figure BDA0001870648610000115
计算:
Figure BDA0001870648610000116
计算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)
校验是否满足:
Figure BDA0001870648610000121
校验是否满足:
Figure BDA0001870648610000122
校验是否满足:[s1]P2≡[e]G+U1
校验是否满足:
Figure BDA0001870648610000123
校验是否满足:
Figure BDA0001870648610000124
校验是否满足:[t1+t2]G≡[e]Y+V1
校验是否满足:[s1]Q2+[t2]G≡[e]Y+V2
校验是否满足:
Figure BDA0001870648610000125
校验是否满足:
Figure BDA0001870648610000126
校验是否满足:
Figure BDA0001870648610000127
如果上面的校验全部通过,则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同态加密方案实现;
假设d是双方的公共私钥,满足d≡nd1d2-1,其中
Figure FDA0002539356660000011
是第一方的私钥;
Figure FDA0002539356660000012
是第二方的私钥;
Figure FDA0002539356660000013
表示阶为n的有限域;P、P1、P2均为双方所共知的公钥;P=dG、P1=d1G、P2=d2G;G为椭圆曲线的基点;
通过以下步骤实现两方合作对消息m签出公钥P对应的SM2签名:
1)初始化,执行如下操作:
11)由可信的第三方生成参数
Figure FDA0002539356660000014
其中
Figure FDA0002539356660000015
Figure FDA0002539356660000016
均为安全质数;
Figure FDA0002539356660000017
均为质数;
12)可信第三方随机生成阶为
Figure FDA0002539356660000018
的参数h2
Figure FDA0002539356660000019
随机数
Figure FDA00025393566600000110
13)可信第三方计算
Figure FDA00025393566600000111
14)对两方均公开
Figure FDA00025393566600000112
h1、h2,销毁
Figure FDA00025393566600000113
χ;
2)进行签名:两方合作对消息m签出私钥d1d2-1对应的签名,且签名过程中两方均不会向对方泄露自己的私钥;具体执行如下操作:
21)第一方生成临时私钥k1,并将消息m及(d1)-1、(d1)-1k1用pk加密后的值即<m,α,ζ>发给第二方;pk为第一方的Paillier加密的公钥;执行如下操作:
211)生成随机数:
Figure FDA00025393566600000114
212)求私钥的逆:z1←(d1)-1modn;
213)对私钥的逆进行加密:α=Epk(z1);
214)将私钥的逆与随机数的乘积进行加密:ζ←Epk(k1z1);
215)第一方将<m,α,ζ>发送给第二方;
22)第二方对从第一方收到的数据进行一致性校验,并生成临时私钥k2,将Q2=k2G发送给第一方;执行如下操作:
221)如果
Figure FDA00025393566600000115
则终止交互;
222)生成随机数:
Figure FDA00025393566600000116
223)求随机数与G的乘积:Q2←[k2]G;
224)第二方将Q2发送给第一方;
23)第一方收到Q2后计算出临时公钥Q;并将Q附带一个零知识证明Π发送给第二方;Π可使第二方确信第二方后续发送给第一方的消息不会泄露自己的私钥;执行如下操作:
231)如果
Figure FDA0002539356660000023
则终止交互;
232)求k1、k2、G的乘积:Q←[k1]Q2
233)生成零知识证明,表示如下:
Figure FDA0002539356660000021
234)第一方将<Q,П>发送给第二方;
24)第二方收到<Q,П>后,校验∏及Q;如果校验通过,利用步骤21)收到的α、ζ、m、Q及自己的临时私钥k2、私钥x2,进行一系列同态乘操作×pk及同态加操作+pk,生成密文u;第二方将u、u′←Epk′((k2)-1)及零知识证明Π′即<u,u′,П′>发送给第一方;执行如下操作:
241)如果
Figure FDA0002539356660000024
则终止交互;
242)如果verify(Π)=false则终止交互;
243)计算m的Hash:e←hash(m);
244)计算椭圆曲线上的点:(x′,y′)←Q;
245)计算:r′←(e+x′)modn;
246)计算逆:z2←(d2)-1modn;
237)生成随机数:
Figure FDA0002539356660000022
248)计算:u←(ζ×pkz2k2)+pk(α×pk(-r′z2))+pk(Epk(-r′))+pk(Epk(cn));
用pk’加密:u′←Epk’(z2);
249)生成零知识证明,表示为:
Figure FDA0002539356660000031
然后,第二方将<u,u′,П′>发送给第一方;
25)第一方收到<u,u′,Π′>后对u、u′及∏′进行校验,校验通过后解密u,经过计算得到签名;执行如下操作:
251)如果
Figure FDA0002539356660000032
则终止交互;
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Π满足:
Figure FDA0002539356660000033
其中,pk=<N,g>为Paillier同态加密的公钥;sk=<N,g,λ(N)>为对应的私钥,满足N>n6
假设生成证明的一方知道
Figure FDA0002539356660000034
使得[η1]P1≡G,[η21]G≡Q1
Figure FDA0002539356660000035
Figure FDA0002539356660000036
生成证明ProofΠ的步骤包括:
41)生成随机参数,包括:σ、β、γ、ρ1、δ、μ、v、ρ2、ρ3、∈;具体执行如下操作:
Figure FDA0002539356660000037
Figure FDA0002539356660000041
Figure FDA0002539356660000042
Figure FDA0002539356660000043
Figure FDA0002539356660000044
Figure FDA0002539356660000045
Figure FDA0002539356660000046
Figure FDA0002539356660000047
Figure FDA0002539356660000048
Figure FDA0002539356660000049
42)计算得到ProofΠ中的各项参数,包括:z1、U1、u2、u3、z2、Y、V1、V2、v3、v4、e、s1、s2、s3、t1、t2、t3、t4;具体执行如下操作:
计算:
Figure FDA00025393566600000410
计算:U1←[σ]P1
计算:u2←gσβNmodN2
计算:
Figure FDA00025393566600000411
计算:
Figure FDA00025393566600000412
计算:Y←[η23]G;
计算:V1←[δ+∈]G;
计算:V2←[σ]Q1+[∈]G;
计算:v3←gδμNmodN2
计算:
Figure FDA0002539356660000051
计算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Π′构造为如下形式:
Figure FDA0002539356660000052
其中,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
Figure FDA0002539356660000053
生成证明方已知:
Figure FDA0002539356660000054
使得[η1]P2≡G、[η21]G≡Q2
Figure FDA0002539356660000055
Figure FDA0002539356660000056
ProofΠ′的构建过程包括:
51)生成随机参数,包括:α、β、γ、ρ1、δ、μ、v、ρ2、ρ3、ρ4、∈、σ、τ;具体执行如下操作:
Figure FDA0002539356660000061
Figure FDA0002539356660000062
Figure FDA0002539356660000063
Figure FDA0002539356660000064
Figure FDA0002539356660000065
Figure FDA0002539356660000066
Figure FDA0002539356660000067
Figure FDA0002539356660000068
Figure FDA0002539356660000069
Figure FDA00025393566600000610
Figure FDA00025393566600000611
Figure FDA00025393566600000612
Figure FDA00025393566600000613
52)计算ProofΠ′中的各项参数,包括:z1、U1、u2、u3、z2、Y、V1、V2、v3、v4、z3、v5、e、s1、s2、s3、t1、t2、t3、t4、t5、t6;具体执行如下操作:
计算:
Figure FDA00025393566600000614
计算:U1←[α]P2
计算:u2←(g′)αβN′mod(N′)2
计算:
Figure FDA00025393566600000615
计算:
Figure FDA00025393566600000616
计算:Y←[η12]G
计算:V1←[δ+∈]G
计算:V2←[α]Q2+[∈]G
计算:v3←(m3)α(m4)δguNmodN2
计算:
Figure FDA0002539356660000071
计算:
Figure FDA0002539356660000072
计算:
Figure FDA0002539356660000073
计算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);
校验是否满足:
Figure FDA0002539356660000081
校验是否满足:[s1]P1≡[e]G+U1
校验是否满足:
Figure FDA0002539356660000082
校验是否满足:
Figure FDA0002539356660000083
校验是否满足:[t1+t2]G≡[e]Y+V1
校验是否满足:[s1]Q1+[t2]G≡[e]Y+V2
校验是否满足:
Figure FDA0002539356660000084
校验是否满足:
Figure FDA0002539356660000085
如果上述校验全部通过,则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)
校验是否满足:
Figure FDA0002539356660000086
校验是否满足:
Figure FDA0002539356660000087
校验是否满足:[s1]P2≡[e]G+U1
校验是否满足:
Figure FDA0002539356660000088
校验是否满足:
Figure FDA0002539356660000089
校验是否满足:[t1+t2]G≡[e]Y+V1
校验是否满足:[s1]Q2+[t2]G≡[e]Y+V2
校验是否满足:
Figure FDA00025393566600000810
校验是否满足:
Figure FDA00025393566600000811
校验是否满足:
Figure FDA00025393566600000812
如果上述校验全部通过,则ProofΠ′校验通过。
CN201811381814.9A 2018-11-19 2018-11-19 一种两方sm2数字签名生成方法 Active CN109547209B (zh)

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)

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

* Cited by examiner, † Cited by third party
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数字签名生成方法及系统

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