美文网首页
强化衍生密钥

强化衍生密钥

作者: 区块文 | 来源:发表于2019-11-20 18:33 被阅读0次

《精通比特币》里提到从xpub衍生一个分支公钥的能力是很重要的,但牵扯一些潜在风险。访问xpub并不能访问子私钥。但是,因为xpub包含有链码,如果子私钥被知道或者被泄漏的话,链码就可以被用来衍生所有的其他子私钥。泄露的私钥如果再加上父链码,就可能暴露所有子项的所有私钥。更糟糕的是,子私钥与父链码可以用来推断父私钥。

为了应对这种风险,HD钱包使用一种替代衍生函数,叫做强化衍生(hardened derivation),“打破”了父公钥以及子链码之间的关系。这个强化衍生函数使用了父私钥去推导子链码,而不是父公钥。这就在父/子顺序中创造了一道“防火墙”,链码就不能危害父私钥或者同级私钥。

当使用强化私钥衍生函数时,得到的子私钥以及链码与使用一般衍生函数所得到的结果完全不同。得到的密钥“分支”可以被用来生产不易被攻击的扩展公钥,因为它所含的链码不能被用来泄露任何私钥。强化衍生也因此被用在使用扩展公钥的密钥树的上一层创造“隔层”。

简单来说,如果想利用xpub的便捷来衍生公钥的分支,又不想冒泄露链码的风险, 就该从强化父密钥,而不是一般父密钥衍生。最好的方式是,为了避免主密钥泄露,主密钥所衍生的第一层级的子密钥总是通过强化衍生得来。

看到这时估计也有人疑惑,为何公钥衍生的子私钥被知道或者被泄漏的话,链码就可以被用来衍生所有的其他子私钥,而强化衍生密钥不易泄露。

下面解释了为什么强化衍生密钥可以在泄露某一个私钥和扩展公钥的时候,不会把该私钥的父私钥给泄露出去。

扩展密钥同时包含了链码和密钥信息,这对于继续派生子密钥很方便, 但同时也带来了安全上的隐患。下图中展示了第N层链码和公钥及其某个 后代私钥泄漏的情况下,受影响的公钥和私钥:

解决的办法是改变密钥派生的算法,使用父私钥而不是父公钥来生成子链码 及子密钥,这样得到的子密钥被称为强化密钥(hardened key):

比特币根据子密钥序号来区分派生普通密钥还是强化密钥:当序号 小于0x80000000时,生成普通子密钥,否则生成强化子密钥。

图片参考:http://www.cnblogs.com/5ishare/

相关文章

  • 强化衍生密钥

    《精通比特币》里提到从xpub衍生一个分支公钥的能力是很重要的,但牵扯一些潜在风险。访问xpub并不能访问子私钥。...

  • 《精通比特币》

    钱包、密钥 私钥衍生家族----适用于各种树形权限分配,比如企业钱包 交易 交易费按交易数据字节大小计算,交易费市...

  • JCA 实践记录——KeyFactory

    KeyFactory(密钥工厂)用对密钥(Key类型的不透明密钥)和密钥规范(KeySpec类型的底层密钥密钥材料...

  • 04非对称加密

    非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)● 公开密钥与私有密钥...

  • 每日一记1220

    路径依赖 从过去衍生而来的制度和信念影响目前选择的路径。 报酬递增和自我强化机制。 四种自我加强机制,大规模组织,...

  • SSH免密钥登陆

    创建密钥 上传密钥

  • 如何使用终端创建SSH密钥

    找到现有的SSH密钥对 生成新的SSH密钥对 使用非默认SSH密钥对路径 部署密钥 全局共享部署密钥 GitLab...

  • JCA 实践记录——SecretKeyFactory

    SecretKeyFactory(私密密钥工厂)用对密钥(SecretKey类型的不透明密钥)和密钥规范(KeyS...

  • 图解密码技术学习-第十一章 密钥

    什么是密钥 密钥是一个巨大的数字例如AES的密钥可以是128、192、256比特 密钥与明文是等价的如果获得了密钥...

  • 认证授权 归纳(4)(密钥概念)

    1: 密钥分类 (对称密钥与非对称密钥) 2:密钥,私钥,公钥的区分 3:摘要 签名 签名验证 4:加密解密 ...

网友评论

      本文标题:强化衍生密钥

      本文链接:https://www.haomeiwen.com/subject/imfaictx.html