Ed25519 - 暗号化全般

暗号化全般 | IT用語集

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

アルゴリズム鍵長速度推奨度
Ed25519256ビット最速✅ 最推奨
ECDSA P-256256ビット速い✅ 良い
RSA 30723072ビット遅い⚠️ 互換性用

使用例

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で使い分ける。

権威あるリソース

関連用語

📝 関連ブログ記事

【2026年最新】OpenSSLの深刻な問題とは?

よくある質問(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等)への移行が必要です。

SSH鍵管理のご相談