ECC(椭圆曲线密码学)

ECC
Elliptic Curve Cryptography
提出者
Neal Koblitz, Victor Miller (1985)
类别
非对称公钥密码
数学基础
椭圆曲线离散对数难题 (ECDLP)
密钥长度
256-521 bit
安全状态
安全

椭圆曲线密码学(Elliptic Curve Cryptography, ECC)是基于椭圆曲线上离散对数问题(ECDLP)计算困难性的公钥密码体系。1985年由 Neal Koblitz 和 Victor Miller 独立提出。ECC 的核心优势在于:更短的密钥即可达到与 RSA 相当甚至更高的安全强度。

椭圆曲线数学

密码学中使用的椭圆曲线定义在有限域上,标准形式为:

素数域 Fp 上的曲线: y² = x³ + ax + b (mod p) 核心运算: 点加法: P + Q = R 倍点: P + P = 2P 标量乘法: k × P = P + P + ... + P (k 次) 椭圆曲线离散对数问题 (ECDLP): 已知 P 和 Q = k×P,求 k 目前没有已知的多项式时间算法解决 ECDLP → 这就是 ECC 安全性的基础
关键算法
算法功能曲线标准/场景
ECDSA数字签名P-256, P-384, P-521Bitcoin, TLS, FIPS 186-4
ECDH密钥交换P-256, P-384TLS ECDHE 密码套件
Ed25519签名Curve25519 (EdDSA)SSH, GPG, Signal
X25519密钥交换Curve25519TLS 1.3, WireGuard
Ed448签名Curve448RFC 8032
X448密钥交换Curve448RFC 7748
Curve25519

Curve25519 是 Daniel J. Bernstein 设计的 Montgomery 曲线,常量 y² = x³ + 486662x² + x(mod 2255 - 19)。其优点:

  • 常数时间实现,天然抗侧信道攻击
  • 不存在弱点(曲线参数经过" rien-ne-vait-de-soi "选择)
  • 每个坐标仅 256 位,紧凑高效
  • TLS 1.3 将 X25519 列为必选密钥交换
安全强度对比
对称密钥ECC 密钥RSA 密钥
80 bit160 bit1024 bit
112 bit224 bit2048 bit
128 bit256 bit3072 bit
192 bit384 bit7680 bit
256 bit521 bit15360 bit

256 位 ECC 密钥 ≈ 3072 位 RSA 的安全强度,但密钥短 12 倍。

参考文献
  1. Koblitz, N. (1987). "Elliptic curve cryptosystems". Mathematics of Computation 48(177): 203-209.
  2. Bernstein, D.J. (2006). "Curve25519: new Diffie-Hellman speed records". PKC 2006.
  3. NIST (2013). "Digital Signature Standard (DSS)". FIPS PUB 186-4.