密钥生成方法、签名和验签方法、装置、设备和介质制造方法及图纸

技术编号:26346565 阅读:72 留言:0更新日期:2020-11-13 21:24
本申请公开了一种密钥生成方法、签名和验签方法、装置、设备和介质,涉及计算机加密技术和区块链技术领域。可用于云计算和云领域。具体实现方案为:分别确定本机节点所属每个层级各自的第一本地秘密;分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。本申请能够提高密钥生成的安全性及隐私性。

Key generation, signature and signature verification methods, devices, devices, and media

【技术实现步骤摘要】
密钥生成方法、签名和验签方法、装置、设备和介质
本申请涉及计算机
,尤其涉及计算机加密技术和区块链
,具体涉及一种密钥生成方法、签名和验签方法、装置、设备和介质。
技术介绍
随着计算机所处理业务的复杂度提升,已经大量出现了需要多个参与方协作来完成的业务。在多方业务中,可采用多方安全计算技术来保证各个参与方之间进行协作来完成任务的计算。多方安全计算技术中会采用门限签名技术来保证数据交互的安全性。门限签名技术是密码学签名领域的一个前沿技术方向。在门限签名技术中,各参与方所采用的密钥,是进行签名的关键技术。现有门限签名技术所生成的密钥无法适应多参与方中复杂的角色签名要求。
技术实现思路
本申请提供了一种密钥生成方法、签名和验签方法、装置、设备和介质。根据本申请的一方面,提供了一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。根据本申请的一方面,提供了一种基于密钥的门限签名方法,由多方节点中的任一节点执行,所述方法包括:采用本机节点每个层级的私钥对待签名消息分别进行签名,以产生层级密钥参数碎片,将层级密钥参数碎片进行累加以生成密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点;获取根据各节点的密钥参数碎片生成的密钥参数;根据所述密钥参数封装形成所述待签名消息的门限签名结果。根据本申请的一方面,提供了一种基于密钥的门限签名验签方法,由多方节点中的任一节点执行,所述方法包括:获取待验签消息和签名结果;其中,所述签名结果采用本申请实施例中任一项所述的基于密钥的门限签名方法进行签名;采用所述公钥对所述签名结果进行签名验证。根据本申请的一方面,提供了一种密钥生成的装置,配置于多方节点中的任一节点中,所述装置包括:第一本地秘密确定模块,用于分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;秘密碎片生成及传输模块,用于分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;公私钥生成模块,用于获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。根据本申请的一方面,提供了一种基于密钥的门限签名装置,配置于多方节点中的任一节点中,所述密钥为本申请实施例中任一项所述密钥生成装置所生成的非对称密钥对,所述装置包括:密钥参数碎片生成及传输模块,用于采用本机节点每个层级的私钥对待签名消息分别进行签名,以产生层级密钥参数碎片,将层级密钥参数碎片进行累加以生成密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点;密钥参数获取模块,用于获取根据各节点的密钥参数碎片生成的密钥参数;门限签名结果形成模块,用于根据所述密钥参数封装形成所述待签名消息的门限签名结果。根据本申请的一方面,提供了一种基于密钥的门限签名验签装置,配置于多方节点中的任一节点中,所述密钥为本申请实施例中任一项所述密钥生成装置所生成的非对称密钥对,所述装置包括:签名结果获取模块,用于获取待验签消息和签名结果;其中,所述签名结果采用本申请实施例中任一项所述的基于密钥的门限签名方法进行签名;签名验证模块,用于采用所述公钥对所述签名结果进行签名验证。根据本申请的一方面,提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请实施例中任一项所述的密钥生成方法,或基于密钥的门限签名方法,或基于密钥的门限签名验签方法。根据本申请的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请实施例中任一项所述的密钥生成方法、基于密钥的门限签名方法或者基于密钥的门限签名验签方法。根据本申请的技术能够提高门限签名方案的安全性及隐私性。应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其他特征将通过以下的说明书而变得容易理解。附图说明附图用于更好地理解本方案,不构成对本申请的限定。其中:图1是根据本申请实施例提供的一种密钥生成方法的流程示意图;图2A是根据本申请实施例提供的另一种密钥生成方法的流程示意图;图2B是本申请实施例中生成密钥的流程示意图;图3是根据本申请实施例提供的一种基于密钥的门限签名方法的流程示意图;图4A是根据本申请实施例提供的另一种基于密钥的门限签名方法的流程示意图;图4B是本申请实施例中生成密钥参数的流程示意图一;图4C是本申请实施例中生成密钥参数的流程示意图二;图5是根据本申请实施例提供的一种基于密钥的门限签名验签方法的流程示意图;图6是根据本申请实施例提供的一种密钥生成装置的结构示意图;图7是根据本申请实施例提供的基于密钥的门限签名装置的结构示意图;图8是根据本申请实施例提供的基于密钥的门限签名验签装置的结构示意图;图9是用来实现本申请实施例的密钥生成方法的电子设备的框图。具体实施方式以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本申请实施例提供的一种密钥生成方法的流程示意图。本实施例可适用于门限签名中密钥生成的情况,且能设置多个层级,每个层级设置不同的签名门限阈值,从而满足复杂的门限签名场景需求,且提高密钥生成的安全性和隐私性。本实施例本文档来自技高网...

