一种协同签名方法、系统、设备及计算机可读存储介质技术方案

技术编号:35861185 阅读:25 留言:0更新日期:2022-12-07 10:50
本申请公开了一种协同签名方法、系统、设备及计算机可读存储介质,应用于第一签名方,生成第一随机数,并基于第一随机数生成第一公钥分片;获取第二签名方生成的第二公钥分片;传输第一公钥分片至第二签名方获取待签名的目标消息,并计算目标消息的哈希值;生成第三随机数,并基于第一公钥分片对第三随机数进行运算,生成第一数值;获取第二签名方生成的第二数值;基于哈希值、第一数值及第二数值生成第一签名结果,并传输第一数值、第一签名结果至第二签名方,以使第二签名方基于第一签名结果生成目标消息的目标签名结果。本申请在生成公钥和后续签名过程中,不出现完整私钥,增强了私钥的安全性,进而增强了协同签名方法的安全性。全性。全性。

【技术实现步骤摘要】
一种协同签名方法、系统、设备及计算机可读存储介质


[0001]本申请涉及信息安全
,更具体地说,涉及一种协同签名方法、系统、设备及计算机可读存储介质。

技术介绍

[0002]SM2是中国国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。电子合同是SM2签名算法的一个典型的应用场景,涌现了一批快速成长的电子合同服务商。签名主体使用数字签名算法在网络上对电子文本签约,不受时空的限制,令存储查询更加便捷,极大地提高了工作效率,节省了签约成本。在这种场景下,掌握签名私钥等于掌握了用户的身份。因此,私钥的安全性十分重要。而单个用户的防护能力非常有限,操作系统漏洞,木马病毒,恶意软件等安全隐患非常容易导致私钥泄露。为了保证私钥的安全,某些电子合同服务商将用户的私钥托管在其云端,但是这种托管意味着用户必须信任服务商不会滥用其私钥。然而,这种行为不仅不安全,也不符合《电子签名法》等相关法律规定,甚至会影响电子合同的合法性。
[0003]综上所述,如何提高协同签名方法的安全性是目前本领域技术人员亟待解决的问题。

技术实现思路

[0004]本申请的目的是提供一种协同签名方法,其能在一定程度上解决如何提高协同签名方法的安全性的技术问题。本申请还提供了一种协同签名系统、设备及计算机可读存储介质。
[0005]为了实现上述目的,本申请提供如下技术方案:
[0006]一种协同签名方法,应用于第一签名方,包括:
[0007]生成第一随机数,并基于所述第一随机数生成自身的第一公钥分片;
[0008]获取第二签名方基于第二随机数生成的第二公钥分片;
[0009]传输所述第一公钥分片至所述第二签名方,以使所述第二签名方基于所述第一公钥分片及所述第二公钥分片生成目标公钥;
[0010]获取待签名的目标消息,并计算所述目标消息的哈希值;
[0011]生成第三随机数,并基于所述第一公钥分片对所述第三随机数进行运算,生成第一数值;
[0012]获取所述第二签名方基于所述第二公钥分片或所述目标公钥对第四随机数进行运算后生成的第二数值;
[0013]基于所述哈希值、所述第一数值及所述第二数值生成第一签名结果,并传输所述第一数值、所述第一签名结果至所述第二签名方,以使所述第二签名方基于所述第一签名结果生成所述目标消息的目标签名结果。
[0014]优选的,所述基于所述第一随机数生成自身的第一公钥分片,包括:
[0015]通过第一运算公式,基于所述第一随机数生成自身的所述第一公钥分片;
[0016]所述第一运算公式包括:
[0017]Q1=d1·
G;
[0018]其中,Q1表示所述第一公钥分片;d1表示所述第一随机数;G表示SM2算法的生成元;
[0019]所述传输所述第一公钥分片至所述第二签名方之后,还包括:
[0020]通过第二运算公式,基于所述第一随机数及所述第二公钥分片生成所述目标公钥;
[0021]所述第二运算公式包括:
[0022]Q=d1·
Q2‑
G;
[0023]其中,Q表示所述目标公钥;Q2表示所述第二公钥分片,且Q2=d2·
G,d2表示所述第二随机数;
[0024]其中,所述计算所述目标消息的哈希值,包括:
[0025]通过第三运算公式,计算所述目标消息的所述哈希值;
[0026]所述第三运算公式包括:
[0027]e=hash(Z||M);
[0028]其中,e表示所述哈希值;hash表示哈希运算;Z表示用户身份标识符、SM2椭圆曲线参数和公钥坐标的哈希值;M表示所述目标消息;
[0029]所述基于所述第一公钥分片对所述第三随机数进行运算,生成第一数值,包括:
[0030]通过第四运算公式,基于所述第一公钥分片对所述第三随机数进行运算,生成所述第一数值;
[0031]所述第四运算公式包括:
[0032]R1=k1·
Q1;
[0033]其中,R1表示所述第一数值;k1表示所述第三随机数;
[0034]所述基于所述哈希值、所述第一数值及所述第二数值生成第一签名结果,包括:
[0035]生成R=R1+R2=(r
x
,r
y
),r=r
x
+e mod q;
[0036]若r≠0且R+r
·
G≠0,则通过第一生成公式,基于所述哈希值、所述第一数值及所述第二数值生成所述第一签名结果;否则,请求重新开始签名协议;
[0037]所述第一生成公式包括:
[0038]s1=r
·
d1‑1+k
1 mod q;
[0039]其中,s1表示所述第一签名结果;q表示所述SM2算法中循环群的阶;R2表示所述第二数值,R2=k2·
Q1或R2=k2·
Q。
[0040]优选的,所述获取第二签名方基于第二随机数生成的第二公钥分片,包括:
[0041]获取所述第二签名方使用经Fiat

