椭圆曲线加密
ELLIPTIC CURVE CRYPTOGRAPHY // 最短的钥匙
> 一条长得不像椭圆的三次曲线 y² = x³ + ax + b,撑起了今天半个互联网的钥匙:HTTPS 握手、Signal、iMessage、SSH、比特币签名、中国国密 SM2——全在它上面跑。它凭什么取代 RSA?因为两块"难"不一样:RSA 赖以生存的大数分解存在亚指数算法,而椭圆曲线离散对数(ECDLP)已知的最好算法只有指数级——于是 256 位 ECC ≈ 3072 位 RSA:钥匙短 12 倍、握手快、证书小。1985 年 Miller 与 Koblitz 各自独立想到把这条曲线搬进密码学,四十年后它成了公钥世界的默认地基——但它的标准常数也曾被 NSA 塞进后门。数学越强,越要盯住人。
Principle — 原理与来源
核心机制:在素数域 p 上的椭圆曲线点集构成一个循环群。取基点 G,私钥是随机整数 k,公钥是"点加法"的 kG(G 自加 k-1 次)。正向计算是多项式时间;反向(由 kG 求 k,即椭圆曲线离散对数问题 ECDLP)已知最好算法(Pollard ρ)约 √n 步——纯指数级。对比 RSA:整数分解有亚指数的数域筛法(GNFS),所以 RSA 必须用很长的模数才能撑住同等强度。
人物:Victor Miller(IBM,1985 年 CRYPTO 会议提出,论文 1986 收入论文集)与 Neal Koblitz(华盛顿大学,论文 1987 年刊于 Mathematics of Computation)相互独立提出用椭圆曲线做密码——两人 2021 年共获 Levchin 奖。思想源头是 Diffie–Hellman 1976 开创公钥密码后,学界四处寻找"离散对数难题"的新宿主,椭圆曲线(数论古董,19 世纪以来研究椭圆积分时出现)恰好合适。
工程胜利:2005 年 NSA 发布 Suite B,把 P-256/P-384 曲线列为政府机密数据首选,RSA 最低模数抬到 3072 位——ECC 正式登基。今天:TLS 1.3 默认 ECDHE 密钥交换、ECDSA 证书;比特币/以太坊用 SECG 的 secp256k1(y²=x³+7);中国国密 SM2(GM/T 0003-2012,2010 年 12 月首发,GB/T 32918 上升为国标,签名引入用户 ID 参与)用于金融与政务,RFC 8998 把 SM2 带进 TLS 1.3。
暗面(必须讲):椭圆曲线的常数可以藏后门——NIST 2006 年标准化的随机数生成器 Dual_EC_DRBG,其常数 P、Q 满足 Q = P·e,握有 e 的人可预测全部输出。2007 年 Shumow & Ferguson 揭示可能性、Schneier 公开警告,2013 年斯诺登文件与 RSA 公司收 NSA 1,000 万美元将 Dual_EC 设为 BSAFE 默认的合同曝光坐实。NIST 2014 年正式撤回。此后业界信条:常数来源不可解释的曲线不碰。
Apply — 用在哪里
Simulate — 有限域点运算实验室 × 密钥尺寸天文台
Personal Takeaways — 个人启示 · 03
安全强度是"难题强度",不是"位数长度"
ECC 用 256 位达到 RSA 3072 位的效果,因为两道难题的最好算法复杂度不同。评估任何安全方案先问:它依赖的难题,已知最好攻击是什么复杂度——位数只是这道题的参数,不是强度本身。
可解释的常数是信任的最低门槛
Dual_EC_DRBG 的教训超越密码学:任何"来源不明的魔法常数"(模型参数、种子、默认配置)都是潜在后门。审查依赖与方案时,先问常数怎么来的、能否独立复现——答不上来的,按可疑处理。
向前看半步:量子和迁移
Shor 算法面前 ECC 与 RSA 同归于尽——这不是恐慌理由,是架构预算理由:长期机密的数据今天就要考虑后量子混合(TLS 已支持 X25519+ML-KEM);短期会话靠前向保密续命。密码学的生命周期管理,从"选个算法"变成了"排迁移路线"。