售前咨询
技术支持
渠道合作

常见的加密算法之ECC加密

ECC-Elliptic Curve Cryptography,中文名为椭圆加密算法。由Koblitz和Miller两人于1985年提出。ECC加密算法是一种公钥加密技术,以椭圆曲线理论为基础。利用有限域上椭圆曲线的点构成的Abel群离散对数难解性,实现加密、解密和数字签名。将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,就可以建立基于椭圆曲线的对应密码体制。

公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。

ECC加密算法安全性能

目前主流的数字签名方案是基于大整数因子分解问题的RSA加密算法,其特点是数学原理简单。在应用过程中容易实现,但其单位安全强度相对较低,目前用国际上公认的对于RSA加密算法最有效的攻击方法一般数域筛(NFS)方法去破译和攻击RSA加密算法,它的破译或求解难度是亚指数级的,其复杂度T(n)=o(exp{(1.92+0(1))(1nn) I(n)(1nn)z/3))。而对于ECC加密算法,目前最有效的攻击方法其破译和求解的难度是指数级的,其复杂度T(n)=0(explnn/P(max),其中P~是ECC交换群的阶的最大素因子,也就是在相同的密钥长度条件下,ECC加密算法的安全性要远远超过RSA加密算法。

ECC加密算法的计算量小并且处理速度快。在一定的相同的计算资源条件下,虽然在RSA中可以通过选取较小的公钥(可以小到3)的方法提高公钥处理速度,即提高加密和签名验证的速度,使其在加密和签名验证速度上与ECC有可比性,但在私钥的处理速度上(解密和签名),ECC远比RSA、DSA快得多。同时ECC系统的密钥生成速度比RSA快百倍以上,以163位的ECC加密算法与1024位的RSA加密算法比较,ECC加密算法的签名时间为3.0ms,密钥对生成时间为3.8ms,但RSA加密算法却分别高达228.4ms和4708.3ms,因此在相同条件下,CC加密算法则有更高的加密性能。

ECC加密算法的存储空间占用小:ECC加密算法的密钥尺寸和系统参数与RSA相比要小得多,160位ECC加密算法与1024位RSA具有相同的安全强度,210位ECC加密算法则与2048位RSA具有相同的安全强度,意味着它所占的存贮空间要小得多。

ECC加密算法的带宽要求低,当对长消息进行加解密时,两类密码系统有相同的带宽要求,但应用于短消息时ECC加密算法带宽要求却低得多,而数字签名正是基于短消息的通讯传输,因此基于ECC加密算法的数字签名系统带宽要求比RSA低很多,易于在各种网络环境下推广应用。此外,ECC加密算法的灵活性要高于RSA算法,它可以通过改变参数设置获得不同的曲线,具有丰富的群结构和多选择性。

随着网络应用的迅速发展,网络安全问题日益受到人们的重视,而传统的基于RSA加密算法的数字签名体制在计算机技术快速发展的情况下,其安全性已经受到了严重的威胁。ECC加密算法由于其安全、高效的特点日益受到人们的重视,在数字签名等安全领域已经有一定程度的应用,可以预见随着网络技术的进一步发展,ECC加密算法的应用前景将会更加广阔。

ECC加密算法在数字签名中的应用

由于ECC加密算法是建立在公钥加密体系基础上的,所以它不但可以应用于通信加密,而且还可以应用于数字签名领域。设椭圆曲线公钥密码系统参数为(Fq,E,a,b,r,G),其中,Fq是有限域,E是Fq上的椭圆曲线,a,b是椭圆曲线E的系数,r是一个大的素数,G是椭圆曲线E上秩为r的点。

1、密钥的产生

用户A随机选择一个[1,r一1]之间的整数作为私钥s,计算点V=sG,其中(G,V)是公钥。并令V=(X。,Y。)。

2、签字过程

(1)利用IEEE _1363中的FE2IP程序将Z化成一整数i;

(2)计算c=imodr;(若c=0,则重新选取私钥s)

(3)m为消息,计算d=u-1(m+sc)modr;(若d=0,则重新选取私钥s)

(4)m的数字签名为(c,d).

3、检验过程

(1)若c不在[1,r-1]内或 不在[1,r-1]内,则签名为假签名;

(2)计算h=d-1modr,h1=mhmodr,h2=chmodr;

(3)计算椭圆曲线E(Fq)上的曲线点P=h1G+h2W。若P=0,则签名为假签名,否则令P=(Xp,Yp);

(4)利用FE2IP程序将Xp,化成一整数i’;并计算c’=i’modr;

(5)如果c=c’,则签名为真,否则。签名为假。

操作系统支持

ECC加密算法以后支持所有操作系统、所有浏览器和各种移动终端,主要有:

(1) Mozilla NSS 3.11以上版本支持

(2) OpenSSL 1.0以上版本支持

(3) 微软CryptoAPI Vista/Win7/Win8都支持

(4) BouncyCastle 1.32以上版本支持

(5) JSSE 6 以上版本支持

(6) BSAFE 4.0 以上版本支持

(7) 各种版本的IE浏览器、火狐浏览器、谷歌浏览器和苹果浏览器都支持

(8) 安卓系统(2.1以上版本)、苹果IOS(5.0以上版本) 、Window Phone(各种版本)都支持

其他加密算法

常见的加密算法之DES

常见的加密算法之3DES

常见的加密算法之RSA

常见的加密算法之DSA

常见的加密算法之AEC

 

上一篇:

下一篇:

相关文章