第10章椭圆曲线密码学
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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