【技术保护点】
1.一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:/n分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;/n分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;/n获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。/n

【技术特征摘要】
1.一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:
分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;
分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;
获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。


2.根据权利要求1所述的方法,其中,分别确定本机节点所属每个层级各自的第一本地秘密包括:
针对本机节点所属的每个层级,基于随机数,按照设定生成算法生成一个字节数组或数字,作为所述第一本地秘密;或
针对本机节点所属的每个层级,根据用户设置的助记词,按照设定恢复算法生成一个字节数组或数字,作为所述第一本地秘密。


3.根据权利要求1所述的方法,其中,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点包括:
按照当前层级中节点的数量以及当前层级的设定门限签名阈值,将当前层级的第一本地秘密切分为秘密碎片;其中,所述设定门限签名阈值为当前层级需参与门限签名的节点数量下限值;
将当前层级的各所述秘密碎片,按照所述秘密碎片被切分时确定的碎片编号和所述多方节点的节点编号,分别传输给所述当前层级中的每个节点;其中,每个节点中记录的节点编号与节点的对应关系相同。


4.根据权利要求1所述的方法,其中,根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥包括:
分别将每个层级作为当前层级,将获取的当前层级的节点各自的秘密碎片进行累加,作为当前层级的第二本地秘密;
将所述当前层级的第二本地秘密转换为设定精度整数;
基于设定椭圆曲线,将所述设定精度整数转换为所述设定椭圆曲线上的私钥,作为当前层级的非对称密钥对的私钥。


5.根据权利要求1或4所述的方法,其中,根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥包括:
分别将每个层级作为当前层级,根据所述当前层级的第一本地秘密生成当前层级的层级验证值,将每个层级的层级验证值进行累加,以生成节点验证值;
将所述节点验证值传输给所述多方节点中的每个节点;
获取所述多方节点中其他节点各自生成并传输的节点验证值,并根据获取的所述多方节点各自的节点验证值,基于设定椭圆曲线的基点生成非对称密钥对的公钥。


6.根据权利要求1所述的方法,其中:
所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点;
所述多方节点的各所述层级按照级别属性递减,所述级别属性包括:节点业务权限级别、节点归属用户的行政级别、和节点安全性级别。


7.一种基于密钥的门限签名方法,由多方节点中的任一节点执行,所述密钥为权利要求1-6任一所述密钥生成方法所生成的非对称密钥对,所述方法包括:
采用本机节点每个层级的私钥对待签名消息分别进行签名,以产生层级密钥参数碎片,将层级密钥参数碎片进行累加以生成密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点;
获取根据各节点的密钥参数碎片生成的密钥参数;
根据所述密钥参数封装形成所述待签名消息的门限签名结果。


8.根据权利要求7所述的方法,其中,所述密钥参数包括第一密钥参数和第二密钥参数,则生成第一密钥参数的过程包括:
采用本机节点每个层级的私钥进行累加,并采用累加后的私钥对待签名消息进行签名,以产生第一密钥参数碎片,且将所述第一密钥参数碎片传输给所述多方节点中的其他节点;
获取所述多方节点中其他节点各自产生并传输的第一密钥参数碎片,并将获取的其他节点的第一密钥参数碎片进行累加,以生成第一密钥参数;
相应的,生成第二密钥参数的过程包括:
将每个层级作为当前层级,在当前层级中,根据本机节点的节点编号、以及获取到第一密钥参数碎片的其他节点的节点编号,计算生成本机节点当前层级第一本地秘密的层级偏离值;
采用本机节点每个层级的私钥分别对所述待签名消息、所述层级偏离值、所述公钥和所述第一密钥参数进行签名,以产生每个层级的第二层级密钥参数碎片,并将所述第二层级密钥参数碎片进行累加,以生成第二密钥参数碎片;
将所述第二密钥参数碎片传输给所述多方节点中的其他节点,以供所述其他节点根据获取到的各第二密钥参数碎片进行累加计算,以产生第二密钥参数;
获取所述其他节点返回的所述第二密钥参数。


