浅谈区块链密码学
密码学起源
众所周知,密码学是数字加密货币实现去中心化信任的基础,目前广为流传的最早密码学的使用,要追溯到公元前58年凯撒大帝所使用的凯撒密码,凯撒在他的军事命令中,将每一个字母都进行了位移,以防止他的敌人在截获凯撒的军事命令之后,直接获取到他的真实情报。
时间来到1949年,既香农用比特(bit)量化了信息之后,又重磅发表了《保密系统的通信理论》一文,开辟了用信息论来研究密码学的新思路,这一发现将密码从艺术变成了科学。在香农的理论中,信息传输、处理、检测和接收的过程,与密码系统中的加密、解密、分析和破译的过程都可以用信息论的观点进行分析和研究。密码系统本质上也是一种传递信息的系统。
密码学分类
目前主流的密码学分类,主要包含两大块: 传统密码算法和抗量子攻击密码算法QRC(Quantum Resistant Cryptography)。传统密码算法包含经典公钥算法、散列函数、对称密码算法等,这类传统密码算法的共同点都是基于一个数字难题,即大素数因式分解/离散对数。简单来说,给定一个由2个大素数乘积得到的数字,你很难去猜测这个数字的因式分解如何求解,只能通过穷举,相反验证的话在O(1)的时间复杂度内就能得到。
由于这类算法的通病,在1994年,数学家彼得·秀尔发现了秀尔算法(Shor算法),它解决了如下题目: 给定一个整数N,找出他的质因数。该算法将求解的时间复杂度降到了O(logN)。但运行该算法有一个前提,那就是必须是量子计算机。该算法最早在2001年,由IBM的小组通过NMR实验的量子计算机成功实践证明。
为了应对量子计算日益发展带来的威胁,密码学家们就开始研究抗量子攻击密码算法,这类算法必须避开量子计算机的特点,即通过强大的计算能力就能够破解。到目前为止,在理论上可行的抗量子算法主要有以下几种: 基于编码的算法、基于多变量多项式的加密算法、基于安全散列函数的算法、格基加密算法、超奇异椭圆曲线同源问题。这几类算法,都是基于不同的数学难题发展而来,并且巧妙的避开的量子计算的特点,但到目前为止,只是停留在理论基础上。
区块链中的密码学
在区块链中,应用最广泛的主要有hash算法,公钥算法,如比特币中使用的POW挖矿算法,其实就是一种散列算法,即SHA-256散列算法。散列算法的主要特点是不可逆性、大输入小输出。所以POW就是通过计算机穷举一个随机数,来使得生成的哈希值满足挖矿的难度条件。哈希算法在比特币的应用还有很多,如整个交易树的Merkle root、地址的生成、整个区块的唯一编号、一笔交易的唯一编号等等,都是通过哈希算法生成的。而在以太坊中,用到的密码学和比特币类似,区别在于以太坊中用到的哈希算法是Keecak-256,相比经典的SHA-1,SHA-2算法,以SHA-3为代表的keecak哈希算法的哈希碰撞发生概率更小,安全和性能都有很大的提升。
除哈希算法外,另一种被用到的就是公钥算法,在区块链中具体表现即椭圆曲线加密算法,通过应用椭圆曲线加密算法的单向特性,在区块链钱包中,私钥可以产生出公钥,而反过来要想推算出私钥则不可能;用公钥加密的信息,可以使用私钥来解密;而用私钥签名的信息,则由公钥来验证,验证通过后说明该信息确实为私钥持有人所发布。具体的椭圆曲线加密数学原理,本文就不详细说明。
本文小结
本文初步介绍了密码学的源码和区块链中密码学的应用,包括了下面的一些知识:
- 密码学的由来和发展
- 传统密码学分类以及缺陷
- 抗量子密码学的分类以及进展
- 经典区块链系统中用到的密码学以及场景
参考资料
- 秀尔算法百度百科
- 《区块链:定义未来金融与经济新格局》- 张建
来源:CSDN
作者:雨落苏桥
链接:https://blog.csdn.net/asdliman0110/article/details/103927041