视频
- 设 F 是一个域,a1,a2,a3,a4,a5∈F,则(基)域 F 上的椭圆曲线是由(Weierstrass 方程)
Ω={(x,y)∈F×F:y2+a1xy+a2y=x3+a3x2+a4x+a5}
和另一个点(无穷远点) O 构成的集合,即
E={O}∪Ω
其中,Weierstrass 方程也可以用其他椭圆曲线方程取代,例如蒙哥马利方程。
- 设 F 是一个域,a1,a2,a3,a4,a5∈F,则域 F 上的椭圆曲线 y2=x3+ax+b 是由满足 F 上的方程 y2=x3+ax+b 的所有点
G={(x,y)∈F×F:y2=x3+ax+b}
和另一个点 O 构成的集合
E={O}∪{(x,y)∈F×F:y2=x3+ax+b}
该椭圆曲线的判别式为 Δ=4a3+27b2(一般要求 =0)。
- 令 P=(x,y) 是曲线 E 上的一点,若:
∂X∂E(x,y)=∂Y∂E(x,y)=0
则称点 P 在曲线 E 上是奇异的。如果曲线上至少有一个奇异点,就是奇异曲线。
由定义 1 定义的椭圆曲线奇异 ⇔Δ=0。
- 设 E 是有限域 F 上的椭圆曲线, P∈E(F),若 n=min{k∣k>0,kP=O}
则称 n 为点 P 的阶,记为 n=ord(P)。
由阶为 n 的点 P 在加法定义下生成的循环群 <p> 是椭圆曲线群 (E(F),+) 的一个 n 阶子群。
- 椭圆曲线群上的离散对数问题
设 E 是有限域 F 上的椭圆曲线,G 是 E 的一个循环子群,点 a 是 G 的一个生成元,即 G={ka:k≥0},b∈G,在已知 a,b 的条件下,求解整数 k 使 ka=b。
已知曲线上的点 P,Q∈E(F),且都不是无穷远点,令 P=(x1,y1),Q=(x2,y2),P+Q=R,则 R=?
定义:
-
对 P∈E,定义 P+O=O+P=P;
-
P=(x1,y1),Q=(x2,y2)∈E,定义
P+Q={O, 若x1=x2且y1=−y2(x3,y3),其它
其中
{x3=λ2−x1−x2y3=λ(x1−x3)−y1且λ={x2−x1y2−y1,若P=Q2y13x12+a,若P=Q
计算点乘运算可以拆分成点加和倍乘运算。
定理:椭圆曲线按定义的加法运算构成交换群 (E,+),O 就是该群的零元。
- 例

当有限域特征为 2 时,可将椭圆曲线化为标准型:
y2+xy=x3+ax+b,a,b∈F
当有限域特征 ≥3 时,可将椭圆曲线化为标准型:
y2=x3+ax+b,a,b∈F
密码学中一般使用以上标准型。
- 例

除法当作乘除数逆元即可。
利用椭圆曲线群一个阶很大的循环子群代替有限域的乘法群进行构造,并将阶作为本原元。
-
构造有限域 F。
-
生成域 F 上的椭圆曲线 E。
-
取椭圆曲线中的一个点 P (阶足够大,且生成循环群 G=<P> 中的离散对数问题难解)。
-
选择加密密钥 Q 和 解密密钥 d,使 Q=dP。(类似与 Elgamal 的 β=ad)
公开 F,E,P,Q
选择随机 k
已知明文 m=(m1,m2)∈F∗×F∗
计算密文 c=(c0,c1,c2)∈E×F∗×F∗
-
c0=kP;(k1,k2)=kQ
-
c1=k1m1
-
c2=k2m2
将 Elgamal 有限域中的数化为群中的点。
-
(k1,k2)=dc0
-
m1=(k1)−1c1
-
m2=(k2)−1c2