硬件钱包如何用种子生成各种币的钱包的?.doc

硬件钱包如何用种子生成各种币的钱包的?.doc

ID:28115256

大小:372.50 KB

页数:11页

时间:2018-12-08

硬件钱包如何用种子生成各种币的钱包的?.doc_第1页
硬件钱包如何用种子生成各种币的钱包的?.doc_第2页
硬件钱包如何用种子生成各种币的钱包的?.doc_第3页
硬件钱包如何用种子生成各种币的钱包的?.doc_第4页
硬件钱包如何用种子生成各种币的钱包的?.doc_第5页
资源描述:

《硬件钱包如何用种子生成各种币的钱包的?.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、硬件钱包如何用种子生成各种币的钱包的?  什么是哈希算法?有什么性质?  什么是公钥密码?什么是公钥与私钥?  分层确定性钱包表示方法与示例  1、关于种子&助记词什么是种子

2、RootSeed  种子是一串由随机数生成器生成的随机数。这串随机数可以用来生成钱包中不同种币和不同账户的公私钥对,所以只需备份种子就相当于备份您的所有钱包了。由于网络空间存在各种各样的威胁,备份的私钥不接触电脑和手机等设备是最安全的,所以硬件钱包的备份方法是记在纸上。  什么是助记词

3、MnemonicSeed  种子是一串很长的随机数,看起来就

4、是一串十六进制值,不利于人进行记录,所以我们用算法将其转化为一串助记词,人们就可以方便进行记录。助记词的产生过程如图:  不同长度的种子对应的单词数量如下表:    总结一下,就是将种子加上校验信息,每11位进行切分,按照得到的数字查询单词表索引得到单词。我们记录的英文单词是有校验信息的,所以不是随意MS个单词就能得到一个种子哦。以上的算法是可逆的,用记录下的助记词可以轻松得出种子。还记得硬件钱包初始化过程中让您记在纸上的那些英文单词吗?它们就相当于种子哦。  2、关于哈希和公私钥哈希算法

5、HashAlgorithm 

6、 密码哈希函数是一类数学函数,可以在有限合理的时间内,将任意长度的消息压缩为固定长度的二进制串,其输出值称为哈希值,也称为散列值。  哈希函数的性质:  1.抗碰撞性  碰撞是与哈希函数相关的重要概念,体现着哈希函数的安全性,所谓碰撞是指两个不同的消息在同一个哈希函数作用下,具有相同的哈希值。哈希函数的安全性是指在现有的计算资源(包括时间、空间、资金等)下,找到一个碰撞是不可行的。  通俗地说,就是很难找到两个具有相同哈希值的不同消息。消息改变,输出的哈希值一般就会改变,哈希值可以看作消息的指纹。即使消息被略微篡改,这

7、个指纹也会发生很大变化。所以哈希值可以用来做完整性校验。  2.原像不可逆  通俗地说,知道输入值,很容易通过哈希函数计算出哈希值;但知道哈希值,没有办法计算出原来的输入值。  3.难题友好性  难题友好性指的是没有便捷的方法去产生满足特殊要求的哈希值。  3、公钥密码算法  公钥密码算法需要两个密钥:公开密钥和私有密钥,简称公钥和私钥。公钥和私钥是一对,如果用公开密钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是不同的密钥,所以这种算法也叫

8、做非对称密码算法。  区块链中所使用的公钥密码算法是椭圆曲线算法,每个用户拥有一对密钥,一个公开,另一个私有。利用椭圆曲线密码算法,用户可以用自己的私钥对交易进行签名,同时别的用户可以利用签名用户的公钥对签名进行验证。在比特币系统中,用户的公钥也被用来识别不同的用户,构造用户的比特币地址。  有一个很重要的特性,已知私钥通过密码学算法可以求出公钥,但知道公钥没办法反推出私钥。在下面的叙述中用point()表示由私钥求公钥的函数。在数字货币中,只要您能够用您的私钥对交易进行签名,就代表您有权利花出您手中这些币,别人只知道

9、您的公钥,无法得到您的私钥,是没有办法使用您的币的。您可以简单认为您的私钥=您的所有币。硬件钱包就是要保护您的私钥,让它们远离被盗。  种子与公私钥对计算  由私钥创建公钥  椭圆曲线公钥创建函数,point(),输入为私钥,输出为公钥,即  point(私钥)==公钥  主拓展公钥与主拓展私钥的生成  根种子为128、256或512位随机数,一般由随机数生成器生成。该根种子是用户唯一需要备份的,由该种子可以创建出用户所有钱包。  该种子经过哈希可以得到512位的哈希值,左右256位分别为主私钥m和主链码,主私钥与链码

10、一起构成主拓展私钥。主公钥M由主私钥通过point()方式产生,主公钥与链码一起构成主拓展公钥。主拓展公钥和主拓展私钥位于分层钱包的最顶层。如图所示:  公钥生成函数的性质  由于point()的工作原理,可以把(父)公钥与一个通过整数值i创建的公钥相结合,得到(子)公钥。子公钥也可以通过point()方式产生,输入为父私钥加上整数i后取模p,用公式描述为  point((父私钥+i)%p)==父公钥+point(i)==子公钥  通过这种方式,只要确定一个整数序列,就可以从父公私钥对产生唯一确定的子公私钥对。如果仅需

11、要子公钥,可以在不接触父私钥的情况下生成所有子公钥。  通过这种子密钥推导操作迭代,子公钥可以用于生成他们自己的子公钥(孙公钥),如下:  point((子私钥+i)%p)==子公钥+point(i)==孙公钥普通的分层确定性密钥推导  普通密钥推导的过程如图所示,    指定不同的索引号,可以从相同的父密钥中创建出不同的子密钥。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。