第10章椭圆曲线密码学

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10.3椭圆曲线算术
椭圆曲线理论是一个古老而深奥的数学分支,已有100多年的历史,一直作为一门纯理论学科被少数数学家掌握。

它被广大科技工作者了解要归功于20世纪80年代的两件重要的工作。

第一,Weil应用椭圆曲线理论证明了著名的费尔玛大定理。

第二,Neal Koblitz和ler把椭圆曲线群引入公钥密码理论中,提出了基于椭圆曲线的公钥密码体制ECC(Elliptic Curves Cryptosystem),取得了公钥密码理论和应用的突破性进展。

20世纪90年代,最通用的公钥密码体制是RSA公钥密码体制和DH公钥密码交换算法。

其密钥长度一般为512比特。

1999年8月22日RSA-512被攻破,所以,这些公钥不得不被加长。

为了达到对称密钥128比特的安全水平,NIST推荐使用3072比特的RSA密钥。

显然这种密钥长度的增长,对本来计算速度缓慢的RSA来说,无疑是雪上加霜。

ECC的提出改变了这种状况,实现了密钥效率的重大突破。

大有以强大的短密钥优势取代RSA成为新一代公钥标准(事实标准)之势。

ECC的安全性和优势得到了业界的认可和广泛的应用:
(1)1998年ECDSA(椭圆曲线数字签名算法)被确定为ISO/IEC数学签名标准ISO14888-3;
(2)1999年2月ECDSA被ANSI确定为数字签名标准ANSI X9.62-1998,ECDH(椭圆曲线
Diffie-Hellman)被确定为ANSI X9.63;
(3)2000年2月ECDSA被确定为IEEE标准IEEE1363-2000,同期,NIST确定其为联邦数
字签名标准FIPS186-2。

1.椭圆曲线
椭圆曲线并非椭圆,之所以称为椭圆曲线是因为它的曲线方程与计算椭圆周长的方程类似,一般来计,椭圆曲线的曲线方程是以下形式的三次方程:y2+axy+by=x3+cx2+dx+e (1)
其中a,b,c,d,e是满足某些简单条件的实数。

其中包括称为无穷远点的元素。

密码中普遍采用的是有限域上的椭圆曲线,有限域上的椭圆曲线是指曲线方程定义式(1)中,所有系数都是某一有限域GF(p)中的元素(其中p为一大素数)。

其中最为常用的是由方程
y2≡x3+ax+b (mod p)
定义的曲线。

(a,b∈GF(p), 4a2+27b3≠0 mod p)
椭圆曲线上的加法运算定义如下:
(1)设L 是通过P 和Q 的直线。

L 交E 于P 和Q ,容易看出,L 还交E 于第三点,记作R ’。

对x 轴反射R ’,得到一点R,定义P+Q=R 。

见图1和图2.
图2
(2) o 为加法单位元(无穷远点),即对椭圆曲线
上任一点P ,有P+o=o+P=P.
(3)P=(x,y)是椭圆曲线上的一点,它的加法逆元定义为
-P=(x,-y) P+(-P )=o
下面给出一个计算R 的代数公式。

椭圆曲线E 上的两点P=(x 1,y 1)和Q=(x 2,y 2)可以
图1
L
按照下面的规则相加:
(1) 如果x 2=x 1 ,y 2=-y 1,则P+Q=o;否则P+Q=(x 3,y 3),
其中
x 3≡λ2-x 1-x 2 (mod p) y 3≡λ(x 1-x 3)-y 1 (mod p)
其中λ是直线L 的斜率,
λ≡(y 2-y 1)(x 2-x 1)-1 mod p 当P ≠Q 时 λ≡(3x 12+a)(2y 1)-1 mod p 当P=Q 时 举例:设E 是Z 11上的椭圆曲线y 2≡x 3+x+6。

请确定E 上的点。

解:从y 2≡x 3+x+6看出,a=1,b=6,则
4a 3+27b 2≡8≠0 mod 11 所以该椭圆曲线可用于密码体制。

(1) 当x=0时
y 2≡6 mod 11 (2)
现在求解方程(2),首先根据legendre 符号来判断方程(2)有没有解:
⎪⎭
⎫ ⎝⎛⎪⎭⎫ ⎝⎛=⎪⎭
⎫ ⎝⎛112113116

1323111131112=⎪⎭
⎫ ⎝⎛-=⎪⎭⎫ ⎝⎛-=⎪⎭⎫ ⎝⎛-=⎪⎭

⎝⎛
可见
1112113116-=⎪⎭

⎝⎛⎪⎭⎫ ⎝⎛=⎪⎭⎫ ⎝⎛
方程(2)无解。

(2) 当x=1时,方程变为
y 2≡8 mod 11 (3) 现判断方程(3)有没有解。

