CN115941205A - 一种基于sm2的多重签名方法 - Google Patents
一种基于sm2的多重签名方法 Download PDFInfo
- Publication number
- CN115941205A CN115941205A CN202211578120.0A CN202211578120A CN115941205A CN 115941205 A CN115941205 A CN 115941205A CN 202211578120 A CN202211578120 A CN 202211578120A CN 115941205 A CN115941205 A CN 115941205A
- Authority
- CN
- China
- Prior art keywords
- signature
- equal
- computing
- user
- steps
- 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
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于SM2的多重签名方法,该方法包括:全局设置、初始化、签名和验证步骤。本发明针对目前缺乏SM2多重签名的现状,提出了一种SM2多重签名方案,在不需要提前协商签名临时公私钥的基础上,实现多重签名功能,不仅要求产生签名时集合中的用户必须同时参与,并且降低多重签名的交互轮次,将最终的签名长度压缩至总签名长度的一半,显著提高了SM2多重签名的通信效率与存储效率。本发明满足安全性、高效性等特点。
Description
技术领域
本发明涉及信息安全技术,尤其涉及一种基于SM2的多重签名方法。
背景技术
数字签名是非对称密钥加密技术与数字摘要技术的应用,主要包括发送方的消息签名和接收方的消息签名认证。作为一种实现签名认证的重要技术,数字签名能够提供身份验证、数据完整性、不可抵赖等安全服务。
多重签名方案使一组签名者能够对一个公共消息生成一个紧凑的联合签名,具有许多潜在的用途。例如在去中心化的货币交易中,当使用多重签名地址时,即该地址与多个私钥相关,需要多方同时对某个交易进行签名,才能够动用多重签名地址所对应的账户资产。另外,当一笔交易可能具有多个交易输入时,需要每个交易输入对应的用户对这一笔交易进行联合支付,此时也需要使用多重签名。因此多重签名成为了研究热点。
SM2椭圆曲线公钥密码算法包括数字签名算法、密钥交换协议以及公钥加密算法,其安全性基于求解有限域上椭圆曲线离散对数问题的困难性。SM2算法在包括金融领域在内的商用密码体系中发挥着重要的安全保障作用。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于SM2的多重签名方法。
本发明解决其技术问题所采用的技术方案是:
一种基于SM2的多重签名方法,包括如下实体:签名者、验证者、生成和分发***参数的机构即可信机构TA,所述签名者为t个用户组成的集合S,假设第i个用户是Ui,其中t≥2,1≤i≤t,具体包括下列步骤:
(1):全局设置
TA根据初始的安全参数λ运行算法生成***参数Δ;
(2):初始化
每个用户生成自己的私钥di、公钥Qi、杂凑值Zi;
(3):签名
签名者对待签名消息M生成SM2多重签名(r,s1,...,st);
(4):验证
验证者验证本次SM2多重签名的有效性;
按上述方案,所述步骤(3)中,各参与方之间的通信使用零知识证明来证明发送的数据是来自发送方。
本发明实现了一种基于SM2的多重签名功能,不仅要求产生签名时,集合中的用户必须同时参与,同时保证了签名的安全性;并且本发明产生的多重签名长度大致为直接串联所有签名所形成的总签名长度的一半,在一定程度上,减少了总签名的存储开销,保证了签名的紧凑性、高效性。
附图说明
图1为本发明的签名流程图;
图2为本发明的验证流程图。
具体实施方式
以下结合附图,对本发明进行详细描述。
参阅图1,本发明的一种基于SM2的多重签名方法,包括如下实体:签名者、验证者、生成和分发***参数的机构即可信机构TA,所述签名者为t个用户组成的集合S,假设第i个用户是Ui,其中t≥2,1≤i≤t,具体包括下列步骤:
(1):全局设置
输入一个安全参数λ,TA根据λ执行以下步骤:
1)选取有限域其中q是一个奇素数或者是2的方幂;当q是奇素数p时,要求p>2191,椭圆曲线方程为:y2=x3+ax+b,其中且4a3+27b2modp≠0;当q是2的方幂2m时,要求m>192且为素数,椭圆曲线方程为:y2+xy=x3+ax2+b,其中且b≠0;椭圆曲线群是所述椭圆曲线上的所有整数点,包括无穷远点O,组成的加法有限群,的一个基点为G,G的坐标为(xG,yG),且G的阶为n;
3)选择消息摘要长度为v比特的密码杂凑算法Hv:{0,1}*→{0,1}v;
5)TA公开***参数:Δ=(G,n,q,a,b,xG,yG,H,Hv,f);
(2):初始化
用户Ui执行以下步骤:
1)任取一个整数di作为私钥,且1≤di≤n-2;
2)根据私钥计算公钥Qi=diG,其中Qi的坐标为(xi,yi);
3)计算并广播杂凑值Zi=Hv(ENTLi||IDi||a||b||xG||yG||xi||yi),其中IDi是每个签名者具有的长度为entleni比特的可辨别标识,ENTLi是由整数entleni转换而成的两个字节;
(3):签名
第一步:用户Ui执行以下步骤:
3)任取整数ki,且1≤ki≤n-1;
4)计算kiG
5)广播kiG或者广播kiG的承诺Ci;
6)如果第一步的5)广播的是kiG的承诺Ci,那么当用户Ui收到其他所有用户的承诺Cj后,j≠i,且1≤j≤t,广播kiG;如果第一步的5)广播的是kiG,则直接执行第二步;
第二步:用户Ui收到其他所有用户的kjG后,j≠i,且1≤j≤t,执行以下步骤:
1)如果第一步的5)广播的是kiG的承诺Ci,则按照该承诺方法重新计算其他用户的kjG的承诺Cj',并验证Cj=Cj'是否成立,若不成立则返回第一步的3);如果第一步的5)广播的是kiG,则直接执行第二步2);
3)计算多重签名的第一部分r=(e+x)modn,若r=0则返回第一步的3);
4)计算并广播si=((1+di)-1(ki-rdi))modn,若si=0则返回第一步的3);
5)最终签名为σ=(r,s1,...,st);
(4):验证
参阅图2,接收的签名为:σ'=(r′,s′1,...,s′t),验证者执行以下步骤:
1)检验r'∈[1,n-1]是否成立,成立则继续验证,不成立则为无效签名;
2)检验si'∈[1,n-1],1≤i≤t,是否成立,成立则继续验证,不成立则为无效签名;
6)计算R=e'+x'modn;
7)检验R=r'是否成立,成立则为有效多重签名,不成立则为无效签名。
Claims (2)
1.一种基于SM2的多重签名方法,包括如下实体:签名者、验证者、生成和分发***参数的机构即可信机构TA,所述签名者为t个用户组成的集合S,假设第i个用户是Ui,其中t≥2,1≤i≤t,其特征在于,具体步骤如下:
步骤1:全局设置
TA根据初始的安全参数λ运行算法生成***参数Δ;
步骤2:初始化
每个用户生成自己的私钥di、公钥Qi及杂凑值Zi;
步骤3:签名
签名者对待签名消息M生成SM2多重签名(r,s1,...,st);
步骤4:验证
验证者验证本次SM2多重签名的有效性;其中:
所述步骤1具体包括:
输入一个安全参数λ,TA根据λ执行以下步骤:
1)选取有限域其中q是一个奇素数或者是2的方幂;当q是奇素数p时,要求p>2191,椭圆曲线方程为:y2=x3+ax+b,其中且4a3+27b2modp≠0;当q是2的方幂2m时,要求m>192且为素数,椭圆曲线方程为:y2+xy=x3+ax2+b,其中且b≠0;椭圆曲线群是所述椭圆曲线上的所有整数点,包括无穷远点O,组成的加法有限群,的一个基点为G,G的坐标为(xG,yG),且G的阶为n;
3)选择消息摘要长度为v比特的密码杂凑算法Hv:{0,1}*→{0,1}v;
5)TA公开***参数:Δ=(G,n,q,a,b,xG,yG,H,Hv,f);
所述步骤2具体包括:
用户Ui执行以下步骤:
1)任取一个整数di作为私钥,且1≤di≤n-2;
2)根据私钥计算公钥Qi=diG,其中Qi的坐标为(xi,yi);
3)计算并广播杂凑值Zi=Hv(ENTLi||IDi||a||b||xG||yG||xi||yi),其中IDi是每个签名者具有的长度为entleni比特的可辨别标识,ENTLi是由整数entleni转换而成的两个字节;
所述步骤3具体包括:
第一步:用户Ui执行以下步骤:
3)任取整数ki,且1≤ki≤n-1;
4)计算kiG
5)广播kiG或者广播kiG的承诺Ci;
6)如果第一步的5)广播的是kiG的承诺Ci,那么当用户Ui收到其他所有用户的承诺Cj后,j≠i,且1≤j≤t,广播kiG;如果第一步的5)广播的是kiG,则直接执行第二步;
第二步:用户Ui收到其他所有用户的kjG后,j≠i,且1≤j≤t,执行以下步骤:
1)如果第一步的5)广播的是kiG的承诺Ci,则按照该承诺方法重新计算其他用户的kjG的承诺Cj',并验证Cj=Cj'是否成立,若不成立则返回第一步的3);如果第一步的5)广播的是kiG,则直接执行第二步2);
3)计算多重签名的第一部分r=(e+x)modn,若r=0则返回第一步的3);
4)计算并广播si=((1+di)-1(ki-rdi))modn,若si=0则返回第一步的3);
5)最终签名为σ=(r,s1,...,st);
所述步骤4具体包括:
接收的签名为:σ'=(r′,s′1,...,s′t),验证者执行以下步骤:
1)检验r'∈[1,n-1]是否成立,成立则继续验证,不成立则为无效签名;
2)检验si'∈[1,n-1],1≤i≤t,是否成立,成立则继续验证,不成立则为无效签名;
6)计算R=e'+x'modn;
7)检验R=r'是否成立,成立则为有效多重签名,不成立则为无效签名。
2.根据权利要求1所述的基于SM2的多重签名方法,其特征在于,所述步骤3中,各用户的通信使用零知识证明来证明发送的数据是来自发送方。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211578120.0A CN115941205A (zh) | 2022-12-06 | 2022-12-06 | 一种基于sm2的多重签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211578120.0A CN115941205A (zh) | 2022-12-06 | 2022-12-06 | 一种基于sm2的多重签名方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115941205A true CN115941205A (zh) | 2023-04-07 |
Family
ID=86697331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211578120.0A Pending CN115941205A (zh) | 2022-12-06 | 2022-12-06 | 一种基于sm2的多重签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115941205A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117499039A (zh) * | 2023-10-09 | 2024-02-02 | 贵州大学 | 基于椭圆曲线公钥密码算法的区块链签名方法 |
-
2022
- 2022-12-06 CN CN202211578120.0A patent/CN115941205A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117499039A (zh) * | 2023-10-09 | 2024-02-02 | 贵州大学 | 基于椭圆曲线公钥密码算法的区块链签名方法 |
CN117499039B (zh) * | 2023-10-09 | 2024-03-26 | 贵州大学 | 基于椭圆曲线公钥密码算法的区块链签名方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108551392B (zh) | 一种基于sm9数字签名的盲签名生成方法及*** | |
CN108989047B (zh) | 一种基于sm2算法的通信双方协同签名方法与*** | |
CN110247757B (zh) | 基于国密算法的区块链处理方法、装置及*** | |
CN108667625B (zh) | 协同sm2的数字签名方法 | |
US20070043946A1 (en) | Key confirmed authenticated key exchange with derived ephemeral keys | |
US20110010540A1 (en) | Method for Providing Information Security for Wireless Transmissions | |
CN107911217B (zh) | 基于ecdsa算法协同生成签名的方法、装置和数据处理*** | |
JP2002099211A (ja) | 公開鍵証明書発行要求処理システムおよび公開鍵証明書発行要求処理方法 | |
CN107171788B (zh) | 一种基于身份且签名长度恒定的在线离线聚合签名方法 | |
JP2002534701A (ja) | 寄託されない署名専用キーを用いた自動回復可能な自動可能暗号システム | |
US9088419B2 (en) | Keyed PV signatures | |
CN113676333A (zh) | 一种两方协作生成sm2盲签名方法 | |
CN108449326B (zh) | 一种异构可否认的认证方法和*** | |
WO2012156254A1 (en) | A method for performing a group digital signature | |
Yang et al. | Digital signature based on ISRSAC | |
CN115442057A (zh) | 一种具有强不可链接性的可随机化盲签名方法及*** | |
CN118160275A (zh) | 阈值签名方案 | |
CN115941205A (zh) | 一种基于sm2的多重签名方法 | |
Yang et al. | A provably secure and efficient strong designated verifier signature scheme | |
NL1043779B1 (en) | Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge | |
CN116961917A (zh) | 一种基于ecdsa的多方协同门限签名方法、装置和*** | |
Seo et al. | A mediated proxy signature scheme with fast revocation for electronic transactions | |
CN114978488A (zh) | 一种基于sm2算法的协同签名方法及*** | |
US20020044648A1 (en) | Methods and systems for efficient chained certification | |
CN113872767A (zh) | 一种基于ecdsa算法的两方协同签名方法和装置 |
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 |