Hash算法简介.doc
《Hash算法简介.doc》由会员分享,可在线阅读,更多相关《Hash算法简介.doc(5页珍藏版)》请在三一文库上搜索。
1、Hash算法简介一、Hash算法的身影可以看到,在生成比特币地址(精通比特币第4章提到),以及生成区块唯一标识(精通比特币第7章提到):区块Hash值时(即挖矿的过程),都使用了Hash算法,特别是SHA256算法。比特币系统本身也就是加密算法的衍生物。二、SHA256算法过程本文主要简述一下SHA256算法的过程,下一篇会大概说一下它的理论基础。1. 输入信息xSHA256要求报文长度不超过2bit。2. 补位因为采用的是分组加密的方法,每组长度是512bit,而原始的信息x,不一定是512的倍数,也就是说不一定能刚好分成每组都是512bit的情况。这时候需要补位。在x后面先补一个1,然后再
2、补多个0,一直到总长度(x以及补的位数)模512是4483. 补长度为什么第二步不直接把总长度补到512的倍数呢,因为后面还要补64位,记录原始信息x的位数。(64 + 448) % 512 = 0。可以看到,只有64位表示原始信息x的位数,所以x的最大长度是2。4. 计算Hash值前面已经将消息补成了512的倍数,总长度变为512 * N。计算hash值的基本思想是:先将处理完的消息分成N个512bit的数据块:M1,M2,MN,然后一块一块的处理:哈希初值H0经过第一个数据块M1得到H1,H1经过第二个数据块M2得到H2,依次处理,最后得到HN。每个哈希值,比如H0,由8个32bit组成,
3、32bit又称为字,也就是说每个hash值都由8个字组成。最后将HN的8个字连接成256bit(8 * 32 bit)的最终值。至于为什么可以这么做,我们下一篇再介绍,先看流程。1) 哈希初值H0SHA256算法中用到的哈希初值H0(共有8个32bit)为:H00 = 0x6A09E667H01 = 0xBB67AE85H02 = 0x3C6EF372H03 = 0xA54FF53AH04 = 0x510E527FH05 = 0x9B05688CH06 = 0x1F83D9ABH07 = 0x5BE0CD190x表示的是十六进制,十六进制中一位表示4bit。注:这些初值是对自然数中前8个质数2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hash 算法 简介
链接地址:https://www.31doc.com/p-3252353.html