一种冷钱包派生密钥的生成方法及装置制造方法及图纸

技术编号:25001704 阅读:87 留言:0更新日期:2020-07-24 18:02
本发明专利技术提供了一种冷钱包派生密钥的生成方法及装置,其中,该冷钱包派生密钥的生成方法包括:基于助记词进行熵的推导,得到推导出的熵;对熵进行编码,对编码后的熵进行哈希运算,得到种子;对种子进行编码,基于编码后的种子和预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥;基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。可以提升生成的冷钱包派生密钥的成功率。

【技术实现步骤摘要】
一种冷钱包派生密钥的生成方法及装置
本专利技术涉及信息安全
,具体而言,涉及一种冷钱包派生密钥的生成方法及装置。
技术介绍
应用于数字货币的冷钱包使用助记词和密钥派生方法进行密钥管理,基于bip39/bip44和bip32规则、助记词以及椭圆曲线算法生成根密钥,以及,基于根密钥派生出不同路径下的子密钥。但该冷钱包派生密钥的生成方法,由于bip39/bip44和bip32规则是针对于椭圆曲线算法进行设置的,而目前数字货币使用的密钥算法种类繁多,一些密钥算法对于派生得到的密钥,例如私钥有特殊的要求,例如,对于ed25519密钥算法,该密钥算法要求私钥第32字节的第6位必须为0,若基于bip39/bip44和bip32规则以及ed25519密钥算法进行冷钱包派生密钥派生,派生的冷钱包派生密钥中的私钥第32字节的第6位可能不为0,从而使得冷钱包派生密钥派生失败。因而,现有基于bip39/bip44和bip32规则冷钱包派生密钥的生成方法,只能适用于对派生的密钥没有特殊要求的椭圆曲线算法,对于除椭圆曲线算法之外、对派生的密钥有要求的非常规曲线算法,生成的冷钱包派生密钥的成功率较低,使得该方法能够使用的范围较小,不能满足数字货币对多种安全算法的需求。
技术实现思路
有鉴于此,本专利技术的目的在于提供冷钱包派生密钥的生成方法及装置,以提高生成的冷钱包派生密钥的成功率。第一方面,本专利技术实施例提供了冷钱包派生密钥的生成方法,包括:基于助记词进行熵的推导,得到推导出的熵;对熵进行编码,对编码后的熵进行哈希运算,得到种子;对种子进行编码,利用预设的密钥算法对编码后的种子和以预设规则生成的数据进行运算,得到符合所述密钥算法的要求的根密钥和根链码;基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,所述利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到符合所述密钥算法的要求的根密钥和根链码,包括:利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到初始根密钥和初始根链码;判断所述初始根密钥是否符合所述密钥算法的要求,若符合,将所述初始根密钥作为所述根密钥,将所述初始根链码作为所述根链码,若不符合,按照所述预设规则得到更新数据,利用所述密钥算法对编码后的种子以及所述更新数据进行运算,得到更新根密钥和更新根链码,直至得到的更新根密钥符合所述密钥算法的要求。结合第一方面或第一方面的第一种可能的实施方式,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,所述为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥,包括:依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥和父链码;依据所述冷钱包派生密钥的父密钥,父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子;依据所述冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥。结合第一方面的第二种可能的实施方式,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,所述依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥,包括:确定所述密钥索引包含的相对于所述根密钥的目标层级;依据所述根密钥计算所述根密钥的第一层级的第一密钥,所述第一层级为所述根密钥所在的根层级的下一层级;判断第一层级是否是所述目标层级,若是,所述根密钥为所述冷钱包派生密钥的父密钥,若不是,依据所述第一密钥计算所述根密钥的第二层级的第二密钥,所述第二层级为所述第一层级的下一层级,直至达到所述目标层级,确定所述目标层级的上一级的密钥为所述冷钱包派生密钥的父密钥。结合第一方面的第二种可能的实施方式,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,所述依据冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子,包括:若所述子密钥索引不小于预设的阈值,利用硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子;若所述子密钥索引小于预设的阈值,利用非硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子。结合第一方面的第二种可能的实施方式,本专利技术实施例提供了第一方面的第五种可能的实施方式,其中,所述依据冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥,包括:将子密钥因子拆分为对称的子密钥第一因子和子密钥第二因子;依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度的字节数映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥。结合第一方面的第五种可能的实施方式,本专利技术实施例提供了第一方面的第六种可能的实施方式,其中,所述冷钱包派生密钥包括:派生密钥私钥、派生密钥公钥以及派生密钥链码,所述依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度映射的密钥计算公式,依据子密钥第一因子、子密钥第二因子以及获取的密钥计算公式计算冷钱包派生密钥,包括:查询密钥字节数与私钥计算公式的映射关系,获取所述预设长度的字节数映射的私钥计算公式,依据所述冷钱包派生密钥的父密钥、子密钥第一因子以及获取的私钥计算公式计算派生密钥私钥;查询密钥字节数与公钥计算公式的映射关系,获取所述预设长度的字节数映射的公钥计算公式,依据所述冷钱包派生密钥的父密钥、子密钥第一因子以及获取的公钥计算公式计算派生密钥公钥;以及,查询密钥字节数与链码计算公式的映射关系,获取所述预设长度的字节数映射的链码计算公式,依据子密钥第二因子以及获取的链码计算公式计算派生密钥链码。第二方面,本专利技术实施例还提供了一种冷钱包派生密钥的生成装置,包括:熵值获取模块,用于基于助记词进行熵的推导,得到推导出的熵;种子获取模块,用于对熵进行编码,对编码后的熵进行哈希运算,得到种子;根密钥获取模块,用于对种子进行编码,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥;派生密钥获取模块,用于基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。结合第二方面,本专利技术实施例提供了第二方面的第一种可能的实施方式,其中,所述根密钥获取模块包括:运算单元,用于利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到初始根密钥和初始根链码;密钥处本文档来自技高网...

