EdDSA (Ed25519) 暗号化 & 復号

無料オンライン EdDSA (Ed25519) 暗号化 & 復号 ツール。100% ローカル処理 — データは端末の外に出ません。

National Standards
Other
出力

結果がここに表示されます...

入力 暗号化

Usage Guide

EdDSA(Ed25519)について

EdDSA(Edwards曲線デジタル署名アルゴリズム)はCurve25519を使用した現代的な高性能デジタル署名方式であり、RFC 8032で標準化されています。SSHのデフォルト署名アルゴリズム(OpenSSHデフォルト)として、TLS 1.3クライアント証明書、GPGサブキー、暗号通貨ウォレット(Solana、Cardano)、JWT署名に広く使用されています。Ed25519は驚くほど小さな鍵(各32バイト)と卓越したパフォーマンス(毎秒約100,000回の署名/検証操作)で128ビットセキュリティを提供します。

署名アルゴリズム — 暗号化ではありません:Ed25519はデジタル署名アルゴリズムです。特定の秘密鍵の保有者がメッセージに署名したことを証明します — データを暗号化しません。データの機密性を保つには、Ed25519署名を ChaCha20-Poly1305 AES-256-GCM などの対称暗号と組み合わせてください。

使用手順

このツールはEd25519鍵ペア生成、メッセージ署名、署名検証をサポートしています:

1. 鍵ペアの生成「鍵ペアを生成」をクリックして秘密鍵/公開鍵のペアを作成します。秘密鍵:64桁の16進数(32バイトのシード)。公開鍵:64桁の16進数(Curve25519上の32バイト圧縮ポイント)。
2. メッセージへの署名「暗号化(署名)」モードを選択します。入力フィールドにメッセージテキストを入力し、鍵パラメータに秘密鍵(64桁の16進数)を貼り付けます。「暗号化」をクリックすると、Base64エンコードされた64バイトの署名が出力されます。
3. 署名の検証「復号(検証)」モードを選択します。「メッセージ|署名_Base64」(パイプ区切り)の形式で入力します。鍵パラメータに公開鍵(64桁の16進数)を貼り付けます。「復号」をクリックすると「✓ 署名が確認されました」またはエラーが出力されます。
4. 鍵の安全な保管秘密鍵を安全な場所(パスワードマネージャー、暗号化ボルト)に保存してください。公開鍵は自由に共有できます。秘密鍵を紛失すると署名能力が永久に失われます — 復元不可能です。
ブラウザのみで動作:すべての鍵生成と署名操作はWebCrypto APIを使用してブラウザ内で完全に実行されます。鍵やメッセージがサーバーに送信されることはありません。

鍵のフォーマット

このツールのEd25519鍵はコンパクトな16進数フォーマットを使用します:

秘密鍵64桁の16進数 = 32バイト。完全な署名鍵が決定論的に導出されるシードです。秘密にしておく必要があります。例:a3f1e2d4c5b6...
公開鍵64桁の16進数 = 32バイト。秘密鍵に対応するCurve25519上の圧縮ポイントです。公開して共有できます。例:5b8c9d0e1f2a...
署名Base64エンコードされた64バイトの値(512ビット)。Ed25519署名は決定論的です — 同じ秘密鍵で同じメッセージに署名すると常に同じ署名が生成されます。
検証用入力フォーマット検証時、入力フィールドにはメッセージと署名をパイプ文字で結合して入力する必要があります:メッセージ|署名_Base64

Ed25519 vs RSA

Ed25519とRSAはどちらもデジタル署名に使用されますが、特性が大きく異なります:

鍵のサイズEd25519:32バイト(256ビット)。RSA-3072は384バイトの鍵で同等のセキュリティを達成します — 12倍大きい。小さな鍵は伝送が速く、ストレージのオーバーヘッドが少ない。
パフォーマンスEd25519は同じハードウェアでRSA-2048より約100倍速く署名・検証します。認証サーバーなど高スループットシステムでは重要な差です。
セキュリティモデルEd25519は決定論的署名を使用します — ランダムなnonceは不要です。RSA-PSSは安全な乱数性が必要で、乱数性が弱いとRSA署名が弱体化する可能性があります。Ed25519はこのリスク種別を完全に排除します。
推奨事項すべての新しいシステムでEd25519を推奨します。レガシー互換性が必要な場合(ECCをサポートしない古いTLSクライアントやハードウェアトークンなど)にのみRSAを使用してください。
量子耐性:RSAやECDSAと同様に、Ed25519はShorのアルゴリズムを実行する十分に強力な量子コンピュータに対して脆弱です。ポスト量子セキュリティには、NIST標準化アルゴリズム(ML-DSA(CRYSTALS-Dilithium)など)を検討してください。ただし、Ed25519は今日の古典的(非量子)脅威モデルに対する最善の実用的選択肢であり続けています。

FAQ

Q: EdDSAとECDSAの違いは何ですか?

