CN113541926A - Sm2三方联合签名方法与系统 - Google Patents
Sm2三方联合签名方法与系统 Download PDFInfo
- Publication number
- CN113541926A CN113541926A CN202010288792.2A CN202010288792A CN113541926A CN 113541926 A CN113541926 A CN 113541926A CN 202010288792 A CN202010288792 A CN 202010288792A CN 113541926 A CN113541926 A CN 113541926A
- Authority
- CN
- China
- Prior art keywords
- signature
- party
- public key
- private key
- parties
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000004364 calculation method Methods 0.000 claims abstract description 18
- 238000012795 verification Methods 0.000 abstract description 10
- 238000010561 standard procedure Methods 0.000 abstract description 8
- 238000012790 confirmation Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 1
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出了三方计算中,三方联合签名的方法和系统。具体地,计算参与三方分别具有部分私钥,共有一个公钥。三方分别使用自己的部分私钥,通过联合计算才能对消息进行签名。联合签名计算中,参与三方均无法获取到对方私钥的任何信息。三方联合签名实现了对消息签名的三方共同确认;联合签名可以被三方共有公钥验签,一次验签就验证了三方的不可抵赖性;验签使用SM2算法的标准方法,从而能够兼容现有公钥应用。另外,攻击者在入侵其中任何一方的情况下,都不能伪造签名,从而提高了三方计算中的私钥安全性,也避免了私钥泄露后的签名滥用。
Description
技术领域
本发明涉及SM2三方联合签名方法与应用系统,包括但不仅限于该领域。
背景技术
SM2算法是一种椭圆曲线(ECC)非对称密码算法算法,是我国自主研制的密码算法,并已经发布为国家标准GB/T 32918。SM2算法可以实现签名功能和验签功能。
根据算法规定,SM2算法签名方法描述如下:设G是椭圆曲线上的参考点,dA是私钥,PA是公钥,PA=dA*G,对消息e进行数字签名计算的签名结果为(r,s);首先选取随机数k,计算r=e+x1,其中(x1,y1)=k*G;计算s=(1+dA)-1*(k-r* dA)。
根据算法规定,SM2算法验证签名方法描述如下:已知签名(r,s)、公钥PA和SM2算法规定的椭圆曲线参数;首先计算t=r+s,如果t=0那么就没有验证通过;否则计算r’=x1+e,判断r’是否和r相等,如果相等则验证通过。
基于私钥唯一且由持有人所有,SM2签名可用于保证消息的完整性,保证交易的不可抵赖性。由于公钥可被公开性,该签名可以被各方验证。在签名应用中,如果一个消息需要被三方签名,现有做法是A签名后传递给B,B在A的基础上签名后传递给C,C在B的基础上再签名。该方法签名流程复杂,需要多次确认;同样,验签时需要多次验签和确认,才能证明交易的不可抵赖性。
发明内容
本发明提出一种SM2三方联合签名的方法和系统。具体地,参与三方分别具有部分私钥,共有一个公钥。三方分别使用自己的部分私钥,通过联合计算才能对消息进行签名,联合签名计算中,参与三方均无法获取到对方私钥的任何信息。联合计算得到的签名可以被三方共有的公钥验签,验签使用SM2算法的标准方法。该方法中,对消息的签名必须三方参与,签名同时保证了三方的操作确认。另外,攻击者在入侵其中任何一方的情况下,都不能伪造签名,从而提高了三方计算中的私钥安全性,避免私钥泄露后的签名滥用。签名可以被三方共有公钥验签,一次验证即可证明三方的不可抵赖性。验签使用SM2算法的标准方法,从而能够兼容现有公钥应用。
下面结合附图2对本发明进行详细说明。
本发明所述,参与三方分别具有部分私钥,共有一个公钥,说明如下。如图2中MA1所示,参与第一方记为A,具有私钥a和公钥Pa。如图2中MB1所示,参与第二方记为B,具有私钥b和公钥Pb。如图2中MC1所示,参与第三方记为C,具有私钥c和公钥Pc。
任何一方都可以计算三方共有公钥,本发明示例由C计算。如图2中所示,C将Pc发给B;B计算s21=b*Pc;B将Pc、s21和Pb发送给A。A收到后,计算s22=a*Pb,计算s23=a*Pc,计算s24=a*s21=a*b*Pc; A发送Pa,Pb,s21,s22,s23给C。C收到后,如图2中MC2所示,计算公钥Pu=Pa+Pb+Pc+ a*Pb+a*Pc+b*Pc+a*b*Pc。其中+为椭圆曲线上的点加,*为大数乘,下同。由背景技术描述可知,SM2是一种规定了参数的椭圆曲线密码算法,该椭圆曲线上的点的集合属于加法域;由加法域的运算规则可知,Pu对应的私钥记为u=a+b+c+a*b+a*c+b*c+a*b*c,可知私钥a和私钥b是构成私钥u的部分私钥。共有公钥Pu可被发布为三方交易共用公钥。
本发明所述,参与三方分别使用自己的部分私钥,通过联合计算才能对消息进行签名,说明如下。如图2中MA3所示,对于消息E,参与方A使用私钥a计算第一部分签名Q1,计算过程如下:
1) A生成随机数m,计算s31=m*G,G为SM2的参考基点;
2) 生成随机数k,计算k*G,取该点的x1;
3) 计算消息E的散列值记为e,计算 r=e+x1;
4) 计算 s32=s31*k=m*G*k;
5) 计算s33=s31*(1+a)=m*G*(1+a);
记第一部分签名Q1=(r,s31,s32,s33)。参与方A发送Q1中的r、s31、s32发送给参与方C;将Q1中的s33发送给参与方B。
如图2中MB2所示,参与方B收到s33后,计算第二部分签名Q2,计算过程如下:
1)计算s41=s33* (1+b)= m*G*(1+a+b+a*b);
记第二部分签名Q2=s41,将Q2发送给C。
如图2中MC3所示,参与方C收到参与方A发送的r、s32、s33后,收到参与方B发送的s41后,计算完整签名Q3,计算过程如下:
1)计算s51=s41*(1+c)= m*G*(1+a+b+c+a*b+a*c+b*c+a*b*c)
2)对s51整体求逆,得到s52=( m*G*(1+a+b+c+a*b+a*c+b*c+a*b*c))-1,()-1表示对括号内的算式求逆;
3)计算s53=(s51-s31)* r= m*G*r*(a+b+c+a*b+a*c+b*c+a*b*c);
4)计算s54=s32-s53= m*G*(k-r*(a+b+c+a*b+a*c+b*c+a*b*c));
5)计算s55=s52*s54
=(m*G*(1+a+b+c+a*b+a*c+b*c+a*b*c))-1*m*G*(k-r*(a+b+c+a*b+a*c+b*c+a*b*c))
= (1+a+b+c+a*b+a*c+b*c+a*b*c) -1*(k-r*(a+b+c+a*b+a*c+b*c+a*b*c));
6)记s=s55,输出完整签名Q3=(r,s)作为消息E的签名。
由SM2签名算法可知,签名结果为(r,s),其中 r=e+x1, s=(1+dA)-1*(k-r* dA)。由上述共有公钥Pu可知,共有公钥Pu= Pa+Pb+Pc+ a*Pb+a*Pc+b*Pc+a*b*Pc,对应的私钥u=(a+b+c+a*b+a*c+b*c+a*b*c)。记私钥u为dA=(a+b+c+a*b+a*c+b*c+a*b*c),则s55=(1+dA)-1*(k-r* dA),可推导得出完整签名Q3符合SM2标准结构。
本发明所述,联合计算得到的签名可以被 参与三方的共有公钥验签,验签使用SM2算法的标准方法,说明如下。记私钥u为dA=(a+b+c+a*b+a*c+b*c+a*b*c),联合计算得到的完整签名Q3=(r,s),r=e+x1,s=(1+dA)-1*(k-r* dA)。由于Q2完全符合SM2签名方法,所以推导出该签名可以使用公钥Pu验签,验签算法使用SM2标准方法。
基于私钥唯一且由持有人所有,SM2签名可用于保证消息的完整性,保证交易的不可抵赖性。由于公钥可被公开性,该签名可以被各方验证。在三方签名应用中,本发明保证了签名由三方共同计算得出,保证了三方对交易的确认。签名可以被三方共有公钥验签,一次验证即可证明三方的交易不可抵赖性;验签使用SM2算法的标准方法,从而能够兼容现有公钥应用。另外,攻击者在入侵其中任何一方的情况下,都不能伪造签名,从而提高了三方计算中的私钥安全性,避免私钥泄露后的签名滥用。签名构造方式和SM2标准方法一致,已被充分证明其安全性。
附图说明
图1为SM2三方联合签名方法框图
图2 为SM2三方方联合签名详细步骤图
图3为交易双方+交易担保方三方联合签名应用示意图
具体实施方式
下面结合附图对SM2三方联合签名方法及系统进行说明。
图3是本发明在交易双方+交易担保方三方联合签名应用示意图。图中包括交易参与方甲,具有私钥a和公钥Pa;包括交易参与方乙,具有私钥b和公钥Pb;包括交易担保方丙,具有私钥c和公钥Pc;包括证书签发机构CA。
证书准备:交易担保方丙将Pc发送给参与方甲和乙,交易参与方甲和乙分别处理后发送给担保方丙。担保方丙计算共有公钥Pu= Pa+Pb+Pc+a*Pb+a*Pc+b*Pc+a*b*Pc。担保方丙将Pu发送给CA,CA签发含有该公钥的证书CPu,CPu可被发布。
联合签名:交易参与方甲发起和参与方乙的一个交易E,需要对交易E进行签名。交易参与方甲首先通过散列计算得到交易E的散列值e,然后使用部分私钥a计算第一部分签名Q1,计算过程见图2中的MA2。交易参与方甲将第一部分签名Q1分别发送给参与方乙和担保方丙。
交易参与方乙收到到Q1后,使用部分私钥b计算第二部分签名Q2,计算过程见图2中的MB2。乙将第二部分签名Q2发送给担保方丙。
交易担保方丙收到到Q1和Q2后,使用部分私钥c计算完整签名Q3,计算过程见图2中的MC3。丙完成签名后,将完整签名Q3发送给参与方甲和乙。甲、乙和丙均可将该签名和交易E一起发布。
签名验证:当交易参与三方中任何一方,或者其他第三方需要对交易E的完整性、真实性和不可抵赖性进行验证时,首先获得证书CPu,从其中获得共有公钥Pu;然后计算交易E的散列值e,使用Pu验证签名Q3。
该方案中,交易的签名由三方共同计算得出,保证了三方对交易的确认。签名可以被三方共有公钥验签,一次验证即可证明三方的交易不可抵赖性;验签使用SM2算法的标准方法,从而能够兼容现有公钥应用。另外,攻击者在入侵其中任何一方的情况下,都不能伪造签名,从而提高了三方计算中的私钥安全性,避免私钥泄露后的签名滥用。
Claims (6)
1.一种SM2三方联合签名的方法,三个参与方记为A、B和C,其中A有私钥a和公钥Pa,B有私钥b和公钥Pb,C有私钥c和公钥Pc;其特征在于:首先计算共有公钥,任两方可将公钥发送给第三方,由第三方生成共有公钥;本示例由C计算共有公钥。
2.本专利所述由C计算共有公钥,其特征在于:C将公钥Pc发送给B和A;B计算s21=b*Pc;B将Pb、s21发送给A;A计算s22=a*Pb,计算s23=a*Pc,计算s24=a*s21=a*b*Pc; A发送Pa,Pb,s21,s22,s23给C;C计算公钥Pu=Pa+Pb+Pc+ a*Pb+a*Pc+b*Pc+a*b*Pc;其中+为椭圆曲线上的点加,*为大数乘,下同;记Pu对应的私钥为u,私钥a、私钥b和私钥c是构成私钥u的部分私钥。
3.给定消息E,得到其散列值e;A使用私钥a计算第一部分签名Q1;其特征在于:A生成随机数k,计算s31=k*G,取该点的x1;计算 r=e+x1;计算s32= (1+a)*G;记Q1=(r,s31,s32);A将Q1发送B。
4.B收到Q1后,计算第二部分签名Q2;其特征在于:B生成随机数m,计算s41=m*G;计算s42=s31*m;计算s43=s32*(1+b)*m,记Q2=(r,s41,s42,s43);发送Q2给C。
5.C收到Q2后,计算完整签名Q3;其特征在于:计算s51=s43*(1+c);对s51整体求逆得到s52=(m*G* (1+a+b+c+a*b+a*c+b*c+a*b*c))-1,()-1表示对括号内的算式求逆;计算s53=(s51*-s41)*r;计算s54=s42-s53=m*G*(k-r(a+b+c+a*b+a*c+b*c+a*b*c));计算s55=s52*s54=(1+a+b+c+a*b+a*c+b*c+a*b*c) -1*(k-r(a+b+c+a*b+a*c+b*c+a*b*c));记s=s55,输出完整签名Q3=(r,s)作为消息E的签名,联合计算得到的签名结构和SM2标准结构一致。
6.其特征在于:不限于A或B或C,任何一方均可以使用联合公钥Pu验证消息E的签名Q3;验证算法使用SM2标准验证算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010288792.2A CN113541926A (zh) | 2020-04-14 | 2020-04-14 | Sm2三方联合签名方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010288792.2A CN113541926A (zh) | 2020-04-14 | 2020-04-14 | Sm2三方联合签名方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113541926A true CN113541926A (zh) | 2021-10-22 |
Family
ID=78119929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010288792.2A Pending CN113541926A (zh) | 2020-04-14 | 2020-04-14 | Sm2三方联合签名方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113541926A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016187689A1 (en) * | 2015-05-26 | 2016-12-01 | Infosec Global Inc. | Signature protocol |
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN107248909A (zh) * | 2017-03-16 | 2017-10-13 | 北京百旺信安科技有限公司 | 一种基于sm2算法的无证书安全签名方法 |
CN109547199A (zh) * | 2018-11-19 | 2019-03-29 | 武汉大学 | 一种多方联合生成sm2数字签名的方法 |
CN109743166A (zh) * | 2018-12-10 | 2019-05-10 | 普华诚信信息技术有限公司 | 多方签名生成方法及安全信息验证系统 |
CN110943829A (zh) * | 2019-11-08 | 2020-03-31 | 中国电子科技网络信息安全有限公司 | 一种三方协同生成sm2签名的方法 |
-
2020
- 2020-04-14 CN CN202010288792.2A patent/CN113541926A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016187689A1 (en) * | 2015-05-26 | 2016-12-01 | Infosec Global Inc. | Signature protocol |
CN107248909A (zh) * | 2017-03-16 | 2017-10-13 | 北京百旺信安科技有限公司 | 一种基于sm2算法的无证书安全签名方法 |
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN109547199A (zh) * | 2018-11-19 | 2019-03-29 | 武汉大学 | 一种多方联合生成sm2数字签名的方法 |
CN109743166A (zh) * | 2018-12-10 | 2019-05-10 | 普华诚信信息技术有限公司 | 多方签名生成方法及安全信息验证系统 |
CN110943829A (zh) * | 2019-11-08 | 2020-03-31 | 中国电子科技网络信息安全有限公司 | 一种三方协同生成sm2签名的方法 |
Non-Patent Citations (2)
Title |
---|
LIHAO WEI ET AL.: "A tightly secure multi-party-signature protocol in the plain model", 2015 8TH INTERNATIONAL CONFERENCE ON BIOMEDICAL ENGINEERING AND INFORMATICS (BMEI), 11 February 2016 (2016-02-11) * |
苏吟雪;田海博;: "基于SM2的双方共同签名协议及其应用", 计算机学报, no. 04, 15 April 2020 (2020-04-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547212B (zh) | 一种基于sm2签名算法的门限签名方法 | |
CN107707358B (zh) | 一种ec-kcdsa数字签名生成方法及系统 | |
Wang et al. | Security analysis of a single sign-on mechanism for distributed computer networks | |
CN108667625B (zh) | 协同sm2的数字签名方法 | |
CN114157427B (zh) | 基于sm2数字签名的门限签名方法 | |
WO2018112947A1 (zh) | 生成区块链区块的方法、装置、节点、签名设备及系统 | |
CN107248909B (zh) | 一种基于sm2算法的无证书安全签名方法 | |
CN107659395B (zh) | 一种多服务器环境下基于身份的分布式认证方法及系统 | |
CN103248478A (zh) | 基于多方安全协议的密封式电子拍卖方案与验证方法 | |
TWI608722B (zh) | Public key certificate method | |
JP2005253083A (ja) | 新しいフェア・ブラインド署名プロセス | |
CN111654366B (zh) | 一种安全的pki与ibc之间的双向异构强指定验证者签名方法 | |
CN109639439A (zh) | 一种基于两方协同的ecdsa数字签名方法 | |
CN111355582A (zh) | 基于sm2算法的两方联合签名和解密的方法及系统 | |
CN113360943A (zh) | 一种区块链隐私数据的保护方法及装置 | |
CN103107890A (zh) | 一种多方加密、签名、零知识证明的方法 | |
CN111738857B (zh) | 应用于区块链的隐匿支付证明的生成与验证方法及装置 | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
JP7472158B2 (ja) | メッセージにデジタル署名を提供するための方法 | |
CN112653554A (zh) | 一种签名方法、系统、设备及可读存储介质 | |
CN108964906B (zh) | 协同ecc的数字签名方法 | |
CN116865970A (zh) | 基于国密算法的多方协同密钥产生和数字签名方法及系统 | |
CN110278073B (zh) | 一种群组数字签名、验证方法及其设备和装置 | |
CN116318736A (zh) | 一种用于分级管理的二级门限签名方法及装置 | |
CN113541926A (zh) | Sm2三方联合签名方法与系统 |
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 |