ECC算法普遍被认为是最强大的非对称算法,基于ECC算法在实际应用中的优势,它在很多领域都有着广泛的应用。下面我们就来了解一下ECC算法在区块链中的应用。

ECC算法在区块链中的应用

ECC算法在区块链中最为典型的应用场景就是数字签名,常用的数字签名体制包括RSA、EIGamal、ECDSA等,而在区块链中,主要使用的是基于ECC算法的数字签名算法ECDSA。

ECDSA

ECDSA的原理

ECDSA又名椭圆曲线签名算法,设私钥、公钥分别为k、K,即K = kG,其中G为G点。

  • 私钥签名:

1、选择随机数r,计算点rG(x, y)。

2、根据随机数r、消息M的哈希h、私钥k,计算s = (h + kx)/r。

3、将消息M、和签名发给接收方。

  • 公钥验证签名:

1、接收方收到消息M、以及签名。

2、根据消息求哈希h。

3、使用发送方公钥K计算:hG/s + xK/s,并与rG比较,如相等即验签成功。

  • 原理如下:

hG/s + xK/s = hG/s + x(kG)/s = (h+xk)G/s

= r(h+xk)G / (h+kx) = rG

ECDSA

ECDSA的优点

椭圆曲线离散对数问题远难于离散对数问题,所以,ECC的安全强度要远高于传统的离散对数算法。因此,在使用较短的密钥的情况下,ECC可以达到更高的安全级别。

这带来的好处就是计算ECDSA参数更小,密钥更短,运算速度更快,签名也更加短小。因此ECDSA尤其适用于处理能力、存储空间、带宽及功耗受限的场合。

另外,ECC算法不仅可以用于签名验签,还可以用于数据加密,从而提高了数据传输的安全性。因为ECDSA具有极高的安全性,目前已广泛应用在比特币、以太坊、超级账本等区块链项目中。

免责声明:素材源于网络,如有侵权,请联系删稿。