一种区块链HD私钥找回方法与流程

文档序号:24979515发布日期:2021-05-07 22:54阅读:106来源:国知局
一种区块链HD私钥找回方法与流程

本发明涉及区块链技术领域,特别涉及一种区块链hd私钥找回方法。



背景技术:

区块链(blockchain)是一个信息技术领域的术语。从本质上讲,它是一个分布式数据库或分布式账本,存储于其中的数据或信息,具有时序性、不可篡改性、可追溯性、公开透明性、集体维护性等特征。基于这些特征,区块链技术奠定了坚实的信任基础,创造了可靠的协作机制,具有广阔的应用前景。

区块链上的信息或数字资产的操作离不开私钥,依据私钥的生成方式可以分为二类:非确定性结构(non-hierarchical)与确定性结构(hierarchicaldeterministic,确定性结构或分层确定性结构)。hd结构的工作原理可以概括为:利用一个随机数经由根种子创建根密钥对(又称主密钥对或首父密钥对)与根链码,再用一个确定的、不可逆的算法,基于根密钥与根链码生成任意数量的子密钥与子链码,即,hd结构的根种子可依次叠级生成多对密钥与链码,最终产生一棵深度为d的密钥树,每一级都包含多对子密钥与子链码,其树根即为根密钥与根链码,密钥树的叶子(称之为“末点”)即为末点密钥或业务密钥,密钥树的分叉(称之为“支点”或“叉点”)则为支点密钥、叉点密钥或管理密钥(依据不同应用场景,也可以作为业务密钥),而节点则为根、支点与末点的统称,所以,根密钥、支点密钥与末点密钥统称为节点密钥,至于实际上是哪种密钥,则得依节点在密钥树中所处的具体位置决定。

目前的区块链系统在功能上有且仅有业务密钥,用户经由业务密钥对区块链系统中的电子文件(含电子司法文书)或数字资产等信息进行操作。业务秘钥对包括业务私钥和业务公钥,一旦业务私钥遗失或毁损则意味着无法对区块链中的电子文件或数字资产等信息进行操作,也意味着电子文件(含电子司法文书)或数字资产等信息所有权与处分权的灭失,对用户造成无法挽回的损失。



技术实现要素:

为了解决上述问题,本发明提供一种区块链hd私钥找回方法,以解决区块链业务私钥遗失或毁损时无法找回的问题。

本发明提供一种区块链hd私钥找回方法,包括:

创建原始密钥对;

根据所述原始密钥对计算根种子;

由所述根种子计算得到根密钥和根链码;

根据所述根密钥和根链码生成密钥树;

获取密钥树节点的公钥地址,并基于所述公钥地址和路径标识创建地址表;

基于所述地址表反向查寻丢失业务私钥的路径标识;

利用所述原始密钥对计算根私钥、根链码,并结合所述路径标识计算得到业务私钥。

根据本发明的一个具体实施例,所述创建原始密钥对包括:

采用一个随机数进行哈希运算,生成一个原始种子;

由所述原始种子经非对称加密算法演算生成原始密钥对,所述原始密钥对包括原始公钥和原始私钥。

根据本发明的一个具体实施例,所述根据所述原始密钥对计算根种子包括:

根据所述原始密钥对中的原始私钥对原始公钥或者其他选定的任何数据进行加密运算,得到所述根种子,其中所述加密运算包括hmac加密算法、加盐哈希加密算法、对称加密算法或非对称加密算法中的任一算法。

根据本发明的一个具体实施例,所述根密钥包括根私钥和根公钥,所述由所述根种子计算得到根密钥和根链码进一步包括:

采用hmac-sha算法对根种子进行计算,得到所述根私钥和所述根链码;

基于所述根私钥,采用非对称算法计算得到所述根公钥。

根据本发明的一个具体实施例,所述hmac-sha算法包括hmac-sha512、hmac-sha256和hmac-sha128算法中的任一种算法,所述非对称算法包括rsa算法,ecc算法,ecdsa算法,sm2算法和sm9算法中的任一种算法。

根据本发明的一个具体实施例,所述根据所述根密钥和根链码生成密钥树包括:

采用ckd算法(childkeyderivationfunction,或称ckd函数)对所述根密钥和根链码进行计算,得到n对父密钥和父链码;

对所述n对父密钥和父链码重复ckd计算,每对父密钥和父链码得到n对子密钥和子链码;

对所述n对子密钥和子链码重复ckd计算,每对子密钥和子链码得到n对末点密钥和末点链码;

将计算得到的所有密钥和链码生成密钥树。

根据本发明的一个具体实施例,所述获取密钥树节点的公钥地址,并基于所述公钥地址和路径标识创建地址表包括:

对所述密钥树中所有密钥对的公钥进行哈希运算,得到所述公钥的哈希值;

对所述哈希值进行可视化编码,得到ascii码;

