当前位置:首页 > 知识 >

浅析区块链技术中的非对称加密算法:签名与加密

签名是一种非对称加密算法的用法。它使用不同的加密密钥与解密密钥,由已知加密密钥推导出解密密钥在计算上是不可行的。签名的主要作用是确定发送方的身份。除了签名,非对称加密算法还有一个用处是加密和解密。加密使用公钥对信息加密,然后使用对应的私钥进行解密,主要作用是向接收方传递加密的信息。签名和加密的作用和算法都不相同,因此需要加以区别。

1. 签名与验签 签名算法可以通过公钥和签名信息来确认发送方持有对应的私钥,不泄露发送者本身的私钥。签名还可以将发送者的身份和信息绑定,防止其他人冒充发送者,因此可以保证信息的防篡改的同时认证发送者的身份。常用的签名验签算法有RSA数字签名和椭圆曲线数字签名(ECDSA)。

1.1 RSA数字签名 RSA是被广泛研究的公钥算法,具有40年的历史。它的安全性主要依赖于大数分解,并且秘钥长度可以增加到任意长度。为了防止签名内容被修改,一般需要对签名内容进行哈希运算,并填充至和私钥长度类似的长度。随着计算能力的增长,为了防止被破解,秘钥长度也需要不断增长,目前认为2048位长度的秘钥是安全的。RSA的私钥生成需要两个质数的组合,因此寻找更长私钥的计算速度更慢。

1.2 椭圆曲线数字签名 椭圆曲线算法利用在有限域上的椭圆曲线的离散对数问题进行加密或签名。椭圆曲线的秘钥和RSA不同,有效范围会受椭圆曲线参数的限制,因此不能像RSA一样通过增加私钥长度来提高安全性。椭圆曲线的优势在于,私钥可以选取有效范围内的任意数,并且私钥的生成速度更快。相同秘钥长度的椭圆曲线安全性更高,因此达到相同安全等级需要的椭圆曲线秘钥长度远小于RSA秘钥的长度,对于存储比较受限的区块链来说,椭圆曲线更适用。

1.3 非对称签名验签算法 签名算法利用算法的单向性,将私钥和随机数隐藏起来,然后通过公开信息计算得到一致的结果来验证签名的有效性。

2. 加密与解密 非对

猜你喜欢

微信二维码

微信