密钥生成方法和装置制造方法及图纸

技术编号:24805176 阅读:29 留言:0更新日期:2020-07-07 22:06
本申请实施例提供一种密钥生成方法和装置,该方法包括:从N个第一记账节点获取所述交易节点的N份第一部分私钥份额,所述第一记账节点为所述交易节点的且与所述交易节点相邻的上层区块链中的记账节点;所述N份第一部分私钥份额与所述N个第一记账节点一一对应,N为大于等于2的正整数;根据所述N份第一部分私钥份额,生成所述交易节点的私钥;其中,所述第一部分私钥份额是该第一部分私钥份额对应的第一记账节点根据该第一记账节点的私钥份额生成的,该第一记账节点的私钥份额为该第一记账节点所在区块链的私钥在该第一记账节点上存储的信息。本申请实施例生成的密钥中的私钥在丢失后可以找回,保证了区块链的正常运行。

【技术实现步骤摘要】
密钥生成方法和装置
本申请实施例涉及计算机技术,尤其涉及一种密钥生成方法和装置。
技术介绍
作为比特币等加密货币的底层技术,区块链通过密码学技术和共识机制实现了去中心化,并可以通过脚本或智能合约实现可强制执行的交易。区块链由所有参与方共同维护,对外公开透明,可作为可信第三方实现去中心化、中介化。因此区块链技术在金融、证券、保险、支付、供应链、公证、物联网、云计算等领域受到广泛的重视和初步的应用。联盟链作为一种形式的区块链,逐渐得到了广泛的应用。其中,每个联盟链的交易节点具有密钥,密钥用于保护联盟链中交易信息、联盟链的记账节点对交易节点的授权、联盟链的记账节点对交易信息的验证等等,因此,交易节点的密钥对于联盟链的维护具有重要的作用。目前联盟链中的交易节点的密钥的私钥丢失后无法找回,影响了联盟链的正常运行。
技术实现思路
本申请实施例提供了一种密钥生成方法和装置,使得交易节点的私钥在丢失可找回,保证了区块链的正常运行。第一方面,本申请实施例提供了一种密钥生成方法,应用于区块链系统中的交易节点,包括:从N个第一记账节点获取所述交易节点的N份第一部分私钥份额,所述第一记账节点为所述交易节点的且与所述交易节点相邻的上层区块链中的记账节点;所述N份第一部分私钥份额与所述N个第一记账节点一一对应,N为大于等于2的正整数;根据所述N份第一部分私钥份额,生成所述交易节点的私钥;其中,所述第一部分私钥份额是该第一部分私钥份额对应的第一记账节点根据该第一记账节点的私钥份额生成的,该第一记账节点的私钥份额为该第一记账节点所在区块链的私钥在该第一记账节点上存储的信息。该方案中,区块链系统中的交易节点的私钥是根据N份部分私钥份额生成的,N份部分私钥份额是交易节点的且与交易节点相邻的上层区块链中N个记账节点生成的,因此,在私钥丢失时,可以向上层区块链节点申请重新发送该N份部分私钥份额,然后重新根据该N份部分私钥份额生成交易节点的私钥,使得交易节点的私钥丢失后可找回,保证了区块链系统正常的运行。在一种可能的设计中,还包括:根据所述交易节点的标识和所述上层区块链的标识,生成所述交易节点的公钥。该方案中,区块链系统中的交易节点的公钥中包括交易节点的标识,在出现非法交易时,可快速的确定发起非法交易的节点。在一种可能的设计中,所述根据所述N份第一部分私钥份额,生成所述交易节点的私钥,包括:将每份第一部分私钥份额的第u个元素采用拉格朗日插值法处理,得到处理后的第u个元素;所述u=1,2;将N份第一部分私钥份额对应的N份处理后的第u个元素相乘,得到所述交易节点的私钥的第u个元素。该方案提供了交易节点根据N份第一部分私钥份额,生成交易节点的私钥的具体方法。在一种可能的设计中,所述区块链系统包括的区块链的层数大于等于2层;所述第一记账节点的私钥份额是该第一记账节点根据从M个第二记账节点接收到的该第一记账节点的M份第二部分私钥份额生成的,所述M份第二部分私钥份额与所述M个第二记账节点一一对应,M为大于等于2的正整数;其中,所述第二记账节点为所述第一记账节点的且与所述第一记账节点相邻的上层区块链中的记账节点。该方案提供了所述第一记账节点的私钥份额的获取方法。在一种可能的设计中,第j个第一记账节点的私钥份额是根据所述区块链系统的系统公钥的W-1个元素、第一记账节点所在区块链的标识、所述区块链系统的顶层区块链的各顶层记账节点生成的第一子随机数之和、所述第一记账节点的各上层区块链的各记账节点生成的第二子随机数之和、第一记账节点所在区块链的私钥恢复门限值以及所述j得到的;其中,W为所述区块链系统的系统公钥包括的元素个数,所述第一子随机数之和小于所述区块链系统对应的双线性群的阶数的正整数,所述第一记账节点的每个上层区块链的各记账节点生成的第二子随机数之和小于所述双线性群的阶数;W为大于等于5的整数,j为小于等于J的正整数,J为所述交易节点的且与所述交易节点相邻的上层区块链中第一记账节点的个数。该方案提供了所述第一记账节点的私钥份额的获取方法。在一种可能的设计中,根据所述区块链系统对应的双线性群的生成元、所述生成元的α次方和所述双线性群中的K+2个元素,生成所述区块链系统的系统公钥;其中,所述α为各所述顶层记账节点生成的第一子随机数之和,所述K为所述区块链系统包括的区块链的层数。该方案提供了系统公钥的生成方法。在一种可能的设计中,所述顶层区块链中的第i个顶层记账节点的私钥份额的各元素依次为:所述αi为第i个顶层记账节点生成的第一子随机数,g2为所述K+2个元素中的一个元素,i为小于等于I的正整数,I为所述顶层区块链中顶层记账节点的个数。该方案提供了顶层区块链中顶层记账节点的私钥份额的设置方法。第二方面,本申请实施例提供一种密钥生成方法,应用于区块链系统中的第一记账节点,所述第一记账节点为所述区块链系统中交易节点的且与所述交易节点相邻的上层区块链中的记账节点,包括:获取所述第一记账节点的私钥份额;其中,所述第一记账节点的私钥份额为所述第一记账节点所在区块链的私钥在该第一记账节点上存储的信息;根据所述第一记账节点的私钥份额,生成所述交易节点的第一部分私钥份额;将所述第一部分私钥份额发送至所述交易节点,所述第一部分私钥份额用于所述交易节点生成所述交易节点的私钥。该方案中,区块链系统中的第一记账节点向交易节点的发送N份部分私钥份额,以使交易节点根据N份部分私钥份额生成交易节点的私钥,因此,在私钥丢失时,N个第一记账节点可根据第一记账节点的申请,重新发送该N份部分私钥份额至交易节点,以使交易节点重新根据该N份部分私钥份额生成交易节点的私钥,使得交易节点的私钥丢失后可找回,保证了区块链系统正常的运行。在一种可能的设计中,所述获取所述第一记账节点的私钥份额,包括:从M个第二记账节点中获取所述第一记账节点的M份第二部分私钥份额,所述第二记账节点为与所述第一记账节点相邻的所述第一记账节点的上层区块链中的记账节点;M为大于等于2的正整数;根据所述M份第二部分私钥份额,生成所述第一记账节点的私钥份额。该方案提供了第一记账节点的私钥份额的获取方法,该方法在第一记账节点的私钥份额丢失后,可向M个第二记账节点申请重新发送M份第二部分私钥份额,根据M份第二部分私钥份额重新生成第一记账节点的私钥份额;由于交易节点的部分私钥份额是第一记账节点根据自身的私钥份额生成的,因此交易节点的部分私钥份额也可以重新生成,保证了交易节点的私钥可重新生成。在一种可能的设计中,所述根据所述第一记账节点的私钥份额,生成所述交易节点的第一部分私钥份额,包括:根据所述第一记账节点的私钥份额、所述区块链系统的系统公钥、第一记账节点所在区块链的标识、所述交易节点的标识、所述第一记账节点在生成所述第一记账节点的私钥份额后生成的目标随机数,生成所述交易节点的第一部分私钥份额;...