【技术保护点】
1.一种冷钱包派生密钥的生成方法,其特征在于,包括:/n基于助记词进行熵的推导,得到推导出的熵;/n对熵进行编码,对编码后的熵进行哈希运算,得到种子;/n对种子进行编码,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥和根链码;/n基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。/n

【技术特征摘要】
1.一种冷钱包派生密钥的生成方法,其特征在于,包括:
基于助记词进行熵的推导,得到推导出的熵;
对熵进行编码,对编码后的熵进行哈希运算,得到种子;
对种子进行编码,基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥和根链码;
基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥。


2.根据权利要求1所述的方法,其特征在于,所述基于编码后的种子和以预设规则生成的数据,利用预设的密钥算法进行运算,得到符合所述密钥算法的要求的根密钥和根链码,包括:
利用预设的密钥算法,对编码后的种子以及以预设规则生成的数据进行运算,得到初始根密钥和初始根链码;
判断所述初始根密钥是否符合所述密钥算法的要求,若符合,将所述初始根密钥作为所述根密钥,将所述初始根链码作为所述根链码,若不符合,按照所述预设规则得到更新数据,利用所述密钥算法对编码后的种子以及所述更新数据进行运算,得到更新根密钥和更新根链码,直至得到的更新根密钥符合所述密钥算法的要求。


3.根据权利要求1或2所述的方法,其特征在于,所述基于为所述冷钱包派生密钥预设的密钥索引、所述根密钥、所述根链码以及所述冷钱包派生密钥的预设长度,生成所述冷钱包派生密钥,包括:
依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥和父链码;
依据所述冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子;
依据所述冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥。


4.根据权利要求3所述的方法,其特征在于,所述依据所述根密钥以及密钥索引,获取所述冷钱包派生密钥的父密钥,包括:
确定所述密钥索引包含的相对于所述根密钥的目标层级;
依据所述根密钥计算所述根密钥的第一层级的第一密钥,所述第一层级为所述根密钥所在的根层级的下一层级;
判断第一层级是否是所述目标层级,若是,所述根密钥为所述冷钱包派生密钥的父密钥,若不是,依据所述第一密钥计算所述根密钥的第二层级的第二密钥,所述第二层级为所述第一层级的下一层级,直至达到所述目标层级,确定所述目标层级的上一级的密钥为所述冷钱包派生密钥的父密钥。


5.根据权利要求3所述的方法,其特征在于,所述依据冷钱包派生密钥的父密钥、父链码以及所述冷钱包派生密钥在所述密钥索引中的子密钥索引,计算子密钥因子,包括:
若所述子密钥索引不小于预设的阈值,利用硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子;
若所述子密钥索引小于预设的阈值,利用非硬化衍生算法,对所述冷钱包派生密钥的父密钥、父链码以及子密钥索引进行计算,得到子密钥因子。


6.根据权利要求3所述的方法,其特征在于,所述依据冷钱包派生密钥的父密钥、所述冷钱包派生密钥的预设长度以及所述子密钥因子,计算所述冷钱包派生密钥,包括:
将子密钥因子拆分为子密钥第一因子和子密钥第二因子,所述子密钥第一因子和子密钥第二因子的长度等于所述预设长度;
依据所述冷钱包派生密钥的预设长度,查询密钥字节数与密钥计算公式的映射关系,获取所述预设长度的字...

【专利技术属性】
技术研发人员:李勇
申请(专利权)人:江苏恒宝智能系统技术有限公司
类型:发明
国别省市:江苏;32

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

1