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

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

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

【技术保护点】
1.一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:/n确定本机节点的第一本地秘密,将所述第一本地秘密按照所述多方节点的数量切分为秘密碎片,将各所述秘密碎片一一对应的传输给所述多方节点中的每个节点;/n获取所述多方节点中其他节点各自切分并传输的秘密碎片,并根据获取的所述多方节点各自的秘密碎片生成非对称密钥对的私钥和公钥。/n

【技术特征摘要】
1.一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:
确定本机节点的第一本地秘密,将所述第一本地秘密按照所述多方节点的数量切分为秘密碎片,将各所述秘密碎片一一对应的传输给所述多方节点中的每个节点;
获取所述多方节点中其他节点各自切分并传输的秘密碎片,并根据获取的所述多方节点各自的秘密碎片生成非对称密钥对的私钥和公钥。


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


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


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


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


6.根据权利要求1所述的方法,其中:
所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点。


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


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


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


10.根据权利要求8所述的方法,其中,采用本机节点的私钥对所述待签名消息、所述偏离值、所述公钥和所述第一密钥参数进行签名,以产生第二密钥参数碎片包括:
按照如下公式产生所述第二密钥参数碎片:
Sj=Kj+HASH(C,R,M)*Coef(j)*Pj
其中,所述Sj为节点j产生的第二密钥参数碎片,Kj为节点j的数字参数,C为所述公钥,R为所述第一密钥参数,M为所述待签名消息,HASH(C,R,M)对所述公钥C、所述第一密钥参数R和所述待签名消息M进行哈希计算的结果,所述Pj为节点j的私钥,Coef(j)为节点j的偏离值。


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.一种密钥生成的装置,配置于多方节点中的任一节点中,所述装置包括:
秘密碎片生成模块,用于确定本机节点的第一本地秘密,将所述第一本地秘密按照所述多方节点的数量切分为秘密碎片,将各所述秘密碎片一一对应的传输给所述多方节点中的每个节点;
公私钥生成模块,用于获取所述多方节点中其他节点各自切分并传输的秘密碎片,并根据获取的所述多方节点各自的秘密碎片生成非对称密钥对的私钥和公钥。


19.根据权利要求18所述的装置,其中,秘密碎片生成模块,包括:
本地秘密生成第一子模块,用于基于随机数,按照设定生成算法生成一个字节数组或数字,作为所述第一本地秘密;或
本地秘密生成...

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

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

1