[区块链] 密码学——椭圆曲线密码算法(ECC)

  • 时间:
  • 浏览:0

  今天在学椭圆曲线密码(Elliptic Curve Cryptography,ECC)算法,自己手里缺少介绍该算法的专业书籍,故在网上查了都都可以了来越多都都可以了来越多博文与书籍,有后来大多数博客写的真的是。。。你懂的。。。真不愧是 ‘天下文章一大抄’ 啊! 雷同不说,关键是介绍的都是的是很清楚,是我在阅读过程中、产生的都都可以了来越多都都可以了来越多问题图片无法除理!类似于:只来句‘P+Q=R’,有后来为何会么会等于呢?是根据什么计算出来的呢? 后来查了好久,才发现:这是规定的、是定义!瞬间很是无语!

  好了,不吐槽了,为了方便其他同学歌词 其他同学歌词 对椭圆曲线密码算法有系统的了解,我下发了几篇较好的博文,并加在了自己的见解!

  [  时间有限、见解不深,如出显错误,欢迎指正!]


  比特币使用椭圆曲线算法生成公钥和私钥,选择的是secp256k1曲线。

  椭圆曲线密码学(Elliptic Curve Cryptography) 的缩写。该算法是基于椭圆曲线数学的三种公钥密码的算法,其安全性依赖于椭圆曲线离散对数问题图片的困难性。

  在ECC流行起来完后 ,几乎所有的公钥算法都是基于RSA、DSA和DH ———— 基于模运算的可选加密系统。RSA及其友类算法在当前仍非常重要,无缘无故与ECC同時 使用。不过,RSA及其友类算法转过身的原理很容易解释,因而被广泛理解,都都可以了来越多都都可以了来越多简单的实现也都都可以很容易编写出来;但ECC的实现基础对于大多数人来说仍很神秘。

   具体来说,我将触及以下主题:

  1. 数学上的椭圆曲线及相关概念

  2. 密码学中的椭圆曲线

  3. 椭圆曲线上的加密/解密

  4. 椭圆曲线签名与验证签名