shamir转换后的schnorr算法计算的二元关系(Q2,d2)的离散对数非交互式零知识证明π2;
[0042]验证π2是否是正确的证明;
[0043]若π2是正确的证明,则获取所述第二公钥分片;
[0044]若π2不是正确的证明,则中止协议。
[0045]优选的,所述传输所述第一公钥分片至所述第二签名方,包括:
[0046]生成第五随机数,并基于所述第五随机数、所述第一公钥分片计算得到第一杂凑
值t1=H(Q1;σ1),其中,H表示杂凑运算;
[0047]使用经Fiat

shamir转换后的所述schnorr算法计算二元关系(Q1,d1)的离散对数非交互式零知识证明π1;
[0048]发送t1及π1至所述第二签名方,以使所述第二签名方在验证t1=H(Q1;σ1)且π1是正确的证明后获取所述第一公钥分片。
[0049]优选的,所述获取所述第二签名方基于所述第二公钥分片或所述目标公钥对第四随机数进行运算后生成的第二数值,包括:
[0050]获取所述第二签名方计算得到的二元关系(R2,k2)的离散对数非交互式零知识证明π3;
[0051]验证π3是否是正确的证明;
[0052]若π3是正确的证明,则获取所述第二数值;
[0053]若π3不是正确的证明,则中止协议。
[0054]优选的,所述传输所述第一数值、所述第一签名结果至所述第二签名方,包括:
[0055]生成第六随机数,并基于所述第六随机数、所述第一数值计算得到第二杂凑值t1'=H(R1;σ1');
[0056]计算二元关系(R1,k1)的离散对数非交互式零知识证明π4;
[0057]向所述第二签名方发送t1'及本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种协同签名方法,其特征在于,应用于第一签名方,包括:生成第一随机数,并基于所述第一随机数生成自身的第一公钥分片;获取第二签名方基于第二随机数生成的第二公钥分片;传输所述第一公钥分片至所述第二签名方,以使所述第二签名方基于所述第一公钥分片及所述第二公钥分片生成目标公钥;获取待签名的目标消息,并计算所述目标消息的哈希值;生成第三随机数,并基于所述第一公钥分片对所述第三随机数进行运算,生成第一数值;获取所述第二签名方基于所述第二公钥分片或所述目标公钥对第四随机数进行运算后生成的第二数值;基于所述哈希值、所述第一数值及所述第二数值生成第一签名结果,并传输所述第一数值、所述第一签名结果至所述第二签名方,以使所述第二签名方基于所述第一签名结果生成所述目标消息的目标签名结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一随机数生成自身的第一公钥分片,包括:通过第一运算公式,基于所述第一随机数生成自身的所述第一公钥分片;所述第一运算公式包括:Q1=d1·
G;其中,Q1表示所述第一公钥分片;d1表示所述第一随机数;G表示SM2算法的生成元;所述传输所述第一公钥分片至所述第二签名方之后,还包括:通过第二运算公式,基于所述第一随机数及所述第二公钥分片生成所述目标公钥;所述第二运算公式包括:Q=d1·
Q2‑
G;其中,Q表示所述目标公钥;Q2表示所述第二公钥分片,且Q2=d2·
G,d2表示所述第二随机数;其中,所述计算所述目标消息的哈希值,包括:通过第三运算公式,计算所述目标消息的所述哈希值;所述第三运算公式包括:e=hash(Z||M);其中,e表示所述哈希值;hash表示哈希运算;Z表示用户身份标识符、SM2椭圆曲线参数和公钥坐标的哈希值;M表示所述目标消息;所述基于所述第一公钥分片对所述第三随机数进行运算,生成第一数值,包括:通过第四运算公式,基于所述第一公钥分片对所述第三随机数进行运算,生成所述第一数值;所述第四运算公式包括:R1=k1·
Q1;其中,R1表示所述第一数值;k1表示所述第三随机数;所述基于所述哈希值、所述第一数值及所述第二数值生成第一签名结果,包括:生成R=R1+R2=(r
x
,r
y
),r=r
x
+e mod q;
若r≠0且R+r
·
G≠0,则通过第一生成公式,基于所述哈希值、所述第一数值及所述第二数值生成所述第一签名结果;否则,请求重新开始签名协议;所述第一生成公式包括:其中,s1表示所述第一签名结果;q表示所述SM2算法中循环群的阶;R2表示所述第二数值,R2=k2·
Q1或R2=k2·
Q。3.根据权利要求2所述的方法,其特征在于,所述获取第二签名方基于第二随机数生成的第二公钥分片,包括:获取所述第二签名方使用经Fiat

shamir转换后的schnorr算法计算的二元关系(Q2,d2)的离散对数非交互式零知识证明π2;验证π2是否是正确的证明;若π2是正确的证明,则获取所述第二公钥分片;若π2不是正确的证明,则中止协议。4.根据权利要求3所述的方法,其特征在于,所述传输所述第一公钥分片至所述第二签名方,包括:生成第五随机数,并基于所述第五...

【专利技术属性】
技术研发人员:程一帆于昇
申请(专利权)人:云海链控股股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1