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 即可。

數位簽章領域

演算法安全位元速度生態後量子
Ed25519128-bit⭐⭐⭐⭐⭐非常成熟
Ed448224-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,問題有兩層:

  1. OpenSSH 本身:上游 OpenSSH 尚未正式將 ML-DSA 整合進 ssh-keygen 主線。
  2. 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 主線正式支援後,才有實用意義。