一、数学上的椭圆曲线及相关概念

   1.1  从平行线谈起

  平行线,永不相交。不过到了近代这个 结论遭到了质疑。平行线会越多再在很远很远的地方相交?事实上都都可以了人见到过。都都可以了来越多都都可以了来越多“平行线,永不相交”都都可以了来越多都都可以了来越多假设(其他同学歌词 其他同学歌词 想想初中学习的平行公理,是都都可以了证明的)。既然都都可以假设平行线永不相交,也都都可以假设平行线在很远很远的地方相交了。即平行线相交于无穷远点P∞(请其他同学歌词 其他同学歌词 闭上眼睛,想象一下那个无穷远点P∞,P∞是都是很虚幻,其实与其说数学锻炼人的抽象能力,还不如说是锻炼人的想象力)。给个图帮助理解一下:

  

  直线上出显P∞点,所带来的好处是所有的直线都相交了,且只另另一有一个多交点。这就把直线的平行与相交统一了。为与无穷远点相区别把都都可以了来越多都都可以了来越多平面上的点叫做平常点。

  以下是无穷远点的哪几条性质。

  ▲直线L上的无穷远点都都可以了另另一有一个多。(从定义可直接得出)

  ▲平面上一组相互平行的直线有公共的无穷远点。(从定义可直接得出)

  ▲ 平面上任何相交的两直线L1,L2有不同的无穷远点。(有后来L1和L2有公共的无穷远点P ,则L1和L2有另另一有一个交点A、P,故假设错误。)

  ▲平面上全体无穷远点构成三根无穷远直线。(自己想象一下这条直线吧)

  ▲平面上全体无穷远点与全体平常点构成射影平面。

  1.2  射影平面坐标系

  射影平面坐标系是对普通平面直角坐标系(都都可以了来越多都都可以了来越多其他同学歌词 其他同学歌词 初中学到的那个笛卡儿平面直角坐标系)的扩展。其他同学歌词 其他同学歌词 知道普通平面直角坐标系都都可以了为无穷远点设计坐标,都都可以了表示无穷远点。为了表示无穷远点,产生了射影平面坐标系,当然射影平面坐标系同样能很好的表示旧有的平常点(数学也是“向下兼容”的)。

  其他同学歌词 其他同学歌词 对普通平面直角坐标系上的点A的坐标(x,y)做如下改造:

  令x=X/Z ,y=Y/Z(Z≠0);则A点都都可以表示为(X:Y:Z)。

  变成了有另另一有一个参量的坐标点,这就对平面上的点建立了另另一有一个新的坐标体系。

  例1:求点(1,2)在新的坐标体系下的坐标。

  解:∵X/Z=1 ,Y/Z=2(Z≠0)∴X=Z,Y=2Z ∴坐标为(Z:2Z:Z),Z≠0。即(1:2:1)(2:4:2)(1.2:2.4:1.2)等形如(Z:2Z:Z),Z≠0的坐标,都是(1,2)在新的坐标体系下的坐标。

  其他同学歌词 其他同学歌词 也都都可以得到直线的方程aX+bY+cZ=0(想想为何会么会?提示:普通平面直角坐标系下直线一般方程是ax+by+c=0)。新的坐标体系才能表示无穷远点么?那我我应该 想们先想想无穷远点在哪里。根据上一节的知识,其他同学歌词 其他同学歌词 知道无穷远点是两条平行直线的交点。都都可以了,要怎样求两条直线的交点坐标?这是初中的知识,都都可以了来越多都都可以了来越多将两条直线对应的方程联立求解。平行直线的方程是:aX+bY+c1Z =0; aX+bY+c2Z =0  (c1≠c2);

  (为何会么会?提示:都都可以从斜率考虑,不可能 平行线斜率相同);

  将二方程联立,求解。有c2Z= c1Z= -(aX+bY),∵c1≠c2 ∴Z=0  ∴aX+bY=0;

  都都可以了来越多都都可以了来越多无穷远点都都可以了来越多都都可以了来越多这个 形式(X:Y:0)表示。注意,平常点Z≠0,无穷远点Z=0,有后来无穷远直线对应的方程是Z=0。

  例2:求平行线L1:X+2Y+3Z=0 与L2:X+2Y+Z=0 相交的无穷远点。

  解:不可能 L1∥L2 都都可以了来越多都都可以了来越多都都可以了来越多都都可以了来越多Z=0, X+2Y=0;都都可以了来越多都都可以了来越多坐标为(-2Y:Y:0),Y≠0。即(-2:1:0)(-4:2:0)(-2.4:1.2:0)等形如(-2Y:Y:0),Y≠0的坐标,都表示这个 无穷远点。

  看来这个 新的坐标体系才能表示射影平面上所有的点,其他同学歌词 其他同学歌词 就把这个 才能表示射影平面上所不为何的坐标体系叫做射影平面坐标系。

  1.3  椭圆曲线

  上一节,其他同学歌词 其他同学歌词 建立了射影平面坐标系,这个 节其他同学歌词 其他同学歌词 将在这个 坐标系下建立椭圆曲线方程。不可能 其他同学歌词 其他同学歌词 知道,坐标中的曲线是都都可以用方程来表示的(比如:单位圆方程是x2+y2=1)。椭圆曲线是曲线,自然椭圆曲线都是方程。

  椭圆曲线的定义:

  三根椭圆曲线是在射影平面上满足方程---------------------------[1-1]的所不为何的集合,且曲线上的每个点都是非奇异(或光滑)的。

  定义详解:

  ▲[1-1] 是Weierstrass方程(维尔斯特拉斯,Karl Theodor Wilhelm Weierstrass,1815-1897),是另另一有一个齐次方程。

  ▲ 椭圆曲线的价值形式,并都是椭圆的。都都可以了来越多都都可以了来越多不可能 椭圆曲线的描述方程,类似于于计算另另一有一个椭圆周长的方程,故得名。

  其他同学歌词 其他同学歌词 来看看椭圆曲线是什么样的。

  

  ▲ 所谓“非奇异”或“光滑”的,在数学中是指曲线上任意都都可以了来越多都都可以了来越多的偏导数Fx(x,y,z),Fy(x,y,z),Fz(x,y,z)都都可以了同時 为0。不可能 你都都可以了学过高 等数学,都都可以都都可以了来越多都都可以了来越多理解这个 词,即满足方程的任意都都可以了来越多都都可以了来越多都占据 切线。

  下面另另一有一个方程都是的是椭圆曲线,尽管其他同学歌词 其他同学歌词 是方程[3-1]的形式。

 

 

  不可能 其他同学歌词 其他同学歌词 在(0:0:1)点处(即原点)都都可以了切线。

  ▲椭圆曲线上另另一有一个多无穷远点O∞(0:1:0),不可能 这个 点满足方程[1-1]。

  知道了椭圆曲线上的无穷远点。其他同学歌词 其他同学歌词 就都都可以把椭圆曲线放上去普通平面直角坐标系上了。不可能 普通平面直角坐标系只比射影平面坐标系少无穷远点。其他同学歌词 其他同学歌词 在普通平面直角坐标系上,求出椭圆曲线上所有平常点组成的曲线方程,加在在无穷远点O∞(0:1:0),不就构成椭圆曲线了么?

  其他同学歌词 其他同学歌词 设x=X/Z ,y=Y/Z代入方程[1-1]得到:

  y2+a1xy+a3y = x3+a2x2+a4x+a6 -------------------------[1-2]

  也都都可以了来越多都都可以了来越多说满足方程[1-2]的光滑曲线加在另另一有一个无穷远点O∞,组成了椭圆曲线。为了方便运算,表述,以及理解,今后论述椭圆曲线将主要使用[1-2]的形式。

  本节的最后,其他同学歌词 其他同学歌词 谈一下求椭圆曲线都都可以了来越多都都可以了来越多的切线斜率问题图片。

  由椭圆曲线的定义都都可以知道,椭圆曲线是光滑的,都都可以了来越多都都可以了来越多椭圆曲线上的平常点都是切线。而切线最重要的另另一有一个参数都都可以了来越多都都可以了来越多斜率k。

  例3:求椭圆曲线方程上,平常点A(x,y)的切线的斜率k。

  解:令F(x,y)= y2+a1xy+a3y-x3-a2x2-a4x-a6

  求偏导数

  Fx(x,y)= a1y-3x2-2a2x-a4

  Fy(x,y)= 2y+a1x +a3

  则导数为:f'(x)=- Fx(x,y)/ Fy(x,y)=-( a1y-3x2-2a2x-a4)/(2y+a1x +a3)

         = (3x2+2a2x+a4-a1y) /(2y+a1x +a3)

  都都可以了来越多都都可以了来越多 -------------[1-3]

  看不懂解题过程都都可以了关系,记住结论[1-3]就都都可以了。



  1.4  椭圆曲线上的加法

  上一节,其他同学歌词 其他同学歌词 不可能 看过了椭圆曲线的图象,但点与点之间好象都都可以了什么联系。其他同学歌词 其他同学歌词 都都可以建立另另一有一个类似于于在实数轴加在法的运算法则呢?天才的数学家找到了这个 运算法则

  自从近世纪代数学引入了群、环、域的概念,使得代数运算达到了淬硬层 的统一。比如数学家总结了普通加法的主要价值形式,提出了加群(也叫交换群,或Abel(阿贝尔)群),在加群的眼中。实数的加法和椭圆曲线的上的加法都都可以了什么区别。这他说都都可以了来越多都都可以了来越多数学抽象把:)。关于群以及加群的具体概念请参考近世代数方面的数学书。

  运算法则:任意取椭圆曲线上两点P、Q (若P、Q两点重合,则做P点的切线)做直线交于椭圆曲线的另都都可以了来越多都都可以了来越多R’,过R’做y轴的平行线交于R。其他同学歌词 其他同学歌词 规定P+Q=R。(如图)

  法则详解:

  ▲这里的+都是实数中普通的加法,都都可以了来越多都都可以了来越多从普通加法中抽象出来的加法,他具备普通加法的都都可以了来越多都都可以了来越多性质,但具体的运算法则显然与普通加法不同。

  ▲根据这个 法则,都都可以知道椭圆曲线无穷远点O∞与椭圆曲线上都都可以了来越多都都可以了来越多P的连线交于P’,过P’作y轴的平行线交于P,都都可以了来越多都都可以了来越多都都可以了来越多都都可以了来越多 无穷远点 O∞+ P = P 。都都可以了来越多都都可以了来越多,无穷远点 O∞的作用与普通加法中零的作用相当(0+2=2),其他同学歌词 其他同学歌词 把无穷远点 O∞ 称为 零元。同時 其他同学歌词 其他同学歌词 把P’称为P的负元(简称,负P;记作,-P)。(参见下图)

  ▲根据这个 法则,都都可以得到如下结论 :不可能 椭圆曲线上的另另一有一个点A、B、C,占据 同三根直线上,都都可以了其他同学歌词 其他同学歌词 的和等于零元,即A+B+C= O∞

