深入理解比特币中非强化密钥的不安全原因
来源:互联网 发布:mac如何切换任务 编辑:程序博客网 时间:2024/05/17 04:58
比特币中,确定性钱包给钱包管理和钱包在电子商务和公司、组织中授权使用比特币提供了方便,可是在非强化的情况下,会存在不安全的问题(存在泄漏父私钥的可能)。
为什么会这样呢?
下面我简要分析这个破解的过程:
如果我获得了父公钥扩展地址(包含父公钥和父链码),以及子私钥,那么是可以获得父私钥的,由了父私钥,那么就可以解锁其下所有比特币地址的交易。
我们先来看看子密钥的形成过程,依据BIP-0032的说明,非强化的密钥有如下计算过程:
请看下图:
子私钥时通过父公钥+父链码+索引通过HAMC-SHA512生成的一个512位的结果,取高256位+私钥(注意,这里是重点),子链码取低256位。
由于扩展公钥是公布出来的(比如攻击电商服务器)可以获取,那么相当于只要获取子私钥的索引,就可以计算子私钥和子链码,如果我们拥有私钥,那么通过暴力破解是可以计算出这里的索引编号的(通过不断尝试,我推测的,可能有更好的办法),从而获得完整的HMAC-SHA512的结果,从而通过减法(父私钥 = 子私钥 - HASH结果高256位)计算得出。
拥有了父私钥和父链码,就可以生成所有子节点的私钥和链码,从而获得子节点的所有权限!
参考
- BIP-00032
- 精通比特币(第二版)
- Derivation of parent private key from non-hardened child
阅读全文
0 0
- 深入理解比特币中非强化密钥的不安全原因
- 深入理解比特币交易的脚本
- 比特币的密钥(yue)、公钥、和地址之间的概念理解
- 比特币注定会取代不安全的支付协议
- 比特币学习之密钥
- 关于比特币的理解
- 比特币简单的理解
- .NET中非对称加密算法的密钥的存储
- .NET中非对称加密RSA算法的密钥保存
- NET中非对称加密RSA算法的密钥保存
- .NET中非对称加密RSA算法的密钥保存
- 第一届比特币中国大会PPT:深入理解比特币
- 深入理解JavaScript没有重载的原因:
- 【比特币】椭圆曲线密钥生成
- 理解比特币脚本*****
- 比特币投机者嘲笑称比特币为泡沫的人原因
- 比特币投机者嘲笑称比特币为泡沫的人原因
- 比特币投机者嘲笑称比特币为泡沫的人原因
- 翻译 | 指令调度基础
- springMVC常用注解
- 支付宝红包地址 每日可领一次 人人可领
- 同步与异步的区别
- unity之C#学习记录
- 深入理解比特币中非强化密钥的不安全原因
- Modular Programming with Python 第一章
- 在docker中部署 oracle
- HashMap源码阅读笔记
- redis-sentinel集群安装
- caffe + matlab2014a安装心得
- 位运算的异或来交换变量
- Android:读取assets目录下文件(二)
- docker入门