首页 理论教育 优越性能的ECC算法:解决椭圆曲线离散对数问题

优越性能的ECC算法:解决椭圆曲线离散对数问题

时间:2023-06-09 理论教育 版权反馈
【摘要】:从1985年以来,ECC受到了全世界密码学家、数学家和计算机科学家的密切关注。相对于RSA和DSA等系统,ECC最吸引人的原因是目前已知的解决椭圆曲线离散对数问题最好的算法,也是完全指数时间的。表2-8描述了ECC和其他几种公钥密码算法抗攻击强度的比较。而且随着安全强度的增加,ECC比RSA/DSA运算的速度提高得更快。

优越性能的ECC算法:解决椭圆曲线离散对数问题

1.ECC密码体制简介

ECC是基于椭圆曲线离散对数问题的各种公钥密码体制。最早是在1985年分别由V.S.Miller和Neal Koblitz独立提出的。从1985年以来,ECC受到了全世界密码学家、数学家和计算机科学家的密切关注。一方面,由于没有发现ECC明显的安全漏洞;另一方面,在提高ECC的实现效率上取得了长足的进步,现在ECC已成为效率最高的公钥密码体制。

相对于RSA和DSA(一种数字签名算法,见2.4.1节)等系统,ECC最吸引人的原因是目前已知的解决椭圆曲线离散对数问题(ECDLP)最好的算法,也是完全指数时间的。与之相比,RSA和DSA等其他公钥密码系统所基于的数学问题,如因数分解问题(IFP)和离散对数问题(DLP)都有亚指数时间算法。与RSA和DSA等体制相比,ECC具有如下优势。

(1)安全性更高

加密算法的安全性能通过算法的抗攻击强度来反映。表2-8描述了ECC和其他几种公钥密码算法抗攻击强度的比较。可以看到,与其他公钥算法相比,ECC抗攻击性具有一定的优势。如160bit的ECC可提供与1024bit的RSA/DSA相当的安全强度,而210bit的ECC则与2048bit的RSA/DSA具有相同的安全强度。

表2-8 ECC与RSA/DSA抗攻击性能比较

978-7-111-39843-1-Chapter02-38.jpg

注:其中“MIPS”年表示每秒钟运行一百万次指令的计算机运行一年的工作量。

(2)计算量小,处理速度快

虽然在RSA中可以通过选取较小的公钥(如选取3为公钥)的方法提高公钥处理的速度,即提高加密和签名验证的速度,使其在加密和签名验证上与ECC有可比性,但在私钥的处理速度上(解密和签名),ECC比RSA/DSA要快。而且随着安全强度的增加,ECC比RSA/DSA运算的速度提高得更快。

(3)需要的存储空间少

ECC的密钥尺寸和系统参数与RSA/DSA相比要小得多,意味着它所占的存储空间要少得多。这对于在IC卡和无线环境中的应用具有特别重要的意义。

(4)带宽要求低

当对长消息进行加解密时,3类密码体制有相同的带宽要求,但应用于短消息时,ECC对带宽要求要低得多。带宽要求低使ECC在无线网络中具有广阔的应用前景。

由上面的几点可以看出,随着计算能力的提高、需要密钥长度的增加,ECC相对其他公钥密码系统具备一定的优势。其每比特更高的安全性所带来的优点包括:更高的速度、更低的能量消耗、节约带宽和提高存储效率。这些优点在一些对于带宽、处理器能力或存储有限制的应用中显得尤为重要。

2.ECC密码体制的数学基础

随着ECC研究的不断深入,ECC的标准化工作也在紧锣密鼓地进行中。ECC已被纳入IEEE公钥密码标准P1363中,包括加密、签名、密钥交换机制等。同时,ANSI也在制定椭圆曲线的相关标准,其中包括椭圆曲线数字签名算法(ECDSA)标准ANSI X9.62与椭圆曲线密钥协商和传输协议标准ANSI X9.63等。此外,ISO和ATM等组织也在对椭圆曲线的应用制定相关标准。

(1)Weierstrass方程

代数几何中,亏格为1的代数曲线称为椭圆曲线。由Riemman-Roch定理可知,任何一条椭圆曲线总可以用一个三次方程来表示,这个三次方程一般称为Weierstrass方程。下面给出椭圆曲线的定义。

设一给定的域K978-7-111-39843-1-Chapter02-39.jpg为它的代数闭域,定义在域K上的Weierstrass方程

EY2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3

称为射影平面978-7-111-39843-1-Chapter02-40.jpg上的椭圆曲线。

其中,a1a3a2a4a6K

FXYZ)=Y2Z+a1XYZ+a3YZ2−(X3+a2X2Z+a4XZ2+a6Z3

当方程组

978-7-111-39843-1-Chapter02-41.jpg

K上无解,则称该曲线E是非奇异(Non-singular)的,否则称E为奇异的(Singular)。

Weierstrass方程在射影平面978-7-111-39843-1-Chapter02-42.jpg上的解的集合为

978-7-111-39843-1-Chapter02-43.jpg

对于椭圆曲线,坐标分量Z=0的唯一的有理点(0,1,0),称为无穷远点,记为O

对Weierstrass方程,现令978-7-111-39843-1-Chapter02-44.jpg978-7-111-39843-1-Chapter02-45.jpg,则方程可变为

y2+a1xy+a3y=x3+a2x2+a4x+a6

(2)有限域上的椭圆曲线及其运算规则

根据有限域K的特征CharK)的不同,通常分为CharK)=2、CharK)=3和CharK)≠2,3三种情况。考虑到在ECC中,通常选择CharK)=2和CharK)=pp为大素数)。下面只介绍CharK)≠2,3和CharK)=2两种情况。