同无缘无故线上的另另一有一个点之和等于0.

  注:其他同学歌词 其他同学歌词 时需的都都可以了来越多都都可以了来越多另另一有一个点同线,与点的次序无关。这意味着着着,不可能 P、Q和R同线,都都可以了P + (Q + R) = Q + (P + R) = R + (P + Q) = • • • = 0. 都都可以了来越多都都可以了来越多,其他同学歌词 其他同学歌词 直观地证明了其他同学歌词 其他同学歌词 的“+”运算既满足结合律也满足交换律。  

  ▲k个相同的点P相加,其他同学歌词 其他同学歌词 记作kP。如下图:P+P+P = 2P+P = 3P。

  下面,其他同学歌词 其他同学歌词 利用P、Q点的坐标(x1,y1),(x2,y2),求出R=P+Q的坐标(x4,y4)。

  例4:求椭圆曲线方y2+a1xy+a3y = x3+a2x2+a4x+a6上,平常点P(x1,y1),Q(x2,y2)的和R(x4,y4)的坐标。

  解:(1)先求点-R(x3,y3)

  不可能 P,Q,-R三点共线,故设共线方程为y=kx+b,其中

  若P≠Q(P,Q两点不重合) 则

  直线斜率k=(y1-y2)/(x1-x2)

  若P=Q(P,Q两点重合) 则直线为椭圆曲线的切线,故由例3.1可知:

  k=(3x2+2a2x+a4 -a1y) /(2y+a1x+a3)

  有后来P,Q,-R三点的坐标值都都可以了来越多都都可以了来越多方程组:

  y2+a1xy+a3y=x3+a2x2+a4x+a6    -----------------[1] 

  y=(kx+b)                     -----------------[2]

的解。

  将[2],代入[1] 有

  (kx+b)2+a1x(kx+b)+a3(kx+b) =x3+a2x2+a4x+a6    --------[3]

  对[3]化为一般方程,根据三次方程根与系数关系(当三次项系数为1时;-x1x2x3 等于常数项系数, x1x2+x2x3+x3x1等于一次项系数,-(x1+x2+x3)等于二次项系数。)

  都都可以了来越多都都可以了来越多-(x1+x2+x3)=a2-ka1-k2

  x3=k2+ka1+a2+x1+x2;---------------------求出点-R的横坐标

  不可能 k=(y1-y3)/(x1-x3) 故

  y3=y1-k(x1-x3);-------------------------------求出点-R的纵坐标

  (2)利用-R求R

  显然有 x4=x3= k2+ka1+a2+x1+x2; ------------求出点R的横坐标

  而y3 y4 为 x=x4时 方程y2+a1xy+a3y=x3+a2x2+a4x+a6的解

  化为一般方程y2+(a1x+a3)y-(x3+a2x2+a4x+a6)=0 , 根据二次方程根与系数关系得:

  -(a1x+a3)=y3+y4

  故y4=-y3-(a1x+a3)=k(x1-x4)-y1-(a1x4+a3); ---------------求出点R的纵坐标

  即:

  x4=k2+ka1+a2+x1+x2;

  y4=k(x1-x4)-y1-a1x4-a3;

  本节的最后,提醒其他同学歌词 其他同学歌词 注意都都可以了来越多都都可以了来越多,完后 提供的图像不可能 会给其他同学歌词 其他同学歌词 产生三种错觉,即椭圆曲线是关于x轴对称的。事实上,椭圆曲线固然关于x轴对称。如下图的y2-xy=x3+1


二、密码学中的椭圆曲线 

  其他同学歌词 其他同学歌词 现在基本上对椭圆曲线有了初步的认识,这是值得高兴的。

  但请其他同学歌词 其他同学歌词 注意,前面学到的椭圆曲线是连续的,并不适合用于加密都都可以了来越多都都可以了来越多,其他同学歌词 其他同学歌词 时需把椭圆曲线变成离散的点, 要把椭圆曲线定义在有限域上

  我想们想一想,为何会么会椭圆曲线为何会么会连续?是不可能 椭圆曲线上点的坐标,是实数的(也都都可以了来越多都都可以了来越多说前面讲到的椭圆曲线是定义在实数域上的),实数是连续的,意味着着了曲线的连续。有后来,其他同学歌词 其他同学歌词 要把椭圆曲线定义在有限域上(顾名思义,有限域是三种都都可以了由有限个元素组成的域)。

  域的概念是从其他同学歌词 其他同学歌词 的有理数,实数的运算中抽象出来的,严格的定义请参考近世代数方面的数。简单的说,域中的元素同有理数一样,有自己得加法、乘法、除法、单位元(1),零元(0),并满足交换率、分配率。

  下面,其他同学歌词 其他同学歌词 给出另另一有一个有限域Fp,这个 域都都可以了有限个元素。

   

  Fp中都都可以了p(p为素数)个元素0,1,2 …… p-2,p-1;

  Fp 的加法(a+b)法则是 a+b≡c (mod p);即,(a+b)÷p的余数 和c÷p的余数相同。

  Fp 的乘法(a×b)法则是  a×b≡c (mod p);

  Fp 的除法(a÷b)法则是  a/b≡c (mod p);即 a×b-1≡c  (mod p);(b-1也是另另一有一个0到p-1之间的整数,但满足b×b-1≡1 (mod p) )。

  Fp 的单位元是1,零元是 0。

  同時 ,并都是所有的椭圆曲线都适合加密。y2=x3+ax+b是一类都都可以用来加密的椭圆曲线,也是最为简单的一类。下面其他同学歌词 其他同学歌词 就把y2=x3+ax+b(mod p) 这条曲线定义在Fp上:

  选择另另一有一个满足下列条件的小于p(p为素数)的非负整数a、b

  4a3+27b2≠0 (mod p)

  则满足下列方程的所不为何(x,y),加在在 无穷远点O∞ ,构成三根椭圆曲线。

  y2=x3+ax+b  (mod p)

  其中x,y∈[0,p-1]的整数,并将这条椭圆曲线记为Ep(a,b)。

  其他同学歌词 其他同学歌词 看一下y2=x3+x+1  (mod 23)的图像

  是都是其实不可思议?椭圆曲线,为何会么会变成了这般模样,成了另另一有一个另另一有一个离散的点?

  椭圆曲线在不同的数域中会呈现出不同的样子,但其本质仍是三根椭圆曲线。举另另一有一个不太恰当的例子,好比是水,在常温下,是甲烷乙炔气 ;到了零下,水就变成冰,成了甲烷乙炔气 ;而温度上升到一百度,水又变成了水蒸气。但其本质仍是H2O。

  Fp上的椭圆曲线同样有加法,但不可能 都都可以了给以几何意义的解释。不过,加法法则和实数域上的差都都可以了来越多,请读者自行对比。

  1. 无穷远点 O∞是零元,有O∞+ O∞= O∞,O∞+P=P

  2. P(x,y)的负元是 (x,-y),有P+(-P)= O∞

  3. P(x1,y1),Q(x2,y2)的和R(x3,y3) 有如下关系:

  x3≡k2-x1-x2(mod p) 

  y3≡k(x1-x3)-y1(mod p)

  其中若P=Q 则 k=(3x2+a)/2y1  若P≠Q,则k=(y2-y1)/(x2-x1)

  例5: 已知椭圆曲线已知E23(1,1)上两点P(3,10),Q(9,7),求(1)-P,(2)P+Q,(3) 2P

          

        

解:

      

  最后,其他同学歌词 其他同学歌词 讲一下椭圆曲线上点的阶。

  不可能 椭圆曲线上都都可以了来越多都都可以了来越多P,占据 最小的正整数n,使得数乘nP=O∞,则将n称为P的 阶,若n不占据 ,其他同学歌词 其他同学歌词 说P是无限阶的。

  事实上,在有限域上定义的椭圆曲线上所有的点的阶n都是占据 的。

       

  计算可得27P=-P=(3,13)

  都都可以了来越多都都可以了来越多28P=O ∞ P的阶为28

  什么点做成了另另一有一个循环阿贝尔群,其中生成元为P,阶数为29。显然点的分布与顺序都是杂乱无章


三、椭圆曲线上的加密/解密

  公开密钥算法无缘无故要基于另另一有一个数学上的问题图片。比如RSA 土方法 的是:给定另另一有一个素数p、q 很容易相乘得到n,而对n进行因式分解却相对困难。那椭圆曲线上有什么问题图片呢?

  考虑如下等式:

  K=kG  [其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数]

  没人发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。

  这都都可以了来越多都都可以了来越多椭圆曲线加密算法采用的问题图片。

  其他同学歌词 其他同学歌词 把点G称为基点(base point),

  k(k<n,n为基点g的阶)称为私有密钥(privte key),

  k称为公开密钥(public="" key)。<="" p="">

  现在其他同学歌词 其他同学歌词 描述另另一有一个利用椭圆曲线进行加密通信的过程:

  1、用户A选定三根椭圆曲线Ep(a,b),并取椭圆曲线上都都可以了来越多都都可以了来越多,作为基点G。

  2、用户A选择另另一有一个私有密钥k,并生成公开密钥K=kG。

  3、用户A将Ep(a,b)和点K,G传给用户B。

  4、用户B接到信息后 ,将待传输的明文编码到Ep(a,b)上都都可以了来越多都都可以了来越多M(编码土方法 都都可以了来越多都都可以了来越多,这里不作讨论),并产生另另一有一个随机整数r(r<n)。

  5、用户B计算点C1=M+rK;C2=rG。

  6、用户B将C1、C2传给用户A。

  7、用户A接到信息后,计算C1-kC2,结果都都可以了来越多都都可以了来越多点M。

  不可能 C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M再对点M进行解码就都都可以得到明文。

  在这个 加密通信中,不可能 另另一有一个多偷窥者H ,他都都可以了看过Ep(a,b)、K、G、C1、C2 而通过K、G 求k 或通过C2、G求r 都是相对困难的。有后来,H无法得到A、B间传送的明文信息。

总结:   

设私钥、公钥分别为k、K,即K = kG,其中G为G点。   公钥加密:   选择随机数r,将消息M生成密文C,该密文是另另一有一个点对,即:   C = {rG, M+rK},其中K为公钥   私钥解密:   M + rK - k(rG) = M + r(kG) - k(rG) = M   其中k、K分别为私钥、公钥。

       ECC技术要求:

  密码学中,描述三根Fp上的椭圆曲线,常用到五个参量:

       T=(p,a,b,G,n,h)。

  (p 、a 、b 用来选择三根椭圆曲线,G为基点,n为点G的阶,h 是椭圆曲线上所不为何的个数m与n相除的整数每项)

  这哪几条参量取值的选择,直接影响了加密的安全性。参量值一般要求满足以下哪几条条件:

  1、p 当然越大越安全,但越大,计算波特率会变快,150位左右都都可以满足一般安全要求;

  2、p≠n×h;

  3、pt≠1 (mod n),1≤t<20;

  4、4a3+27b2≠0 (mod p);

  5、n 为素数;

  6、h≤4。


四、椭圆曲线签名与验证签名

   椭圆曲线签名算法,即ECDSA。

  设私钥、公钥分别为k、K,即K = kG,其中G为G点。

 

  私钥签名:

  1、选择随机数r,计算点rG(x, y)。

  2、根据随机数r、消息M的哈希h、私钥k,计算s = (h + kx)/r。

  3、将消息M、和签名{rG, s}发给接收方。

 

  公钥验证签名:

  1、接收方收到消息M、以及签名{rG=(x,y), s}。

  2、根据消息求哈希h。

  3、使用发送方公钥K计算:hG/s + xK/s,并与rG比较,如相等即验签成功。

 

  原理如下:

  hG/s + xK/s = hG/s + x(kG)/s = (h+xk)G/s

  = r(h+xk)G / (h+kx) = rG


【时间仓促,如有错误,欢迎指正! ||   欢迎留下您的评语!  其他同学歌词 其他同学歌词 同時 探讨、学习区块链!】

【转载请注明出处!http://www.cnblogs.com/X-knight/


REFERENCE

1.巴比特论坛 作者:ZMWorm http://8btc.com/article-138-1.html

2.张禾瑞,《近世代数基础》,高等教育出版社,1978

3.闵嗣鹤 严士健,《初等数论》,高等教育出版社,1982

4. ECC详解 https://www.cnblogs.com/Kalafinaian/p/73921505.html