之前的文章中,我们简单了解了RSA加密算法,今天我们来了解另外一个被广泛使用的非对称加密算法——ECC,ECC加密算法的全称为“Elliptic curve cryptography”,中文名为“椭圆加密算法”,是一种基于椭圆曲线数学的公开密钥加密算法。

由于RSA和ECC都是基于正向运算很容易,反向运算很难的单向函数加密,所以两者经被一起比较。

ECC加密算法

ECC加密原理

与传统的基于大质数分解难题的加密算法不同,该加密方式基于 “离散对数” 这种数学难题。ECC使用了正向运算很简单,但是反向运算很难的单向函数,但是和RSA的原理不同,RSA使用的时模函数作为单向函数,而ECC是建立在基于椭圆曲线的离散对数问题上的密码体制,给定椭圆曲线上的一个点G,并选取一个整数k,求解K=kG很容易(注意根据kG求解出来的K也是椭圆曲线上的一个点);反过来,在椭圆曲线上给定两个点K和G,若使K=kG,求整数k是一个难题。ECC就是建立在此数学难题之上,这一数学难题称为椭圆曲线离散对数问题。其中椭圆曲线上的点K则为公钥(注意公钥K不是一个整数而是一个椭圆曲线点),整数k则为私钥(实际上是一个大整数)。

ECC加密算法

由于椭圆曲线的离散对数问题并不是一个很好理解的数学问题,在这里就不多做赘述,大家只要了解即可。

ECC主要优势

ECC主要优势是可以使用更小的密钥并提供相当高等级的安全。ECC 164位的密钥产生一个安全级,相当于RSA 1024位密钥提供的保密强度,而且计算量较小,处理速度更快,存储空间和传输带宽占用较少。

ECC加密算法

ECC常见应用

由于ECC的优点特性,所以经常被用作于HTTPS的数字签名和数字证书;SSH(安全外壳协议)和PGP(优良保密协议)也在使用ECC加密算法;以太坊平台和虚拟货币比特币等也选择ECC作为加密算法。

ECC加密算法

ECC加密算法自1985年提出后,因其工程应用中难度较高,可能出现的“后门”以及专利问题,直到2005年才被广泛支持和应用。在当前时代需求的刺激下,ECC算法可能会逐步取代RSA算法,成为主流加密算法。

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