ECC理论知识

基础

数学定义

密码学中的椭圆曲线,并非直观的 “椭圆形”,而是满足魏尔斯特拉斯方程的平面曲线,核心定义为:

在实数域上:$y^2=x^3+ax+b$

约束条件(保证曲线无奇异点、运算合法):$4a^3+27b^2\not=0$

在有限域 GF (p) 上(密码学实际使用):
$y^2\equiv x^3+ax+b\pmod{p}$
p:大素数(决定曲线规模,如 256 位、384 位)
a,b:曲线参数(公开固定)
所有点(x,y)的坐标均为0∼p−1的整数,构成有限离散点集

无穷远点O:作为加法群的 “零元”

通俗点来说,可以把椭圆曲线想象成一张离散的 “坐标棋盘”,所有合法点都落在这张棋盘上;ECC 的所有加密、解密、签名操作,本质都是棋盘上点的数学运算,而非传统的大数乘除。

核心运算

点加法 (P + Q)

给定曲线上两个不同点 $P(x_1, y_1)$、$Q(x_2, y_2)$,求和 $R(x_3, y_3) = P + Q$:

几何规则:

  • 过 $P$、$Q$ 作直线,与曲线交于第三个点 $R’$
  • 将 $R’$ 沿 x 轴镜像翻转($y$ 取反),得到最终结果 $R$

代数公式:

  • 计算斜率 $\lambda$:
  • 计算新坐标:

点倍增(2P,P=Q)

当 $P = Q$ 时,运算变为点倍增(自身相加):

  1. 几何规则:

    • 过 $P$ 作曲线的切线,与曲线交于 $R’$
    • 镜像翻转 $R’$,得到 $2P$
  2. 代数公式:

    • 斜率 $\lambda$(求导):
    • 坐标计算同点加法

标量乘法($k \cdot P$,核心运算)

标量乘法 = 重复的点加法 / 倍增:

  • 正向易算:已知 $k$ 和 $P$,通过快速倍增法(二进制展开),极快算出 $Q = k \cdot P$

  • 逆向极难:已知 $P$ 和 $Q = k \cdot P$,反推整数 $k$ → 这就是椭圆曲线离散对数问题(ECDLP),ECC的安全根基