第七章 椭圆曲线密码学

22
第第第 第第第第第第第 1 第第第第第第第 (1) 第第第第第 第第第第第 第第第第第第 (,) 平平平平平平平平平平平平平平平平平平平平平平平 平平平平平平平 平平 。, 平平平平平平 一。 AB⊥L 1 L 2 L 1 平平 AP 平 AB 平平 A 平平平平平平平平平P平A P平L 1 平平平L 2 L 1 P B A P Q

Upload: chibale

Post on 21-Mar-2016

100 views

Category:

Documents


7 download

DESCRIPTION

第七章 椭圆曲线密码学. A. L 2. 1 有关的基本概念 (1) 无穷远元素(无穷远点,无穷远直线) 平面上任意两相异直线的位置关系有相交和平行两种。引入无穷远点,是两种不同关系统一。 AB⊥L 1 , L 2 ∥L 1 , 直线 AP 由 AB 起绕 A 点依逆时针方向转动, P 为 AP 与 L 1 的交点。. Q. P ∞. L 1. P. B. Q=∠BAP→  /2 AP → L 2 可设想 L 1 上有一点 P ∞ ,它为 L 2 和 L 1 的交点,称之为 无穷远点 。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第七章  椭圆曲线密码学

第七章 椭圆曲线密码学1 有关的基本概念

(1) 无穷远元素(无穷远点,无穷远直线) 平面上任意两相异直线的位置关系有相交和平行两种。引入无穷远点,是两种不同关系统一。

AB L⊥ 1 , L2 L∥ 1 ,直线 AP 由 AB 起绕 A 点依逆时针方向转动, P 为 AP 与 L1 的交点。

L2

L1P∞

B

A

PQ

Page 2: 第七章  椭圆曲线密码学

Q= BAP→∠ /2 AP → L2可设想 L1 上有一点 P∞ ,它为 L2 和 L1 的交点,称之为无穷远无穷远点点。直线 L1 上的无穷远点只能有一个。(因为过 A 点只能有一条平行于 L1 的直线 L2 ,而两直线的交点只能有一个。)结论:1*. 平面上一组相互平行的直线,有公共的无穷远点。(为与无穷远点相区别,把原来平面上的点叫做平常点平常点)2* . 平面上任何相交的两直线 L1,L2 有不同的无穷远点。原因:若否,则 L1 和 L2 有公共的无穷远点 P∞ ,则过两相异点 A 和 P ∞ 有相异两直线,与公理相矛盾。

Page 3: 第七章  椭圆曲线密码学

3*. 全体无穷远点构成一条无穷远直线。注注:欧式平面添加上无穷远点和无穷远直线,自然构成射影平面影平面。

(2) 齐次坐标 解析几何中引入坐标系,用代数的方法研究欧氏空间。这样的坐标法也可推广至摄影平面上,建立平面摄影坐标系。 平面上两相异直线 L1,L2 ,其方程分别为: L1: a1x+b1y+c1=0

L2: a2x+b2y+c2=0

A

L1

L2P∞

Page 4: 第七章  椭圆曲线密码学

其中 a1,b1 不同时为 0 ; a2,b2 也不同时为 0 。设 D= a1 b1 Dx= b1 c1 Dy= c1 a1

a2 b2 b2 c2 c2 a2若 D≠0 ,则两直线 L1,L2 相交于一平常点 P(x,y) ,其坐标为 x=Dx/D , y=Dy/D.

这组解可表为: x/Dx=y/Dy=1/D( 约定:分母 Dx , Dy 有为 0 时,对应的分子也要为 0 )上述表示可抽象为( Dx , Dy , D).若 D=0 ,则 L1 L∥ 2 ,此时 L1 和 L2 交于一个无穷远点 P∞ 。这个点 P∞ 可用过原点 O 且平行于 L2 的一条直线 L 来指出他的方向,而这条直线 L 的方程就是: a2x+b2y=0.

Page 5: 第七章  椭圆曲线密码学

为把平常点和无穷远点的坐标统一起来,把点的坐标用( X , Y , Z) 表示, X , Y , Z 不能同时为 0 ,且对平常点( x , y) 来说,有 Z≠0 , x=X/Z , y=Y/Z ,于是有: i.e. X / Dx = Y / Dy = Z / D ,有更好的坐标抽象, X,Y,Z), 这样对于无穷远点则有 Z=0 ,也成立。注:a). 若实数 p≠0 ,则 (pX,pY,pZ) 与( X,Y,Z) 表示同一个点。实质上用( X:Y:Z) 表示。 3 个分量中,只有两个是独立的,具有这种特征的坐标就叫齐次坐标齐次坐标。

