Ed25519とは
Ed25519は、Daniel J. Bernsteinらによって設計されたデジタル署名アルゴリズムです。Edwards曲線(Curve25519)を使用し、高速な署名生成・検証と強力なセキュリティを両立しています。
Ed25519の特徴:
- 短い鍵長:256ビット(RSA-3072と同等の安全性)
- 高速:署名生成・検証が非常に速い
- 決定論的:同じ入力から常に同じ署名が生成
- サイドチャネル攻撃に強い:設計段階から考慮
AIエンジニアとしての実体験
AIエンジニアとして、Ed25519はSSH鍵の標準として使用しています。RSA鍵と比較して、生成が速く、鍵ファイルサイズも小さくなります:
# Ed25519 SSH鍵の生成
ssh-keygen -t ed25519 -C "your_email@example.com"
# 生成される鍵(非常に短い)
# 公開鍵: 68バイト(Base64エンコード後)
# 秘密鍵: 399バイト
# RSA 4096との比較
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 公開鍵: 725バイト
# 秘密鍵: 3,243バイト
Ed25519 vs RSA vs ECDSA
| アルゴリズム | 鍵長 | 速度 | 推奨度 |
|---|---|---|---|
| Ed25519 | 256ビット | 最速 | ✅ 最推奨 |
| ECDSA P-256 | 256ビット | 速い | ✅ 良い |
| RSA 3072 | 3072ビット | 遅い | ⚠️ 互換性用 |
使用例
SSH設定での優先順位
# ~/.ssh/config
Host *
IdentityFile ~/.ssh/id_ed25519
HostKeyAlgorithms ssh-ed25519,ecdsa-sha2-nistp256,rsa-sha2-512
PubkeyAcceptedAlgorithms ssh-ed25519,ecdsa-sha2-nistp256,rsa-sha2-512
Pythonでの署名
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
from cryptography.hazmat.primitives import serialization
# 鍵ペア生成
private_key = Ed25519PrivateKey.generate()
public_key = private_key.public_key()
# 署名
message = b"Hello, World!"
signature = private_key.sign(message)
# 検証
public_key.verify(signature, message)
最新動向(2026年)
Ed25519の普及
OpenSSH 8.0以降でEd25519がデフォルトで生成されるようになり、GitHub、GitLabなどでも推奨されています。
Ed448
より長い曲線(448ビット)を使用するEd448も利用可能で、より高いセキュリティマージンを提供します。
トラブル事例と対策
⚠️ 古いシステムとの互換性
症状:レガシーシステムがEd25519をサポートしない
対策:RSA鍵を併用し、ssh-configで使い分ける。
権威あるリソース
関連用語
📝 関連ブログ記事
よくある質問(FAQ)
Q. Ed25519とは何ですか?
Ed25519はEdDSA(Edwards-curve Digital Signature Algorithm)に基づく楕円曲線デジタル署名アルゴリズムです。RSA-2048より短い256ビットの鍵で高いセキュリティを提供し、SSH鍵・TLS証明書・GitHubのコミット署名などで広く採用されています。
Q. Ed25519とRSAはどちらが安全ですか?
Ed25519はRSA-2048より短い鍵(256ビット)で同等以上のセキュリティを提供し、署名の生成・検証が高速です。また実装がよりシンプルで、タイミング攻撃に対して定常時間で動作します。新規のSSH鍵生成にはRSAよりEd25519を推奨します。
Q. ssh-keygenでEd25519鍵を生成するには?
ssh-keygen -t ed25519 -C 'your_email@example.com' コマンドで生成できます。従来のssh-keygen -t rsaよりもセキュアで生成が高速です。GitHubもEd25519をサポートしており、2021年以降はRSA-1024鍵を拒否するようになっています。
Q. Ed25519は量子コンピュータに対して安全ですか?
いいえ。Ed25519は楕円曲線離散対数問題に基づいており、理論上は十分に大きな量子コンピュータ(Shorのアルゴリズム)で解読される可能性があります。長期的には耐量子暗号(NIST PQC標準:CRYSTALS-Dilithium等)への移行が必要です。