A: どちらも楕円曲線署名アルゴリズムですが、重要な点で異なります。ECDSA(NIST曲線P-256、P-384を使用)は署名ごとにランダムなnonce(k)が必要です — nonceが再利用されるか弱い場合、秘密鍵を完全に復元できます。これはまさに2010年にSonyのPlayStation 3秘密鍵が抽出された方法です。EdDSAは秘密鍵とメッセージハッシュから決定論的に導出されたnonceを使用するため、nonce再利用が数学的に不可能です。EdDSAはまた、特定のサイドチャネル攻撃に耐性のあるより安全なTwisted Edwards曲線(Ed25519用のCurve25519)を使用します。新しい実装では、EdDSAがECDSAより強く推奨されます。

Q: 決定論的署名がより安全な理由は何ですか?

A: ECDSAでは、各署名のセキュリティは新鮮で暗号学的にランダムなnonceに依存します。攻撃者が同じnonceを使用した2つの署名を取得した場合(nonce再利用)、またはnonceのエントロピーが不十分な場合(弱い乱数性)、単純な方程式を使用して秘密鍵を代数的に復元できます。これは理論的なことではありません — 実際のシステムを破った実績があります(PS3、Bitcoinウォレット)。Ed25519の決定論的署名は秘密鍵シードとメッセージのハッシュからnonceを導出するため、常に一意であり、外部の乱数源に影響されません。署名パスにランダム数生成器がない — 脆弱性の全クラスを排除します。

Q: EdDSAでデータを暗号化できますか?

A: できません。EdDSA(Ed25519)はデジタル署名アルゴリズムのみです — データを暗号化・復号することはできません。署名は真正性を証明します(誰がメッセージを作成したか)が、機密性を提供しません(誰でもメッセージを読めます)。データを暗号化するには、 ChaCha20-Poly1305 AES-256-GCM などの対称暗号を使用してください。注意:X25519(Curve25519に基づく関連するが異なるアルゴリズム)は鍵交換(Diffie-Hellman)に使用できますが、Ed25519とは異なり、鍵は互換性がありません。

Q: Ed25519 SSH鍵を生成するにはどうすればいいですか?

A: OpenSSHの組み込み鍵生成ツールを使用します:
ssh-keygen -t ed25519 -C "your_email@example.com"
これにより~/.ssh/id_ed25519(秘密鍵)と~/.ssh/id_ed25519.pub(公開鍵)が生成されます。Ed25519はOpenSSH 6.5(2014年)以来推奨されているSSH鍵タイプであり、現在ほとんどのディストリビューションでデフォルトです。OpenSSHで生成された鍵はこのツールの16進数フォーマットとは異なるエンコーディング(PEM/OpenSSHフォーマット)を使用していますが、同じ暗号アルゴリズムに基づいています。

Q: 64バイトのEd25519署名には何が含まれていますか?

A: Ed25519署名は2つの32バイト値で構成されています:R(決定論的nonceから導出された圧縮楕円曲線ポイント)とS(nonce、秘密鍵、メッセージハッシュから計算されたスカラー値)。RとSが合わさって64バイトの署名を形成します。検証では公開鍵、メッセージ、Sを使用してRを再構築し、署名内のRと一致するか確認します。検証全体はCurve25519上の高速な体算術のみを含みます — RSAのような剰余指数演算はありません。

Q: Ed25519は量子コンピュータに耐性がありますか?

A: いいえ — 十分に強力な量子コンピュータに対しては耐性がありません。Shorのアルゴリズムを実行する量子コンピュータは、楕円曲線上の離散対数問題を解くことでEd25519を破ることができます。RSAとECDSAにも同じ脅威が適用されます。ただし、128ビット楕円曲線セキュリティを破れる量子コンピュータには、非常に低いエラー率の数千の論理量子ビットが必要です — 現在の技術をはるかに超えています。ポスト量子署名には、NISTがML-DSA(旧CRYSTALS-Dilithium)とSLH-DSA(SPHINCS+)を標準化しました。Ed25519は古典的脅威モデルに対する最善の実用的選択肢であり続け、本番システムで広く使用されています。

Use Cases

推奨:SSH認証鍵

Ed25519はOpenSSH 6.5以来推奨されるSSH鍵タイプであり、現在ほとんどのLinuxディストリビューションとmacOSでデフォルトです。RSA-2048と比較して、Ed25519のSSH鍵はずっと短く(68文字 vs 400+)、生成が速く、認証が速く、弱い乱数性攻撃に対して脆弱ではありません。すべての新しいSSH鍵にはssh-keygen -t ed25519を使用してください。公開鍵をサーバーの~/.ssh/authorized_keysに追加してください。

Recommended Configuration:
  • ✅ 新しいSSH鍵にはssh-keygen -t ed25519を使用
  • ✅ 強力なパスフレーズで秘密鍵を保護
  • ✅ 公開鍵はサーバーに自由に配布
  • ❌ RSA-1024を使用しない;RSA-2048よりEd25519を推奨
推奨:コード署名とソフトウェア配布

