区块链中的那些密码学
密码学追溯历史可到古巴比伦时代,有数千年的历史,然主要应用于军事、外交和情报领域,密码学进入公众领域,还源于两件事:
标准加密系统——数据加密标准的诞生;公钥加密算法(也称非对称加密算法)的发明。
一、密码学发展历程
密码学按算法思想可分为:古典密码学、现代密码学、公钥密码学。
1949年以前,安全性基于加密算法的保密性,统称为古典密码学;1949年,香农的信息论诞生为标志,密码学步入现代密码学阶段,基于复杂计算的密码学,其是一种对称加密算法;1976年,Whitfield Diffie和Martin Hellman提出公钥密码机制,可以在不直接传递密钥的情况下,完成密文的解密,1978年,RSA公钥密码机制出现,开启一个新的里程碑,公钥密码是非对称加密算法。
二、密码学原则
如今密码学的理论共识都遵循奥古斯特.柯克霍夫19世纪提出的“柯克霍夫原则”,即:
密码系统应该就算被所有人知道其运作步骤,它仍然是安全的。即算法是公开的,唯一需要保护的是密钥。
算法的安全性被攻破有两种可能:
算法本身的漏洞,不需要密钥就能破解算法;在可接受的时间范围内暴力破解。
三、各加密算法特点
1.古典密码学:其算法归根结底主要有两种,即:置换和替换;其安全性依赖于算法的保密性,整体安全性不高。
2.对称加密:加密算法和解密算法都是同一种模式,只用一把密钥保证加密数据的安全;甲必须把密钥告诉乙,否则乙无法解密,那么保存和传递密钥,成为最头痛的问题。
3.非对称加密:有一对密钥,即:公开密钥和私有密钥,用公钥对数据进行加密后,只有对应的私钥能解密,反之亦然,通信双方无须交换密钥,就可以建立保密通信。
4.哈希算法:输入x可以是任意长度的字符串,输出结果,即H(x)的长度是固定的。其可以具有免碰撞;隐匿性;不存在比穷举更好的方法,以使哈希结果H(x)落在特定的范围。
四、区块链中的密码
在比特币区块链的整个体系中,大量使用了公开的加密算法,如Merkle Tree哈希数算法,椭圆曲线算法、哈希算法、对称加密算法及一些编码算法。各种算法在比特币区块链中的作用如下:
哈希算法 比特币系统中使用的两个哈希函数分别是:
SHA-256,主要用于完成PoW(工作量证明)计算;
RIPEMD160,主要用于生成比特币地址。Merkle哈希树 基于哈希值的二叉树或多叉树,在计算机领域,Merkle树大多用来进行完整性验证处理,在分布式环境下,其进行完整性验证能大量减少数据传输和计算的复杂程度。
椭圆曲线算法 比特币中使用基于secp256k1椭圆曲线数学的公钥密码学算法进行签名与验证签名,一方面可以保证用户的账户不被冒名顶替,另一方面保证用户不能否认其所签名的交易。用私钥对交易信息签名,矿工用用户的公钥验证签名,验证通过,则交易信息记账,完成交易。
对称加密算法 比特币官方客户端使用AES(对称分组密码算法)加密钱包文件,用户设置密码后,采用用户设置饿密码通过AES对钱包私钥进行加密,确保客户端私钥的安全。Base58编码 Base58是比特币使用的一种独特的编码方式,主要用于产生比特币的钱包地址,其类似于古典密码学里的置换算法机制,目的是为里增加可读性,把二进制的哈希值变成了我们看到的地址“177rNLTxYAaXqTrrJPRsQNxvR9a1gF5P3K”。
其实今天的区块链加密系统并非没有天敌,只是这个天敌目前还只是存在于理论之中,那就是量子计算机。以量子计算机的运算水平,刚才需要花一千年才能运行得到的结果,量子计算机大约10分钟就可能找到答案。在这样强大的技术面前,今天的所有加密系统是不是都会黯然失色,我们的个人隐私、银行的巨额金融交易信息、国家安全的关键信息等等,都会被暴露无遗。
当然,未来还会有更多的技术问世,当然加密的技术也会不断地提高。未来不论是量子计算机,或者是其他什么先进的技术,肯定会颠覆今天的信息安全系统,这一点是毋庸置疑的。所以,我们关注区块链和比特币,并不是因为比特币的价值真的有那么高,而是我们要关注这个新技术将可能会引发的变革。就像是凯撒当年注意到了替换密码,并把它运用到了军事中;就像是阿拉伯人把加密系统运用到了国家官员的管理、税收等等方面,推动了国家的繁荣;就像是希特勒和纳粹注意到了恩格玛机,并大量使用,在二战中占得先机;就像是中本聪,他看到了全球去中心化的需求浪潮
没有任何一项技术是永恒不变的伟大。区块链和比特币虽然现在是热门词汇,任何跟区块链沾边的概念都被渲染得玄乎其玄,但要它的真正价值,要把它放到历史长河里去,用时间去检验。我们应该正确看待区块链的作用,切不可神话区块链。
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。