i.e.

DDZ

Y

DZ

X

yx

1

Page 6: 第七章  椭圆曲线密码学

b). 设有欧氏直线 L ,它在平面直角坐标系 Oxy 上的方程为: ax+by+c=0ax+by+c=0 则 L 上任一平常点 (x,y) 的齐次坐标为 (X,Y,Z) , Z≠0Z≠0 ,代入得: aX+bY+cZ=0aX+bY+cZ=0 给 L 添加的无穷远点的坐标 (X,Y,Z) 应满足 aX+bY=0aX+bY=0 ,,

Z=0Z=0; 平面上无穷远直线方程自然为: Z=0Z=0 !! (3) 任意域上的椭圆曲线K 为域, K 上的摄影平面 P2(K) 是一些等价类的集合 {(X:Y:

Z)} 。考虑下面的 Weierstrass 方程 ( 次数为 3 的齐次方程 ) : Y2Z+a1XYZ+a3YZ2=X3+a2X2z+a4XZ2+a6Z3

( 其中系数 ai K∈ ,或 ai K∈ 为 K 的代数闭域)

Page 7: 第七章  椭圆曲线密码学

Weierstrass 方程被称为光滑的或非奇异的是指对所有适合以下方程的射影点 P=(X:Y:Z) P∈ 2(K) 来说, F(X,Y,Z)=Y2Z+a1XYZ+a3YZ2-X3-a2X2Z-a4XZ2-a6Z3=0在 P 点的三个偏导数 之中至少有一个不为 0 若否称这个方程为奇异的。椭圆曲线椭圆曲线 EE 的定义: 椭圆曲线 E 是一个光滑的 Weierstrass 方程在 P2(K) 中的全部解集合。 Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3

注:a) 在椭圆曲线 E 上恰有一个点,称之为无穷远点。即 (0:1:0)用 θ 表示。

ZF

YF

XF

,,

Page 8: 第七章  椭圆曲线密码学

b) 可用非齐次坐标的形式来表示椭圆曲线的 Weierstrass 方程 : 设 x=X/Z , y=Y/Z ,于是原方程转化为: y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)

此时,椭圆曲线 E 就是方程( 1) 在射影平面 P2(K) 上的全部平常点解,外加一个无穷远点 θ 组成的集合。c) 若 a1,a2,a2,a4,a6 K∈ ,此时椭圆曲线 E 被称为定义在 K 上,用 E/K 表示。如果 E 能被限定在 K 上,那么 E 的 K——有理点集合表示为 E(K) ,它为 E 中的全体有理坐标点的集合外加无穷远点 θ.(4) 实域 R 上的椭圆曲线 设 K=R ,此时的椭圆曲线可表为平面上的通常曲线上的点,外加无穷远点 θ 。

Page 9: 第七章  椭圆曲线密码学

实域实域 RR 上椭圆曲线的点的加法运算法则上椭圆曲线的点的加法运算法则: 设 L P∈ 2(R) 为一条直线。因为 E 的方程是三次的,所以 L 可与 E 在 P2(R) 恰有三个交点,记为 P,Q,R (注意:如果 L 与 E 相切,那么 P,Q,R 可以不是相异的)。按下述方式定义 E 上运算: 设 P,Q E∈ , L 为联接 P,Q 的直线(若 P=Q ,则

L 取过 P 点的切线);设 R 为 L 与 E 的另一个交点;再取连接 R 与无穷远点的直线 L′ 。则 L′ 与 E 的另一个交点定义为 P Q 。

Page 10: 第七章  椭圆曲线密码学

PQ

P=Q

L

L

L′ L′(PQ) R=θ

θ θ

TT= θ(P=Q=R)

PQ PQ

R R

T

Page 11: 第七章  椭圆曲线密码学

上页的实际图像为椭圆曲线 y2=x3 - x 的一般化。来自对具体曲线的抽象。对运算更具体一些: 设 P=(x1,y1) , Q=(x2,y2) , PQ=(x3,y3), 由 PQ 的定义,设 y=αx+β 为通过 P,Q 两点直线 L 的方程,可算出: α=( y2-y1 )/(x2-x1), β=y1-αx1 易见,直线 L 上的一个点( x, αx+β) 是在椭圆曲线 E 上, 当且仅当 (αx+β)2= x3 – x 。 PQ=(x1,y1) (x2,y2)=(x3,y3) =(x3,-(αx3+β)) 其中, x3= α2-x1-x2=((y2-y1) / (x2-x1) )2-x1-x2 ; y3=-y1+((y2-y1)/(x2-x1))(x1-x3) 当 P=Q 时: PQ= ( x3 , y3 )算得: x3=((3x1

2-1)/2y1)2-2x1; y3= -y1+((3x12-1)/2y1)(x1-x3)

