← [ BACK_TO_NOTES ]

椭圆曲线密码学(ECC)

ECC 是基于椭圆曲线群上离散对数困难性的公钥密码学构造基础,可用于 ECDH 密钥协商、ECDSA/EdDSA 签名等;ECC 不是单一“加密算法”,曲线选择、协议和实现共同决定安全性。

#evergreen #concept #crypto

[!info] related notes

椭圆曲线密码学(ECC)

一句话定义

ECC 不是单一 encryption algorithm。

它是基于椭圆曲线群结构的一组公钥密码学构造基础。

常见具体用途:

  • ECDH:key agreement;
  • ECDSA:digital signature;
  • EdDSA:基于 Edwards curve 的签名体系;
  • 其他基于椭圆曲线的标准协议。

数学核心

在有限域上的椭圆曲线群中,选择基点 G。

私钥是一个标量 d。

公钥是:

Q = dG

正向 scalar multiplication 可高效计算。

反向:

given G and Q, find d

对应 Elliptic Curve Discrete Logarithm Problem(ECDLP)。

几何图只是帮助直觉

教材常用实数平面上的曲线图解释 point addition。

但真实密码系统主要在 finite field 上运算。

因此“画一条连续曲线再求交点”只是教学直觉,不是实际实现本身。

ECC 的优势到底是什么

常见优势是:

在相近 security strength 下,ECC 通常需要比 RSA 更短的 public/private key。

例如常见对比中:

  • RSA 3072-bit;
  • 约 256-bit 级 ECC;

可达到大致相近的 classical security strength 级别。

这可能带来:

  • 更小 certificate/key;
  • 更低 bandwidth/storage;
  • 某些场景更好的性能。

但不能统一说 ECC 所有操作都一定比 RSA 更快。

签名、验证、密钥生成、硬件支持的性能关系可能不同。

ECDH

ECDH 用于 key agreement:

Alice private + Bob public → shared secret
Bob private + Alice public → same shared secret

然后通过 KDF 派生真正 session key。

现代 TLS 中常见的是 ephemeral ECDH(ECDHE),用于提供 Forward Secrecy。

ECDSA 与 EdDSA

ECDSA 与 EdDSA 都是 signature family,但不是同一个算法。

当前 NIST FIPS 186-5 认可的签名技术包括:

  • RSA;
  • ECDSA;
  • EdDSA。

旧 DSA 只保留验证既有签名的用途。

Curve Choice

不能只写:

ECC = y² = x³ + ax + b

然后认为所有 curve 都一样。

实际安全取决于:

  • field;
  • curve parameters;
  • base point;
  • group order;
  • cofactor;
  • implementation;
  • protocol。

应使用经过标准化和广泛分析的 curve/algorithm,而不是自行设计参数。

secp256k1 不是所有 ECC 的代表

Bitcoin 使用 secp256k1。

但 Web/TLS/其他系统还常见:

  • NIST P-256 等;
  • X25519(key agreement);
  • Ed25519(signature)。

它们的曲线形式、API 和 protocol 语义不同。

ECC vs RSA

维度RSAECC
数学基础integer factorizationelliptic-curve discrete log
key size较长相近强度下通常更短
signatureRSA-PSS 等ECDSA / EdDSA 等
key establishmentRSA-based schemes / legacy key transportECDH / ECDHE
ecosystem广泛、兼容性高现代协议广泛使用

不要得出“ECC 全面优于 RSA”的简单排名。

实现风险

ECC 对实现细节非常敏感:

  • random nonce;
  • side-channel;
  • invalid-curve/input validation;
  • point encoding;
  • constant-time arithmetic。

特别是某些签名算法中,如果 ephemeral nonce 重复或泄漏,private key 可能被恢复。

Post-Quantum 边界

ECC 和 RSA 都不属于 post-quantum cryptography。

大规模容错量子计算若可用,Shor 算法会影响:

  • integer factorization;
  • discrete logarithm;
  • ECDLP。

所以“ECC key 更短”不代表量子安全。

学习检查

  1. 为什么 ECC 不是单一 encryption algorithm?
  2. ECDLP 在 ECC 中扮演什么角色?
  3. 实数平面几何图与真实有限域实现有什么差异?
  4. 为什么 256-bit ECC 与 2048/3072-bit RSA 不能按 bit 数直接比较?
  5. ECDH 与 ECDSA 分别解决什么问题?
  6. secp256k1 为什么不能代表所有 ECC?
  7. nonce 重复为什么可能破坏某些 ECC signature scheme?
  8. ECC 为什么不等于 post-quantum cryptography?
创建于 2026/1/7 更新于 2026/9/30
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本