CN111447065A - 一种主动安全的sm2数字签名两方生成方法 - Google Patents
一种主动安全的sm2数字签名两方生成方法 Download PDFInfo
- Publication number
- CN111447065A CN111447065A CN201910039524.4A CN201910039524A CN111447065A CN 111447065 A CN111447065 A CN 111447065A CN 201910039524 A CN201910039524 A CN 201910039524A CN 111447065 A CN111447065 A CN 111447065A
- Authority
- CN
- China
- Prior art keywords
- participant
- calculating
- private key
- signature
- 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.)
- 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/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
-
- 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
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)
- Storage Device Security (AREA)
Abstract
本发明公开了一种主动安全的SM2数字签名两方生成方法。本方法为:1)参与方P1生成部分私钥d1并存储,参与方P2生成部分私钥d2并存储,P1、P2产生用户公钥Y;2)P1随机产生临时私钥k1,计算临时公钥R1=k1·G,并将R1发给P2;3)P2随机产生临时私钥k21、k22,计算临时公钥R21=k21·G,R22=k22·G,并将其发给P1;4)P1、P2分别根据各自临时私钥计算一共同的证据值R;5)P2根据k21,k22,d2和R计算消息m的部分签名s1和s2,并将其发给P1;6)P1根据s1、s2和d1、k1、R生成消息m的完整签名并验证其有效性,如果验证成功,则输出该完整签名。
Description
技术领域
本发明涉及一种主动安全的SM2数字签名两方生成方法,属于计算机软件技术领域。
背景技术
目前,基于公钥密码学的数字签名技术已经广泛应用到电子商务、身份认证等应用中,成为保证信息安全不可缺少的工具。数字签名的思想就是用户使用私钥进行签名,从而达到身份认证等目的,私钥的安全性是数字签名算法的基础。
门限数字签名是为了保障私钥安全性而提出的一种技术,其思想来源于Shamir的秘密分享技术,即将私钥进行拆分并放在不同的物理设备中,数量高于门限值的多个设备联合协作完成数字签名操作。在一个(t,n)的门限数字签名方案中,私钥分片分别由n个成员掌握,任意的t个成员通过合作可以完成数字签名,而少于t个成员则不可以。基于门限数字签名方案,我们可以保证即使攻击者已经攻击了t-1个设备,签名方案的私钥仍然是安全的。
SM2数字签名算法在工业界有着广泛的应用,并正式发布为ISO/IEC国际标准,门限SM2数字签名方案有着巨大的应用前景。针对SM2数字签名算法,现已有多个门限数字签名方案,但存在诸多缺点:一些两方数字签名协议只考虑了针对被动敌手的安全性,难以抵抗主动攻击下的签名私钥安全性和签名方案的存在不可伪造安全性;还有一些门限签名方案的交互复杂高,通信与计算代价大,不适应现实应用的需求。因此,高效而可证明安全的门限SM2签名方案值得期待。
发明内容
鉴于现有技术中存在的技术问题,本发明的目的在于提供一种SM2数字签名的两方生成方法,也就是一种(2,2)的门限签名方案,它可以让用户把私钥分别保存在客户端和服务器端,如果两方中的任意一方的设备遭到攻击,攻击者仍然不能伪造签名。
本发明的技术方案是这样实现的:
1.通信双方为参与方P1、参与方P2,P1是客户端,P2是服务器端。参与方P1生成部分私钥d1并存储,参与方P2生成部分私钥d2并存储,然后通过密钥交换的方式产生用户公钥Y。用户公钥Y不随部分私钥的更新而发生变化。
2.双方P1、P2通过重随机化的方式定期更新其部分私钥d1,d2,重随机化因子可以由一方产生并通过安全信道发送给另一方,也可以由两方密钥协商机制导出。
3.参与方P1随机产生临时私钥k1,计算临时公钥R1=k1·G,并将R1发给P2;G表示椭圆曲线E上n阶的基点;
4.参与方P2随机产生临时私钥k21,k22,计算临时公钥R21=k21·G,R22=k22·G,并将R21和R22发给P1;
5.参与方P1和参与方P2分别以密钥交换的方式计算出一个共同的证据值R,使得只有在掌握各自临时私钥的情况下才能计算出该证据值。可以通过一种涉及三个秘密值的密钥交换协议计算出共同的证据值R。
6.参与方P2根据临时私钥k21,k22和部分私钥d2,计算待签名消息m的部分签名s1和s2,并将s1,s2发给P1;
7.参与方P1根据部分签名s1,s2和部分私钥d1以及部分临时私钥k1,生成该消息m的完整签名并验证其有效性,如果验证成功,则输出该完整签名。
与现有技术相比,本发明的积极效果为:
1.密钥生成阶段和签名阶段均为两轮协议,交互少,通信代价小;
2.协议中没有使用同态加密等其他密码学原语,计算代价小;
3.本发明提供的机制在一般群模型下是可证明安全的,也就是说,如果敌手攻击了任意一方的设备,仍然不能伪造用户的数字签名。
4.本发明提供了一种部分私钥的主动更新方式,使得一方的旧部分私钥无法与另一方的新部分私钥组合以产生联合签名,从而增强两方签名的安全性。
附图说明
图1为本发明的两方密钥生成阶段的示意图。
图2为本发明的两方生成签名阶段的示意图。
具体实施方式
本发明的协议由两个参与方运行,参与方P1与参与方P2,以下简称P1与P2。在实际应用中,两方签名的联合生成协议是由P1发起,完整的签名也是由P1产生并输出;参与方P2计算部分签名以协助参与方P1生成完整签名。
两个参与方的公共输入是SM2数字签名算法的系统参数,包括椭圆曲线参数G和n,其中E为定义在有限域上的椭圆曲线,G表示椭圆曲线E上n阶的基点,椭圆曲线上的无穷远点为O,系统参数的具体选取应符合SM2数字签名算法标准规范。
本发明的具体实施方式如下:
1.参与方P1与P2按照如下方式联合生成SM2数字签名算法的密钥
步骤1:P1在[1,n-1]之间选择一个随机数d1,计算部分公钥Y1=d1·G。
步骤2:P2在[1,n-1]之间选择一个随机数d2,计算部分公钥Y2=d2·G。
步骤3:P1将Y1发给P2。
步骤4:P2检查如果Y1=O,则终止协议。
步骤5:P2计算Y=d2·Y1-G,如果Y=O,则P2返回到步骤2;否则,将Y作为用户公钥输出。
步骤6:P2将Y2发给P1。
步骤7:P1计算Y′=d1·Y2-G,如果Y′≠Y或者Y′=O,则P1终止协议;否则,P1储存Y作为SM2签名算法的公钥。
2.参与方P1与P2按照如下方式主动更新SM2数字签名算法的部分私钥。
步骤8:P1在[1,n-1]之间选择一个随机数δ,并通过一个安全信道发送给P2。双方也可以通过密钥协商的方式由导出一个共享的秘密值δ。
步骤9:P1计算d′1=d1·δmod n,并且存储d′1作为新的部分私钥。
步骤10:P2计算d′2=d2·δ-1mod n,并且存储d′2作为新的部分私钥。
3.对于给定的消息m,参与方P1与P2按照如下方式联合产生SM2数字签名
步骤11:根据系统参数、签名者P1,P2的标识和公钥Y,参与方P1,P2分别计算出签名用户的杂凑值Z=H(ENTL||ID||a||b||G||Y),其中ENTL是ID的长度,ID是参与方P1,P2的身份标识,(a,b)是椭圆曲线的参数,H是哈希函数。
步骤12:P1在[1,n-1]之间选择一个k1,并计算临时公钥R1=k1·G。
步骤13:P2在[1,n-1]之间选择随机数k21,k22,计算临时公钥R21=k21·G,R22=k22·G。
步骤14:P1将R1发给P2。
步骤16:P2检查如果R=O或者r=0,则重新回到步骤13。
步骤18:P2将R21,R22,s1,s2发给参与方P1。
步骤19:P1计算x=(R1||R21||R22),(x0,y0)=R=k1·(R21+x·R22)+R22,r=x0+h(Z||m)mod n。
步骤20:P1检查如果R=O或者r=0,则终止协议。
步骤22:根据SM2数字签名算法验证流程,P1验证σ是否是关于消息m和公钥Y的合法签名,如果验证通过,则输出σ;如果验证不通过,则终止协议。
以上通过形式表达和实施案例对本发明进行了详细的说明,但本发明的具体实现形式并不局限于此。本领域的一般技术人员,可以在不背离本发明所述方法的精神和原则的情况下对其进行各种显而易见的变化与修改。本发明的保护范围应以权利要求书所述为准。
Claims (10)
1.一种主动安全的SM2数字签名两方生成方法,其步骤包括:
1)参与方P1生成部分私钥d1并存储,参与方P2生成部分私钥d2并存储,然后参与方P1、参与方P2通过密钥交换的方式产生用户公钥Y;其中,参与方P1为客户端,参与方P2为服务器端;
2)参与方P1随机产生临时私钥k1,计算临时公钥R1=k1·G,并将R1发给参与方P2;G表示椭圆曲线E上n阶的基点;
3)参与方P2随机产生临时私钥k21、k22,计算临时公钥R21=k21·G,R22=k22·G,并将R21和R22发给参与方P1;
4)参与方P1和参与方P2分别根据各自的临时私钥计算出一个共同的证据值R;
5)参与方P2根据临时私钥k21,k22和部分私钥d2,计算待签名消息m的部分签名s1和s2,并将s1,s2发给参与方P1;
6)参与方P1根据部分签名s1,s2和部分私钥d1以及部分临时私钥k1,生成该消息m的完整签名并验证其有效性,如果验证成功,则输出该完整签名。
2.如权利要求1所述的方法,其特征在于,生成用户公钥Y的方法为:
11)参与方P1在[1,n-1]之间选择一个随机数d1,计算部分公钥Y1=d1·G;
12)参与方P2在[1,n-1]之间选择一个随机数d2,计算部分公钥Y2=d2·G;
13)参与方P1将Y1发给参与方P2;
14)参与方P2检查如果Y1=O,则终止;
15)参与方P2计算Y=d2·Y1-G,如果Y=O,则参与方P2返回到步骤12);否则,将Y作为用户公钥输出;
16)参与方P2将Y2发给参与方P1;
17)参与方P1计算Y′=d1·Y2-G,如果Y′≠Y或者Y′=O,则终止;否则,参与方P1储存Y作为SM2签名算法的用户公钥。
3.如权利要求1或2所述的方法,其特征在于,参与方P1、P2定期更新其部分私钥d1,d2。
4.如权利要求3所述的方法,其特征在于,参与方P1、P2通过重随机化的方式定期更新其部分私钥d1,d2,其方法为:
21)P1在[1,n-1]之间选择一个随机数δ,并通过安全信道发送给P2;或者参与方P1、P2通过密钥协商的方式导出一个共享的秘密值δ;
22)P1计算d′1=d1·δmod n,并且存储d′1作为新的部分私钥;
23)P2计算d′2=d2·δ-1mod n,并且存储d′2作为新的部分私钥。
5.如权利要求1所述的方法,其特征在于,参与方P1和参与方P2分别以密钥交换的方式计算出一个共同的证据值R。
6.如权利要求5所述的方法,其特征在于,计算所述证据值R的方法为:
31)参与方P1,P2分别计算出一相同的杂凑值Z;
32)参与方P1在[1,n-1]之间选择一个k1作为临时私钥,并计算临时公钥R1=k1·G;并
将R1发给参与方P2;
33)参与方P2在[1,n-1]之间选择随机数k21,k22作为临时私钥,计算临时公钥
R21=k21·G,R22=k22·G;
35)参与方P2检查R、r的值,如果R=O或者r=0,则返回步骤33);否则,将R21,R22发给P1;
36)参与方P1计算x=(R1||R21||R22),(x0,y0)=R=k1·(R21+x·R22)+R22,
r=x0+h(Z||m)mod n;
37)参与方P1检查R、r的值,如果R=O或者r=0,则终止。
9.如权利要求6所述的方法,其特征在于,根据SM2算法的系统参数、签名用户的标识和公钥Y,参与方P1,P2分别计算出一相同的杂凑值Z。
10.如权利要求9所述的方法,其特征在于,所述杂凑值Z=H(ENTL||ID||a||b||G||Y);其中,ID是签名用户的身份标识,ENTL是ID的长度,(a,b)是椭圆曲线参数,H是哈希函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910039524.4A CN111447065B (zh) | 2019-01-16 | 2019-01-16 | 一种主动安全的sm2数字签名两方生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910039524.4A CN111447065B (zh) | 2019-01-16 | 2019-01-16 | 一种主动安全的sm2数字签名两方生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111447065A true CN111447065A (zh) | 2020-07-24 |
CN111447065B CN111447065B (zh) | 2021-03-09 |
Family
ID=71652551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910039524.4A Active CN111447065B (zh) | 2019-01-16 | 2019-01-16 | 一种主动安全的sm2数字签名两方生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111447065B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112003693A (zh) * | 2020-07-31 | 2020-11-27 | 大陆云盾电子认证服务有限公司 | 一种基于sm2的多方参与数字签名方法及系统 |
CN112118113A (zh) * | 2020-09-18 | 2020-12-22 | 上海市数字证书认证中心有限公司 | 一种基于sm2算法的多方协同群签名方法及装置、系统、介质 |
CN112636918A (zh) * | 2020-12-08 | 2021-04-09 | 无锡艾立德智能科技有限公司 | 一种高效的基于sm2两方协同签名方法 |
CN114205081A (zh) * | 2021-12-03 | 2022-03-18 | 中国科学院大学 | 一种保护用户隐私的盲协同签名方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961336A (zh) * | 2017-04-18 | 2017-07-18 | 北京百旺信安科技有限公司 | 一种基于sm2算法的密钥分量托管方法和系统 |
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN109088726A (zh) * | 2018-07-19 | 2018-12-25 | 郑州信大捷安信息技术股份有限公司 | 基于sm2算法的通信双方协同签名及解密方法和系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889433A (zh) * | 2006-07-20 | 2007-01-03 | 上海交通大学 | 基于隐式公钥证书的双方认证密钥协商方法及系统 |
EP2120393A1 (en) * | 2008-05-14 | 2009-11-18 | Nederlandse Centrale Organisatie Voor Toegepast Natuurwetenschappelijk Onderzoek TNO | Shared secret verification method |
CN104243456B (zh) * | 2014-08-29 | 2017-11-03 | 中国科学院信息工程研究所 | 适用于云计算的基于sm2算法的签名及解密方法和系统 |
CN107248909B (zh) * | 2017-03-16 | 2020-07-03 | 北京百旺信安科技有限公司 | 一种基于sm2算法的无证书安全签名方法 |
US10530585B2 (en) * | 2017-06-07 | 2020-01-07 | Bar-Ilan University | Digital signing by utilizing multiple distinct signing keys, distributed between two parties |
CN107196763B (zh) * | 2017-07-06 | 2020-02-18 | 数安时代科技股份有限公司 | Sm2算法协同签名及解密方法、装置与系统 |
CN107483212B (zh) * | 2017-08-15 | 2021-04-30 | 武汉信安珞珈科技有限公司 | 一种双方协作生成数字签名的方法 |
CN107682151B (zh) * | 2017-10-30 | 2021-02-02 | 武汉大学 | 一种gost数字签名生成方法及系统 |
CN107733648B (zh) * | 2017-10-30 | 2020-08-07 | 武汉大学 | 一种基于身份的rsa数字签名生成方法及系统 |
CN107707358B (zh) * | 2017-10-30 | 2019-12-24 | 武汉大学 | 一种ec-kcdsa数字签名生成方法及系统 |
-
2019
- 2019-01-16 CN CN201910039524.4A patent/CN111447065B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN106961336A (zh) * | 2017-04-18 | 2017-07-18 | 北京百旺信安科技有限公司 | 一种基于sm2算法的密钥分量托管方法和系统 |
CN109088726A (zh) * | 2018-07-19 | 2018-12-25 | 郑州信大捷安信息技术股份有限公司 | 基于sm2算法的通信双方协同签名及解密方法和系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112003693A (zh) * | 2020-07-31 | 2020-11-27 | 大陆云盾电子认证服务有限公司 | 一种基于sm2的多方参与数字签名方法及系统 |
CN112118113A (zh) * | 2020-09-18 | 2020-12-22 | 上海市数字证书认证中心有限公司 | 一种基于sm2算法的多方协同群签名方法及装置、系统、介质 |
CN112118113B (zh) * | 2020-09-18 | 2022-07-15 | 上海市数字证书认证中心有限公司 | 一种基于sm2算法的多方协同群签名方法及装置、系统、介质 |
CN112636918A (zh) * | 2020-12-08 | 2021-04-09 | 无锡艾立德智能科技有限公司 | 一种高效的基于sm2两方协同签名方法 |
CN114205081A (zh) * | 2021-12-03 | 2022-03-18 | 中国科学院大学 | 一种保护用户隐私的盲协同签名方法 |
CN114205081B (zh) * | 2021-12-03 | 2023-12-19 | 中国科学院大学 | 一种保护用户隐私的盲协同签名方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111447065B (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107634836B (zh) | 一种sm2数字签名生成方法及系统 | |
CN111447065B (zh) | 一种主动安全的sm2数字签名两方生成方法 | |
CN107612934A (zh) | 一种基于密钥分割的区块链移动端计算系统和方法 | |
CN107248909A (zh) | 一种基于sm2算法的无证书安全签名方法 | |
CN114157427A (zh) | 基于sm2数字签名的门限签名方法 | |
CN110278088A (zh) | 一种sm2协同签名方法 | |
CN103444128B (zh) | 密钥pv签名 | |
CN108234129A (zh) | 一种基于格密码的双向认证密钥协商方法与系统 | |
CN112436938B (zh) | 数字签名的生成方法、装置和服务器 | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
CN106921491B (zh) | 一种安全高效的外包计算实现方法和系统 | |
US20150006900A1 (en) | Signature protocol | |
CN110943845A (zh) | 一种轻量级两方协同产生sm9签名的方法及介质 | |
WO2022116176A1 (zh) | 数字签名的生成方法、装置和服务器 | |
Shankar et al. | Improved Multisignature Scheme for Authenticity of Digital Document in Digital Forensics Using Edward-Curve Digital Signature Algorithm | |
CN111191262B (zh) | 一种基于两方签名的区块链钱包客户端私钥保护方法 | |
CN111245615B (zh) | 一种基于身份的数字签名密码逆向防火墙方法 | |
CN116827559A (zh) | 一种基于bls的高效可验证时间签名方法及系统 | |
WO2021115591A1 (en) | Devices and sharing methods for private set intersection | |
CN115174056A (zh) | 一种基于sm9签名的变色龙签名生成方法及装置 | |
CN115174037A (zh) | 一种基于sm9签名的变色龙哈希函数的构造方法及装置 | |
Zhang et al. | Provably secure and subliminal-free variant of schnorr signature | |
CN115473635B (zh) | 一种抗恶意敌手的sm2两方适配器签名生成方法及装置 | |
CN109150545B (zh) | 基于ECC的(m,N)门限群签名方法 | |
Kar | Non-interactive deniable authentication protocol using generalized ecdsa signature scheme |
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 |