CN114760054A - 基于数字钱包的密钥管理方法、装置及存储介质 - Google Patents
基于数字钱包的密钥管理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114760054A CN114760054A CN202210663819.0A CN202210663819A CN114760054A CN 114760054 A CN114760054 A CN 114760054A CN 202210663819 A CN202210663819 A CN 202210663819A CN 114760054 A CN114760054 A CN 114760054A
- Authority
- CN
- China
- Prior art keywords
- seed
- seeds
- key
- generate
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Computer Networks & Wireless Communication (AREA)
- Pure & Applied Mathematics (AREA)
- Signal Processing (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种基于数字钱包的密钥管理方法、装置及存储介质,该方法包括:通过随机数发生器获取随机数;根据随机数生成助记词;通过密钥导出函数,将助记词转化为根种子;对根种子及获取的第一索引值进行单向哈希处理,生成子种子及第一子链码;将子种子、子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,生成种子树;将种子树通过分层确定性钱包方法,生成数字钱包的密钥对;输出数字钱包的密钥对,在对数字钱包的密钥进行管理时,由于种子树上所有非根节点均可以从根种子推算出来,因此只需备份根种子,即可以只传递根种子或者指定种子树的一个或几个节点,从而使得私钥转移更加灵活,可以部分转移私钥。
Description
技术领域
本发明实施例涉及数字钱包技术领域,特别涉及一种基于数字钱包的密钥管理方法、装置及存储介质。
背景技术
在数字资产世界,数字钱包是密钥(包括私钥和公钥)的管理容器,用户使用私钥进行交易签名,从而证明用户拥有对该交易的输出权,需要注意的是数字钱包并不包含数字货币,数字货币是保存在区块链上的。
分层确定性钱包是指使用分层确定性地址机制的电子钱包。分层确定性钱包生成方法如图1所示,基于椭圆曲线密码学机制,分层确定性钱包通过种子来生成主私钥,然后派生海量的子私钥和地址,得到用一个种子(或助记词)管理无数多密钥的方法。
虽然确定性钱包中的所有密钥都是通过种子计算得到,可以无需备份所有密钥,只需要备份种子就足够让钱包输入输出,即很容易让用户的私钥在钱包之间转移。但是问题是缺乏灵活性,无法部分转移私钥。
因此,现有技术有待进一步改进。
发明内容
为了解决上述问题,本申请实施例提供了一种基于数字钱包的密钥管理方法、装置及存储介质。
在其中一个实施例中,一种基于数字钱包的密钥管理方法,该方法包括:
通过随机数发生器获取随机数;
根据所述随机数生成助记词;
通过密钥导出函数,将所述助记词转化为根种子;
对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及第一子链码;
将所述子种子、所述子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,生成种子树;
将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对;
输出所述数字钱包的密钥对。
在其中一个实施例中,所述对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及子链码的步骤包括:
对所述根种子及所述第一索引值进行单向哈希处理,生成n位的第一随机值;
取所述第一随机值中的前m位作为所述子种子,其中,m小于n;
取所述第一随机值的后n-m位作为所述第一子链码。
在其中一个实施例中,所述将所述子种子、所述第一子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码的步骤,包括:
将所述子种子、所述第一子链码及所述第二索引值进行单向哈希计算,得到n位的第二随机值;
取所述第二随机值中的前m位作为所述孙种子,其中,m小于n;
取所述第二随机值的后n-m位作为所述孙链码。
在其中一个实施例中,所述的基于数字钱包的密钥管理方法对所述根种子进行备份管理。
在其中一个实施例中,所述将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对的步骤,包括:
将所述种子树中的各种子进行单向哈希处理,生成n位的随机值A;
取所述随机值A的前m位作为数字钱包的主私钥,其中,m小于n;
将所述主私钥通过椭圆曲线加密算法计算,得到主公钥;
取所述随机值A的后n-m位作为主链码。
在其中一个实施例中,所述将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对的步骤,还包括:
根据所述主公钥、所述主链码及获取的对应索引值,生成子公钥及第二子链码。
在其中一个实施例中,所述根据所述主公钥、所述主链码及获取的对应索引值,生成子公钥及第二子链码的步骤,还包括:
将所述主公钥、所述主链码及所述对应索引值进行单向哈希计算,生成n位的随机值B;
将所述随机值B的前m位和所述主公钥相加生成所述子公钥;
取所述随机值B的后n-m位作为第二子链码。
在一个实施例中,提供一种基于数字钱包的密钥管理装置,该装置包括:
随机数生成模块,用于通过随机数发生器获取随机数;
助记词生成模块,用于根据所述随机数生成助记词;
转化模块,用于通过密钥导出函数,将所述助记词转化为根种子;
第一生成模块,用于对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及子链码;
第二生成模块,用于将所述子种子、所述子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,生成种子树;
分层确定性模块,用于将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对;
输出模块,用于输出所述数字钱包的密钥对。
在其中一个实施例中,提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一实施例中所述方法的步骤。
在其中一个实施例中,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一实施例中所述的方法的步骤。
上述基于数字钱包的密钥管理方法、装置、计算机设备及存储介质,通过对根种子进行单向哈希计算,生成子种子;对子种子进行单向哈希计算,生成孙种子,依次类推,生成种子树;再对种子树中的各种子按照分层确定性钱方法生成密钥。如此,在对数字钱包的密钥进行管理时,由于种子树上所有非根节点均可以从根种子推算出来,因此只需备份根种子。当需要时可以从根种子恢复所有种子节点,再由种子生成分层密钥对;或者可以指定需要恢复的某个节点,只需要恢复从根种子到该节点路径上的种子,计算出该节点,再由该节点计算分层密钥对。即在进行密钥迁移时,可以只传递根种子或者指定种子树的一个或几个节点,从而使得私钥转移更加灵活,可以部分转移私钥。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
一个或多个实施例中通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件/模块和步骤表示为类似的元件/模块和步骤,除非有特别申明,附图中的图不构成比例限制。
图1是现有技术中分层确定性钱包生成方法的结构示意图;
图2是本发明一个实施例中的一种基于数字钱包的密钥管理方法流程示意图;
图3是本发明一个实施例中的子种子生成流程示意图;
图4是本发明一个实施例中的一种基于数字钱包的密钥管理方法流程结构框图;
图5是本发明一个实施例中的孙种子生成流程示意图;
图6是本发明一个实施例中的孙种子生成流程结构框图;
图7是本发明一个实施例中的主密钥生成流程示意图;
图8是本发明一个实施例中的子密钥生成流程示意图;
图9是本发明一个实施例中计算机设备的内部结构图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
第一方面
提供一种基于数字钱包的密钥管理方法,该方法包括:
通过随机数发生器获取随机数;
根据所述随机数生成助记词;
通过密钥导出函数,将所述助记词转化为根种子;
对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及第一子链码;
将所述子种子、所述第一子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,生成种子树;
将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对;
输出所述数字钱包的密钥对。
上述基于数字钱包的密钥管理方法、装置、计算机设备及存储介质,通过对根种子进行单向哈希计算,生成子种子;对子种子进行单向哈希计算,生成孙种子,依次类推,生成种子树;再基于种子树中的各种子按照分层确定性钱方法生成密钥。如此,在对数字钱包的密钥进行管理时,由于种子树上所有非根节点均可以从根种子推算出来,因此只需备份根种子。当需要时可以从根种子恢复所有种子节点,再由种子生成分层密钥对;或者可以指定需要恢复的某个节点,只需要恢复从根种子到该节点路径上的种子,计算出该节点,再由该节点计算分层密钥对。即在进行密钥迁移时,可以只传递根种子或者指定种子树的一个或几个节点,从而使得私钥转移更加灵活,可以部分转移私钥。
如图2所示,在其一个实施例中,提供一种基于数字钱包的密钥管理方法,该方法包括:
S100,通过随机数发生器获取随机数;
具体的,该随机数发生器可以是基于密码学安全的伪随机数发生器,例如,通过使用基于密码学安全的伪随机数发生器生成随机数。
S200,根据所述随机数生成助记词;
具体的,助记词是明文私钥的另一种表现形式,在一个实施例中,可以将随机数通过BIP39协议生成助记词。例如,终端APP首先需要通过随机数发生器生成128位的随机序列,随后将该熵值通过SHA256函数进行哈希并将哈希值的前四位作为校验值添加到随机序列的后面。将新的132位的序列按每11位进行划分,可以得到12个子序列。将该子序列和预先定义的字典进行映射,得到的单词序列就是助记词。
S300,通过密钥导出函数,将所述助记词转化为根种子;
具体的,在密码学中,密钥导出函数使用伪随机函数从秘密值导出一个或多个密钥。例如:该密钥导出函数可以为PBKDF2密钥导出函数,即通过PBKDF2函数将所述助记词转化为根种子。
S400,对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及第一子链码;
具体的,根种子是一个基本值,从中可以创建许多密钥和地址。属于整个分层确定性钱包的密钥可以通过根种子来恢复。而在本申请中,根种子不仅可以创建许多密钥和地址,也通过对根种子及获取的第一索引值进行单向哈希计算,生成子种子,再根据子种子生成孙种子,进而生成种子树。即种子树中除根种子外的所有种子都直接或间接从根种子生成。
具体的,第一索引值可以记为索引A,在一实施例中,如图3及图4所示,对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及第一子链码的步骤包括:
S410,对所述根种子及所述第一索引值进行单向哈希处理,生成n位的第一随机值;具体的,单向哈希处理,即采用单向哈希函数进行计算,单向哈希函数是在一个方向上工作的哈希函数,从预映射的值很容易计算其哈希值,通过对根种子进行单向哈希计算可以生成n位字符长度的随机值。
S420,取所述第一随机值的前m位作为所述子种子,其中,m小于n;具体的,本步骤中是通过根种子获取子种子的过程,即通过父种子获取子种子,其中,第一随机值的前m位是指从第一随机值左边m位得到子种子。
S430,取所述第一随机值的后n-m位作为所述第一子链码。具体的,所述第一随机值的后n-m位是指第一随机值的右边n-m位。
S500,将所述子种子、所述第一子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,生成种子树;
具体的,本实施例中,通过将所述子种子、所述第一子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,即在种子树生成的过程中,下级种子及下级链码由上级种子、上级链码及一索引值生成。其中,本实施例中的下级也可以称为下层,上级也可以成为上层。换句话说,子种子可以作为下一层种子的父种子。
具体的,第二索引值可以记为索引值B。在一实施例中,如图5及图6所示,所述将所述子种子、所述第一子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码的步骤,包括:
S510,将所述子种子、所述第一子链码及所述第二索引值进行单向哈希计算,得到n位第二随机值;
S520,取所述第二随机值中的前m位作为所述孙种子,其中,m小于n;
S530,取所述第二随机值的后n-m位作为所述孙链码。
为了便于各种子的识别,在一个实施例中,根据第一索引值及第二索引值识别种子的节点。例如,第一索引值记为索引A,第二索引值记为索引B,如果A/B=0/0,标识生成节点是根种子的第1个子种子的第1个孙种子,如果A/B=1/2,标识生成节点是根种子的第2个子种子的第3个孙种子。
S600,将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对。
具体的,分层确定性钱包是指使用分层确定性地址机制的电子钱包。基于椭圆曲线密码学机制,分层确定性钱包通过种子来生成主私钥,然后派生海量的子私钥和地址,得到用一个种子(或助记词)管理无数多密钥的方法。本实施例中,是通过对种子树中各节点的种子分别进行分层确定性钱包方法进行处理,生成数字钱包的密钥对。该密钥对包括主私钥,主公钥,子私钥,子公钥等。
具体的,种子树上所有非根节点均可以从根种子推算出来,因此只需备份根种子。当需要时可以从根种子恢复所有种子节点,再由种子生成分层密钥对;或者可以指定需要恢复的某个节点,只需要恢复从根种子到该节点路径上的种子,计算出该节点,再由该节点计算分层密钥对;在进行密钥迁移时,可以只传递根种子或者指定种子树的一个或几个节点,从而使得私钥转移更加灵活,可以部分转移私钥。
S700,输出所述数字钱包的密钥对。
上述基于数字钱包的密钥管理方法、装置、计算机设备及存储介质,通过对根种子进行单向哈希计算,生成子种子;对子种子进行单向哈希计算,生成孙种子,依次类推,生成种子树;再对种子树中的各种子按照分层确定性钱方法生成密钥。如此,在对数字钱包的密钥进行管理时,由于种子树上所有非根节点均可以从根种子推算出来,因此只需备份根种子。当需要时可以从根种子恢复所有种子节点,再由种子生成分层密钥对;或者可以指定需要恢复的某个节点,只需要恢复从根种子到该节点路径上的种子,计算出该节点,再由该节点计算分层密钥对。即在进行密钥迁移时,可以只传递根种子或者指定种子树的一个或几个节点,从而使得私钥转移更加灵活,可以部分转移私钥。
在一个实施例中,所述的基于数字钱包的密钥管理方法还包括:对所述根种子进行备份管理。
具体的,种子树上所有非根节点均可以从根种子推算出来,因此只需备份根种子。当需要时可以从根种子恢复所有种子节点,再由种子生成分层密钥对;或者可以指定需要恢复的某个节点,只需要恢复从根种子到该节点路径上的种子,计算出该节点,再由该节点计算分层密钥对;在进行密钥迁移时,可以只传递根种子或者指定种子树的一个或几个节点。
请参阅图7,在其中一个实施例中,所述将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对的步骤,包括:
将所述种子树中的各种子进行单向哈希处理,生成n位的随机值A;
取所述随机值A的前m位作为数字钱包的主私钥,其中,m小于n;
将所述主私钥通过椭圆曲线加密算法计算,得到主公钥;
取所述随机值A的后n-m位作为主链码。
具体的,上述实施例中,数字钱包的公钥和地址生成都依赖于私钥,私钥代表了用户对数字钱包的所有权。且这种根据随机种子按确定规则生成一系列的私钥、公钥对构成钱包的方式就叫做种子钱包(Seeded Wallet)或确定性钱包(Deterministic Wallet)。一个数字钱包可以作为DID(Decentralized Identifiers,去中心化身份标识)的容器,同时还可以作为DID的用户代理工具,管理DID的密钥,帮助生成DID,管理数据和许可,签署/验证DID相关声明。
在其中一个实施例中,所述将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对的步骤,还包括:
根据所述主公钥、所述主链码及获取的对应索引值,生成子公钥及第二子链码。
请参阅图8,在其中一个实施例中,所述根据所述主公钥、所述主链码及所述对应索引值,生成子公钥及第二子链码的步骤,还包括:
将所述主公钥、所述主链码及所述对应索引值进行单向哈希计算,生成n位的随机值B;
将所述随机值B的前m位和所述主公钥相加生成所述子公钥;
取所述随机值B的后n-m位作为第二子链码。
具体的,以主公钥、主链码和索引值为单向哈希计算算法的输入(如HMAC-SHA512)生成n位随机哈希值,用其左边m位和主公钥相加生成子公钥,右边n-m位生成子链码。需说明的是,子公钥又可以作为下一层的父公钥,进行单向哈希计算生成下层公钥。
具体的,通过公钥计算得到分布式身份标识符(DID),DID文档包含了DID标识、用户公钥信息、VC服务接口的Json文件,一般存储在区块链上供用户验证。
上述实施例中,可以生成层次化DID,即通过父密钥生成子密钥,且一个数字钱包中只保存一个DID。数字钱包与DID绑定过程如下:用户生成DID,采用的是钱包的私钥。同时生成DID文档,包含DID标识、用户公钥信息、VC服务接口的Json文件,DID文档生成完成后,然后将DID标识作为key,DID文档作为值分别存储于区块链上。
具体的,上述实施例中,一个数字钱包可以作为DID的容器,同时还可以作为DID的用户代理工具,管理DID的密钥,帮助生成DID,管理数据和许可,签署/验证DID相关声明。传统DID的密钥随机产生,一个实体如果有多个DID则需要保存多个DID的副本,且各个DID之间不关联。而本实施例中通过使用钱包的密钥作为主密钥,通过算法生成彼此关联的DID密钥。因此使实体可以通过主私钥对所有钱包内的DID进行备份、导入/出、迁移操作。
第二实施例
本实施例提供一种基于数字钱包的密钥管理装置,
在其中一个实施例中,提供一种基于数字钱包的密钥管理装置,所述基于数字钱包的密钥管理装置采用上述任一实施例所述基于数字钱包的密钥管理方法实现。在其中一个实施例中,所述基于数字钱包的密钥管理装置包括用于实现所述基于数字钱包的密钥管理方法各步骤的相应模块。
在其中一个实施例中,提供一种基于数字钱包的密钥管理装置,该装置包括:
随机数生成模块,用于通过随机数发生器获取随机数;
助记词生成模块,用于根据所述随机数生成助记词;
转化模块,用于通过密钥导出函数,将所述助记词转化为根种子;
第一生成模块,用于对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及子链码;
第二生成模块,用于将所述子种子、所述子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,生成种子树;
分层确定性模块,用于将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对;
输出模块,用于输出所述数字钱包的密钥对。
上述基于数字钱包的密钥管理装置,通过对根种子进行单向哈希计算,生成子种子;对子种子进行单向哈希计算,生成孙种子,依次类推,生成种子树;再对种子树中的各种子按照分层确定性钱包方法生成密钥。如此,在对数字钱包的密钥进行管理时,由于种子树上所有非根节点均可以从根种子推算出来,因此只需备份根种子。当需要时可以从根种子恢复所有种子节点,再由种子生成分层密钥对;或者可以指定需要恢复的某个节点,只需要恢复从根种子到该节点路径上的种子,计算出该节点,再由该节点计算分层密钥对。即在进行密钥迁移时,可以只传递根种子或者指定种子树的一个或几个节点,从而使得私钥转移更加灵活,可以部分转移私钥。
第三实施例
本实施例中,提供了一种计算机设备,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于数字钱包的密钥管理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施例中,提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例中所述基于数字钱包的密钥管理方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过随机数发生器获取随机数;
根据所述随机数生成助记词;
通过密钥导出函数,将所述助记词转化为根种子;
对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及第一子链码;
将所述子种子、所述子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,生成种子树;
将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对;
输出所述数字钱包的密钥对。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:
对所述根种子及所述第一索引值进行单向哈希处理,生成n位的第一随机值;
取所述第一随机值中的前m位作为所述子种子,其中,m小于n;
取所述第一随机值的后n-m位作为所述第一子链码。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:
将所述子种子、所述第一子链码及所述第二索引值进行单向哈希计算,得到n位的第二随机值;
取所述第二随机值中的前m位作为所述孙种子,其中,m小于n;
取所述第二随机值的后n-m位作为所述孙链码。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:
对所述根种子进行备份管理。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:
将所述种子树中的各种子进行单向哈希处理,生成n位的随机值A;
取所述随机值A的前m位作为数字钱包的主私钥,其中,m小于n;
将所述主私钥通过椭圆曲线加密算法计算,得到主公钥;
取所述随机值A的后n-m位作为主链码。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据所述主公钥、所述主链码及获取的对应索引值,生成子公钥及第二子链码。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:
将所述主公钥、所述主链码及所述对应索引值进行单向哈希计算,生成n位的随机值B;
将所述随机值B的前m位和所述主公钥相加生成所述子公钥;
取所述随机值B的后n-m位作为第二子链码。
第四实施例
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例中所述基于数字钱包的密钥管理方法的步骤。
在其中一个实施例中,提供一种计算机可读存储介质,其上存储有计算机程序,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过随机数发生器获取随机数;
根据所述随机数生成助记词;
通过密钥导出函数,将所述助记词转化为根种子;
对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及第一子链码;
将所述子种子、所述子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,生成种子树;
将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对;
输出所述数字钱包的密钥对。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对所述根种子及所述第一索引值进行单向哈希处理,生成n位的第一随机值;
取所述第一随机值中的前m位作为所述子种子,其中,m小于n;
取所述第一随机值的后n-m位作为所述第一子链码。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将所述子种子、所述第一子链码及所述第二索引值进行单向哈希计算,得到n位的第二随机值;
取所述第二随机值中的前m位作为所述孙种子,其中,m小于n;
取所述第二随机值的后n-m位作为所述孙链码。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:对所述根种子进行备份管理。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将所述种子树中的各种子进行单向哈希处理,生成n位的随机值A;
取所述随机值A的前m位作为数字钱包的主私钥,其中,m小于n;
将所述主私钥通过椭圆曲线加密算法计算,得到主公钥;
取所述随机值A的后n-m位作为主链码。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据所述主公钥、所述主链码及获取的对应索引值,生成子公钥及第二子链码。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:将所述主公钥、所述主链码及所述对应索引值进行单向哈希计算,生成n位的随机值B;
将所述随机值B的前m位和所述主公钥相加生成所述子公钥;
取所述随机值B的后n-m位作为第二子链码。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于数字钱包的密钥管理方法,其特征在于,包括:
通过随机数发生器获取随机数;
根据所述随机数生成助记词;
通过密钥导出函数,将所述助记词转化为根种子;
对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及第一子链码;
将所述子种子、所述子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,生成种子树;
将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对;
输出所述数字钱包的密钥对。
2.根据权利要求1所述的基于数字钱包的密钥管理方法,其特征在于,所述对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及子链码的步骤包括:
对所述根种子及所述第一索引值进行单向哈希处理,生成n位的第一随机值;
取所述第一随机值中的前m位作为所述子种子,其中,m小于n;
取所述第一随机值的后n-m位作为所述第一子链码。
3.根据权利要求1所述的基于数字钱包的密钥管理方法,其特征在于,所述将所述子种子、所述第一子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码的步骤,包括:
将所述子种子、所述第一子链码及所述第二索引值进行单向哈希计算,得到n位的第二随机值;
取所述第二随机值中的前m位作为所述孙种子,其中,m小于n;
取所述第二随机值的后n-m位作为所述孙链码。
4.根据权利要求1所述的基于数字钱包的密钥管理方法,其特征在于,还包括:对所述根种子进行备份管理。
5.根据权利要求1所述的基于数字钱包的密钥管理方法,其特征在于,所述将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对的步骤,包括:
将所述种子树中的各种子进行单向哈希处理,生成n位的随机值A;
取所述随机值A的前m位作为数字钱包的主私钥,其中,m小于n;
将所述主私钥通过椭圆曲线加密算法计算,得到主公钥;
取所述随机值A的后n-m位作为主链码。
6.根据权利要求5所述的基于数字钱包的密钥管理方法,其特征在于,所述将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对的步骤,还包括:
根据所述主公钥、所述主链码及获取的对应索引值,生成子公钥及第二子链码。
7.根据权利要求6所述的基于数字钱包的密钥管理方法,其特征在于,所述根据所述主公钥、所述主链码及所述对应索引值,生成子公钥及第二子链码的步骤,还包括:
将所述主公钥、所述主链码及所述对应索引值进行单向哈希计算,生成n位的随机值B;
将所述随机值B的前m位和所述主公钥相加生成所述子公钥;
取所述随机值B的后n-m位作为第二子链码。
8.一种基于数字钱包的密钥管理装置,其特征在于,包括:
随机数生成模块,用于通过随机数发生器获取随机数;
助记词生成模块,用于根据所述随机数生成助记词;
转化模块,用于通过密钥导出函数,将所述助记词转化为根种子;
第一生成模块,用于对所述根种子及获取的第一索引值进行单向哈希处理,生成子种子及子链码;
第二生成模块,用于将所述子种子、所述子链码及获取的第二索引值进行单向哈希计算,生成孙种子及孙链码,依次类推,生成种子树;
分层确定性模块,用于将所述种子树通过分层确定性钱包方法,生成数字钱包的密钥对;
输出模块,用于输出所述数字钱包的密钥对。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210663819.0A CN114760054A (zh) | 2022-06-14 | 2022-06-14 | 基于数字钱包的密钥管理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210663819.0A CN114760054A (zh) | 2022-06-14 | 2022-06-14 | 基于数字钱包的密钥管理方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114760054A true CN114760054A (zh) | 2022-07-15 |
Family
ID=82336927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210663819.0A Pending CN114760054A (zh) | 2022-06-14 | 2022-06-14 | 基于数字钱包的密钥管理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114760054A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115147111A (zh) * | 2022-09-02 | 2022-10-04 | 杭州弦冰科技有限公司 | 密钥生成方法以及装置、电子设备、存储介质 |
CN116384999A (zh) * | 2023-04-19 | 2023-07-04 | 北方工业大学 | 轻量级支持隐形地址的分层确定性钱包模型及方法 |
CN117611158A (zh) * | 2024-01-23 | 2024-02-27 | 山东大学 | 一种基于分组密码算法的电子钱包生成方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411506A (zh) * | 2016-08-31 | 2017-02-15 | 飞天诚信科技股份有限公司 | 适用于数字货币的密钥派生方法及装置 |
US20180183774A1 (en) * | 2016-12-23 | 2018-06-28 | Amazon Technologies, Inc. | Key distribution in a distributed computing environment |
CN110569291A (zh) * | 2019-09-16 | 2019-12-13 | 东信和平科技股份有限公司 | 一种数字货币钱包的密钥数据查询获取方法及装置 |
CN110930145A (zh) * | 2020-02-04 | 2020-03-27 | 江苏恒宝智能系统技术有限公司 | 冷钱包生成方法、交易信息处理方法、设备及存储介质 |
CN112769567A (zh) * | 2021-01-19 | 2021-05-07 | 北京枫玉科技有限公司 | 一种区块链hd私钥找回方法 |
CN114039726A (zh) * | 2021-11-08 | 2022-02-11 | 腾讯科技(深圳)有限公司 | 一种密钥生成的方法、密钥获取的方法、相关装置及介质 |
-
2022
- 2022-06-14 CN CN202210663819.0A patent/CN114760054A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411506A (zh) * | 2016-08-31 | 2017-02-15 | 飞天诚信科技股份有限公司 | 适用于数字货币的密钥派生方法及装置 |
US20180183774A1 (en) * | 2016-12-23 | 2018-06-28 | Amazon Technologies, Inc. | Key distribution in a distributed computing environment |
CN110569291A (zh) * | 2019-09-16 | 2019-12-13 | 东信和平科技股份有限公司 | 一种数字货币钱包的密钥数据查询获取方法及装置 |
CN110930145A (zh) * | 2020-02-04 | 2020-03-27 | 江苏恒宝智能系统技术有限公司 | 冷钱包生成方法、交易信息处理方法、设备及存储介质 |
CN112769567A (zh) * | 2021-01-19 | 2021-05-07 | 北京枫玉科技有限公司 | 一种区块链hd私钥找回方法 |
CN114039726A (zh) * | 2021-11-08 | 2022-02-11 | 腾讯科技(深圳)有限公司 | 一种密钥生成的方法、密钥获取的方法、相关装置及介质 |
Non-Patent Citations (1)
Title |
---|
李杰等: "一种基于中文助记词的椭圆曲线密钥生成方案", 《内蒙古工业大学学报(自然科学版)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115147111A (zh) * | 2022-09-02 | 2022-10-04 | 杭州弦冰科技有限公司 | 密钥生成方法以及装置、电子设备、存储介质 |
CN116384999A (zh) * | 2023-04-19 | 2023-07-04 | 北方工业大学 | 轻量级支持隐形地址的分层确定性钱包模型及方法 |
CN117611158A (zh) * | 2024-01-23 | 2024-02-27 | 山东大学 | 一种基于分组密码算法的电子钱包生成方法及系统 |
CN117611158B (zh) * | 2024-01-23 | 2024-04-30 | 山东大学 | 一种基于分组密码算法的电子钱包生成方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11764947B2 (en) | Systems and methods for storage, generation and verification of tokens used to control access to a resource | |
JP7472338B2 (ja) | ブロックチェーンにおける擬似乱数生成 | |
CN114760054A (zh) | 基于数字钱包的密钥管理方法、装置及存储介质 | |
US20200177366A1 (en) | Homomorphic data encryption method and apparatus for implementing privacy protection | |
CN110135986B (zh) | 一种基于区块链智能合约实现的可搜索加密文件数据方法 | |
US11775658B2 (en) | Linking encrypted datasets using common identifiers | |
US20140173270A1 (en) | Secret sharing method and system | |
US20200228317A1 (en) | System and method for information protection | |
EP3857814A1 (en) | Computer-implemented system and method for transferring access to digital resource | |
CN112288101A (zh) | 基于联邦学习的gbdt与lr融合方法、装置、设备和存储介质 | |
JP7031682B2 (ja) | 秘密計算装置、システム、方法、プログラム | |
US20150172044A1 (en) | Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof | |
Alkhodaidi et al. | Scalable shares generation to increase participants of counting-based secret sharing technique | |
EP3379408B1 (en) | Updatable random functions | |
CN114862388B (zh) | 基于数字钱包的身份管理方法、计算机设备和存储介质 | |
CN114629663B (zh) | 基于区块链的数字商品交易方法及装置 | |
CN112565201B (zh) | 一种区块链中的私钥处理方法、装置及计算机存储介质 | |
JP6885467B2 (ja) | シェア生成装置、シェア変換装置、秘密計算システム、シェア生成方法、シェア変換方法、プログラム、および記録媒体 | |
Krčadinac | Some new designs with prescribed automorphism groups | |
Hinkelmann et al. | A cryptographically t‐private auction system | |
Pandey et al. | Efficient and provably secure intelligent geometrical method of secret key generation for cryptographic applications | |
CN112395624B (zh) | 一种数据处理方法、装置和电子设备 | |
Snegireva | Review of Modern Blockchain Platforms | |
CN115706662A (zh) | 闪电网络的密钥管理方法及装置 | |
WO2020036125A1 (ja) | 秘密強写像計算システム、これらの方法、秘密計算装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220715 |
|
RJ01 | Rejection of invention patent application after publication |