将所述ascii码作为所述密钥树节点的公钥地址,并基于所述公钥地址获取所述公钥地址与路径标识的对应关系;

依据所述对应关系建立地址表。根据本发明的一个具体实施例,所述对所述哈希值进行可视化编码包括:

采用base58算法或base64算法对所述哈希值进行可视化编码。

根据本发明的一个具体实施例,所述利用所述原始密钥对计算根私钥、根链码,并结合所述路径标识计算得到业务私钥包括:

采用ckd算法对所述根私钥、根链码以及所述路径标识计算得到业务私钥。

本发明提出的一种区块链hd私钥找回方法,在根私钥未知的情况下,当业务密钥丢失或损毁,可以通过创建的原始密钥计算得到根私钥和根链码,再利用创建的地址表反向查询丢失的业务私钥对应公钥地址的路径标识,基于根私钥,根链码和路径标识可以计算出任一节点的业务密钥,继而找回丢失的业务私钥,如此保证了电子文件与数字资产的安全性。此外,以原始私钥作为密钥对种子制作数据进行种子生成运算,得到具有唯一性的密文作为根种子,保证了后续还原私钥的确定性。

附图说明

图1是根据本发明一实施例的一种区块链私钥找回方法流程图。

图2是根据本发明一实施例的创建原始密钥对方法流程图。

图3是根据本发明一实施例的根密钥和根链码计算方法流程图。

图4是根据本发明一实施例的生成密钥树方法流程图。

图5是根据本发明一实施例的创建地址表方法流程图。

具体实施方式

为了使本领域技术人员更加清楚地理解本发明的概念和思想,以下结合具体实施例详细描述本发明。应理解,本文给出的实施例都只是本发明可能具有的所有实施例的一部分。本领域技术人员在阅读本申请的说明书以后,有能力对下述实施例的部分或整体作出改进、改造、或替换,这些改进、改造、或替换也都包含在本发明要求保护的范围内。

在本文中,术语“第一”、“第二”和其它类似词语并不意在暗示任何顺序、数量和重要性,而是仅仅用于对不同的元件进行区分。在本文中,术语“一”、“一个”和其它类似词语并不意在表示只存在一个所述事物,而是表示有关描述仅仅针对所述事物中的一个,所述事物可能具有一个或多个。在本文中,术语“包含”、“包括”和其它类似词语意在表示逻辑上的相互关系,而不能视作表示空间结构上的关系。例如,“a包括b”意在表示在逻辑上b属于a,而不表示在空间上b位于a的内部。另外,术语“包含”、“包括”和其它类似词语的含义应视为开放性的,而非封闭性的。例如,“a包括b”意在表示b属于a,但是b不一定构成a的全部,a还可能包括c、d、e等其它元素。

在本文中,术语“实施例”、“本实施例”、“一实施例”、“一个实施例”并不表示有关描述仅仅适用于一个特定的实施例,而是表示这些描述还可能适用于另外一个或多个实施例中。本领域技术人员应理解,在本文中,任何针对某一个实施例所做的描述都可以与另外一个或多个实施例中的有关描述进行替代、组合、或者以其它方式结合,所述替代、组合、或者以其它方式结合所产生的新实施例是本领域技术人员能够容易想到的,属于本发明的保护范围。

实施例1

本发明的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施方式的实践了解到。

图1是根据本发明一实施例的一种区块链hd私钥找回方法流程图,如图1所示,所述方法包括以下步骤:

s1:创建原始密钥对。

s2:根据所述原始密钥对计算根种子。

s3:由所述根种子计算得到根密钥和根链码。

s4:根据所述根密钥和根链码生成密钥树。

s5:获取密钥树节点的公钥地址,并基于所述公钥地址和路径标识创建地址表。

s6:基于所述地址表反向查询丢失业务私钥对应公钥的路径标识。

s7:利用所述原始密钥对计算根私钥、根链码,并结合所述路径标识计算得到业务私钥。

具体的,图2是根据本发明一实施例的创建原始密钥对方法流程图,如图2所示,所述步骤s1创建原始密钥对还包括:

s11:采用一个随机数进行哈希运算,生成一个原始种子;

所述随机数指的是带有物理随机噪音因子或/和环境随机噪音因子的真随机数,或密码学安全的伪随机数,在本发明中不做区分。所述原始种子是将随机数经哈希运算,例如hash-256算法生成的种子,所生成的满足一定格式要求的且具有唯一性的数值,用以生成原始密钥。

s12:由所述原始种子经非对称加密算法演算生成原始密钥对,所述原始密钥对包括原始公钥和原始私钥。

将原始种子经非对称加密算法计算生成的原始私钥主要用于找回丢失的业务私钥。原始公钥是由原始私钥经非对称加密算法所生成的公钥,原始公钥无法倒推出原始私钥。

具体的,所述步骤s2根据原始密钥对计算根种子中,根据所述原始密钥对中的原始公钥或者其他选定的任何数据,称之为“种子制作数据”,进行加密运算,得到所述根种子,其中所述加密运算包括hmac加密算法、加盐哈希加密算法、对称加密算法或非对称加密算法中的任一算法。

