关键词:
ECC:Elliptic Curve Cryptography (ECC)
基于离散对数的椭圆曲线密码系统提供与RSA类似的安全性,但是具有相对较短的密钥大小。
GF(p) 上的椭圆曲线
素数 p > 3,并且 a,b ∈ GF(p),在 GF(p) 上使得4a3+ 27b2 ≠ 0 。
在GF(p)上,带参数a和b的椭圆曲线 E 被定义为(x,y)的解集,其中 x, y ∈ GF(p) 满足如下方程:
y2= x3 + ax + b
以及一个额外的点 O 。点的集合 E 形成一个组,并遵守以下规则:
λ = (y2 - y1) (x2- x1)-1
x3 = λ2 - x1-x2
y3= λ(x1- x3) - y1(x1, y1) + (x1, y1)= (x3, y3)
λ = (3x12 + a) (2y1)-1
x3 = λ2 - 2x1
y3 = λ(x1 - x3) - y1
集合 E 是 满足:y2 mod p = (x3 + ax + b) mod p
例子:
假设 a = 1, b = 1, p = 23,则椭圆曲线 E23(1, 1) 上的点如下:
(0,1) | (6,4) | (12,19) |
(0,22) | (6,19) | (13,7) |
(1,7) | (7,11) | (13,16) |
(1,16) | (7,12) | (17,3) |
(3,10) | (9,7) | (17,20) |
(3,13) | (9,16) | (18,3) |
(4,0) | (11,3) | (18,20) |
(5,4) | (11,20) | (19,5) |
(5,19) | (12,4) | (19,18) |
如下是计算过程,以及散点图:
GF(2k) 上的椭圆曲线
最后:
考虑方程 Q = kP,其中Q, P ∈ Ep(a, b) 且 k < p 。
对于给定的 k 和 P 计算 Q 比较容易,而对给定的 Q 和 P 计算 k 则比较困难。这就是椭圆曲线的离散对数问题。