()111121183
3
-=-=⎪⎭
⎫ ⎝⎛=⎪⎭⎫ ⎝⎛
所以方程(3)也无解。

(3) 当x=2时,方程变为
y 2≡5 mod 11 (4)
151511115=⎪⎭
⎫ ⎝⎛=⎪⎭⎫ ⎝⎛=⎪⎭⎫ ⎝⎛
方程(4)有解,其解为 y ≡±5
(11+1)/4
≡±53
≡±4 (mod 11)
即有两个点(2,4),(2,-4)
(4)当x=3时,y 2≡3 mod 11 (5)
因为132311113=⎪⎭
⎫ ⎝⎛-=⎪⎭
⎫ ⎝⎛-=⎪⎭
⎫ ⎝⎛
所以方程(5)有解,其解为: y ≡±3
(11+1)/4
≡±33
≡±5 (mod 11)
即有两个点(3,5),(3,-5) 同理可以算出:
当x=4,5,6,7,8,9,10时各方程解。

结果如下表所示:
可见E有13点(包括无穷远点o).
假设取p=(2,7),计算2P:
2P=P+P
λ≡(3x12+a)(2y1)-1 mod p≡(3╳22+1)(2╳7)-1 mod 11 ≡2╳3-1 mod 11≡8 mod 11
x3≡λ2-x1-x2(mod p) ≡82-2-2≡5 mod 11
y3≡λ(x1-x3)-y1(mod p) ≡8(2-5)-7≡2 mod 11
所以2P=(5,2)
下面计算3P
3P=2P+P=(5,2)+(2,7)
λ≡(y2-y1)(x2-x1)-1 mod p ≡(7-2)(2-5)-1mod p
≡5╳(-3)-1mod p≡5╳8-1≡2 mod 11
x3≡λ2-x1-x2(mod p) ≡22-5-2≡8 mod 11
y3≡λ(x1-x3)-y1(mod p) ≡2(5-8)-2≡3 mod 11
可见3P=(8,3)
如此继续下去,其余的乘积计算结果如下:
P=(2,7)2P=(5,2)3P=(8,3)
4P=(10,2)5P=(3,6)6P=(7,9)
7P=(7,2)8P=(3,5)9P=(10,9)
10P=(8,8)11P=(5,9)12P=(2,4)
2.椭圆曲线上的密码体制
(1)ElGamal密码体制
设p是一个素数,g是Z p*的一个生成元(也叫原根)。

明文空间P=Z p*,密文空间C= Z p*╳Z p*,选定0<a<p,计算
b≡g a mod p。

私钥:a 公钥: b
加密算法:
设明文为m,0≢m<p,随机地选择一个正整数k,0≢k<p,计算:
y1≡g k mod p, y2≡mb k mod p
密文c=( y1,y2 )
解密算法:
m≡y2 y1-a mod p
(2)基于椭圆曲线的ElGamal密码体制
首先选取一条满足4a3+27b2≠0 mod p的椭圆曲线E p(a,b),将明文消息通过编码嵌入到曲线上得点P m,再对点P m做加密变换。

取E p(a,b)上的一个点, E p(a,b)和G作为公开参数
用户选n A作为秘密钥,并以P A=n A G作为公开密钥。

任一用:
1)加密:
用户B若想向A发送消息P m,可选取一随机正整数k ,产生以下密文对:
C m={kG,P m+kP A}={C1,C2}
2)解密:
C2- n A C1= P m+kP A- n A kG = P m+k n A G - n A kG= P m
举例:利用上例的椭圆曲线y2≡x3+x+6。

取G=(2,7),私钥n A=7,则公钥为P A=n A G=7(2,7)=(7,2)若明文P m=(10,9),取随机数k=3,
加密:C1= kG=3(2,7)=(8,3)
C2= P m+kP A=(10,9)+3(7,2)=(10,2)
解密:P m= C2- n A C1=(10,2)-7(8,3)=(10,2)-(3,5)=(10,2)+(3,6)=(10,9)
3.椭圆曲线密码算法的优点
ECC与RSA比较,有很多技术优点:
(1)安全性能更高
安全性能占绝对优势,ECC在计算复杂度上目前是完全指数级的,而RSA是亚指数级。

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

(3)存储空间小。

160bit的ECC与1024bit的RSA具有相同的安全强度
210bit的ECC与2048bit的RSA具有相同的安全强度。

意味着它所占的存储空间要小得多。

这对于加密算法在资源受限环境上(如智能卡等)的应用具有特别重要的意义。

(4)带宽要求低。

习题:
求出椭圆曲线E:y2≡x3-2 mod 7上的点,并:
(1)在E上找到(3,2)+(6,5)的和。

(2)在E上找到(3,2)+(3,2)的和。

相关文档
最新文档