一种协同签名方法以及协同签名系统技术方案

技术编号:33669975 阅读:12 留言:0更新日期:2022-06-02 20:53
本发明专利技术适用于数字签名技术领域,提供了一种协同签名方法以及协同签名系统,第一通信终端生成待签名消息M对应的消息摘要e以及第一部分签名Q1,并发送至第二通信终端;第二通信终端依据预设公钥中间值P1、预设第二私钥D2、预设椭圆曲线的n阶基点G以及消息摘要e确定签名横坐标r,并依据预设第二私钥D2确定第二部分签名S1,以及依据预设第二私钥D2以及签名横坐标确定第三部分签名S2;第二通信终端将签名横坐标r以及第二部分签名S1和第三部分签名S2发送至第一通信终端;第一通信终端依据预设第一私钥D1、第二部分签名S1、第三部分签名S2以及签名横坐标r,确定签名纵坐标s,并输出待签名消息M的签名。本发明专利技术有助于提升数字签名的安全性。安全性。安全性。

【技术实现步骤摘要】
一种协同签名方法以及协同签名系统


[0001]本专利技术属于数字签名
,尤其涉及一种协同签名方法以及协同签名系统。

技术介绍

[0002]数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。
[0003]在公钥密码体制中,保证私钥的安全性是一个非常重要的问题,为了降低签名权利集中或签名密钥丢失带来的风险,一些特殊的文档,如高机密的文件通常需要多人协同才能完成签名。生成签名的过程中需要恢复完整的签名密钥,存在安全隐患。

技术实现思路

