ECC加解密
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$ 时,运算变为点倍增(自身相加):
几何规则:
- 过 $P$ 作曲线的切线,与曲线交于 $R’$
- 镜像翻转 $R’$,得到 $2P$
代数公式:
- 斜率 $\lambda$(求导):
- 坐标计算同点加法
标量乘法($k \cdot P$,核心运算)
标量乘法 = 重复的点加法 / 倍增:
正向易算:已知 $k$ 和 $P$,通过快速倍增法(二进制展开),极快算出 $Q = k \cdot P$
逆向极难:已知 $P$ 和 $Q = k \cdot P$,反推整数 $k$ → 这就是椭圆曲线离散对数问题(ECDLP),ECC的安全根基
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.