Page 12: 第七章  椭圆曲线密码学

注:a) 如果直线 L 与 E 相交与三点 P,Q,R( 不一定相异),那么 (PQ)R=θ( 从图中可见)。b) 任给 P E, ∈ P θ =P ( 此时设 Q= θ ,易见 L=L′)c) 任给 P,Q E∈ 有: P Q =Q Pd) 设 P E∈ ,那么可以找到 - P E∈ 使 P -P= θe) 任给 P,Q,R E∈ ,有 (P Q) R= P (Q R) 综上所述,知 E 对 运算形成一个 Abel 群。f) 上述规则可开拓到任意域上,特别是有限域上。假定 椭圆曲线是定义在有限域 Fq 上( q=pm) ,那么 E(Fq)={(x,y) F∈ q×Fq | y2+a1xy+a3y=x3+a2x2+a4x+a6} ∪

{θ}它对“ ”形成一个群,为 Abel 群。

Page 13: 第七章  椭圆曲线密码学

2 有限域上椭圆曲线的运算 令 Fq 表示 q 个元素的有限域,用 E(Fq) 表示定义在 Fq 上的一个椭圆曲线 E 。定理定理 1.1.(Hass(Hass 定理定理 )) E(FE(Fqq)) 的点数用的点数用 ##E(FE(Fqq)) 表示,则表示,则 || # #E(FE(Fqq)-q-1|≤2q)-q-1|≤2q1/21/2

(1) Fp (素域, p 为素数)上椭圆曲线 令 p>3 , a,b F∈ p ,满足 4a3+27b2≠0 ,由参数 a 和 b 定义的 Fp 上的一个椭圆曲线方程为: y2=x3+ax+b (2)它的所有解 (x,y) , (xFp , yFp) ,连同一个称为“无穷远点”(记为 θ )的元素组成的集合记为 E(Fp) ,由 Hass 定理

Page 14: 第七章  椭圆曲线密码学

知: p+1-2p1/2≤#E(Fp) ≤ p+1+2p1/2

集合 E(Fp) 对应下面的加法规则,且对加法形成一个 Abel 群:(i) θ θ=θ (单位元素)(ii) (x,y) θ=(x,y), 任给 (x,y) E(F∈ p)(iii) (x,y) (x,-y)=θ ,任给 (x,y) E(F∈ p), 即点 (x,y) 的逆元 为 (x,-y).(iv) 令 (x1,y1),(x2,y2) 为 E(Fp) 中非互逆元,则 (x1,y1) (x2,y2)=(x3,y3), 其中 x3=α2-2x1 , y3= α(x1-x3)-y1 且 α=(y2-y1)/(x2-x1) ( 3 )(v) (倍点运算规则) 设 (x1,y1) E(F∈ p),y1≠0 ,则 2(x1,y1)=(x3,y3) ,其中

Page 15: 第七章  椭圆曲线密码学

x3= α2-2x1, y3=α(x1-x3)-y1 这里 α=(3x12+a)/(2y1) (4)

注:若 #E(Fp)=p+1 ,曲线 E(Fp) 称为超奇异的,否则称为 非超奇异的。例子: F23 上的一个椭圆曲线 令 y2=x3+x+1 是 F23 上的一个方程 (a=b=1) ,则该椭圆曲线方程在 F23 上的解为 (y2=x3+x+1 的点 ) : (0,1) , (0,22) , (1,7) , (1,16) , (3,10) , (3,13) , (4,0) ,

(5,4) , (5,19) , (6,4) , (6,19) , (7,11) , (7,12) , (9,7) ,(9,16) , (11,3) , (11,20) , (12,4) , (12,19) , (13,7) , (13,16) , (17,3) , (17,20) , (18,3) , (18,20) , (19,5) , (19,18) ; θ 。

群 E(F23) 有 28 个点(包括无穷远点 θ )。

Page 16: 第七章  椭圆曲线密码学

(2) F2m 上的椭圆曲线 F2m 上由参数 a,b F∈ 2m , b≠0 定义的一个非超奇异椭圆曲线 E(F2m) 是方程 y2+xy=x3+ax2+b (5)