1)CharK)≠2,3时的情况

如果在有限域K上定义的椭圆曲线的特征值不等于2和3,那么椭圆曲线的Weierstrass方程可以大大简化。可以得到有限域K上的椭圆曲线为

Ey2=x3+ax+bab)∈K

判别式∆及j不变量分别为∆=-16(4a3+27b2)和jE)=-1728(4a3/∆,由于E是非奇异的,因而∆≠0。

此时的加法规则如下。

P=(x1y1)∈E,则-P=(x1,−y1)。若Q=(x2y2)∈EQ≠−P,则P+Q=(x3y3)。其中:x3=λ2x1x2y3=λx1x3)−y1。且当PQ时,978-7-111-39843-1-Chapter02-46.jpg;当P=Q时,978-7-111-39843-1-Chapter02-47.jpg

E为有限域K上的形为y2=x3+ax+b的椭圆曲线,设PQE上的两个点,-PP+Q的定义如下:(www.xing528.com)

●若P是椭圆曲线E上的无穷远点O,则-PO,且P+Q=Q,这里的P可以看成是加法幺元。

●若P=(xy),则-P=(x,-y)。

●若PQx坐标不同,则直线L=PQ截椭圆曲线有且仅有一点R(若L为椭圆曲线的切线,则令切点R=PR=Q),定义P+Q=R。其示例分别如图2-18和图2-19所示。

978-7-111-39843-1-Chapter02-48.jpg

图2-18 椭圆曲线上的加法P+Q=R

978-7-111-39843-1-Chapter02-49.jpg

图2-19 椭圆曲线上的加法P+P=2P=R

●若PQ,且PQx坐标相同(y坐标必定相反),则P+Q=O

●若P=Q,令L为椭圆曲线上P点的切线,L截椭圆曲线仅有一点R,则P+Q=2P=R,由此可以计算2P

P+Q称作点加,k个相同点相加,即P+P+…+P表示为kP,则称为点乘或数乘。

2)CharK)=2时的情况

K为一有限域,其特征值等于2,令E/K为由Weierstrass方程定义的椭圆曲线

978-7-111-39843-1-Chapter02-50.jpg

则其j不变量为

978-7-111-39843-1-Chapter02-51.jpg

如果jE)≠0(因而978-7-111-39843-1-Chapter02-52.jpg),那么可以将E转换为椭圆曲线E1

E1/Ky2+xy=x3+a2x2+a6

对于E1

∆=a6jE1)=1/a6

如果jE)=0(因而978-7-111-39843-1-Chapter02-53.jpg),那么可以将E转换为椭圆曲线E2

E2/Ky2+a3y=x3+a4x+a6

对于E2

∆=a43jE2)=0

此时的加法规则如下。

●当jE)≠0时,令P=(x1y1)∈E1,则−P=(x1y1+x1)。若Q=(x2y2)∈E1Q≠−P,那么P+Q=(x3y3)。其中

978-7-111-39843-1-Chapter02-54.jpg

978-7-111-39843-1-Chapter02-55.jpg

●当jE)=0时,令P=(x1y1)∈E2,则-P=(x1y1+a3)。如果Q=(x2y2)∈E2,并且Q=-P,那么P+Q=(x3y3)。其中

978-7-111-39843-1-Chapter02-56.jpg

3.ECC的应用

在椭圆曲线上可以方便地实现ElGamal密码体制。设Alice要向Bob发送信息m,首先,Alice把明文m嵌入到E上的点Pm;然后,Alice随机选择一整数k,计算kPPm+kPb,并将(kPPm+kPb)发送给Bob。

Bob收到信息后,计算Pm=(Pm+kPb)-dbkP),并从Pm中恢复出明文m

下面介绍一个把m嵌入到E上的点Pm的一种方法。设q≡3(mod 4),m是一个整数,且0≤m<q/1000-1。向m后面添加3位十进制数将构成一个新数x,有1000mx<1000(m+1)<q。通过不断尝试这一过程直到找到一个x使得fx)=x3+ax2+b为mod q的平方剩余。这样,定义m嵌入的点为Pm=(xfxq+1)/4

恢复明文m很简单,只要把解密后的Pmx坐标去掉后3位即可。

除了可以把明文m嵌入到E上外,也可以通过Masking方法来处理明文m。Menezes-Vanstone椭圆曲线密码系统就采用这种方法:

设Alice要发送m=(x1x2)∈Zq*×Zq*。首先,Alice随机选择一整数k,计算y0=kP,(c1c2)=kPby1=c1x1modqy2=c2x2modq,并将(y0y1y2)发送给Bob。Bob收到信息后,计算(c1c2)=dby0,并从(y1c1-1modqy2c2-1modq)=(x1x2)中恢复出明文m

用椭圆曲线也可以很容易实现Diffie-Hellman密钥交换。

设Alice和Bob分别选取随机数ab予以保密,将aGbGE公开。则Alice和Bob间通信用的密钥为abG,这是第三方无法得知的。

Diffie-Hellman密钥交换协议可以很容易地扩展到3人或更多的人。但是,Diffie-Hellman密钥交换协议不含有交换双方的认证信息,不能抵抗中间人攻击。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