Ed25519 (EdDSA 電子署名)(エドツーゴーニーゴー)
Daniel Bernstein 2011年公開のEdDSA 電子署名スキーム。Curve25519 ベース・256bit 鍵・64 byte 署名・高速 / 高セキュリティで SSH / TLS 1.3 / Signal で標準化。
概要
Ed25519 はDaniel J. Bernstein (米イリノイ大学・djb) / Niels Duif / Tanja Lange / Peter Schwabe / Bo-Yin Yang が2011年に「High-speed high-security signatures」論文で発表・2017年1月RFC 8032 で標準化されたEdDSA (Edwards-curve Digital Signature Algorithm) 電子署名スキーム。Curve25519 ベース楕円曲線で256bit 鍵・64 byte 署名・5-15倍ECDSA より高速・サイドチャネル耐性 (Constant-Time) で SSH / TLS 1.3 / Signal / WireGuard / Apple Secure Enclave / Tor で標準化、現代電子署名の最適解。
Ed25519 主要仕様
| 項目 | 仕様 |
|---|---|
| 曲線 | Curve25519 (Edwards form) |
| セキュリティ強度 | ~128bit (256bit 鍵) |
| 公開鍵サイズ | 32 byte (256bit) |
| 秘密鍵サイズ | 32 byte (256bit) |
| 署名サイズ | 64 byte (512bit) |
| ハッシュ | SHA-512 |
| 設計年 | 2011 |
| 標準化 | RFC 8032 (2017) |
| 派生 | Ed448 (より高セキュリティ) |
主要採用
| 用途 | 採用 |
|---|---|
| OpenSSH | ed25519 (2013年-現代SSH 標準) |
| TLS 1.3 | Ed25519 署名スイート |
| Signal Protocol | XEd25519 |
| WireGuard | Curve25519 + Ed25519 |
| Apple Secure Enclave | Ed25519 |
| Tor Onion Service v3 | Ed25519 |
| Libsodium | NaCl 主要署名 |
| Ethereum 2.0 / Consensus | BLS12-381 (別) + Ed25519 周辺 |
| Cardano | Ed25519 |
| Solana | Ed25519 |
| GPG / OpenPGP | Ed25519 (新規鍵推奨) |
| Bitcoin (Taproot) | Schnorr / Ed25519 (現代議論) |
Ed25519 vs ECDSA (secp256k1) vs RSA
| 項目 | Ed25519 | ECDSA secp256k1 | RSA-2048 |
|---|---|---|---|
| 鍵長 | 32 byte | 32 byte | 256 byte (2048bit) |
| 署名長 | 64 byte | 64-72 byte | 256 byte |
| 署名速度 | 30,000+/sec | 5,000/sec | 1,000/sec |
| 検証速度 | 10,000+/sec | 3,000/sec | 30,000/sec |
| 鍵生成 | 高速 (1ms) | 高速 | 遅 (100-500ms) |
| サイドチャネル耐性 | ◎ | △ | △ |
| 仕様明確性 | ◎ | ○ | ○ |
| 量子耐性 | × (Shor 対象) | × | × |
EdDSA 設計の特徴
EdDSA (Edwards-curve Digital Signature Algorithm) はSchnorr 署名の変種、ECDSA との主な違い:
| 項目 | ECDSA | EdDSA (Ed25519) |
|---|---|---|
| 乱数 | 必要 (毎回ランダム) | 不要 (deterministic) |
| Salt 攻撃 | 可能 (PS3 攻撃事件 2010) | 不可 |
| 実装難度 | 高 (Constant-Time 注意) | 低 |
| 標準化 | NIST FIPS 186 | RFC 8032 |
| バイアス問題 | あり | なし |
PS3 Hack (2010) はSony PlayStation 3 がECDSA で固定nonce を使用したことで秘密鍵が漏洩した事件・EdDSA は deterministic 設計でこの脆弱性を構造的に防ぐ。
OpenSSH 鍵タイプ比較
| タイプ | 鍵長 | 強度 | 推奨 |
|---|---|---|---|
| RSA 1024 | 1024bit | 弱 | 廃止 |
| RSA 2048 | 2048bit | 中 | 互換性のみ |
| RSA 3072+ | 3072+bit | 強 | 旧互換 |
| ECDSA P-256 | 256bit | 強 | 旧 |
| Ed25519 | 256bit | 強 | 推奨 (2013-) |
新規SSH鍵は ssh-keygen -t ed25519 推奨、ssh-keygen -t rsa -b 4096 は互換性のみ。
Apple Secure Enclave での採用
iPhone 5s (2013) 以降のApple Secure Enclave Processor (SEP) は Ed25519 を:
- Face ID / Touch ID 認証
- Apple Pay
- iMessage 暗号化
- iCloud Keychain
- Apple Watch ペアリング
の主要署名スキームとして利用、ハードウェア専用回路で実装。
関連用語との違い
- vs ECDSA: 数学的安全性 / 設計上問題
- vs Schnorr: 数学的基盤 / 派生
- vs PQC: 古典楕円曲線 / 量子耐性
FAQ
Q1: SSH で RSA から Ed25519 移行?
A: 推奨。ssh-keygen -t ed25519 で新規鍵生成・公開鍵 (.ssh/authorized_keys 64 byte 短い) サーバ追加・テスト後 RSA 削除。
Q2: コミット署名 (Git) で?
A: Git 2.34+ はEd25519 直接サポート (gpg.format ssh)。GitHub もコミット署名検証対応 (2022-09)。GPG 経由でも gpg --quick-generate-key NAME ed25519 でEd25519 GPG 鍵生成可。
Q3: 量子耐性? A: Shor アルゴリズムで Ed25519 も破られる。RSA / ECDSA 同様の脅威・2030-2040年に PQC (ML-DSA / SLH-DSA) 移行が業界課題。