比特币系统中应用的密码学原理—区块链系列(4)

论坛 期权论坛 期权     
Terry的炼金工房   2019-11-30 20:32   2745   0
本文共2700字,阅读约需10分钟
比特币被称为加密货币(Crypto-currency),但实际上加密货币是不加密的,区块链上所有的交易内容都是公开的,包括账户的地址、转账的金额。比特币中主要用到了密码学中的两个功能,一个是哈希(Hash),另一个是签名。

  • 哈希(Hash)


在之前的文章中,我们已经比较详细的介绍了哈希函数的工作原理。密码学中用到的哈希函数被称为密码散列函数(Cryptographic hash function),它有两个重要的性质,即抗碰撞性隐匿性
这里面的一堆就是哈希值,请注意其中的SHA256


1. 抗碰撞性(Collision resistance)
Collision resisitance,指的是哈希碰撞。它的含义是,假设存在两个输入x和y,若x≠y且H(x)=H(y),即两个不同的输入算出来的哈希值相等,就叫做哈希碰撞。一般来说哈希碰撞是不可避免的,因为输入空间远远大于输出空间,比如某个256位的哈希值,它的输出空间是2[sup]256[/sup],但其输入空间可以是无限大的,因此必然会出现两个输入被映射到同一个输出的情况。所以collision resistance并不意味着不会出现哈希碰撞,实际上碰撞是客观存在的。它的意思是指没有什么高效的方法人为的去制造哈希碰撞。
按照上文所述,如果我们给定一个x,是否有办法能够找到另一个y,使得他俩的哈希值恰好相等?目前只能采用蛮力求解的方法,遍历所有输入的可能性,一个一个的试,再查看哪个计算出的哈希值正好相等,说明x、y碰撞到一起了。但是对于一个哈希值是256位的输入来说,它的空间太大了,这种方法在现实中几乎是不可能的,因为它的工作量是极其巨大的。
在比特币系统中,collision resistance这个性质有着重要的作用,它可以用来对一个消息进行计算,求出它的摘要。比如有个消息m,取它的哈希值H(m)就是m的摘要,它可以用来检测对消息m的篡改。若有人修改m的内容,它的哈希值必然会会发生变化。Collision resistance的性质就是找不到另外一个m’,使得H(m')和原来的哈希值H(m)恰好相等。因此就没有办法篡改了消息内容而又不被检测出来。
需要注意的是,现实中并没有任何一个哈希函数在数学上能够被证明是collision resistance。这个原理是通过实践经验总结出来的。存在一些哈希函数,经过长期的实践检验,全世界大量的密码学专家共同怒力都无法找到人为制造哈希碰撞的方法,因此我们就认为这些哈希函数就是collision resistance。但也有一些哈希函数,曾经被认为是collision resistance的,但是后来被发现是存在制造哈希碰撞的方法,其中最著名的例子就是MD5。
2.  隐匿性(Hiding)
哈希函数还有第二个性质,就是隐匿性(Hiding),也就是说哈希函数的计算过程是单向的,不可逆的。给定一个输入x,可以算出它的哈希值H(x),但是通过这个哈希Nx[hY
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:35
帖子:2
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP