椭圆曲线密码系统——椭圆曲线
1 椭圆曲线
在这里,椭圆曲线简化为用 y2 = x3 + ax + b表示的点的集合。将其离散化后,得到 y2 mod p= (x3 + ax + b) mod p 。
2、群
数学中的“群”是一个由我们定义了一种二元运算的集合,二元运算我们称之为“加法”,并用符号“+”来表示。为了让一个集合G成为群,必须定义加法运算并使之具有以下四个特性:
- 封闭性:如果a和b是集合G中的元素,那么(a + b)也是集合G中的元素。
- 结合律:(a + b) + c = a + (b + c);
- 存在单位元0,使得a + 0 = 0 + a =a;
- 每个元素都有逆元,即:对于任意a,存在b,使得a + b = 0.
如果我们增加第5个条件: - 交换律: a + b = b + a
那么,称这个群为阿贝尔(abelian)群。
配上通常概念的加法时,整数的集合Z就是一个群(同时还是个阿贝尔群)。而自然数的集合(N)就不是群,因为它不满足第4个特性。
3、椭圆群定理
群中的元素都是位于椭圆曲线上的点
单位元为无穷远点O;
点P的逆元是其关于x-轴的对称点;
加法,满足以下规则: 对于3个处在同一直线上的非零点 P, Q 和 R, 它们的和 P + Q + R = 0.这里要求的只是三个点同线,与点的次序无关。
4、几何加法
得益于我们使用的是一个阿贝尔群,我们可以把 P + Q + R = 0 写成P + Q = –R。方程的这一形式,让我们可以推导出计算两点P和Q之和的几何方法:画一条过P和Q点的直线,这条直线与曲线相交得到第3个点R(这一事实意味着P、Q、R必然共线)。如果我们获取了该点的逆元-R,那么我们就得到了P + Q的结果。
存在以下三种特殊情况:
(1)P=0||Q=0 由于0为单位元,我们有P+0=P,Q+0=Q。
(2)P=-Q 存在P+Q=0。
(3)P=Q 此时做点Q上对椭圆曲线的切线,与椭圆曲线另一个交点为点R
5、代数加法
这里只考虑两个非零,非对称的点P(xp,yp),Q(xq,yq)
这两点斜率为k=(yp-yq)/(xp-xq)
设其与椭圆曲线交于第三点R(xr,yr),存在yr-yq=m(xr-xq)
通过该式与椭圆曲线联立,计算得到xr=m2-xq-xp ; yr=yp+m(xr-xp)