【技术保护点】
1.一种密钥生成方法,应用于区块链系统中的交易节点,其特征在于,包括:/n从N个第一记账节点获取所述交易节点的N份第一部分私钥份额,所述第一记账节点为所述交易节点的且与所述交易节点相邻的上层区块链中的记账节点;所述N份第一部分私钥份额与所述N个第一记账节点一一对应,N为大于等于2的正整数;/n根据所述N份第一部分私钥份额,生成所述交易节点的私钥;/n其中,所述第一部分私钥份额是该第一部分私钥份额对应的第一记账节点根据该第一记账节点的私钥份额生成的,该第一记账节点的私钥份额为该第一记账节点所在区块链的私钥在该第一记账节点上存储的信息。/n

【技术特征摘要】
1.一种密钥生成方法,应用于区块链系统中的交易节点,其特征在于,包括:
从N个第一记账节点获取所述交易节点的N份第一部分私钥份额,所述第一记账节点为所述交易节点的且与所述交易节点相邻的上层区块链中的记账节点;所述N份第一部分私钥份额与所述N个第一记账节点一一对应,N为大于等于2的正整数;
根据所述N份第一部分私钥份额,生成所述交易节点的私钥;
其中,所述第一部分私钥份额是该第一部分私钥份额对应的第一记账节点根据该第一记账节点的私钥份额生成的,该第一记账节点的私钥份额为该第一记账节点所在区块链的私钥在该第一记账节点上存储的信息。