9.根据权利要求8所述的方法,其中,采用本机节点每个层级的私钥进行累加,并采用累加后的私钥对待签名消息进行签名,以产生第一密钥参数碎片包括:
根据本机节点每个层级的私钥进行累加,以得到累加后的私钥,采用所述累加后的私钥和所述待签名消息,进行哈希计算,以得到哈希特征值;
将所述哈希特征值转换为数字参数;
根据所述数字参数和设定椭圆曲线的基点,计算所述第一密钥参数碎片。


10.根据权利要求8所述的方法,其中,采用本机节点每个层级的私钥分别对所述待签名消息、所述层级偏离值、所述公钥和所述第一密钥参数进行签名,以产生每个层级的第二层级密钥参数碎片包括:
针对每个层级,按照如下公式产生所述第二层级密钥参数碎片:
Sjl=Kjl+HASH(C,R,M)*Coef(jl)*Pjl
其中,所述Sjl为节点j第l层级产生的第二层级密钥参数碎片,Kjl为节点j第l层级的数字参数,C为所述公钥,R为所述第一密钥参数,M为所述待签名消息,HASH(C,R,M)对所述公钥C、所述第一密钥参数R和所述待签名消息M进行哈希计算的结果,所述Pjl为节点j第l层级的私钥,Coef(jl)为节点j第l层级的层级偏离值,其中,l的取值范围[1,L],L为层级数量,是大于或等于2的整数。


11.根据权利要求8所述的方法,其中,将所述第二密钥参数碎片传输给所述多方节点中的其他节点包括:
将所述第二密钥参数碎片,按照设定传输顺序,依次传输给所述多方节点中的其他节点,以指示获取到第二密钥参数碎片的节点进行第二密钥参数碎片的累加计算,直至产生所述第二密钥参数。


12.根据权利要求11所述的方法,其中,所述设定传输顺序为节点编号顺序。


13.根据权利要求7所述的方法,其中,针对每个层级,生成所述密钥参数的层级密钥参数碎片的数量分别大于或等于对应层级的设定门限签名阈值。


14.根据权利要求7所述的方法,其中:
所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点;
所述待签名消息为基于区块链网络协议发起的事务请求;
所述待签名消息的签名结果用于作为事务数据存储至区块链中;
所述多方节点的各所述层级按照级别属性递减,所述级别属性包括:节点业务权限级别、节点归属用户的行政级别、和节点安全性级别。


15.一种基于密钥的门限签名验签方法,由多方节点中的任一节点执行,所述密钥为权利要求1-6任一所述密钥生成方法所生成的非对称密钥对,所述方法包括:
获取待验签消息和签名结果;其中,所述签名结果采用权利要求7-14任一所述的基于密钥的门限签名方法进行签名;
采用所述公钥对所述签名结果进行签名验证。


16.根据权利要求15所述的方法,其中,采用所述公钥对所述签名结果进行签名验证包括:
按照如下公式计算待验证签名参数:
Rv=SG–eC;
其中,所述Rv为待验证签名参数,S为所述签名结果中第二密钥参数,G是设定椭圆曲线的基点,C是所述公钥,e=HASH(C,R,M),R为第一密钥参数,M为待验签消息;
如果所述待验证签名参数和所述第一密钥参数匹配,则签名结果验证通过。


17.根据权利要求15所述的方法,其中,获取待验签消息和签名结果包括:
在区块链的事务数据验证过程中,获取所述待验签消息和签名结果。


18.一种密钥生成的装置,配置于多方节点中的任一节点中,所述装置包括:
第一本地秘密确定模块,用于分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;
秘密碎片生成及传输模块,用于分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;
公私钥生成模块,用于获取所述当前层级其他节点各自切分并传输...

【专利技术属性】
技术研发人员:荆博
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京;11

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

1