水木清华校友基金袁晔:哈希算法和非对称加密在区块链的应用

N5Uv4smlzJAlevyyAL9CpOCh8DkXVPr9UHfUk1wO.jpeg

两个概念,没有直接关系,必须澄清。

哈希算法是一个计算公式,也叫哈希函数,这个函数有很多种,主要目的是数据映射,但与非对称加密里面用到的加密算法不同。

特点有四个:

1、单向,不可逆:就是在现有超级计算机的运算能力下,相对有限时间内(100年)不可逆

2、任意长度信息经过哈希函数的输出结果是固定长度:再多的文字输出都是固定字节长度,对于提取摘要非常便捷,减少了数据传输量

3、计算时间短:再多的文字,运算时间都能接受

4、不同输入有不同输出:任意两个输入在数学理论上都存在经过函数运算后结果一样的可能,出现一样的结果就叫做“碰撞”,哈希函数就是为了0碰撞。

先列出几个常见哈希武器系列:

MD系列:MD2、MD4、MD5,本系列出现过碰撞

SHA系列:SHA-1、SHA-224、SHA-256(比特币用的)、SHA-384、SHA-512;尚未碰撞过

还有,CRC系列,FNV系列,HAVAL系列,Tiger等。

哈希函数在区块链里应用的场景有如下:

1、每个区块中,对所有交易数据进行加密,并生成Merkle树(这个概念此处略过)

2、计算一个区块中所有交易的哈希值并且比对本区块的Merkle根值,一致就可以判别本区块的交易信息未被篡改

3、矿工挖矿:每个区块都有一个随机数,矿工通过尝试不同的随机数来改变整个区块的信息,此时区块头的其他信息是不变的,比如:难度系数,版本号,上个区块的哈希值;区块主体数据不变,矿工对整个区块进行哈希函数运算,得出一个哈希值,此哈希值要求满足区块头的难度系数(一般是哈希值的前10或者20位为零),这时选出的随机数就是有效随机数,此时挖矿成功。

4、比特币的钱包地址计算:首先生成一个随机数,经过多次转换(其中有四次哈希)得到地址,这里不展开说。

我去,为了说明白哈希,快累死了。

非对称加密比较简单,有一个公钥,有一个私钥,成对出现,有数学上的关系,用到的算法是ECC(注意听课,这个不是哈希函数!)

应用场景如下:

1、加密数据传输:你把自己的私钥保护好,把公钥给对方,对方用公钥加密文件生成密文,对方将密文传给你,你用私钥解密得到明文,完毕!目的是内容不被别人看到。

2、数字签名:用来证明我的文件发给对方过程中没有被篡改。你保护好自己的私钥,对方拿着你的公钥,你用私钥把明文加密为密文,明文和密文都传给对方,对方用公钥对密文解密得到明文并与你给的明文对比无误,证明传输通道安全,目的是内容不被别篡改!

(原标题:哈希和非对称加密—《区块链思维》第26块,作者:袁晔)


企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

2018-03-16
水木清华校友基金袁晔:哈希算法和非对称加密在区块链的应用
两个概念,没有直接关系,必须澄清。哈希算法是一个计算公式,也叫哈希函数,这个函数有很多种,主要目的是数据映射,但与非对称加密里面用到的加密算法不同。

长按扫码 阅读全文

Baidu
map