椭圆曲线密码ECC

**椭圆曲线密码学 (Elliptic Curve Cryptography, ECC)** 是一种基于椭圆曲线数学结构的公钥加密算法。

#status / growing #type / concept #tech / security / crypto

椭圆曲线密码学 (ECC)

1. 简介

椭圆曲线密码学 (Elliptic Curve Cryptography, ECC) 是一种基于椭圆曲线数学结构的公钥加密算法。 与 RSA 基于“大整数分解”不同,ECC 的安全性建立在椭圆曲线离散对数问题 (ECDLP) 之上。

核心优势:在提供同等安全性的前提下,ECC 使用的密钥长度要短得多。这意味着计算更快、占用存储空间更小、带宽消耗更低。

2. 数学基础

椭圆曲线方程

ECC 通常使用魏尔斯特拉斯方程 (Weierstrass equation) 的形式:

$$ y^2 = x^3 + ax + b $$

(在实数域上,它的图像通常像一个横向的钟形或两条曲线)

核心运算:点加与标量乘法

ECC 不使用传统的整数乘法,而是定义了一种几何上的“加法”:

  1. 点加 (Point Addition):在曲线上取两点 $P$ 和 $Q$,连线与曲线相交于第三点 $-R$,该点关于 X 轴的对称点即为 $R = P + Q$。

  2. 标量乘法 (Scalar Multiplication):即重复的点加运算。

    $$

Q = k \times G = \underbrace{G + G + \dots + G}_{k \text{ times}}

$$

3. 密钥生成

假设我们选定了一条曲线和一个基点 (Base Point, G)

  • 私钥 (Private Key):生成一个随机整数 $d$ ($d$ < 曲线的阶)。
  • 公钥 (Public Key):计算 $Q = d \times G$。

安全原理 (ECDLP)

  • 已知 $d$ 和 $G$,算出 $Q$ 非常容易(正向计算)。
  • 已知 $Q$ 和 $G$,想要算出 $d$ 是计算上不可行的(逆向困难)。这就是椭圆曲线离散对数问题

4. ECC vs RSA

这是 ECC 最著名的对比优势。为了达到 AES-128 的安全强度:

算法所需密钥长度特点
RSA3072 bit密钥极长,加解密慢,但在老旧系统兼容性好
ECC256 bit密钥极短,计算快,适合手机、IoT、智能卡

5. 常见应用

由于其高效性,ECC 已成为现代加密的主流:

  1. ECDH (密钥交换):基于 ECC 的 Diffie-Hellman 交换,用于 SSL/TLS (HTTPS) 握手,确保网页浏览安全。
  2. ECDSA (数字签名):基于 ECC 的签名算法。
    • 比特币/以太坊:区块链广泛使用 secp256k1 曲线来生成地址和签名交易。
  3. 国密 SM2:中国国家密码局发布的 SM2 算法本质上也是一种 ECC 算法。

相关链接

创建于 2026/1/7 更新于 2026/5/27