区块链基础技术之密码学

看白癜风的专业医院 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/

来源

拓客链

谈区块链离不开密码学。通常来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点公式算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。

区块链的核心是它按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。我们可以发现区块链中有四项不可缺的核心技术,分别是分布式存储、共识机制、密码学原理和智能合约。今天我们将主要介绍一下区块链中的密码学。

什么是密码学

密码学作为一门古老的学科,有着悠久而奇妙的历史。它用于保护军事和外交通信可追溯到几千年前文字刚刚产生的上古时期。凯撒密码是一种最简单且最广为人知的加密技术,这种加密方法,甚至沿用到今天。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。比如Abroad,凯撒在用密文写信的时候,就被替换为Deurdg,这样就得到了敌人看不懂的密文。

现在看来这种加密方式可能稍显幼稚,但作为历史上文字记载的最早使用加密密钥的案例:由发件人和收件人共享加密密钥,标志了现代密码学的发端。可以说,从凯撒密码,到20世纪公共密钥被发明之前的这几千年时间里,密码学的原理都是一样的。比特币和区块链的加密方式,跟凯撒密码的原理区别,也就是多了公钥而已。

密码学是研究如何隐密地传递信息的学科。在现代特别指对信息及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。密码学中应用最广的三类算法是哈希算法、对称算法和非对称算法。在区块链中,哈希算法和非对称算法是必备的两种算法。

哈希算法

哈希算法,俗称Hash算法,也叫散列算法或数据摘要,它是一种常见的单向加密算法,它将一串数据加密生成一串二进制,但不能由二进制还原为原来的数据。简单来说就是把任意数据(二进制)变为固定长度的二进制,小到一个数字“1”,大到一个视频文件,只要是最终以二进制形式存储的数据,就能通过hash算法变为固定长度的一串数据。

一个优秀的hash算法有以下四个特点:

正面快速:就是说加密的速度要在有限时间和有限资源内完成,且越快越好。

逆向困难:就是说给你一个加密后的hash值数据,要想逆向破解获得加密前的明文是极其困难的。

输入敏感:明文只要发生哪怕一点点改变,进行hash运算后的值都会产生很大的改变。

冲突避免:不同的明文,他们进行hash运算后的hash值基本不可能一样。

冲突避免又叫做“抗碰撞性”,如果给你一个明文,得到hash值后,你无法找到另外一个明文的hash值与他一样,那么就叫做“抗弱碰撞性”。要是你自己随便找两个明文,让他们的hash值一样,如果做不到,那么叫做“抗强碰撞性”,也就是说具有更强的“抗碰撞性”。

现在比较流行的就是MD5和SHA-1算法。但是由于这两种算法不够安全,也就是在“抗碰撞性”上做得不够好,于是又有了SHA-、SHA-,SHA-等算法。

比特币采用的SHA-hash算法,共有位,也就是2的次方个结果(这个数字十分巨大),产生新区快时候,由于hash逆向困难,矿工就要用哪一个值去跟新区块的hash的值碰撞,谁先猜对,就让谁在新的区块中写入信息,并且获得新区快中的奖励btc。

对称加密

对称加密又叫传统密码算法,就是加密和解密使用同一个密钥。潜伏里面孙红雷通过电台收听到一堆数字,然后拿出一本书(密码本)比对,找到数字对应的汉字,就明白上级传达的是什么指令了。而军统的监听台没有密码本,只看到一堆没有意义的数字。

用数学公示表示就是:

▲加密:Ek(P)=C

▲解密:Dk(C)=P

这里E表示加密算法,D表示解密算法,P表示明文,C表示密文,留意以后会经常看到。常见的对称加密方法有DES(不够安全)、3DES(不够安全)、Blowfish、RC2、AES以及国家商用密码的SM4。

对称加密的特点是:加解密使用相同的密匙;算法公开,安全性取决于密匙大小,但密匙越大效率越低,需要权衡在安全和效率中做权衡。优点是高效,使用于大量数据的加密场景,缺点是算法本身安全,但使用场景不够安全,因为解密和加密都是使用同一个密匙。

非对称加密

对称加密又快又方便,但是有个很大的坑——密码本容易被偷或被破解。怎么能够防止这种情况呢?年三位数学家Rivest、Shamir和Adleman设计了一种算法(所以叫RSA),把密钥分成两个,一个自己持有叫私钥(PrivateKey),另一个发给对方,还可以公开,叫公钥(PublicKey),实现用公钥加密的数据只能用私钥解开:

▲加密:E公钥(P)=C

▲解密:D私钥(C)=P

非对称加密(也叫公钥加密),顾名思义,加密密钥和解密密钥是不同的,分别称为公钥和私钥。公钥一般是公开的,人人可获取的,私钥一般是个人自己持有,不能被他人获取。

这下就不用再头痛如何把密码本给对方或被破解了,私钥由自己保管,敌方拦截到密文也没有办法。非对称算法核心原理其实就是设计一个数学难题,使得用公钥和明文推导密文很容易,但是很难根据公钥、明文和密文推导私钥。

非对称加密的优点是公私钥分开,不安全通道也可使用;多方通信所需密钥少,维护简单。缺点是加解密速度慢,一般比对称加解密算法慢两到三个数量级;同时加密强度相比对称加密要差。

代表算法有RSA(不够安全)、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)以及国家商用密码SM2算法。

区块链提供了通过机器算法解决参与人之间的信任问题的全新方案,其核心的核心就是在不完全信任的各方,通过深度使用密码学算法来保证数据的不可篡改特性。区块链和密码学是相互促进发展的一个过程,区块链中大量使用了密码学的知识,同时为了满足区块链的不同场景也促进了密码学的进一步发展。




转载请注明:http://www.92nongye.com/txjg/txjg/204627010.html