的解集合 (x,y) ,其中 x,y F∈ 2m ,连同 θ 。E(F2m)E(F2m) 的加法规则如下:的加法规则如下:(i) θ +θ= θ(ii) 任给 (x,y) E(F∈ 2m) ,则 (x,y) θ=(x,y)(iii) 任给 (x,y) E(F∈ 2m) ,则 (x,y)+(x,x+y)= θ , 即点 (x,y) 的逆为 (x,x+y).(iv) 两个相异且不互逆的点的加法规则: 令 (x1,y1),(x2,y2) E(F∈ 2m) 且有 x1≠x2 则

Page 17: 第七章  椭圆曲线密码学

(x1,y1)(x2,y2)=(x3,y3) ,其中 x3=α2+α+x1+x2+a ; y3=α(x1+x3)+x3+y1.其中 α= (y2+y1)/(x2+x1)(v) 倍点规则令 (x1,y1) E(F∈ 2m) ,其中 x1≠0 。则 2(x1,y1)=(x3,y3) ,其中 x3= α 2+ α +a, y3=x1

2+(α +1)x3, 这里 α =(x1+y1/x1)易见,群 E(F2m) 为 Abel 群。例: F24 上的一个椭圆曲线f(x)=x4+x+1 为 F2 上的一个不可约多项式,易见

Page 18: 第七章  椭圆曲线密码学

F24=F2[x] / (f(x)) = {(k0,k1,k2,k3) | (k0,k1,k2,k3)=k0+k1α+k2α2+k3α3 , α 为 f(x) 的零点, ki F∈ 2}假定 F2

4 上的非超奇异椭圆曲线有下述方程定义: y2+xy=x3+α4x2+1 ,注意 f(α)=0 。 方程应表为: (1000)y2 + (1000)xy = (1000)x3 + (1100)x2 +(1000)

Page 19: 第七章  椭圆曲线密码学

3 椭圆曲线密码体制 1985 年, N. Koblitz 和 V. Miller 分别独立提出了椭圆曲线密码体制 (ECC) ,其依据就是定义在椭圆曲线点群上的离散对数问题的难解性。( 1 )知 E(Fq) 对点的“”运算形成一个 Abel 群设 p E(F∈ q) ,若 p 的周期很大,即使 p p …… p= θ ( 共有 t 个 p 相加) 成立的最小正整数 t ,希望 t 很大。 (t = p 的周期,表示为∏ (p)=t) 。 并且对 Q E(Fq)∈ ,定有某个正整数 m 使 Q=m·p=p …… p ( 共有 t 个 p 相加 )

Page 20: 第七章  椭圆曲线密码学

定义 m= ㏒ p

Q (m 为以 p 为底 Q 的对数)。 椭圆曲线上的点形成的群 E(Fq) ,相关它的离散对数问题是难处理的。( 2 ) 建立椭圆曲线密码体制 选取基域 Fq , Fq 的椭圆曲线具体给定为确定的形式。在 E(Fq) 中选一个周期很大的点,如选了一个点 P=(xp,yp) ,它的周期为一个大的素数 n ,记∏ (P)=n( 素数 ) 。注意:在这个密码体制中,具体的曲线及点 P 和它的 n都是公开信息。密码体制的形式采用 EIGamal 体制,是完全类比过来。

Page 21: 第七章  椭圆曲线密码学

a)a) 密钥的生成密钥的生成Bob( 使用者)执行了下列计算:

i) 在区间 [1,n-1] 中随机选取一个整数 d 。 ii) 计算点 Q:=dP (d 个 P 相) iii) Bob 公开自己的公开密钥—— (E(Fq),p,n,Q) iv) Bob 的私钥为整数 d!Alice 要发送消息 m 给 Bob , Alice 执行: i) 查找 Bob 的公钥 (E(Fq),p,n,Q), ii) 将m 表示成一个域元素 m F∈ q,

iii) 在区间 [1 , n-1]内选取一个随机数 k, iv) 依据 Bob 的公钥计算点 (x1,y1):=kP(k 个 P 相 ) v) 计算点 (x2,y2):=kQ, 如果 x2=0, 则回到第 iii)步.

Page 22: 第七章  椭圆曲线密码学

ⅵ) 计算 C:=m·x2 ⅶ) 传送加密数据 (x1,y1,C) 给 Bob

b) Bobb) Bob 的解密过程的解密过程Bob收到 Alice 的密文 (x1,y1,C)后,执行 i) 使用私钥 d ,计算点 (x2 , y2):=d(x1,y1) ,再计算 Fq 中 x

2-1=?

Ii) 通过计算 m:=C·x2-1 ,恢复出明文数据 m 。