ECC

椭圆曲线可以定义为所有满足方程 E:y2=x3+ax+b 的点 (x,y) 所构成的集合。

ECC 算法的六要素

ECC 算法的数学基础

  1. 椭圆曲线在素域 Zp 上的运算规则
    • P+O=O+P=P;
    • 若 P(x1,y1), Q(x2,y2) 满足 x1=x2,y1+y2=0,则 P+Q=O;
    • 若 P(x1,y1), Q(x2,y2) 不满足上面的性质,则
      • x3=λ2x1x2
      • y3=λ(x1x3)y1
      • PQλ=(y2y1)/(x2x1);
      • P=Qλ=(3x12+a)/(2y1).
  2. 椭圆曲线的乘法性质
    • Q=kP(k<n),其中 k 是常数,Q、P 是曲线上的点,则通过 k,P 计算 Q 简单,但是通过 Q、P 推算 k 较为复杂。

OpenSSL 中的 ECC 库

ECC 加密解密

ECC 算法签名

参考资料