CN111447063B - 一种冷钱包派生密钥的生成方法及装置 - Google Patents
一种冷钱包派生密钥的生成方法及装置 Download PDFInfo
- Publication number
- CN111447063B CN111447063B CN202010401831.5A CN202010401831A CN111447063B CN 111447063 B CN111447063 B CN 111447063B CN 202010401831 A CN202010401831 A CN 202010401831A CN 111447063 B CN111447063 B CN 111447063B
- Authority
- CN
- China
- Prior art keywords
- key
- cold wallet
- root
- factor
- derived
- 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.)
- Active
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
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种冷钱包派生密钥的生成方法及装置,其中,该冷钱包派生密钥的生成方法包括:基于助记词进行熵的推导,得到推导出的熵;对熵进行编码,对编码后的熵进行哈希运算,得到种子;对种子进行编码,基于编码后的种子和预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥;基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥,可以提升生成冷钱包派生密钥的成功率。
Description
技术领域
本发明涉及信息安全技术领域,具体而言,涉及一种冷钱包派生密钥的生成方法及装置。
背景技术
应用于数字货币的冷钱包使用助记词和密钥派生方法进行密钥管理,基于bip39/bip44和bip32规则、助记词以及椭圆曲线算法生成根密钥,以及,基于根密钥派生出不同路径下的子密钥。
但该冷钱包派生密钥的生成方法,由于bip39/bip44和bip32规则是针对于椭圆曲线算法进行设置的,而目前数字货币使用的密钥算法种类繁多,一些密钥算法对于派生得到的密钥,例如私钥有特殊的要求,例如,对于ed25519密钥算法,该密钥算法要求私钥第32字节的第6位必须为0,若基于bip39/bip44和bip32规则以及ed25519密钥算法进行冷钱包派生密钥派生,派生的冷钱包派生密钥中的私钥第32字节的第6位可能不为0,从而使得冷钱包派生密钥派生失败。因而,现有基于bip39/bip44和bip32规则冷钱包派生密钥的生成方法,只能适用于对派生的密钥没有特殊要求的椭圆曲线算法,对于除椭圆曲线算法之外、对派生的密钥有要求的非常规曲线算法,生成的冷钱包派生密钥的成功率较低,使得该方法能够使用的范围较小,不能满足数字货币对多种安全算法的需求。
发明内容
有鉴于此,本发明的目的在于提供冷钱包派生密钥的生成方法及装置,以提高生成的冷钱包派生密钥的成功率。
第一方面,本发明实施例提供了冷钱包派生密钥的生成方法,包括:
基于助记词进行熵的推导,得到推导出的熵;
对熵进行编码,对编码后的熵进行哈希运算,得到种子;
对种子进行编码,利用预设的密钥算法对编码后的种子和以预设规则生成的数据进行运算,得到符合所述密钥算法的要求的根密钥和根链码;
基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到符合所述密钥算法的要求的根密钥和根链码,包括:
利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到初始根密钥和初始根链码;
判断所述初始根密钥是否符合所述密钥算法的要求,若符合,将所述初始根密钥作为所述根密钥,将所述初始根链码作为所述根链码,若不符合,按照所述预设规则得到更新数据,利用所述密钥算法对编码后的种子以及所述更新数据进行运算,得到更新根密钥和更新根链码,直至得到的更新根密钥符合所述密钥算法的要求。
结合第一方面或第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥,包括:
依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥和父链码;
依据所述冷钱包派生密钥的父密钥,父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子;
依据所述冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥,包括:
确定所述密钥索引包含的相对于所述根密钥的目标层级;
依据所述根密钥计算所述根密钥的第一层级的第一密钥,所述第一层级为所述根密钥所在的根层级的下一层级;
判断第一层级是否是所述目标层级,若是,所述根密钥为所述冷钱包派生密钥的父密钥,若不是,依据所述第一密钥计算所述根密钥的第二层级的第二密钥,所述第二层级为所述第一层级的下一层级,直至达到所述目标层级,确定所述目标层级的上一级的密钥为所述冷钱包派生密钥的父密钥。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述依据冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子,包括:
若所述子密钥索引不小于预设的阈值,利用硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子;
若所述子密钥索引小于预设的阈值,利用非硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,
所述依据冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥,包括:
将子密钥因子拆分为对称的子密钥第一因子和子密钥第二因子;
依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度的字节数映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述冷钱包派生密钥包括:派生密钥私钥、派生密钥公钥以及派生密钥链码,所述依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥,包括:
查询密钥字节数与私钥计算公式的映射关系,获取所述预设长度的字节数映射的私钥计算公式,依据所述冷钱包派生密钥的父密钥、子密钥第一因子以及获取的私钥计算公式计算派生密钥私钥;
查询密钥字节数与公钥计算公式的映射关系,获取所述预设长度的字节数映射的公钥计算公式,依据所述冷钱包派生密钥的父密钥、子密钥第一因子以及获取的公钥计算公式计算派生密钥公钥;以及,
查询密钥字节数与链码计算公式的映射关系,获取所述预设长度的字节数映射的链码计算公式,依据子密钥第二因子以及获取的链码计算公式计算派生密钥链码。
第二方面,本发明实施例还提供了一种冷钱包派生密钥的生成装置,包括:
熵值获取模块,用于基于助记词进行熵的推导,得到推导出的熵;
种子获取模块,用于对熵进行编码,对编码后的熵进行哈希运算,得到种子;
根密钥获取模块,用于对种子进行编码,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥;
派生密钥获取模块,用于基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述根密钥获取模块包括:
运算单元,用于利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到初始根密钥和初始根链码;
密钥处理单元,用于判断所述初始根密钥是否符合所述密钥算法的要求,若符合,将所述初始根密钥作为所述根密钥,将所述初始根链码作为所述根链码,若不符合,按照所述预设规则得到更新数据,利用所述密钥算法对编码后的种子以及所述更新数据进行运算,得到更新根密钥和更新根链码,直至得到的更新根密钥符合所述密钥算法的要求。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述派生密钥获取模块包括:
父密钥获取单元,用于依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥;
子密钥因子计算单元,用于依据所述冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子;
冷钱包派生密钥生成单元,用于依据所述冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥。
结合第二方面的第二种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述冷钱包派生密钥生成单元包括:
子密钥因子拆分子单元,用于将子密钥因子拆分为子密钥第一因子和子密钥第二因子,所述子密钥第一因子和子密钥第二因子的长度等于所述预设长度;
冷钱包派生密钥生成子单元,用于依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度的字节数映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
本发明实施例提供的冷钱包派生密钥的生成的方法及装置,通过基于助记词进行熵的推导,得到推导出的熵;对熵进行编码,对编码后的熵进行哈希运算,得到种子;对种子进行编码,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥;基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。这样,通过对助记词进行处理,并设置按照预设规则编辑的数据,实现密钥算法的输入数据的调整,从而使得利用密钥算法,对变化的数据进行派生得到的冷钱包派生密钥能够符合密钥算法的要求,有效提高了生成的冷钱包派生密钥的成功率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的冷钱包派生密钥的生成方法流程示意图;
图2示出了本发明实施例所提供的冷钱包派生密钥的生成装置结构示意图;
图3为本申请实施例提供的一种计算机设备300的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前基于bip39/bip44和bip32规则的冷钱包派生密钥派生方法,将基于规则得到的助记词以及一预设数据作为密钥算法的输入,得到一确定的派生密钥,因而,对于派生密钥的私钥有特殊要求的密钥算法,派生得到满足特殊要求的私钥的成功率较低,因而,不能应用于目前数字货币广泛使用的密钥算法,其能够应用的范围较小,不能满足数字货币对多种安全密钥算法的需求。本发明实施例中,对bip39/bip44和bip32规则进行更新,并利用更新数据作为密钥算法的输入数据,使之在利用密钥算法派生得到冷钱包派生密钥不符合密钥算法的要求后,自动调整输入密钥算法的数据,直至在利用密钥算法派生得到的冷钱包派生密钥符合密钥算法的要求,能适用于对于派生的冷钱包派生密钥(例如,私钥)有特殊要求的密钥算法,从而满足数字货币对多种安全密钥算法的需求。
本发明实施例提供了一种冷钱包派生密钥的生成方法及装置,下面通过实施例进行描述。
图1示出了本发明实施例所提供的冷钱包派生密钥的生成方法流程示意图。如图1所示,该方法包括:
步骤101,基于助记词进行熵的推导,得到推导出的熵;
本发明实施例中,基于bip39规则生成助记词的过程如下:生成位数为32的倍数的随机数,该随机数称之为熵;取熵哈希后的前n位作为校验和,其中,n为熵的位数与32的商;将校验和添加在熵的末尾,得到新序列;对新序列,按照每11位进行分割,得到11位字节的分割字符串;针对每一分割字符串,与预定义的词库进行匹配,得到该分割字符串对应的单词,依据分割的分割字符串的顺序,将单词顺序排列,得到助记词。
本发明实施例中,从预定义的词库中选取单词组成助记词,基于助记词进行助记词逆变换,得到作为随机数的熵。
步骤102,对熵进行编码,对编码后的熵进行哈希运算,得到种子;
本发明实施例中,利用数字货币的编码格式,对熵进行编码。其中,编码格式包括但不限于:外部数据表示(XDR,eXternal Data Representation)格式、简明二进制对象展现(CBOR,Concise Binary Object Representation)格式、递归长度前缀(RLP,RecursiveLength Prefix)格式等。
步骤103,对种子进行编码,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥和根链码;
本发明实施例中,对种子进行编码,获取按照预设规则生成的数据,利用预设的密钥算法,对编码后的种子以及预设规则生成的数据进行运算,例如,进行摘要运算,从中得到符合所述密钥算法的要求的根密钥和根链码。作为一可选实施例,对种子进行编码的编码格式与对熵的编码格式相同,将编码后的种子作为密钥,将每次按照预设规则生成的数据作为输入数据,利用密钥算法进行运算,得到根密钥和根链码。
本发明实施例中,密钥算法包括但不限于:哈希运算消息认证码(HMAC,Hash-based Message Authentication Code)算法、ed25519算法、椭圆曲线算法、安全哈希算法(SHA,Secure Hash Algorithm)、HMAC-SHA、高级加密标准(AES,Advanced EncryptionStandard)、数字签名算法(DSA,Digital Signature Algorithm)等各类应用于数字货币的算法。
本发明实施例中,以HMAC-SHA为例,密钥算法中哈希的位数取决于冷钱包派生密钥的预设长度,若冷钱包派生密钥的预设长度为32字节,密钥算法使用HMAC-SHA256,若冷钱包派生密钥的预设长度为64字节,则密钥算法使用HMAC-SHA512。
本发明实施例中,作为一可选实施例,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥和根链码,包括:
A11,利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到初始根密钥和初始根链码;
A12,判断所述初始根密钥是否符合所述密钥算法的要求,若符合,将所述初始根密钥作为所述根密钥,将所述初始根链码作为所述根链码,若不符合,执行步骤A13;
本发明实施例中,初始根密钥是否符合密钥算法的要求,是指初始根密钥中的私钥是否符合密钥算法的要求。以ed25519密钥算法为例,ed25519密钥算法中要求私钥第32字节的第6位必须为0,因而,依据ed25519密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,若得到的初始根密钥的第32字节的第6位为0,则满足ed25519密钥算法的要求,若初始根密钥的第32字节的第6位不为0,则需要再重新生成密钥,执行步骤A13。
步骤A13,按照所述预设规则得到更新数据,利用所述密钥算法对编码后的种子以及所述更新数据进行运算,得到更新根密钥和更新根链码,直至得到的更新根密钥符合所述密钥算法的要求。
本发明实施例中,作为一可选实施例,以预设规则生成的数据可以是一串固定字符的ASCII码,预设规则是依次递增,例如,预设规则是依次加1,以预设规则生成的数据为100,在依据该以预设规则生成的数据(100)和编码后的种子得到初始根密钥后,若初始根密钥的第32字节的第6位不为0,则依据预设规则生成更新数据为101,再依据该更新数据(101)和编码后的种子得到更新根密钥后,若更新根密钥的第32字节的第6位不为0,则再依据预设规则对更新数据(101)进行处理,生成另一更新数据为102,如此循环,直至生成的更新根密钥的第32字节的第6位为0,将满足要求的更新根密钥作为根密钥,将更新根链码作为根链码。这样,通过对输入预设密钥算法的数据进行自动更新,依据依次更新的数据计算对应的根密钥,经过多次的数据更新,能够得到符合密钥算法要求的根密钥。
步骤104,基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。
本发明实施例中,作为一可选实施例,基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥,包括:
A21,依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥;
本发明实施例中,作为一可选实施例,依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥,包括:
A211,确定所述密钥索引包含的相对于所述根密钥的目标层级;
本发明实施例中,密钥索引包含有冷钱包派生密钥的路径信息,该密钥索引可以是冷钱包派生密钥的所有者预先设置的,冷钱包派生密钥存储在路径信息中的最后层级,该最后层级的信息对应冷钱包派生密钥在密钥索引中的子密钥索引。其中,根密钥的层级为根层级,根层级的下一层级为第一层级,第一层级的下一层级为第二层级,如此类推。在进行密钥派生时,依据密钥索引确定冷钱包派生密钥在根密钥中的层级,例如,第二层级。
A212,依据所述根密钥计算所述根密钥的第一层级的第一密钥,所述第一层级为所述根密钥所在的根层级的下一层级;
A213,判断第一层级是否是所述目标层级,若是,所述根密钥为所述冷钱包派生密钥的父密钥,若不是,依据所述第一密钥计算所述根密钥的第二层级的第二密钥,所述第二层级为所述第一层级的下一层级,直至达到所述目标层级,确定所述目标层级的上一级的密钥为所述冷钱包派生密钥的父密钥。
本发明实施例中,若目标层级为第一层级,冷钱包派生密钥的父密钥为根密钥,若目标层级为根密钥下的其它层级,冷钱包派生密钥的父密钥为上一层级的密钥。冷钱包派生密钥的父链码与冷钱包派生密钥的父密钥计算方式相类似,在此略去详述。
A22,依据所述冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子;
本发明实施例中,作为一可选实施例,依据冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子,包括:
若所述子密钥索引不小于预设的阈值,利用硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子;
若所述子密钥索引小于预设的阈值,利用非硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子。
本发明实施例中,利用硬化衍生算法计算子密钥因子的公式如下:
Z=Fcp(0x00||kP||i)
式中,
Z为子密钥因子;
Fcp为密钥算法,例如,HMAC-SHA512算法,密钥为cp;本发明实施例中,采用的密钥为父链码。
kP为冷钱包派生密钥的父密钥中的父私钥;本发明实施例中,若冷钱包派生密钥为根密钥下的一级派生密钥,父私钥为根密钥中的根私钥,若冷钱包派生密钥为根密钥下的其它级派生密钥,父私钥为该冷钱包派生密钥的上一级密钥中的私钥。例如,冷钱包派生密钥为根密钥下的二级派生密钥(目标层级为第二层级),该二级派生密钥的上一级密钥则为一级派生密钥,一级派生密钥的上一级密钥为根密钥。
i为子密钥索引,为4字节整数;
||为连接符。
本发明实施例中,利用非硬化衍生算法计算子密钥因子的公式如下:
Z=Fcp(0x02||KP||i)
式中,
KP为冷钱包派生密钥的父密钥中的父公钥。
本发明实施例中,作为一可选实施例,预设的阈值为0x80000000,即:若i≥0x80000000,利用硬化衍生算法计算子密钥因子;若i<0x80000000,利用非硬化衍生算法计算子密钥因子。
A23,依据所述冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥。
本发明实施例中,冷钱包派生密钥包括:派生密钥私钥、派生密钥公钥以及派生密钥链码,作为一可选实施例,依据冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥,包括:
A231,将子密钥因子拆分为子密钥第一因子和子密钥第二因子,所述子密钥第一因子和子密钥第二因子的长度等于所述预设长度;
本发明实施例中,子密钥因子为64字节的序列,若冷钱包派生密钥的预设长度为32字节,则将子密钥因子拆分为两个32字节的子密钥第一因子和子密钥第二因子。作为一可选实施例,将子密钥因子拆分为左右对称的两个32字节的子密钥第一因子和子密钥第二因子,作为另一可选实施例,也可以从子密钥因子的前40或50字节中,选取32字节的子密钥第一因子,以及,从子密钥因子的后40或50字节中,选取32字节的子密钥第二因子,本发明实施例对此不作限定。
A232,依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度的字节数映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥。
本发明实施例中,密钥计算公式包括:公钥计算公式、私钥计算公式以及链码计算公式,依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥,包括:
查询密钥字节数与私钥计算公式的映射关系,获取所述预设长度的字节数映射的私钥计算公式,依据所述冷钱包派生密钥的父密钥、子密钥第一因子以及获取的私钥计算公式计算派生密钥私钥;
查询密钥字节数与公钥计算公式的映射关系,获取所述预设长度的字节数映射的公钥计算公式,依据所述冷钱包派生密钥的父密钥、子密钥第一因子以及获取的公钥计算公式计算派生密钥公钥;以及,
查询密钥字节数与链码计算公式的映射关系,获取所述预设长度的字节数映射的链码计算公式,依据子密钥第二因子以及获取的链码计算公式计算派生密钥链码。
本发明实施例中,如果冷钱包派生密钥(私钥)的预设长度的字节数为32字节,则依据下式计算派生密钥私钥:
k=ZL+kP(modn)
式中,
k为派生密钥私钥;
ZL为按照密钥算法映射的子密钥第一因子处理策略,对子密钥第一因子进行对应处理后得到的子密钥左侧处理因子;
n为预设椭圆曲线的基点的阶。
本发明实施例中,对于私钥无具体要求的密钥算法,子密钥左侧处理因子为子密钥第一因子;对于私钥有具体要求的密钥算法,需要对子密钥第一因子进行相应处理,得到子密钥左侧处理因子。例如,对于ed25519密钥算法,要求私钥第32字节的第6位为0,由于ed25519要求私钥是小端数据,则可以取子密钥第一因子的32字节中的后28字节,前4字节补0,再将补0的该数据整体左移3位,即乘以8,得到子密钥左侧处理因子,依据该子密钥左侧处理因子以及预设长度的字节数映射的密钥计算公式进行派生密钥私钥计算。
本发明实施例中,依据下式计算冷钱包派生密钥中的派生密钥公钥:
K=ZL*G+KP
式中,
K为派生密钥公钥;
G为密钥算法的基点。本发明实施例中,例如,对于密钥算法为椭圆曲线算法,其中,派生密钥私钥k为大数,派生密钥公钥K为椭圆曲线上的点,且满足公式:K=k*G。
本发明实施例中,依据下式计算派生密钥链码:
c=ZR
式中,
c为派生密钥链码;
ZR为子密钥第二因子。
本发明实施例中,如果冷钱包派生密钥(私钥)的预设长度的字节数为64字节,则依据下式计算冷钱包派生密钥中的派生密钥私钥:
kL=ZL+KPL
kR=ZR+KPR(mod2256)
k=kL||kR
式中,
KPL为KP的左32字节;
KPR为KP的右32字节。
依据下式计算派生密钥公钥:
K=ZL*G+KP
依据下式计算派生密钥链码:
cT=Fcp(0x01||kP||i),i≥0x80000000
cT=Fcp(0x03||KP||i),i<0x80000000
c=cT32
式中,
cT为链码;
c为派生密钥链码;
cT32为cT的前32字节或后32字节。
本发明实施例中,作为一可选实施例,派生密钥链码长度为32字节,因而,可取链码的前32字节或者后32字节作为派生密钥链码。
本发明实施例的冷钱包派生密钥的生成方法,基于助记词进行熵的推导,得到推导出的熵;对熵进行编码,对编码后的熵进行哈希运算,得到种子;对种子进行编码,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥;基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。这样,根据数字货币使用的密钥算法的特点以及数据编码特点,设置按照预设规则编辑的数据,实现密钥算法的输入数据的调整,形成的根密钥和子密钥派生规则,从而使得利用密钥算法,对变化的数据进行派生得到的冷钱包派生密钥能够符合密钥算法的要求,有效提高了生成的冷钱包派生密钥的成功率,能够灵活地适用于不同的数字货币对应的冷钱包派生密钥的派生中,有效地扩展了冷钱包派生密钥的应用范围,满足数字货币对多种安全算法的需求。
图2示出了本发明实施例所提供的冷钱包派生密钥的生成装置结构示意图。如图2所示,该生成装置包括:
熵值获取模块201,用于基于助记词进行熵的推导,得到推导出的熵;
本发明实施例中,从预定义的词库中选取单词组成助记词,基于助记词进行助记词逆变换,得到作为随机数的熵。
种子获取模块202,用于对熵进行编码,对编码后的熵进行哈希运算,得到种子;
根密钥获取模块203,用于对种子进行编码,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥;
本发明实施例中,密钥算法包括但不限于:HMAC算法、ed25519算法、椭圆曲线算法、SHA、HMAC-SHA、AES、DSA。作为一可选实施例,根密钥获取模块203包括:
运算单元(图中未示出),用于利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到初始根密钥和初始根链码;
密钥处理单元,用于判断所述初始根密钥是否符合所述密钥算法的要求,若符合,将所述初始根密钥作为所述根密钥,将所述初始根链码作为所述根链码,若不符合,按照所述预设规则得到更新数据,利用所述密钥算法对编码后的种子以及所述更新数据进行运算,得到更新根密钥和更新根链码,直至得到的更新根密钥符合所述密钥算法的要求。
派生密钥获取模块204,用于基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。
本发明实施例中,作为一可选实施例,派生密钥获取模块204包括:
父密钥获取单元(图中未示出),用于依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥;
本发明实施例中,作为一可选实施例,父密钥获取单元包括:
目标层级确定子单元,用于确定所述密钥索引包含的相对于所述根密钥的目标层级;
层级密钥计算子单元,用于依据所述根密钥计算所述根密钥的第一层级的第一密钥,所述第一层级为所述根密钥所在的根层级的下一层级;
父密钥获取子单元,用于判断第一层级是否是所述目标层级,若是,所述根密钥为所述冷钱包派生密钥的父密钥,若不是,依据所述第一密钥计算所述根密钥的第二层级的第二密钥,所述第二层级为所述第一层级的下一层级,直至达到所述目标层级,确定所述目标层级的上一级的密钥为所述冷钱包派生密钥的父密钥。
子密钥因子计算单元,用于依据所述冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子;
本发明实施例中,作为一可选实施例,子密钥因子计算单元包括:
第一子密钥因子计算子单元,若所述子密钥索引不小于预设的阈值,利用硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子;
本发明实施例中,利用硬化衍生算法计算子密钥因子的公式如下:
Z=Fcp(0x00||kP||i)
本发明实施例中,利用非硬化衍生算法计算子密钥因子的公式如下:
Z=Fcp(0x02||KP||i)
第二子密钥因子计算子单元,若所述子密钥索引小于预设的阈值,利用非硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子。
冷钱包派生密钥生成单元,用于依据所述冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥。
本发明实施例中,作为一可选实施例,冷钱包派生密钥生成单元包括:
子密钥因子拆分子单元,用于将子密钥因子拆分为子密钥第一因子和子密钥第二因子,所述子密钥第一因子和子密钥第二因子的长度等于所述预设长度;
冷钱包派生密钥生成子单元,用于依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度的字节数映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥。
本发明实施例中,作为一可选实施例,冷钱包派生密钥包括:派生密钥私钥、派生密钥公钥以及派生密钥链码,冷钱包派生密钥生成子单元具体用于:
查询密钥字节数与私钥计算公式的映射关系,获取所述预设长度的字节数映射的私钥计算公式,依据所述冷钱包派生密钥的父密钥、子密钥第一因子以及获取的私钥计算公式计算派生密钥私钥;
查询密钥字节数与公钥计算公式的映射关系,获取所述预设长度的字节数映射的公钥计算公式,依据所述冷钱包派生密钥的父密钥、子密钥第一因子以及获取的公钥计算公式计算派生密钥公钥;以及,
查询密钥字节数与链码计算公式的映射关系,获取所述预设长度的字节数映射的链码计算公式,依据子密钥第二因子以及获取的链码计算公式计算派生密钥链码。
本发明实施例中,如果冷钱包派生密钥(私钥)的预设长度的字节数为32字节,则依据下式计算冷钱包派生密钥中的派生密钥私钥:
k=ZL+kP(modn)
依据下式计算冷钱包派生密钥中的派生密钥公钥:
K=ZL*G+KP
依据下式计算派生密钥链码:
c=ZR
本发明实施例中,如果冷钱包派生密钥(私钥)的预设长度的字节数为64字节,则依据下式计算派生密钥私钥:
kL=ZL+KPL
kR=ZR+KPR(mod2256)
k=kL||kR
依据下式计算派生密钥公钥:
K=ZL*G+KP
依据下式计算派生密钥链码:
cT=Fcp(0x01||kP||i),i≥0x80000000
cT=Fcp(0x03||KP||i),i<0x80000000
c=cT32
本发明实施例中,作为一可选实施例,密钥算法为ed25519密钥算法,冷钱包派生密钥生成子单元包括:
查询组件,用于依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度的字节数映射的密钥计算公式;
因子处理组件,用于获取所述子密钥第一因子的32字节中的后28字节,前4字节补0,再将补0的数据整体左移3位,得到子密钥左侧处理因子,
私钥计算组件,用于将所述子密钥左侧处理因子应用于所述密钥计算公式进行冷钱包派生密钥私钥计算。
如图3所示,本申请一实施例提供了一种计算机设备300,用于执行图1中的冷钱包派生密钥的生成方法,该设备包括存储器301、处理器302及存储在该存储器301上并可在该处理器302上运行的计算机程序,其中,上述处理器302执行上述计算机程序时实现上述冷钱包派生密钥的生成方法的步骤。
具体地,上述存储器301和处理器302能够为通用的存储器和处理器,这里不做具体限定,当处理器302运行存储器301存储的计算机程序时,能够执行上述冷钱包派生密钥的生成方法。
对应于图1中的冷钱包派生密钥的生成方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述冷钱包派生密钥的生成方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述冷钱包派生密钥的生成方法。
在本申请所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (7)
1.一种冷钱包派生密钥的生成方法,其特征在于,包括:
基于助记词进行熵的推导,得到推导出的熵;
对熵进行编码,对编码后的熵进行哈希运算,得到种子;
对种子进行编码,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥和根链码,其中,所述预设规则生成的数据是一串固定字符的ASCII码;
基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥;
所述基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥,包括:
依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥和父链码;
依据所述冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子;
将子密钥因子拆分为子密钥第一因子和子密钥第二因子,所述子密钥第一因子和子密钥第二因子的长度等于所述预设长度;
依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度的字节数映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥。
2.根据权利要求1所述的方法,其特征在于,所述基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥和根链码,包括:
利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到初始根密钥和初始根链码;
判断所述初始根密钥是否符合所述密钥算法的要求,若符合,将所述初始根密钥作为所述根密钥,将所述初始根链码作为所述根链码,若不符合,按照所述预设规则得到更新数据,利用所述密钥算法对编码后的种子以及所述更新数据进行运算,得到更新根密钥和更新根链码,直至得到的更新根密钥符合所述密钥算法的要求。
3.根据权利要求1所述的方法,其特征在于,所述依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥,包括:
确定所述密钥索引包含的相对于所述根密钥的目标层级;
依据所述根密钥计算所述根密钥的第一层级的第一密钥,所述第一层级为所述根密钥所在的根层级的下一层级;
判断第一层级是否是所述目标层级,若是,所述根密钥为所述冷钱包派生密钥的父密钥,若不是,依据所述第一密钥计算所述根密钥的第二层级的第二密钥,所述第二层级为所述第一层级的下一层级,直至达到所述目标层级,确定所述目标层级的上一级的密钥为所述冷钱包派生密钥的父密钥。
4.根据权利要求1所述的方法,其特征在于,所述依据冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子,包括:
若所述子密钥索引不小于预设的阈值,利用硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子;利用硬化衍生算法计算子密钥因子的公式如下:
Z=Fcp(0x00||kP||i)
式中,
Z为子密钥因子;
Fcp为密钥算法;
kP为冷钱包派生密钥的父密钥中的父私钥;
i为子密钥索引;
||为连接符;
若所述子密钥索引小于预设的阈值,利用非硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子;
利用非硬化衍生算法计算子密钥因子的公式如下:
Z=Fcp(0x02||KP||i)
式中,
KP为冷钱包派生密钥的父密钥中的父公钥。
5.根据权利要求1所述的方法,其特征在于,所述冷钱包派生密钥包括:派生密钥私钥、派生密钥公钥以及派生密钥链码,所述依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥,包括:
查询密钥字节数与私钥计算公式的映射关系,获取所述预设长度的字节数映射的私钥计算公式,依据所述冷钱包派生密钥的父密钥、子密钥因子以及获取的私钥计算公式计算派生密钥私钥;
查询密钥字节数与公钥计算公式的映射关系,获取所述预设长度的字节数映射的公钥计算公式,依据所述冷钱包派生密钥的父密钥、子密钥第一因子以及获取的公钥计算公式计算派生密钥公钥;以及,
查询密钥字节数与链码计算公式的映射关系,获取所述预设长度的字节数映射的链码计算公式,依据子密钥第二因子以及获取的链码计算公式计算派生密钥链码。
6.一种冷钱包派生密钥的生成装置,其特征在于,包括:
熵值获取模块,用于基于助记词进行熵的推导,得到推导出的熵;
种子获取模块,用于对熵进行编码,对编码后的熵进行哈希运算,得到种子;
根密钥获取模块,用于对种子进行编码,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥和根链码,其中,所述预设规则生成的数据是一串固定字符的ASCII码;
派生密钥获取模块,用于基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥;
所述派生密钥获取模块包括:
父密钥获取单元,用于依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥;
子密钥因子计算单元,用于依据所述冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子;
冷钱包派生密钥生成单元,用于依据所述冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥;
所述冷钱包派生密钥生成单元包括:
子密钥因子拆分子单元,用于将子密钥因子拆分为子密钥第一因子和子密钥第二因子,所述子密钥第一因子和子密钥第二因子的长度等于所述预设长度;
冷钱包派生密钥生成子单元,用于依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度的字节数映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥。
7.根据权利要求6所述的装置,其特征在于,所述根密钥获取模块包括:
运算单元,用于利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到初始根密钥和初始根链码;
密钥处理单元,用于判断所述初始根密钥是否符合所述密钥算法的要求,若符合,将所述初始根密钥作为所述根密钥,将所述初始根链码作为所述根链码,若不符合,按照所述预设规则,得到更新数据,利用所述密钥算法对编码后的种子以及所述更新数据进行运算,得到更新根密钥和更新根链码,直至得到的更新根密钥符合所述密钥算法的要求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010401831.5A CN111447063B (zh) | 2020-05-13 | 2020-05-13 | 一种冷钱包派生密钥的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010401831.5A CN111447063B (zh) | 2020-05-13 | 2020-05-13 | 一种冷钱包派生密钥的生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111447063A CN111447063A (zh) | 2020-07-24 |
CN111447063B true CN111447063B (zh) | 2021-02-26 |
Family
ID=71656665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010401831.5A Active CN111447063B (zh) | 2020-05-13 | 2020-05-13 | 一种冷钱包派生密钥的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111447063B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769567B (zh) * | 2021-01-19 | 2023-04-07 | 北京枫玉科技有限公司 | 一种区块链hd私钥找回方法 |
CN114745112A (zh) * | 2022-04-15 | 2022-07-12 | 北京凝思软件股份有限公司 | 根密钥派生方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411506A (zh) * | 2016-08-31 | 2017-02-15 | 飞天诚信科技股份有限公司 | 适用于数字货币的密钥派生方法及装置 |
CN109067526A (zh) * | 2018-08-15 | 2018-12-21 | 数字钱包(北京)科技有限公司 | 层次公私钥对生成方法和装置 |
CN110535630A (zh) * | 2018-05-24 | 2019-12-03 | 上海赢亥信息科技有限公司 | 密钥生成方法、装置及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480986B (zh) * | 2017-08-14 | 2019-08-09 | 飞天诚信科技股份有限公司 | 一种利用硬件实现数字货币钱包的方法及硬件钱包 |
CN109754241B (zh) * | 2018-12-27 | 2022-02-22 | 恒宝股份有限公司 | 一种硬钱包及基于硬钱包的验证方法 |
-
2020
- 2020-05-13 CN CN202010401831.5A patent/CN111447063B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411506A (zh) * | 2016-08-31 | 2017-02-15 | 飞天诚信科技股份有限公司 | 适用于数字货币的密钥派生方法及装置 |
CN110535630A (zh) * | 2018-05-24 | 2019-12-03 | 上海赢亥信息科技有限公司 | 密钥生成方法、装置及存储介质 |
CN109067526A (zh) * | 2018-08-15 | 2018-12-21 | 数字钱包(北京)科技有限公司 | 层次公私钥对生成方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111447063A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11843687B2 (en) | Systems, devices, and processes for homomorphic encryption | |
CN108463968B (zh) | 可变长度数据的快速格式保留加密 | |
US8429421B2 (en) | Server-side encrypted pattern matching | |
CN111033506B (zh) | 利用匹配操作和差异操作的编辑脚本核实 | |
CN111447063B (zh) | 一种冷钱包派生密钥的生成方法及装置 | |
CN104657673A (zh) | 平均复杂度理想安全的保序加密 | |
US20130332729A1 (en) | Search system, search method of search system, information processing device, search program, corresponding keyword management device, and corresponding keyword management program | |
US20220130282A1 (en) | Method, apparatus, and computer-readable medium for format preserving encryption of a numerical value | |
CN114756895B (zh) | 基于同态加密的匿踪数据核验方法及系统 | |
CN113255007B (zh) | 一种安全隐匿三要素查询方法 | |
KR20140011534A (ko) | 특정 포맷을 가지는 대체 데이터의 생성 및 검증 | |
CN111656733A (zh) | 密钥消息验证码的白盒计算 | |
EP4000216A1 (en) | Cryptographic pseudonym mapping method, computer system, computer program and computer-readable medium | |
Gorbenko et al. | Random S-boxes generation methods for symmetric cryptography | |
CN113407976B (zh) | 数字签名方法、签名信息的验证方法、相关装置及电子设备 | |
US10355862B2 (en) | MAC tag list generating apparatus, MAC tag list verifying apparatus, MAC tag list generating method, MAC tag list verifying method and program recording medium | |
KR100662934B1 (ko) | 비트 집합체의 단축 표시 생성 방법 | |
CN111475690B (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
JP6844696B2 (ja) | 認証タグ生成装置、認証タグ検証装置、方法及びプログラム | |
CN114610843A (zh) | 多关键词模糊密文检索方法及系统 | |
US20220311596A1 (en) | A computer-implemented method of performing feistel-network-based block-cipher encryption of plaintext | |
CN111447072A (zh) | 用于生成数据等价零知识证明的方法、设备及存储介质 | |
JP4914329B2 (ja) | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体 | |
Park et al. | A study on the processing and reinforcement of message digest through two-dimensional array masking | |
Ryan et al. | The hidden number problem with small unknown multipliers: cryptanalyzing MEGA in six queries and other applications |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |