众所周知,比特币等加密货币的快速发展,离不开去中心化的区块链,而区块链的发展一样离不开加密技术帮助。那么今天我们就来了解一下区块链中的那些加密技术。
哈希算法
哈希算法是一种常见的单向加密算法,它将一串数据加密生成一串固定长度的二进制字符串,这段二进制字符串就是哈希值,但不能由哈希值还原到原来的输入数据。
密码学中的哈希函数有3个重要的性质,即抗碰撞性、原像不可逆、难题友好性。
抗碰撞性:是指两个不同的数据在同一哈希函数作用下,生成相同的哈希值。首先,两个不同的输入产生相同哈希值答案是肯定的,但在于它需要像十亿年后的所有计算机一样来寻找碰撞,以目前计算机的运算能力可以忽略不计。在区块链中,哈希函数的抗碰撞性可以用来做区块和交易的完整性验证。
不可逆性:是指根据输出的二进制字符串很难计算出输入的数据。因为输出的哈希值长度远远小于输入的长度,所以在运算过程中会丢弃大量的信息,由于缺失了很多信息,所以根本无法逆向出任何一个输入值。
难题友好性:是指没有便捷的方法去产生一个满足特殊要求的哈希值。通俗地讲,就是没有捷径,需要一步一步算出来。假如要求得到的哈希结果以若干个0开头,那么计算找到前3位均为0的哈希值和找到前6位均为0的哈希值,其所需的哈希计算次数是呈一定数量关系。
常用的哈希算法有MD5、SHA256和RIPEMD等。在区块链中很多地方用了哈希算法,比如对区块计算哈希值、区块和交易的完整性验证等等。
对称加密技术
对称加密技术是采用同一个密钥,然后使用加密算法对输入的信息进行加密,得到加密后的数据。之后,采用相同的密钥进行逆运算,可以得到原始的输入值。
它的特点是使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,要求解密方事先必须知道加密密钥。
如果有人在传输过程中截取了密文和密钥,就一样能解密出明文,这就导致了安全性问题。目前区块链领域最常用的对称加密算法是AES、PBKDF2和SCRYPT。
非对称加密技术
非对称加密技术需要两个密钥:公钥和私钥。公钥与私钥是一对,私钥可以推导出公钥,而公钥不可以推导出私钥。如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。简单的说是“公钥加密,私钥解密;私钥加密,公钥解密”。
在区块链中,数字签名就是基于上述非对称加密技术,不同点在于数字签名使用私钥生成一个签名,接收方使用公钥进行校验。比如用私钥解密得到明文后,用私钥进行签名进行回复,收到回复后用公钥解密,得到的内容与数据相同即可证明签名正确。
因为公钥和私钥是成对的,唯一对应的,私钥只有对方拥有,所以对方也不能对签名进行抵赖。
在区块链技术中常见的签名算法是椭圆曲线加密技术。其算法用对椭圆曲线上的点进行加法或乘法运算来表达。
区块链中私钥是一个随机数,通过椭圆曲线签名算法生成公钥。但反向从公钥计算出私钥几乎是不可能的。椭圆曲线签名算法还具有安全性高和存储空间占用小的特点。
免责声明:素材源于网络,如有侵权,请联系删稿。