具体的,图3是根据本发明一实施例的根密钥和根链码计算方法流程图,如图3所示,步骤s3由所述根种子计算得到根密钥和根链码包括:

s31:采用hmac-sha算法对根种子进行计算,得到所述根私钥和所述根链码。

由根种子经hmac-sha算法生成哈希值,哈希值的前半部为根私钥,后半部为根链码。

所述hmac-sha算法包括但不限于hmac-sha512、hmac-sha256和hmac-sha128算法。

s32:基于所述根私钥,采用非对称算法计算得到所述根公钥。

由根私钥经非对称算法生成根公钥,所述非对称算法包括但不限于rsa算法,ecc算法,ecdsa算法,sm2算法和sm9算法。

具体的,图4是根据本发明一实施例的生成密钥树方法流程图,如图4所示,步骤s4根据所述根密钥和根链码生成密钥树包括:

s41:采用ckd算法对所述根密钥和根链码进行计算,得到n对父密钥和父链码。

s42:对所述n对父密钥和父链码重复ckd计算,每对父密钥和父链码得到n对子密钥和子链码。

s43:对所述n对子密钥和子链码重复ckd计算,每对子密钥和子链码得到n对末点密钥和末点链码。

s44:将计算得到的所有密钥和链码生成密钥树。

由根密钥与根链码经ckd算法可扩展生成n对子密钥与子链码,其中n=2^n,n一般为32,再由子密钥和子链码重复上述算法扩展出下一级的子密钥和子链码,如此重复d次,最终产生一棵深度为d的密钥树,每一级都包含n对子密钥,其树根即为根密钥,每对密钥都对应一个路径标识,换言之,由根密钥对、根链码与路径标识即可定义并计算出唯一的子密钥对与相应的子链码。实务中,密钥树的叶子即为叶子密钥、末点密钥或业务密钥,密钥树的分叉点(包含树根),则为叉点密钥、支点密钥、或管理密钥(依据不同应用场景,也可以作为业务密钥),由管理私钥,管理链码和路径标识则可推算出该管理节点之下的业务密钥,而根私钥,根链码和路径标识则可推算出整棵树(hd结构)中的任何业务密钥与管理密钥。

具体的,图5是根据本发明一实施例的创建地址表方法流程图,如图5所示,步骤s5获取密钥树节点的公钥地址,并基于所述公钥地址和路径标识创建地址表包括:

s51:对所述密钥树中所有密钥对的公钥进行哈希运算,得到所述公钥的哈希值;

s52:对所述哈希值进行可视化编码,得到ascii码,例如采用base58算法或base64算法对所述哈希值进行可视化编码。

s53:将所述ascii码作为所述密钥树节点的公钥地址,并基于所述公钥地址获取所述公钥地址与路径标识的对应关系;

s54:依据所述对应关系建立地址表。

公钥地址(又称为“节点地址”,亦简称“地址”或“账号”)是由公钥经过哈希运算生成哈希值后的可视化ascii编码,以作为业务公钥的外在表现形式,以保护业务公钥的隐私性。虽然业务公钥在一定程度上是公开的,但仅是对利害相关人公开,而非对无关人员公开,由于哈希值是不可视的二进制,所以一般会对其进行可视化编码运算,本发明实施例采用base58或base64算法进行可视化编码,可视化编码运算是一对一可逆的,也就是说可将二进制输入值转换为可视且唯一的可视化ascii输出值,并且由输出值可以还原输入值。

具体的,步骤s6基于所述地址表获取丢失业务私钥对应公钥的路径标识,由于路径标识对用户而言是隐性的,用户所见到的是地址,所以用户需要通过查询地址表,从地址反向查找对应的路径标识。

具体的,步骤s7利用所述原始密钥计算根私钥、根链码再与所述路径标识计算得到所述业务私钥。本发明实施例采用ckd算法对所述根私钥、根链码以及所述路径标识计算得到业务私钥。

综上所述,本发明通过创建的原始私钥计算出根种子,再由根种子计算出根私钥与根链码,通过创建地址表反向查询路径标识,再由根私钥与根链码以及路径标识计算出业务私钥,如此保证了电子文件与数字资产的安全性。此外,以原始私钥作为密钥对种子制作数据进行种子生成运算,得到具有唯一性的密文,保证了后续还原私钥的确定性。

以上结合具体实施方式(包括实施例和实例)详细描述了本发明的概念、原理和思想。本领域技术人员应理解,本发明的实施方式不止上文给出的这几种形式,本领域技术人员在阅读本申请文件以后,可以对上述实施方式中的步骤、方法、装置、部件做出任何可能的改进、替换和等同形式,这些改进、替换和等同形式应视为落入在本发明的范围内。本发明的保护范围仅以权利要求书为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1