解密区块链中的密码学

在这片文章中,我们总结了区块链会用到的一些密码学原语,那什么是密码学“原语”?


不同于操作系统的“原语”概念,(注:操作系统原语是操作系统或计算机网络用语范畴。是由若干条指令组成的,用于完成一定功能的一个过程,具有不可分割性。)密码学原语强调的是“动机”,可以简单理解为:你想做什么事情?比如“加密”、“签名”是个原语,“密钥交换”、“零知识证明”也是个原语。


位于第一层阶层的原语可能一共有十几个左右,由第一阶层的原语派生出的,大大小小加上各种属性组合起来,可能有上千个之多。


一些密码学家,在网络上做了一个很有趣的组合,左边选原语、右边选属性,不同的原语跟不同的属性,再加上不同的公平认证框架,三者互相组合可以就产生出上千种应用,也就是新的密码原语。


而区块链是一个密码密集,比特币就是区块链的典型代表,它的基本结构可以概括成一个“双链Hash锁定”,其特性就体现在:

①它是一个全新的分布式帐本;

②它是“只增不改”;


怎么来理解这两点呢?其实杨义先原来打过一个比方的,他在《安全简史》里面把区块链比喻成一个家谱。 相当于,我说话的时候拿着一个高音喇叭在广场上面,我说出去的话被很多人听到了,当我想反悔的时候,只要有足够多的人证明你已经说过的话,你不能反悔,这样就保证你说出去的话做到只增不改。


比特币核心用密码学原语就是签名算法(ECDSA)和哈希算法(Hash)。其实区块链当中用到的密码原语有很多,比如哈希、数字签名等。而且数字签名不仅仅用了标准的数字签名,还用到了环签名、可连接环签名、一次签名,还有博罗梅环签名,以及多重签名,同态加密、同态承诺、累积器以及零知识证明等等,还有最近比较火的密码掷签。


(1)哈希函数

目前来说,我们用的哈希函数大部分三大类:SHA1、SHA2、SHA3。目前比特币里面又有一个主要是SHA0,当然现在也有一些已经用到了SHA3里面的一些。


(注::SHA即安全散列算法(Secure Hash Algorithm的缩写)是一个密码散列函数家族,是FIPS所认证的安全散列算法。SHA家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布)


SHA3的好处是非NSA设计的,非NSA设计有一个好处,就是这里面存在着一个后门(注:后门一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法)。


从密码算法的角度来讲,如果是设计者故意藏进去的“后门”,理论上可以做到不可区分,也就是除了设计的人知道,别的人想探知“后门”的存在性,将会面对一个人非常困难的数学难题。


为了便于对比,我们用破解MD5做一个对比,使用不超过2的64次方的比特运算、逻辑运算就可以实现。目前行业主要使用的是SHA—256,目前上没有被破解。


注:MD5是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值