2.根据权利要求1所述的方法,其特征在于,还包括:
根据所述交易节点的标识和所述上层区块链的标识,生成所述交易节点的公钥。


3.根据权利要求1或2所述的方法,其特征在于,所述根据所述N份第一部分私钥份额,生成所述交易节点的私钥,包括:
将每份第一部分私钥份额的第u个元素采用拉格朗日插值法处理,得到处理后的第u个元素;所述u=1,2;
将N份第一部分私钥份额对应的N份处理后的第u个元素相乘,得到所述交易节点的私钥的第u个元素。


4.根据权利要求1~3任一项所述的方法,其特征在于,所述区块链系统包括的区块链的层数大于等于2层;
所述第一记账节点的私钥份额是该第一记账节点根据从M个第二记账节点接收到的该第一记账节点的M份第二部分私钥份额生成的,所述M份第二部分私钥份额与所述M个第二记账节点一一对应,M为大于等于2的正整数;
其中,所述第二记账节点为所述第一记账节点的且与所述第一记账节点相邻的上层区块链中的记账节点。


5.根据权利要求1~3任一项所述的方法,其特征在于,第j个第一记账节点的私钥份额是根据所述区块链系统的系统公钥的W-1个元素、第一记账节点所在区块链的标识、所述区块链系统的顶层区块链的各顶层记账节点生成的第一子随机数之和、所述第一记账节点的各上层区块链的各记账节点生成的第二子随机数之和、第一记账节点所在区块链的私钥恢复门限值以及所述j得到的;
其中,W为所述区块链系统的系统公钥包括的元素个数,所述第一子随机数之和小于所述区块链系统对应的双线性群的阶数的正整数,所述第一记账节点的每个上层区块链的各记账节点生成的第二子随机数之和小于所述双线性群的阶数;W为大于等于5的整数,j为小于等于J的正整数,J为所述交易节点的且与所述交易节点相邻的上层区块链中第一记账节点的个数。


6.根据权利要求5所述的方法,其特征在于,所述区块链系统的系统公钥的元素依次为所述区块链系统对应的双线性群的生成元、所述生成元的α次方、所述双线性群中的K+2个元素;
其中,所述α为各所述顶层记账节点生成的第一子随机数之和,所述K为所述区块链系统包括的区块链的层数。


7.根据权利要求6所述的方法,其特征在于,所述顶层区块链中的第i个顶层记账节点的私钥份额的各元素依次为:所述αi为第i个顶层记账节点生成的第一子随机数,g2为所述K+2个元素中的一个元素,i为小于等于I的正整数,I为所述顶层区块链中顶层记账节点的个数。


