椭圆曲线算法原理

椭圆曲线的公式

Y^2 = x^3 + a x + b

椭圆曲线的运算规则

1.加法:过曲线上的两点A、B画一条直线,找到直线与椭圆曲线的交点,交点关于x轴对称位置的点,定义为A+B,即为加法。如下图所示:A + B = C

2.二倍运算:上述方法无法解释A + A,即两点重合的情况。因此在这种情况下,将椭圆曲线在A点的切线,与椭圆曲线的交点,交点关于x轴对称位置的点,定义为A + A,即2A,即为二倍运算。如下图所示:A + A = 2A = B

3.正负取反:将A关于x轴对称位置的点定义为-A,即椭圆曲线的正负取反运算。

4.无穷远点:如果将A与-A相加,过A与-A的直线平行于y轴,可以认为直线与椭圆曲线相交于无穷远点。


椭圆曲线算法原理_第1张图片

有限域内的椭圆曲线计算

椭圆曲线要形成一条光滑的曲线,要求x,y取值均为实数,即实数域上的椭圆曲线。但椭圆曲线加密算法,并非使用实数域,而是使用有限域。按数论定义,有限域GF(p)指给定某个质数p,由0、1、2......p-1共p个元素组成的整数集合中定义的加减乘除运算。


 假设椭圆曲线为y² = x³ + x + 1,其在有限域GF(23)上时,写作:

 y² ≡ x³ + x + 1 (mod 23)


  此时,椭圆曲线不再是一条光滑曲线,而是一些不连续的点,如下图所示。以点(1,7)为例,7² ≡ 1³ + 1 + 1 ≡ 3 (mod 23)。


椭圆曲线算法原理_第2张图片

综述:

定义了A+B、2A运算,因此给定椭圆曲线的某一点G,可以求出2G、3G(即G + 2G)、4G......。即:当给定G点时,已知x,求xG点并不困难。反之,已知xG点,求x则非常困难。此即为椭圆曲线加密算法背后的数学原理。

你可能感兴趣的:(椭圆曲线算法原理)