[0004]本专利技术实施例提供一种协同签名方法,旨在解决提高协同签名安全性的问题。
[0005]本专利技术实施例是这样实现的,一种协同签名方法,所述方法包括:第一通信终端生成待签名消息M对应的消息摘要e以及第一部分签名,并将所述消息摘要e和所述第一部分签名Q1发送至第二通信终端;所述第二通信终端在接收到所述消息摘要e和所述第一部分签名Q1后,依据预设公钥中间值P1、预设第二私钥D2、预设椭圆曲线的n阶基点G以及所述消息摘要e确定签名横坐标r,并依据所述预设第二私钥D2确定第二部分签名S1,以及依据所述预设第二私钥D2以及所述签名横坐标确定第三部分签名S2,其中,所述预设公钥中间值P1通过所述第一通信终端生成;所述第二通信终端将所述签名横坐标r以及所述第二部分签名S1和第三部分签名S2发送至所述第一通信终端;所述第一通信终端依据预设第一私钥D1、所述第二部分签名S1、所述第三部分签名S2以及所述签名横坐标r,确定签名纵坐标s,并基于所述签名横坐标r以及所述签名纵坐标s输出所述待签名消息M的签名。
[0006]更进一步地,所述第一通信终端生成待签名消息M对应的消息摘要e以及第一部分签名Q1,具体包括:依据所述待签名消息M以及预设共同身份标识Z,生成中间比特串M',M' = Z || M;对所述中间比特串M'进行哈希计算,得到所述消息摘要e;在第一随机范围内随机生成第一系数k1,其中,所述第一随机范围基于预设椭圆曲线的基点G的阶数n确定;基于所述第一系数k1以及所述预设椭圆曲线的n阶基点G,在预设椭圆曲线E上计
算所述第一部分签名Q1,Q1 = k1 [*] G,用[ ]表示的运算符为在所述预设椭圆曲线上的运算。
[0007]更进一步地,所述依据预设公钥中间值P1、预设第二私钥D2、预设椭圆曲线的n阶基点G以及所述消息摘要e确定签名横坐标r,具体包括:在第二随机范围内随机生成第二系数k2和第三系数k3,其中,所述第二随机范围基于预设椭圆曲线的基点G的阶数n确定;基于所述预设公钥中间值P1、所述预设第二私钥D2、所述第二系数K2、所述第三系数K3以及所述预设椭圆曲线的n阶基点G,计算中间坐标(x1,y1),(x1,y1) = P1 [+] D2^(

1) [*] k2 [*]P1 [+] k3 [*] D2^(

1) [*] G;基于所述中间坐标(x1,y1)、所述阶数n以及所述消息摘要e,计算所述签名横坐标r,r = (x1 + e) mod n。
[0008]更进一步地,所述计算所述签名横坐标r之后,所述方法还包括:判断所述签名横坐标r是否为0;若所述签名横坐标r不为0,则执行所述依据所述预设第二私钥D2确定第二部分签名,否则,返回所述在第二随机范围内随机生成第二系数k2和第三系数k3的步骤重新生成签名横坐标r。
[0009]更进一步地,所述依据所述预设第二私钥D2确定第二部分签名S1,以及依据所述预设第二私钥D2以及所述签名横坐标确定第三部分签名S2,具体包括:基于所述预设第二私钥D2、所述第二系数k2以及所述阶数n,计算所述第二部分签名S1,S1 = (D2 + k2) mod n;基于所述第三系数、所述预设第二私钥D2、所述签名横坐标r以及所述阶数n,计算所述第三部分签名S2,S2 = (k3 + D2 * r) mod n。
[0010]更进一步地,所述第一通信终端依据预设第一私钥D1、所述第二部分签名S1、所述第三部分签名S2以及所述签名横坐标r,确定签名纵坐标s,具体包括:所述第一通信终端依据所述第一系数k1、所述预设第一私钥D1、所述第二部分签名S1、所述第三部分签名S2以及所述签名横坐标r,确定签名纵坐标s,s = ((D1 * k1) * S1 + D1 * S2
ꢀ‑ꢀ
r) mod n。
[0011]更进一步地,所述基于所述签名横坐标r以及所述签名纵坐标s输出所述待签名消息M的签名,具体包括:判断所述签名纵坐标s是否不为0,并且所述签名纵坐标s是否不为所述阶数n与所述签名横坐标r之差;若判断结果为是,则输出所述待签名消息M的签名(r,s),否则,返回所述生成中间比特串M'的步骤重新获取签名横坐标r和签名纵坐标s并输出签名。
[0012]更进一步地,所述第一通信终端生成待签名消息M对应的消息摘要e以及第一部分签名Q1之前,所述方法还包括:所述第一通信终端依据预设椭圆曲线的基点G的阶数n确定第一随机数范围,并在所述第一随机数范围内生成所述预设第一私钥D1;所述第一通信终端依据所述预设第一私钥D1以及所述阶数n计算所述预设公钥中间值P1,并将所述预设公钥中间值P1发送至所述第二通信终端;
所述第二通信终端依据预设椭圆曲线的基点G的阶数n确定第二随机数范围,并在所述第二随机数范围内生成所述预设第二私钥D2。
[0013]更进一步地,所述在所述第二随机数范围内生成所述预设第二私钥D2之后,所述方法还包括:所述第二通信终端依据所述预设第二私钥D2、所述预设公钥中间值P1以及所述预设椭圆曲线的n阶基点G,生成公钥。
[0014]本专利技术实施例还提供一种协同签名系统,所述系统包括:第一通信终端以及第二通信终端;所述第一通信终端,用于生成待签名消息M对应的消息摘要e以及第一部分签名,并将所述消息摘要e和所述第一部分签名Q1发送至第二通信终端;所述第二通信终端,用于在接收到所述消息摘要e和所述第一部分签名Q1后,依据预设公钥中间值P1、预设第二私钥D2、预设椭圆曲线的n阶基点G以及所述消息摘要e确定签名横坐标r,并依据所述预设第二私钥D2确定第二部分签名S1,以及依据所述预设第二私钥D2以及所述签名横坐标确定第三部分签名S2,其中,所述预设公钥中间值P1通过所述第一通信终端生成;所述第二通信终端,还用于将所述签名横坐标r以及所述第二部分签名S1和第三部分签名S2发送至所述第一通信终端;所述第一通信终端,还用于依据预设第一私钥D1、所述第二部分签名S1、所述第三部分签名S2以及所述签名横坐标r,确定签名纵坐标s,并基于所述签名横坐标r以及所述签名纵坐标s输本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种协同签名方法,其特征在于,所述方法包括:第一通信终端生成待签名消息M对应的消息摘要e以及第一部分签名Q1,并将所述消息摘要e和所述第一部分签名Q1发送至第二通信终端;所述第二通信终端在接收到所述消息摘要e和所述第一部分签名Q1后,依据预设公钥中间值P1、预设第二私钥D2、预设椭圆曲线的n阶基点G以及所述消息摘要e确定签名横坐标r,并依据所述预设第二私钥D2确定第二部分签名S1,以及依据所述预设第二私钥D2以及所述签名横坐标确定第三部分签名S2,其中,所述预设公钥中间值P1通过所述第一通信终端生成;所述第二通信终端将所述签名横坐标r以及所述第二部分签名S1和第三部分签名S2发送至所述第一通信终端;所述第一通信终端依据预设第一私钥D1、所述第二部分签名S1、所述第三部分签名S2以及所述签名横坐标r,确定签名纵坐标s,并基于所述签名横坐标r以及所述签名纵坐标s输出所述待签名消息M的签名。2.根据权利要求1所述的方法,其特征在于,所述第一通信终端生成待签名消息M对应的消息摘要e以及第一部分签名Q1,具体包括:依据所述待签名消息M以及预设共同身份标识Z,生成中间比特串M',M' = Z || M;对所述中间比特串M'进行哈希计算,得到所述消息摘要e;在第一随机范围内随机生成第一系数k1,其中,所述第一随机范围基于预设椭圆曲线的基点G的阶数n确定;基于所述第一系数k1以及所述预设椭圆曲线的n阶基点G,在预设椭圆曲线E上计算所述第一部分签名Q1,Q1 = k1 [*] G,用[ ]表示的运算符为在所述预设椭圆曲线上的运算。3.根据权利要求2所述的方法,其特征在于,所述依据预设公钥中间值P1、预设第二私钥D2、预设椭圆曲线的n阶基点G以及所述消息摘要e确定签名横坐标r,具体包括:在第二随机范围内随机生成第二系数k2和第三系数k3,其中,所述第二随机范围基于预设椭圆曲线的基点G的阶数n确定;基于所述预设公钥中间值P1、所述预设第二私钥D2、所述第二系数K2、所述第三系数K3以及所述预设椭圆曲线的n阶基点G,计算中间坐标(x1,y1),(x1,y1) = P1 [+] D2^(

1) [*] k2 [*]P1 [+] k3 [*] D2^(

1) [*] G;基于所述中间坐标(x1,y1)、所述阶数n以及所述消息摘要e,计算所述签名横坐标r,r = (x1 + e) mod n。4.根据权利要求3所述的方法,其特征在于,所述计算所述签名横坐标r之后,所述方法还包括:判断所述签名横坐标r是否为0;若所述签名横坐标r不为0,则执行所述依据所述预设第二私钥D2确定第二部分签名,否则,返回所述在第二随机范围内随机生成第二系数k2和第三系数k3的步骤重新生成签名横坐标r。5.根据权利要求4所述的方法,其特征在于,所述依据所述预设第二私钥D2确定第二部分签名S1,以及依据所述预设第二私钥D2以及所述签名横坐标确定第三部分签名S2,具体包括:
基于所述预设第二私钥D2、所述第二系数k2以及所述阶数n,计算所述第二部分...

【专利技术属性】
技术研发人员:于建华沈靖飞陈伯钱袁平之陈智奇
申请(专利权)人:华南师范大学
类型:发明
国别省市:

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

1