1. Ed25519简介:椭圆曲线密码学基础、算法特点与对比分析
各位同学好,我是你们这门课的主讲。做嵌入式安全开发十几年了,Ed25519 算是我最常用的签名算法之一。今天咱们先打好基础,把椭圆曲线密码学、Ed25519 的特点、跟 ECDSA 的对比,以及实际应用场景都捋一遍。
1.1 椭圆曲线密码学基础
椭圆曲线密码学,说白了就是利用椭圆曲线上的点构成一个群,然后在这个群上做密码学操作。你想想看,一条曲线上的两个点相加,结果还是曲线上的点——这个性质特别适合做公钥密码。
常用的椭圆曲线方程是:
y² = x³ + ax + b (mod p)
其中 p 是一个大素数,a 和 b 是系数。不同的 a、b 组合,就构成了不同的曲线。Ed25519 用的是一条特殊的曲线,叫爱德华兹曲线。
核心概念:椭圆曲线上的点加法构成一个循环群。私钥是一个随机数,公钥是私钥乘以基点 G 得到的点。签名就是用私钥对消息做运算,验证就是用公钥和签名来检查。
我记得刚入行时,总觉得椭圆曲线很抽象。后来自己手算了一次点加法,才真正理解。嗯,这里要注意:椭圆曲线上的加法不是普通的坐标相加,它有专门的几何意义和代数公式。
1.2 Ed25519 算法特点
Ed25519 是 Bernstein 等人在 2011 年提出的。它基于 Curve25519 这条爱德华兹曲线。我个人习惯用 Ed25519,原因很简单——它又快又安全。
具体来说,Ed25519 有以下几个突出特点:
- 固定参数,无需随机数生成器:签名过程中不需要随机数,避免了随机数质量差导致私钥泄露的风险。我在项目中遇到过因为随机数生成器故障导致签名出问题的案例,用 Ed25519 就没这烦恼。
- 签名速度快:比同安全级别的 ECDSA 快 2-3 倍。在嵌入式设备上,这个差距非常明显。
- 签名尺寸小:公钥 32 字节,签名 64 字节。跟 ECDSA 的 64 字节签名 + 32 字节公钥差不多,但 Ed25519 的安全级别更高。
- 抗侧信道攻击:算法设计上天然抵抗定时攻击和简单功耗分析。
- 确定性签名:同样的消息和私钥,每次签名结果都一样。这在调试和审计时特别方便。
避坑指南:我曾经在移植 Ed25519 时,忽略了它要求私钥必须经过哈希处理。结果签名验证总是不通过。后来查了 RFC 8032 才发现,Ed25519 的私钥其实是 32 字节种子,经过 SHA-512 后分成两部分使用。这个细节很容易被忽略。
1.3 与 ECDSA 的对比
ECDSA 是更早的椭圆曲线签名标准,基于 Weierstrass 曲线。两者对比,差异很明显:
| 对比维度 | Ed25519 | ECDSA (secp256k1 / P-256) |
|---|---|---|
| 曲线类型 | 爱德华兹曲线 (Curve25519) | Weierstrass 曲线 |
| 安全级别 | ~128 位 | ~128 位 |
| 公钥长度 | 32 字节 | 32 或 33 字节(压缩) |
| 签名长度 | 64 字节 | 64 字节 |
| 签名速度 | 快(约 2-3 倍于 ECDSA) | 中等 |
| 随机数需求 | 不需要(确定性) | 需要高质量随机数 |
| 抗侧信道 | 天然抵抗 | 需要额外防护 |
| 标准化 | RFC 8032 | FIPS 186-4 / SEC 1 |
你想想看,ECDSA 最大的问题是什么?随机数!如果随机数重复或者可预测,私钥就暴露了。2010 年索尼 PS3 的 ECDSA 签名密钥泄露,就是因为随机数重复。Ed25519 直接把这个风险给去掉了。
注意:虽然 Ed25519 不需要随机数生成器,但生成私钥时仍然需要高质量的随机数。私钥的随机性决定了整个系统的安全性。我在做安全审计时,经常发现有人用 rand() 生成私钥——这是致命的。
1.4 应用场景分析
Ed25519 的应用场景非常广泛。我把它分成三类:
- 嵌入式设备:物联网传感器、智能卡、安全芯片。资源受限,Ed25519 的小尺寸和高速度是巨大优势。
- 区块链和加密货币:很多新项目直接采用 Ed25519。比如 Solana、Cardano、Stellar 等。交易签名速度快,能支撑高吞吐量。
- 安全通信协议:SSH、TLS 1.3 都支持 Ed25519。WireGuard VPN 更是默认使用 Curve25519。
我个人最常用的是在嵌入式固件签名上。以前用 ECDSA,每次签名都要等几百毫秒。换成 Ed25519 后,签名时间降到几十毫秒,用户体验提升明显。
1.5 知识体系总览
下面这张图概括了本章的核心内容,也展示了 Ed25519 在整个密码学体系中的位置:
从图中可以看出,Ed25519 属于爱德华兹曲线分支,继承了 ECC 的数学基础,同时具备多项实用优势。它的应用场景覆盖了从低功耗嵌入式设备到高性能区块链系统的广泛领域。
1.6 本章小结
这一章我们讲了 Ed25519 的来龙去脉。椭圆曲线密码学是基础,Ed25519 是它的一个优秀实现。跟 ECDSA 比,Ed25519 更快、更安全、更简单。应用场景也很明确——只要需要数字签名的地方,Ed25519 都是强有力的候选。