8.一种密钥生成方法,应用于区块链系统中的第一记账节点,所述第一记账节点为所述区块链系统中交易节点的且与所述交易节点相邻的上层区块链中的记账节点,其特征在于,包括:
获取所述第一记账节点的私钥份额;其中,所述第一记账节点的私钥份额为所述第一记账节点所在区块链的私钥在该第一记账节点上存储的信息;
根据所述第一记账节点的私钥份额,生成所述交易节点的第一部分私钥份额;
将所述第一部分私钥份额发送至所述交易节点,所述第一部分私钥份额用于所述交易节点生成所述交易节点的私钥。


9.根据权利要求8所述的方法,其特征在于,所述获取所述第一记账节点的私钥份额,包括:
从M个第二记账节点中获取所述第一记账节点的M份第二部分私钥份额,所述第二记账节点为与所述第一记账节点相邻的所述第一记账节点的上层区块链中的记账节点;M为大于等于2的正整数;
根据所述M份第二部分私钥份额,生成所述第一记账节点的私钥份额。


10.根据权利要求8或9所述的方法,其特征在于,所述根据所述第一记账节点的私钥份额,生成所述交易节点的第一部分私钥份额,包括:
根据所述第一记账节点的私钥份额、所述区块链系统的系统公钥、第一记账节点所在区块链的标识、所述交易节点的标识、所述第一记账节点在生成所述第一记账节点的私钥份额后生成的目标随机数,生成所述交易节点的第一部分私钥份额;
其中,所述目标随机数为小于所述区块链系统对应的双线性群的阶数的正整数。


11.根据权利要求9所述的方法,其特征在于,所述根据所述M份第二部分私钥份额,生成所述第一记账节点的私钥份额,包括:
将每份第二部分私钥份额的第v个元素采用拉格朗日插值法处理,得到处理后的第v个元素;所述v=1,2,3;
将M份第二部分私钥份额对应的M份处理后的第v个元素相乘,得到所述第一记账节点的私钥份额的第v个元素。


12.根据权利要求8~11任一项所述的方法,其特征在于,还包括:
根据从至少一个交易节点接收的至少一个交易信息,得到当前待生成区块的区块头;
生成第三随机数,所述第三随机数为所述区块链系统对应的双线性群的阶数的正整数;
根据所述区块头生成小于所述双线性群的阶数的哈希值;
根据所述第一记账节点的私钥份额、所述第三随机数、所述哈希值和所述双线性群的生成元,获取所述区块头的部分签名。


13.根据权利要求12所述的方法,其特征在于,还包括:
从N-1个其它第一记账节点接收所述区块头的部分签名;
根据N个所述区块头的部分签名,生成发送至第二记账节点的所述区块头的完整签名,所述N为所述第一记账节点所在层的私钥恢复门限值;
将所述区块头和所述区块头的完整签名发送至所述第二记账节点,所述区块头和所述区块头的完整签名用于所述第二记账节点验证所述区块头是否合法,所述第二记账节点为所述第一记账节点的且与所述第一记账节点相邻的上层区块链中的记账节点。


14.一种密钥生成方法,应用于区块链系统中的第二记账节点,其特征在于,包括:
获取所述第二记账节点的私钥份额;其中,所述第二记账节点的私钥份额为所述第二记账节点所在区块链的私钥在该第二记账节点上存储的信息;
根据所述第二记账节点的私钥份额,生成第一记账节点的第二部分私钥份额,所述第一记账节点为所述第二记账节点的且与所述第二记账节点相邻的下层区块链中的记账节点;
将所述第二部分私钥份额发送至所述第一记账节点,所述第二部分私钥份额用于所述第一记账节点生成所述第一记账节点的私钥份额,所述第一记账节点的私钥份额用于生成交易节点的私钥。


15.根据权利要求14所述的方法,其特征在于,所述获取所述第二记账节点的私钥份额,包括:
从P个第三记账节点中获取所述第二记账节点的P份第三部分私钥份额,所述第三记账节点为所述第二记账节点的且与所述第二记账节点相邻的上层区块链中的记账节点;P为大于等于2的正整数;
根据所述P份第三部分私钥份额,生成所述第二记账节点的私钥份额。


16.根据权利要求14或15所述的方法,其特征在于,所述第一记账节点为第j个第一记账节点;所述根据所述第二记账节点的私钥份额,...

【专利技术属性】
技术研发人员:万志国徐青姜鸿
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1