虎符交易所研究院|区块链的加密算法

区块链中最重要的特征就是去中心化的信任机制 , 而这个机制是通过加密算法、时间戳、共识机制等一系列协议和技术来达成的 , 因此加密算法是区块链技术中非常重要的一环 。 虎符交易所研究院整理了相关资料 , 将比较常见的加密算法进行了分类 。
1、对称加密算法
在对称加密算法中 , 信息加密和解密使用的是同一串密钥 , 而信息的发送方和接收方则使用同样的密钥来对信息进行加密和解密 , 因此容易产生信息被盗取的问题 。 这种算法有时候又叫传统密码算法 , 即加密的密钥和解密的密钥是可以简单互推的 。
对称加密算法的特点是算法公开、计算量小、加密解密速度快 。 缺点也比较明显 , 比如当用户每次使用堆成加密算法时 , 都需要使用其他人不知道的密钥 , 这样会使得双方用户拥有的密钥数量不断增长 , 管理密钥成为了用户的负担 。 目前比较广泛使用的对称加密算法有DES、AES等 。
虎符交易所研究院|区块链的加密算法
文章图片

对称加密算法中 , 加密和解密使用的是同一串密钥(来源:101computing·net)
2、非对称加密算法(Asymmetric Cryptographic Algorithm)
在对称加密算法中 , 由于使用的是相同的密钥 , 存在着容易因为密钥泄漏导致数据被泄漏、盗用的情况 , 安全性无法得到保障 。 因此在非对称加密算法中引入了两个成对的密钥 , 分别是公开密钥(公钥 , Public Key)和私有密钥(私钥 , Private Key) 。 公钥用于对铭文加密 , 而私钥则用于解密获得原本的明文 。 正因为加密和解密需要两个不同的密钥所以才被称为非对称加密 。
假如A和B正在进行线上交易 。 A和B两人分别各持有自己的公钥和私钥 , 且双方的公钥是互相知道的 , 而私钥只有自己知道 。 当A要给B发送转账信息时 , A使用B的公钥对该信息进行加密 , 加密后发送给B 。 B收到消息后 , 使用自己的私钥就能解密该信息 , 获得转账信息 。 而假如在过程中有第三方C也获得了这个加密信息 , 但由于C没有B的私钥 , 就无法对加密的信息解密 , 保护了信息的安全性 。
虎符交易所研究院|区块链的加密算法
文章图片

在非对称加密中 , 公钥用于加密 , 而私钥用于解密(来源:ledger·com)
常见的非对称算法包括ECC(椭圆曲线加密算法)、RSA算法、Elagamal算法、背包算法等 。 在区块链技术中最常见的算法则是椭圆曲线加密技术 。 该算法对椭圆曲线上的点进行加法或乘法运算来表达 。 由于区块链中私钥是一个随机数 , 通过椭圆曲线算法可以生成公钥 , 但反向从公钥计算出私钥几乎是不可能的 , 这就使得区块链在交易中可以达成更有安全性的信息交换 。
3、哈希算法(Hash function)
哈希算法又称散列函数 , 是区块链中比较常见的一种加密算法 , 哈希算法具有三个基本特征:即输入可以为任意大小的字符串、进行有效计算、并能产生固定大小的输出 。 算法将一串数据加密生成一串固定长度的二进制字符串 , 且这段二进制字符串不能被还原为原来的输入数据 。 这个字符串就是哈希值(Hash Value) 。
虎符交易所研究院|区块链的加密算法
文章图片

哈希算法的运作例子(来源:wikipedia·org)
除此之外 , 哈希算法还有三个重要的特性:抗碰撞性、不可逆性以及谜题友好性 。 碰撞性是指在同一哈希函数作用下 , 输入两个不同的数据会生成一个相同的哈希值 , 这个过程也被称为“哈希碰撞”(collision) 。 在实际应用中 , 如果两个不同的用户A和B发生哈希碰撞得到了相同哈希值 , 那就意味着系统将A和B视为一个用户 , 也就是说两个用户可以互相读取和写入信息 , 这位数据安全带来了极大的隐患 。 通过扩大哈希值的取值空间 , 比如从16个二进制位改为32个二进制位 , 产生碰撞的可能性就从65536分之1降低到了4,294,967,296分之1 , 使得该算法更加具有抗碰撞性 , 降低了被暴力计算破解的可能 。

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。