Ed25519はソフトウェアリリース、コンテナイメージ、ファームウェアアップデートへの署名に理想的です。決定論的署名の特性により、同じバージョンは常に同じ署名を生成します — 再現可能なビルドの検証を信頼性の高いものにします。SigstoreminisignsignifyなどのツールがEd25519を使用しています。GPGはEd25519署名サブキーをサポートしています。コンパクトな64バイトの署名はメタデータやマニフェストファイルに簡単に埋め込めます。

Recommended Configuration:
  • ✅ Ed25519でリリースアーティファクトとチェックサムに署名
  • ✅ 簡単なファイル署名にはminisignまたはsignifyを使用
  • ✅ リリースアーティファクトと共に署名ファイルを含める
  • ❌ 暗号署名なしでソフトウェアを配布しない
推奨:JWT署名(EdDSAアルゴリズム)

JSON Web Token(JWT)はEdDSAアルゴリズム識別子RFC 8037)を通じてEd25519をサポートしています。JWTにEdDSAを使用することは、HMAC-SHA256(秘密鍵の共有が必要)より安全でRS256(RSA)より効率的です。サーバーはEd25519秘密鍵でトークンに署名し、クライアントとリソースサーバーは公開鍵で検証します。これにより、ステートレスでスケーラブルな認証が実現します — 認証サーバーとリソースサーバー間で共有秘密は不要です。

Recommended Configuration:
  • ✅ 新プロジェクトのJWTにEdDSA(Ed25519)を使用
  • ✅ /.well-known/jwks.jsonエンドポイントで公開鍵を公開
  • ✅ 署名鍵を定期的にローテーション
  • ❌ 複数サービスが検証する場合にHS256(対称)を使用しない
推奨:APIリクエスト認証

Ed25519はリクエストペイロード(メソッド + パス + タイムスタンプ + ボディハッシュ)を秘密鍵で署名することでAPIリクエストを認証できます。APIサーバーはクライアントの登録済み公開鍵を使用して署名を検証します。これはAPIキー(漏洩する可能性のある秘密)よりも安全です — 秘密鍵がクライアントを離れることがないからです。 HMAC-SHA256 と比較して、サーバーが秘密を保存する必要がありません — サーバーが侵害されてもすべてのクライアントが影響を受けません。

Recommended Configuration:
  • ✅ リプレイ攻撃防止のためタイムスタンプを含めてリクエストペイロードに署名
  • ✅ クライアント公開鍵をサーバー側に登録(秘密共有不要)
  • ✅ サーバーがクライアントの秘密を知るべきでない場合はHMACよりEd25519を使用
  • 💡 署名ペイロードにnonceまたはタイムスタンプを含める
許容:暗号通貨ウォレット署名

Ed25519はSolanaCardanoStellarNear Protocolを含む複数の暗号通貨のネイティブ署名アルゴリズムです。ウォレットアドレスはEd25519公開鍵から導出されます。トランザクションは対応する秘密鍵で署名されます。これは正当で重要なユースケースですが、暗号通貨の秘密鍵は特別に注意深い保管(ハードウェアウォレット、セキュアエンクレーブ)が必要です — 紛失または盗まれた秘密鍵は資金の永久損失を意味します。

Recommended Configuration:
  • ✅ 高価値鍵にはハードウェアウォレット(Ledger、Trezor)を使用
  • ✅ シードフレーズを安全なオフラインストレージにバックアップ
  • ❌ 暗号通貨の秘密鍵をプレーンテキストファイルに保存しない
  • ❌ 本番ウォレット鍵にこのブラウザツールを使用しない
非推奨:データ暗号化

Ed25519はデータを暗号化できません — 暗号化に使用しようとすることはアルゴリズムの根本的な誤用です。Ed25519は署名アルゴリズムです:メッセージを受け取り、真正性を証明する署名を生成します。メッセージを暗号文に変換しません。機密通信には ChaCha20-Poly1305 または AES-256-GCM を使用してください。非対称暗号化が必要な場合は RSA を使用してください。

Recommended Configuration:
  • ❌ データ暗号化にEd25519を使用しない
  • ✅ 対称暗号化にはAES-256-GCMまたはChaCha20-Poly1305を使用
  • ✅ 非対称暗号化にはRSA-OAEPを使用
  • 💡 署名 ≠ 暗号化 — 異なるセキュリティ目標を果たす

ベストプラクティスのまとめ

  • Ed25519は署名アルゴリズムです — 真正性を証明しますが暗号化しません。機密性にはAES-256-GCMまたはChaCha20-Poly1305を使用してください。
  • すべての新しい署名ユースケースでRSAとECDSAよりEd25519を推奨します:より小さな鍵、より速い操作、決定論的署名。
  • 秘密鍵(64桁の16進数)は秘密にしておく必要があります。公開鍵(64桁の16進数)は自由に配布できます。
  • 「メッセージ|署名_Base64」の入力フォーマットを使用して署名を検証します。パイプ区切り文字が必要です。
  • SSHにはssh-keygen -t ed25519を使用してください。Ed25519はOpenSSH、NIST、主要なセキュリティガイドラインが推奨するモダンな標準です。

ディスカッション&フィードバック

0件のコメント
自分