Ed25519、BLAKE3 與後量子密碼學整理
整理者:Claude Sonnet 4.6
整理日期:2026-05-27T08:51:40+08:00
1. Ed25519 vs BLAKE3:使用場景比較
這兩者使用場景完全不同,分屬不同密碼學領域。
Ed25519 — 數位簽章演算法
- 類型:非對稱加密 / 數位簽章(基於橢圓曲線 Curve25519)
- 用途:身份驗證、訊息簽章、金鑰交換(如 SSH、TLS、JWT、Git commit signing)
- 特性:
- 簽章速度極快,公鑰僅 32 bytes、簽章 64 bytes
- 抗側通道攻擊設計
- 確定性簽章(無隨機數洩漏風險)
BLAKE3 — 雜湊函數(Hash Function)
- 類型:密碼學雜湊(Cryptographic Hash)
- 用途:資料完整性驗證、MAC、KDF、內容定址(如 IPFS、Bao)
- 特性:
- 速度極快(可平行化,利用 SIMD / 多核)
- 輸出長度可變(XOF)
- 同時具備 PRF、MAC、KDF、XOF 功能
核心差異
Ed25519 解決的是「這訊息是你發的嗎?」
BLAKE3 解決的是「這資料有沒有被改過?」
兩者常搭配使用,例如先用 BLAKE3 對資料取 hash,再用 Ed25519 對 hash 簽章。
2. 各自領域的強度比較
雜湊領域
| 演算法 | 速度 | 安全性 | 生態 |
|---|---|---|---|
| BLAKE3 | ⭐⭐⭐⭐⭐ | ✅ 256-bit(可變長) | 成熟,多語言支援 |
| BLAKE2b | ⭐⭐⭐⭐ | ✅ 512-bit | 非常成熟 |
| SHA-3 (Keccak) | ⭐⭐⭐ | ✅ NIST 標準 | 成熟 |
| SHA-256 | ⭐⭐⭐ | ✅ 久經考驗 | 最廣泛 |
結論:BLAKE3 是現在能用到的最強雜湊工具。
若需要更高安全位元,BLAKE3 本身支援可變長度輸出,直接輸出 512-bit 即可。
數位簽章領域
| 演算法 | 安全位元 | 速度 | 生態 | 後量子 |
|---|---|---|---|---|
| Ed25519 | 128-bit | ⭐⭐⭐⭐⭐ | 非常成熟 | ❌ |
| Ed448 | 224-bit | ⭐⭐⭐⭐ | 成熟(OpenSSL、libsodium) | ❌ |
| ML-DSA (Dilithium3) | 128-bit 後量子 | ⭐⭐⭐ | 可用(liboqs、OpenSSL 3.5+) | ✅ |
| SLH-DSA (SPHINCS+) | 128-bit 後量子 | ⭐⭐ | 可用但慢 | ✅ 最保守 |
3. 後量子的隱憂
- Ed25519:基於橢圓曲線,量子電腦(Shor’s algorithm)理論上可破解。
- BLAKE3:對量子攻擊相對穩健,Grover’s algorithm 僅讓安全位元減半,256-bit 輸出仍足夠。
- ML-DSA(CRYSTALS-Dilithium):NIST 於 2024 年正式標準化(FIPS 204),OpenSSL 3.5(2025 年)已原生支援。
4. 實務建議
短期系統 / 效能優先 → Ed25519 + BLAKE3
長期系統 / 安全優先 → ML-DSA (Dilithium3) + BLAKE3
過渡期混合方案 → Ed25519 + ML-DSA 雙簽章(hybrid signature)
5. macOS ssh-keygen 與 ML-DSA
目前不支援 ML-DSA。
原因
macOS 內建的 ssh-keygen 基於 Apple 自帶的 OpenSSH,問題有兩層:
- OpenSSH 本身:上游 OpenSSH 尚未正式將 ML-DSA 整合進
ssh-keygen主線。 - macOS 版本:Apple 使用 LibreSSL,不是 OpenSSL 3.5+,即使 OpenSSL 3.5 已支援 ML-DSA,macOS 也用不到。
SSH 後量子的現況
| 功能 | 後量子支援 | 演算法 |
|---|---|---|
| 金鑰交換(KEX) | ✅ OpenSSH 9.0+ | sntrup761x25519(混合式) |
| 主機 / 用戶金鑰簽章 | ❌ 尚未支援 ML-DSA | 仍是 Ed25519 / RSA |
傳輸過程已有後量子保護,但身份驗證金鑰本身還沒有。
實驗性替代方案
若真的需要 ML-DSA SSH 金鑰,可使用 OQS-OpenSSH(Open Quantum Safe 專案的 fork):
# 需自行編譯 oqs-openssh
# https://github.com/open-quantum-safe/openssh
ssh-keygen -t mldsa65 # 實驗性,非標準
⚠️ 此為實驗性質,不具互通性,正式環境不建議使用。
結論
現在 macOS 上,Ed25519 仍是最佳選擇。後量子 SSH 金鑰簽章要等 OpenSSH 主線正式支援後,才有實用意義。