1. 实数域上的椭圆曲线
椭圆曲线并不是椭圆,称其为椭圆曲线的原因是,它们与用来计算椭圆周长的方程相似,都由三次方程描述。一般来说,椭圆曲线的三次方程为:
式中,a、b、c、d、e均为实数,x和y在实数集上取值。对我们而言,将方程限制为如下形式是足够的:
椭圆曲线的定义中还包含一个称为无穷远点或零点的元素,记为。对于给定的a值和b值,曲线由每个x值对应的正y值和负y值组成。于是,每条曲线都关于y=0对称。
加法的几何描述 可以证明,若限制后的方程中的参数a和b满足条件
则可基于集合E(a,b)定义一个群。要在E(a,b)中定义一个群,必须定义一个称为加法的运算,并用+表示,其中a和b的取值需要满足上述条件。采用几何术语,可按如下方式定义加法的运算规则:若椭圆曲线上的三个点都在一条直线上,则它们的和为。从这个定义出发,可将椭圆曲线上加法的运算规则定义如下:
1. 是加法的单位元。于是有
;对椭圆曲线上的任意点
,有
。下面假设
且
。
2. 点的负元是具有相同x坐标和相反y坐标的点,即若
,则
。注意这两个点可用一条垂线连接起来,且
。
3. 要计算x坐标不同的两点和
之和,可在
和
之间画一条直线并找到第三个交点
。显然存在唯一的交点
(除非这条直线在
或
处与椭圆曲线相切,此时分别取
或
)。为了形成群结构,需要在这三个点上定义加法:
。也就是说,定义
为第三个交点(相对于x轴)的镜像。
4. 上述各项的集合说明也适用于具有相同x坐标的两个点和
。两点由一条垂线连接,也可视为在无穷远点处与曲线相交,因此有
,这与上述步骤2一致。
5. 要加倍点,可画一条切线并找到另一个交点
。于是,
。
利用上述运算规则,可以证明集合是交换群。
加法的代数描述 对于彼此非负元的两个不同点和
,连接它们的虚线
的斜率
。
恰好与椭圆曲线相交于另一点,即
与
之和的负元。经过某些代数运算后,可将
表示为:
我们还需要将一个点与自身相加:,当
时,上式可变为:
2.
上的椭圆曲线
椭圆曲线密码学使用的是其变量和系数均为有限域的元素的椭圆曲线。
对有限域上的椭圆曲线运算来说,不存在显而易见的几何解释,但可以使用实数域上的椭圆曲线运算的代数解释。
对上的椭圆曲线,如同实数那样,只讨论限制形式的方程,但此时变量和系数均限制在
上:
例如,时,上式成立:
下面考虑所有满足上式的整数对(x,y)和无穷远点组成的集合
。系数a和b,变量x和y都是
的元素。
例如,令p=23并考虑椭圆曲线,其中
。对于集合
,我们只对满足如下条件的非负整数感兴趣,即满足方程模
运算且位于
到
的象限中的非负整数。
可以证明,若无重复因子,则根据集合
可以定义一个有限交换群。这等价于下列条件:
定义在上的加法运算规则,与定义在实数域上的椭圆曲线的运算规则一致。对任何点
:
1.
2. 若,则
。点
是
的负元,记为
。例如,对
中的点
, 有
,而
。因此,
,该点也在
中。
3. 若,
,且
,则
由下列规则确定:
式中,
4. 将乘法定义为重复相加,如4P=P+P+P+P。
例如,令中的
。
计算则有
(-1除以2就等于-1乘以2在中的乘法逆元)
所以。
要计算,先求
即。
3.
上的椭圆曲线
给定某个m,对上的椭圆曲线,使用变量和系数均在
上取值的三次方程,并使用
上的算数运算规则来进行运算。
业已证明,上适合于椭圆曲线密码应用的三次方程与
上的三次方程不同,其形式为:
式中,变量x和y及系数a和b是中的元素,且所有计算均在
中执行。
接下来考虑满足上式的所有整数对(x,y)和无穷远点组成的集合
。
例如,对使用不可约多项式定义的有限域
,其生成元满足
,即
或二进制数
。我们可以按如下方式求出
的各次方:
例如,。
下面考虑椭圆曲线 。此时
。满足该方程的一个点为
:
可以证明,只要,即可根据集合
定义一个有限交换群。加法的运算规则如下所述。对所有点
:
1.
2. 若,则
。点
是
的负元,记为
。
3. 若,
,且
,则
由下列规则确定:
式中,
4. 若,则
由下列规则确定:
式中,