签名是一种非对称加密算法的用法,即使用不同的加密密钥与解密密钥,而由已知加密密钥推导出解密密钥在计算上是不可行的。签名是用非对称算法的私钥签名,然后用私钥对应的公钥来验证签名,的主要作用是确定发送方的身份。除了签名,非对称加密算法还有一个用处是加密和解密,加密则是用公钥来对信息加密,然后用对应的私钥进行解密,主要作用是向接收方传递加密的信息。签名和加密的作用和算法都不相同,因此需要加以区别。
1签名与验签签名算法可以在不泄露发送者本身的私钥的情况下,通过公钥和签名信息来确认发送者持有对应的私钥。签名还可将发送者的身份和信息绑定,防止其他人冒充发送者,因此这样处理可保证信息的防篡改的同时认证发送者的身份。目前常用的签名验签算法有RSA数字签名和椭圆曲线数字签名(ECDSA),其中椭圆曲线数字签名是区块链中应用最多的方法。
1.1 RSA数字签名
RSA 是被研究得最广泛的公钥算法,从提出到现在已有四十年的历史,经历了各种攻击考验。RSA的安全性主要依赖大数分解,优势是秘钥长度可以增加到任意长度。RSA运算方式造成了签名内容如果较短,会被很容易修改为攻击者想要的内容,所以一般还需要将签名内容进行一次哈希运算,并填充至和私钥差不多的长度。此外,随着计算能力的增长,为防止被破解,秘钥长度也需要不断增长,目前认为安全的秘钥长度是2048bit。同时RSA的私钥生成需要两个质数的组合,因此寻找更长私钥的计算速度也更慢。
1.2椭圆曲线数字签名
椭圆曲线算法是利用在有限域上的椭圆曲线的离散对数问题来加密或签名的。椭圆曲线的秘钥和RSA不同,有效范围会受椭圆曲线参数的限制,因此不能像RSA一样可以通过增加私钥长度来提高安全性,对于安全性不够的曲线,必须

最低0.47元/天 解锁文章
2394

被折叠的 条评论
为什么被折叠?



