【技术实现步骤摘要】
多方协同的SM2签名、解密方法及其系统
本说明书实施例涉及信息
,特别涉及一种多方协同的SM2签名方法、公钥生成方法及系统。
技术介绍
私钥的保护和使用是账户安全的重要问题之一。例如,在比特币或其他密码货币中,数字签名算法被广泛用于生成交易,即:交易发起方用私钥对一笔交易进行签名运算以生成数字签名,再将该笔交易和数字签名一起发送给验证节点。若验证节点使用交易发起方的公钥成功验签(即,验证数字签名得到的交易与接收到的交易一致),则说明该笔交易合法;否则,则说明该笔交易不合法。可以看出,一方面数字签名可用于证明交易的发起方即是账户私钥的拥有者,另一方面数字签名还可以保证交易在传输过程中没有被修改过,即实现了密码学中身份认证和数据完整性两项功能。有鉴于此,希望提供一种安全有效的私钥保护和使用方法。
技术实现思路
本说明书实施例之一提供一种多方协同的SM2签名方法,其中,所述方法由t个参与方中的某一参与方的至少一个处理器执行,t为大于1的整数,所述方法包括:获取私钥分片;基于预设算法计算待签名消息的 ...
【技术保护点】
1.一种多方协同的SM2签名方法,其中,所述方法由t个参与方中的某一参与方的至少一个处理器执行,t为大于1的整数,所述方法包括:/n获取私钥分片;/n基于预设算法计算待签名消息的映射值;/n生成第一随机数分片;/n将所述第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,并将第一运算分片发送给其他参与方;/n累加自身的第一运算分片以及来自其他t-1个参与方的第一运算分片,得到第一运算值;/n基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分;/n生成第二随机数分片;/n至少根据所述私钥分片、第一随机数分片、第 ...
【技术特征摘要】
1.一种多方协同的SM2签名方法,其中,所述方法由t个参与方中的某一参与方的至少一个处理器执行,t为大于1的整数,所述方法包括:
获取私钥分片;
基于预设算法计算待签名消息的映射值;
生成第一随机数分片;
将所述第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,并将第一运算分片发送给其他参与方;
累加自身的第一运算分片以及来自其他t-1个参与方的第一运算分片,得到第一运算值;
基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分;
生成第二随机数分片;
至少根据所述私钥分片、第一随机数分片、第二随机数分片和SM2签名的第一部分,计算SM2签名的第二部分的分片;
将所述SM2签名的第二部分的分片发送给其他参与方;
累加自身的SM2签名的第二部分的分片以及来自其他t-1个参与方的SM2签名的第二部分的分片,得到SM2签名的第二部分。
2.根据权利要求1所述的方法,其中,所述私钥分片为加法分片。
3.根据权利要求2所述的方法,其中,所述参与方来自于N个协同方,N为大于t的整数;每个协同方分别保存有门限分片;
所述获取私钥分片,还包括:
获取门限分片;
基于所述门限分片生成所述加法分片。
4.根据权利要求3所述的方法,其中,所述N个协同方分别具有公开且互不相同的标识数值;
所述基于所述门限分片生成所述加法分片,还包括:
基于自身的标识数值与其他t-1个参与方的标识数值计算拉格朗日系数;
将拉格朗日系数与所述门限分片的运算结果确定为所述加法分片。
5.根据权利要求4所述的方法,其中,所述门限分片通过以下步骤获得:
随机生成t-1次第一多项式;
分别将各协同方的标识数值带入所述第一多项式,计算得到N个第一多项式分片;
将其中N-1个第一多项式分片对应发送给其他N-1个协同方;
累加自身标识数值对应的第一多项式分片以及来自其他N-1个协同方的第一多项式分片,得到所述门限分片。
6.根据权利要求1所述的方法,其中,所述第一参数包括基点;所述将所述第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,包括:
基于所述基点和所述第一随机数分片计算倍点,将计算出的倍点确定为所述第一运算分片。
7.根据权利要求6所述的方法,其中,所述第二参数包括循环群的阶;所述基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分,包括:
计算所述映射值与第一运算值的横坐标的和值;
将所述和值循环群的阶求模,得到SM2签名的第一部分。
8.根据权利要求1所述的方法,其中,所述至少根据所述私钥分片、所述第一随机数分片、所述第二随机数分片和所述SM2签名的第一部分,计算SM2签名的第二部分的分片,包括:
基于所述私钥分片生成第一输入分片;
根据所述第一输入分片和第二随机数分片,利用多方乘法子协议计算第一输出分片,使得第一输出分片能够满足:各参与方的第一输出分片之和等于各参与方第一输入分片之和与各参与方第二随机数分片之和的乘积;
将所述第一输出分片发送给其他参与方;
累加自身的第一输出分片以及来自其他t-1个参与方的第一输出分片,得到第一输出;
基于所述第一输出和第二随机数分片,得到第二输入分片;
基于所述第一随机数分片、SM2签名的第一部分以及私钥分片中的一个或多个,得到第三输入分片;
根据所述第二输入分片和所述第三输入分片,利用多方乘法子协议计算第二输出分片,使得所述第二输出分片满足:各参与方的第二输出分片之和等于各参与方第二输入分片之和与各参与方第三输入分片之和的乘积;
基于所述第二输出分片获得SM2签名的第二部分的分片。
9.根据权利要求8所述的方法,其中,所述基于所述私钥分片生成第一输入分片包括:
将所述参与方的数量相对所述第二参数求模;
计算所述私钥分片与求模结果的逆的和,得到所述第一输入分片。
10.根据权利要求8所述的方法,其中,所述基于第一输出和所述第二随机数分片,得到第二输入分片,包括:
计算第一输出相对循环群的阶的求模结果的逆与第二随机数分片的乘积,得到第二输入分片。
11.根据权利要求8所述的方法,其中,所述基于所述第一随机数分片、SM2签名的第一部分以及私钥分片中的一个或多个,得到第三输入分片,包括:
计算SM2签名的第一部分与私钥分片的乘积;
计算第一随机数分片与所述乘积的差,得到第三输入分片;
且,所述基于所述第二输出分片获得SM2签名的第二部分的分片包括:
将所述第二输出分片确定为SM2签名的第二部分的分片。
12.根据权利要求8所述的方法,其中,所述基于所述第一随机数分片、SM2签名的第一部分以及私钥分片中的一个或多个,得到第三输入分片,包括:
将所述第一随机数分片确定为所述第三输入分片;
且,所述基于所述第二输出分片获得SM2签名的第二部分的分片包括:
计算第二输入分片与SM2签名的第一部分的第一乘积;
计算第二输出分片与所述第一乘积的和值;
计算SM2签名的第一部分与参与方的数量对循环群的阶的求模结果的逆的第二乘积;
计算所述和值与所述第二乘积的差值,得到所述SM2签名的第二部分的分片。
13.根据权利要求8所述的方法,其中,所述基于所述第一随机数分片、SM2签名的第一部分以及私钥分片中的一个或多个,得到第三输入分片,包括:
计算SM2签名的第一部分与参与方的数量对循环群的阶的求模结果的逆的乘积;
计算第一随机数分片与所述乘积的和,得到第三输入分片;
且,所述基于所述第二输出分片获得SM2签名的第二部分的分片包括:
计算第二输出分片与所述乘积的差,得到SM2签名的第二部分的分片。
14.根据权利要求1所述的方法,其中,还包括:
利用公钥对SM2签名进行验证;
所述公钥基于各参与方的私钥分享分片获得,其中,各参与方的私钥分享分片为各参与方基于其私钥分片计算得到;所述SM2签名包括所述第一部分及所述第二部分。
15.根据权利要求1~14任一项所述的方法,其中,还包括:
基于目标数据生成证明;
基于所述目标数据以及其证明生成承诺;
将所述承诺发送给其他参与方;
待各参与方发送完各自的承诺后,将所述目标数据及其证明发送给其他参与方;
基于来自其他参与方的承诺验证来自其他参与方的目标数据及其证明;
其中,所述目标数据基于所述私钥分片以及SM2公共系统参数中的第一参数生成,或者基于第二随机数分片、SM2公共系统参数中的第一参数以及公钥生成。
16.一种多方协同的SM2签名系统,其中,所述系统对应于t个参与方中的某一参与方,t为大于1的整数,所述系统包括:
私钥分片获取模块,用于获取私钥分片;
映射值计算模块,用于基于预设算法计算待签名消息的映射值;
第一随机数生成模块,用于生成第一随机数分片;
第一运算分片发送模块,用于将所述第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,并将第一运算分片发送给其他参与方;
第一运算值计算模块,用于累加自身的第一运算分片以及来自其他t-1个参与方的第一运算分片,得到第一运算值;
签名第一部分计算模块,用于基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分;
第二随机数生成模块,用于生成第二随机数分片;
签名第二部分分片计算模块,用于至少根据所述私钥分片、第一随机数分片、第二随机数分片和SM2签名的第一部分,计算SM2签名的第二部分的分片;
签名第二部分分片发送模块,用于将所述SM2签名的第二部分的分片发送给其他参与方;
签名第二部分计算模块,用于累加自身的SM2签名的第二部分的分片以及来自其他t-1个参与方的SM2签名的第二...
【专利技术属性】
技术研发人员:黄章杰,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。