本发明属于计算机,具体涉及一种数字签名密钥生成方法及系统。
背景技术:
1、随着目前计算机网络通信,以及数字认证的发展,数字签名是不可或缺的一部分,数字签名通常是由一对非对称的密钥(公钥和私钥)组成,其中,公钥用于验证签名,向所有用户公开,私钥用于生成签名,需要在信任用户或信任节点处私密保存,传统流程为拥有签名权限的主用户通过密钥生成设备生成密钥,将私钥保存在本地单一设备或信任设备处,将公钥向所有与自己进行通讯的通讯用户公开,主用户向通讯用户发送消息时,使用私钥对消息进行签名处理从而生成签名,通讯用户在接收到消息和签名时,使用公钥对消息和签名进行验证。
2、随着互联网发展,很多场景下需要多方同时进行签名,现有技术方案一般是采用的bls门限签名算法,对私钥进行私钥分割,分解后结果发送给不同的通讯用户,用于后续签名等操作,但目前技术方案中,数字签名中密钥的生成和分发通常依赖可信的第三方,比如数字认证中心或者某一参与签名的用户,因此会存在某个第三方或用户拥有完整的签名密钥,其可以独立完成签名,若原密钥管理人权限变更,需要对密钥进行更新时,也要依赖可信的第三方或第一方重新生成公钥和私钥。不仅通信开销大,而且所有节点不论是签名方还是验证方都需要更新密钥,其耗时且流程繁琐。
3、因此,如何避免在多个节点同时进行签名时,数字签名密钥需要依赖中心化的第三方节点或者第一方节点才能进行生成,是本领域技术人员有待解决的技术问题。
技术实现思路
1、本发明的目的是为了解决现有技术中在多个节点同时进行签名时,数字签名密钥需要依赖中心化的第三方节点或第一方节点才能进行生成的技术问题。
2、为实现上述技术目的,一方面,本发明提供一种数字签名密钥生成方法,应用于多个签名节点和验证节点中,该方法包括:
3、通过所有签名节点分别生成验证密钥和验证消息;
4、将所有验证密钥和验证消息发送至验证节点中;
5、通过所述验证节点验证所接收到的所有验证消息;
6、当所述验证节点接收到的验证消息验证均通过后,将所述验证节点接收到的所有验证密钥进行合并后作为公钥。
7、进一步地,通过所述签名节点生成验证密钥和验证消息,具体包括:
8、通过所述签名节点生成签名密钥;
9、基于所述签名密钥生成所述验证密钥,并通过预设算法确定出零知识证明作为所述验证消息。
10、进一步地,所有签名节点和验证节点均包括适用于双线性映射的椭圆曲线。
11、进一步地,所述基于所述签名密钥生成所述验证密钥,具体包括:
12、在所述签名节点中通过对应椭圆曲线生成第一素数阶群、第二素数阶群和第三素数阶群;在双线性映射关系满足第一素数阶群×第二素数阶群→第三素数阶群后,基于所述第二素数阶群的生成元和签名密钥生成所述验证密钥;
13、进一步地,具体通过如下公式生成所述验证密钥:
14、vki=(g2)^(ski)
15、式中,vki为第i个签名节点的验证密钥,g2为所述生成元,ski为第i个签名节点的签名密钥。
16、进一步地,所述将所述验证节点接收到的所有验证密钥进行合并后作为公钥,具体通过如下公式进行合并:
17、
18、式中,vk为公钥,i为签名节点序号,j为小于i的签名节点序号,i为所有签名节点序号的集合,vki为第i个签名节点的验证密钥。
19、进一步地,所述方法还包括:
20、当所述签名节点发生更新时;
21、将所有更新前的签名节点中的签名密钥分别分解成预设数量的隐私分享,以及生成每个更新前签名节点对应的零知识证明,所述预设数量具体为更新后签名节点的数量;
22、将每个更新前签名节点对应的零知识证明和所有隐私分享均发送至每一个更新后签名节点中;
23、基于每一个更新后签名节点接收到的零知识证明和隐私分享生成对应的新签名密钥。
24、另一方面,本发明还提供了一种数字签名密钥生成系统,应用于多个签名节点和验证节点中,该系统包括:
25、生成模块,分别部署于所有签名节点中,用于在所述签名节点中生成验证密钥和验证消息;
26、发送模块,分别部署于所有签名节点中,用于将对应签名节点中的验证密钥和验证消息发送至验证节点中;
27、验证模块,部署于验证节点中,用于验证所接收到的所有验证消息;
28、合并模块,部署于验证节点中,用于当所述验证节点接收到的验证消息验证均通过后,将所述验证节点接收到的所有验证密钥进行合并后作为公钥。
29、本发明提供的一种数字签名密钥生成方法及系统,与现有技术相比,本方法先通过所有签名节点分别生成验证密钥和验证消息;然后将所有验证密钥和验证消息发送至验证节点中;接着通过所述验证节点验证所接收到的所有验证消息;最后当所述验证节点接收到的验证消息验证均通过后,将所述验证节点接收到的所有验证密钥进行合并后作为公钥,能够有效避免数字签名密钥需要依赖中心化的第三方节点或第一方节点才能进行生成,不存在任何节点能够单独完成签名,有效提升了安全性。
1.一种数字签名密钥生成方法,其特征在于,应用于多个签名节点和验证节点中,该方法包括:
2.如权利要求1所述的数字签名密钥生成方法,其特征在于,通过所述签名节点生成验证密钥和验证消息,具体包括:
3.如权利要求2所述的数字签名密钥生成方法,其特征在于,所有签名节点和验证节点均包括适用于双线性映射的椭圆曲线。
4.如权利要求3所述的数字签名密钥生成方法,其特征在于,所述基于所述签名密钥生成所述验证密钥,具体包括:
5.如权利要求4所述的数字签名密钥生成方法,其特征在于,具体通过如下公式生成所述验证密钥:
6.如权利要求1所述的数字签名密钥生成方法,其特征在于,所述将所述验证节点接收到的所有验证密钥进行合并后作为公钥,具体通过如下公式进行合并:
7.如权利要求1所述的数字签名密钥生成方法,其特征在于,所述方法还包括:
8.一种数字签名密钥生成系统,其特征在于,应用于多个签名节点和验证节点中,该系统包括: