CN112636918A - 一种高效的基于sm2两方协同签名方法 - Google Patents
一种高效的基于sm2两方协同签名方法 Download PDFInfo
- Publication number
- CN112636918A CN112636918A CN202011442650.3A CN202011442650A CN112636918A CN 112636918 A CN112636918 A CN 112636918A CN 202011442650 A CN202011442650 A CN 202011442650A CN 112636918 A CN112636918 A CN 112636918A
- Authority
- CN
- China
- Prior art keywords
- signature
- party
- public key
- csr
- hash value
- 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
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/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/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
- H04L9/3252—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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (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)
- Storage Device Security (AREA)
Abstract
本发明公开了一种高效的基于SM2两方协同签名方法,属于信息安全技术领域。为了安全高效的实现数字签名服务,本发明的方法包括初始化系统参数后,签名方UA和UB根据自己随机选择出的秘密值生成自己的用户公钥QA和QB,并发送给对方;UA和UB根据对方用户公钥生成验证公钥QAB,Q'AB,并分别将QAB,Q'AB提交给CA,同时在本地存储QAB,Q'AB、自己的秘密值和对方公钥;UA和UB根据对方的中间值(RID,tID)以确认对方是否为签名的合法参与方;如果是则UA向CA发送证书签名请求,并开始生成子签名;最后通过两方的交互,UA生成签名(r,s)。本发明用于通信网络中的消息签名和消息验证,提供消息的完整性、认证性、不可否认性和抗部分密钥泄露攻击服务。
Description
技术领域
本发明涉及信息安全技术领域,特别是一种高效的基于SM2两方协同签名方法。
背景技术
签名(Signature)是密码学中的一个基本原语,它提供了消息的完整性、认证性和不可否认性。其中完整性指消息在传输过程中,不能被篡改;认证性指接收者相信这份签名来自签名者;不可否认性指签名者事后不能否认自己的签名。一个数字签名方案一般有两个组成部分,即签名(Signature)方法和验证(Verification)方法。在签名方法中,系统输入消息m和私钥k,输出对m的数字签名;在验证方法中,系统输入m和其所对应的数字签名,输出为合法性的真或假。在签名方法中,一旦签名私钥被窃取,攻击者就可以随意伪造合法用户的签名。
为了降低签名私钥泄露的风险,常见的解决方案采用了(t,n)门限密码技术。其主要思想为将签名私钥分割为n份,每一份称为一个私钥份额,分别存储在不同的物理设备中,签名时至少需要提供t个私钥份额才能产生有效的签名。两方协同签名可以看作(2,2)门限签名,其通过签名私钥的分散存储提高了系统的安全性,增强了签名者间的互动性。
SM2[国家密码管理局.SM2椭圆曲线公钥密码算法,GM/T 0003-2012,2010.]是国家密码管理局于2010年发布的椭圆曲线公钥密码方法,包含了公钥加密方法、数字签名方法和密钥交换协议方法。该方法的安全性依赖于求解椭圆曲线上离散对数难问题,与RSA、DSA签名方法相比具有安全性高、存储空间小、运算复杂度低的优点。SM2数字签名方法目前已广泛应用于国内商密领域。
私钥泄露也存在于传统的SM2数字签名方法中,因此基于SM2的协同签名方法被提出。现有的基于SM2两方协同签名方法主要利用了零知识技术来确保通信双方身份的真实性、承诺技术来确保输出签名的正确性、同态加密技术来确保通信双方在不知道对方私钥情况下协作生产SM2签名。然而,以上所提密码技术都增加了签名方的计算需求,降低了系统的运行效率,给在资源受限的设备上生成数字签名带来了挑战。目前,基于SM2两方协同签名方法主要有以下几种:
2016年,Jie等[Y.Jie,L.Yu,C.Li-Yun,et al.:A SM2 elliptic curvethreshold signature scheme without a trusted center[J].KSII Transactions onInternet and Information Systems,2016,10(02):897-913.]提出了一个无可信第三方的SM2门限签名方法。该方法基于秘密共享和安全多方技术,各方协作生产了验证签名的各个部分直至获得最终签名。该方法交互次数多,需要较多的通信成本和计算成本。
申请号为201710546334.2的SM2协同签名及解密方法、装置与系统中,公布了一个基于SM2的两方协同签名方法。该方法利用了盲签名技术,使得用户在签名过程中具有匿名性。
申请号为201611159830.4的一种基于椭圆曲线的分布式签名方法及系统中公布了一个需要两轮通信、3次标量乘法的基于SM2的两方协同签名方法。
2018年,Ding等[F.Ding,Y.Long,P.Wu:Study on secret sharing for SM2digital signature and its application[C].Proceedings of the 14thInternational Conference on Computational Intelligence and Security(CIS),Hangzhou,China,pp.205-209,2018.]提出了一个基于SM2的门限群签名方法。该方法先对私钥进行计算,再通过秘密信道分享秘密份额。
申请号为201810805297.7的基于两方协同的SM2数字签名方法,利用一种基于不经意传输协议的乘法器,设计了一个两方协同SM2数字签名方法。在签名过程中,完整的签名密钥不能被恢复,这样既保证了签名的正确性,又保证了签名密钥的安全性。
申请号为201910147366.4的一种轻量级SM2两方协同生成数字签名的方法采用预计算的方法,提出了一个轻量级的两方协同SM2数字签名方法。该方法极大地减轻了两方联合生成SM2数字签名的计算开销,实现高效的SM2两方协同数字签名,同时在参与签名的各方之间保证安全性、隐私性和公平性。然而,该方法仍然应用了零知识证明技术。
申请号为202010100370.8的一种基于SM2的两方协同签名方法及解密方法,公布了一个两方协同SM2数字签名方法,同时也提出了一个基于SM2的两方解密方法用于对密文进行解密。该密文使用用户的两方私钥协同计算,得出明文。
以上方法都缺少安全性分析,基于此,一些具有严格安全性证明的基于SM2协同签名方法被提出:
2020年,Hou等[侯红霞,杨波,张丽娜,张明瑞.安全的两方协作SM2签名算法[J].电子学报,2020,48(1):1-8.]采用零知识证明、比特承诺、同态加密等密码学技术保证了只有合法的通信双方才能安全地协作产生完整的SM2签名。同时在通用可组合(UniversallyComposable,UC)安全框架中的混合模型下证明了方案的安全性。
2020年,Zhang等[Y.Zhang,D.He,M.Zhang,et al.:A provable-secure andpractical two-party distributed signing protocol for SM2 signature algorithm[J].Frontiers of Computer Science,2020,14(3):143803.]在安全模型下提出了一个基于SM2的两方协同签名方法。虽然该方法中通信双方只需要一次通信,但是多了同态加密和零知识证明的计算需求。
2020年,Shu等[苏吟雪,田海博.基于SM2的双方共同签名协议及其应用[J].计算机学报,2020,43(4):701-710.]提出了一个基于SM2的双方共同签名方法,并在随机预言机模型下给出了安全性证明过程.该方法适用于单个服务节点服务大量客户端的场景。与有安全性证明的基于SM2协同签名方法相比,该方法具有最低的计算成本;与缺少安全性证明的基于SM2协同签名方法相比,该方法与申请号为201410437599.5的适用于云计算的基于SM2算法的签名及解密方法和系统具有接近的效率。然而,如果在签名阶段生成随机数的函数是确定性的,则该方案将无法保证签名者私钥被泄露出去。同时在现实情况中,为了避免签名时生成强随机数,随机值的产生使用了类似RFC6979[T.Pornin:Deterministic Usageof the Digital Signature Algorithm(DSA)and Elliptic Curve Digital SignatureAlgorithm(ECDSA)[M].Heise Zeitschriften Verlag,2013.]的算法来完成,该算法使用了确定性函数来计算随机值。
综上,在签名阶段中,可能存在签名私钥泄露的风险。
发明内容
本发明所要解决的技术问题是克服现有技术的不足而提供一种高效的基于SM2两方协同签名方法,本发明能保证在签名阶段中,确定性随机数的产生不会增加签名私钥泄露的风险,且提高了计算能力有限设备上生成数字签名的效率,在保证签名安全性的前提下,节省签名端的计算成本,优化系统性能。
本发明为解决上述技术问题采用以下技术方案:
根据本发明提出的一种高效的基于SM2两方协同签名方法,包括以下步骤:
步骤S1、设定系统公开参数,系统公开参数包括:选择素数p,Fp为有限域,选择两个整数a,b作为椭圆曲线E的参数,a,b∈Fp,设P为E上的一点,并将P作为循环加法群G的生成元,群G的阶为q;定义H(·)为安全的哈希函数;
步骤S2、生成第一签名方UA的验证公钥QAB和第二签名方UB的验证公钥Q'AB,QAB=Q'AB,并将QAB和Q’AB提交给认证机构CA;具体过程如下:
UA计算UA的验证公钥QAB=xA·QB-P,将QAB提交给CA,且在本地存储QAB、xA、QB;
UB计算UB的验证公钥Q’AB=xB·QA-P,将Q’AB提交给CA,且在本地存储Q'AB、xB、QA;
步骤S3、生成协同签名;具体如下:
UB收到RA、tA后计算RA的Hash值,并验证UB计算出的RA的Hash值与tA是否相等,若不相等则终止签名,否则继续执行以下过程;
UA收到RB、tB后计算RB的Hash值,并验证UA计算出的RB的Hash值与tB是否相等,若不相等则终止签名,否则继续执行以下过程;
UA计算R=RA+xA·RB=(x,y)、e=H(ZA||MCSR),r=(e+x)modq和并将sA、MCSR发送给UB,其中,ZA是SM2标准下签名方UA的Hash值,MCSR为UA提供身份信息给CA生成的证书签名请求,R是承诺值,e是ZA和MCSR的Hash值,r是中间变量,sA是UA的签名值,x为R的横坐标,y为R的纵坐标,||表示连接符号;
UA收到sB后计算最终的签名值s=(sB-r)modq,输出最终的协同签名(r,s);
步骤S4、利用QAB、采用SM2方法验证协同签名(r,s)的合法性。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
(1)本发明基于椭圆曲线上离散对数难问题,保证了签名一方的秘密值在被泄露的情况下,另外一方的秘密值不会被恢复;同时,本发明与背景技术中的Shu等提出的一个基于SM2的双方共同签名方法相比,具有更低的计算成本,表现在于步骤S3中,利用运行时间短的哈希运算tA=H(RA)、tB=H(RB)保证了发送消息的正确性,而Shu等需要两次指数运算;具有更强的安全性,表现在于步骤S3中,即使随机数的产生是确定的,且签名方UB被腐化也无法推测出签名方UA的秘密值xA;因此,本发明实现了签名的完整性、认证性和不可否认性,提供了抗泄露攻击的服务;
(2)同时,本发明没有使用零知识证明技术和同态加密技术,提高了协作签名的效率,节省了系统的运行时间。
附图说明
图1是本发明具体实施方式的生成验证公钥步骤示意图。
图2是本发明具体实施方式的生成协同签名步骤示意图。
图3是本发明示意简图图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
图3是本发明的示意简图,本发明的一种高效的基于SM2两方协同签名方法,包括:
设定系统参数,用于生成签名方的用户公钥QA、QB,验证公钥QAB、Q'AB和协同签名(r,s);同时,系统参数也用于签名的合法性验证;
签名方根据对方用户公钥生成验证公钥QAB、Q'AB,将QAB、Q'AB提交给CA,并在本地存储QAB、Q'AB、xID和对方公钥;
签名方根据中间值(RID,tID)以确认对方为签名的合法参与方,最后根据两方的交互,其中一方生成签名(r,s)。
具体执行步骤包括设定系统参数、生成验证公钥和生成协同签名,具体描述如下:
(1)设定系统参数:
(1.1)设G为由P生成的循环加法群,阶为q,其中P为椭圆曲线E上的一点;定义H(g)为安全的哈希函数。
(1.2)基于上述设定,得到的系统参数为:{G,q,P,E,H},并公开这些系统参数。
(2)生成验证公钥:
第一签名方UA和第二签名方UB协同生成验证公钥,并交其提交给认证机构CA。参见图1,具体步骤如下:
(2.3)UA计算验证公钥QAB=xA·QB-P,将QAB提交给CA,且在本地存储QAB,xA,QB。
(2.4)UB计算验证公钥QAB′=xB·QA-P,将QAB提交给CA,且在本地存储QAB′,xB,QA。
(3)生成协同签名:
签名方UA、UB协同生成签名(r,s)。参见图2,具体步骤如下:
(3.2)UB收到RA、tA后计算RA的Hash值,并验证UB计算出的RA的Hash值与tA是否相等,若不相等则终止签名,否则继续执行以下过程;
(3.4)UA收到RB、tB后计算RB的Hash值,并验证UA计算出的RB的Hash值与tB是否相等,若不相等则终止签名,否则继续执行以下过程。
(3.5)签名方UA计算R=RA+xA·RB=(x,y),e=H(ZA||MCSR),r=(e+x)modq和并将(sA,MCSR)发送给UB,其中ZA是SM2标准下签名方UA的Hash值,MCSR为UA提供身份信息给CA生成的证书签名请求,R是承诺值,e是ZA和MCSR的Hash值,r是中间变量,sA是UA的签名值,x为R的横坐标,y为R的纵坐标,||表示连接符号;
(3.7)签名方UA收到sB后计算最终的签名值s=(sB-r)modq,输出最终的协同签名(r,s)。
(4)验证签名的合法性:
为了显示本说明的正确性,本部分补充说明了验证方V收到消息MCSR和签名(r,s)后的操作。具体步骤如下:
(4.1)验证方V验证(r,s)是否属于[1,q-1]。如果不属于,则验证不通过;否则执行下一步。
(4.2)计算t=(r+s)modq。如果t=0,则验证不通过;否则计算(x′,y′)=sP+tQAB。
(4.3)验证方V计算e′=H(ZA||MCSR),r′=(e′+x′)modq,检验r′与r是否相等。如果相等,则数字签名验证通过;否认验证不通过。
本方法的正确性可由以下等式验证。
以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。
Claims (1)
1.一种高效的基于SM2两方协同签名方法,其特征在于,包括以下步骤:
步骤S1、设定系统公开参数,系统公开参数包括:选择素数p,Fp为有限域,选择两个整数a,b作为椭圆曲线E的参数,a,b∈Fp,设P为E上的一点,并将P作为循环加法群G的生成元,群G的阶为q;定义H(·)为安全的哈希函数;
步骤S2、生成第一签名方UA的验证公钥QAB和第二签名方UB的验证公钥Q'AB,QAB=Q'AB,并将QAB和Q'AB提交给认证机构CA;具体过程如下:
UA计算UA的验证公钥QAB=xA·QB-P,将QAB提交给CA,且在本地存储QAB、xA、QB;
UB计算UB的验证公钥Q’AB=xB·QA-P,将Q’AB提交给CA,且在本地存储Q'AB、xB、QA;
步骤S3、生成协同签名;具体如下:
UB收到RA、tA后计算RA的Hash值,并验证UB计算出的RA的Hash值与tA是否相等,若不相等则终止签名,否则继续执行以下过程;
UA收到RB、tB后计算RB的Hash值,并验证UA计算出的RB的Hash值与tB是否相等,若不相等则终止签名,否则继续执行以下过程;
UA计算R=RA+xA·RB=(x,y)、e=H(ZA||MCSR),r=(e+x)mod q和并将sA、MCSR发送给UB,其中,ZA是SM2标准下签名方UA的Hash值,MCSR为UA提供身份信息给CA生成的证书签名请求,R是承诺值,e是ZA和MCSR的Hash值,r是中间变量,sA是UA的签名值,x为R的横坐标,y为R的纵坐标,||表示连接符号;
UA收到sB后计算最终的签名值s=(sB-r)mod q,输出最终的协同签名(r,s);
步骤S4、利用QAB、采用SM2方法验证协同签名(r,s)的合法性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011442650.3A CN112636918B (zh) | 2020-12-08 | 2020-12-08 | 一种高效的基于sm2两方协同签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011442650.3A CN112636918B (zh) | 2020-12-08 | 2020-12-08 | 一种高效的基于sm2两方协同签名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112636918A true CN112636918A (zh) | 2021-04-09 |
CN112636918B CN112636918B (zh) | 2021-06-29 |
Family
ID=75309509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011442650.3A Active CN112636918B (zh) | 2020-12-08 | 2020-12-08 | 一种高效的基于sm2两方协同签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112636918B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243456A (zh) * | 2014-08-29 | 2014-12-24 | 中国科学院信息工程研究所 | 适用于云计算的基于sm2算法的签名及解密方法和系统 |
CN108667626A (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
CN108989050A (zh) * | 2018-08-23 | 2018-12-11 | 电子科技大学 | 一种无证书数字签名方法 |
CN110011803A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种轻量级sm2两方协同生成数字签名的方法 |
US20190236300A1 (en) * | 2017-03-30 | 2019-08-01 | Tencent Technology (Shenzhen) Company Limited | Service processing method and apparatus, data sharing system, and storage medium |
CN111447065A (zh) * | 2019-01-16 | 2020-07-24 | 中国科学院软件研究所 | 一种主动安全的sm2数字签名两方生成方法 |
-
2020
- 2020-12-08 CN CN202011442650.3A patent/CN112636918B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243456A (zh) * | 2014-08-29 | 2014-12-24 | 中国科学院信息工程研究所 | 适用于云计算的基于sm2算法的签名及解密方法和系统 |
US20190236300A1 (en) * | 2017-03-30 | 2019-08-01 | Tencent Technology (Shenzhen) Company Limited | Service processing method and apparatus, data sharing system, and storage medium |
CN108667626A (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
CN108989050A (zh) * | 2018-08-23 | 2018-12-11 | 电子科技大学 | 一种无证书数字签名方法 |
CN111447065A (zh) * | 2019-01-16 | 2020-07-24 | 中国科学院软件研究所 | 一种主动安全的sm2数字签名两方生成方法 |
CN110011803A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种轻量级sm2两方协同生成数字签名的方法 |
Non-Patent Citations (1)
Title |
---|
苏吟雪、田海博: "基于SM2 的双方共同签名协议及其应用", 《计算机学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112636918B (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108667626B (zh) | 安全的两方协作sm2签名方法 | |
CN107947913B (zh) | 一种基于身份的匿名认证方法与系统 | |
CN107733648B (zh) | 一种基于身份的rsa数字签名生成方法及系统 | |
CN107659395B (zh) | 一种多服务器环境下基于身份的分布式认证方法及系统 | |
CN102387019B (zh) | 无证书部分盲签名方法 | |
CN110011803B (zh) | 一种轻量级sm2两方协同生成数字签名的方法 | |
CN109639439B (zh) | 一种基于两方协同的ecdsa数字签名方法 | |
CN104079412B (zh) | 基于智能电网身份安全的无可信pkg的门限代理签名方法 | |
Yao et al. | A light-weight certificate-less public key cryptography scheme based on ECC | |
CN113162773B (zh) | 一种可证安全的异构盲签密方法 | |
CN113300856A (zh) | 一种可证安全的异构混合签密方法 | |
CN110943845A (zh) | 一种轻量级两方协同产生sm9签名的方法及介质 | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
CN109064170B (zh) | 无可信中心的群签名方法 | |
Liu et al. | A post quantum secure multi-party collaborative signature with deterability in the Industrial Internet of Things | |
Oh et al. | How to solve key escrow and identity revocation in identity-based encryption schemes | |
CN112636918B (zh) | 一种高效的基于sm2两方协同签名方法 | |
CN114978488A (zh) | 一种基于sm2算法的协同签名方法及系统 | |
Hou et al. | Practical SM2-based Multisignature scheme with applications to vehicular networks | |
Fan et al. | Strongly secure certificateless signature scheme supporting batch verification | |
Jin et al. | Certificateless aggregate deniable authentication protocol for ad hoc networks | |
Wu et al. | A publicly verifiable PCAE scheme for confidential applications with proxy delegation | |
Chung et al. | A study on efficient group-oriented signature schemes for realistic application environment | |
Cui et al. | A new certificateless signcryption scheme without bilinear pairing | |
Sarde et al. | Strong designated verifier signature scheme based on discrete logarithm problem |
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 |