RSA鍵ペア生成器

キーサイズ(ビット)
次へ

RSA鍵ペアとは、数学的に関連付けられた二つの数からなるもので、一方は公開される公開鍵、もう一方は保管する秘密鍵です。このジェネレータは、暗号学的に安全なランダムソースを用いて標準的なPEM符号化により両方を生成します。コマンドラインにアクセスすることなく、JWT署名機能の起動やステージングボックス向けTLS証明書の生成、あるいはSSH認証情報の発行に利用できます。

RSA鍵ペアの生成方法

  1. 1

    キーサイズを選択

    2048ビット、3072ビット、または4096ビットを選択してください。長い鍵はより強力ですが、署名および検証に時間がかかります。

  2. 2

    生成

    このツールはWebCryptoプリミティブを用いて、新しいモジュールおよびプライベート指数を生成します。

  3. 3

    コピーまたはダウンロード

    PEM形式で符号化された秘密鍵(BEGIN PRIVATE KEY)および対応する公開鍵(BEGIN PUBLIC KEY)を取得してください。

  4. 4

    プライベートキーを安全に保存してください

    それをシークレットマネージャーやキーチェーンに保存してください。チャット、メール、または公開リポジトリには決して貼り付けてはいけません。

どのキーサイズを使用すべきですか?

大きければ大きいほど必ずしも優れているわけではありません。適切なサイズは、キーの使用期間や各署名処理に割くCPUリソースの量に依存します。

NISTのガイドライン一覧

鍵サイズ セキュリティレベル 一般的な用途 相対的な署名コスト
2048ビット ~112ビット JWT署名、短期間有効なTLS証明書、ほとんどのAPI 1倍
3072ビット ~128ビット 長期間運用可能なルートCA、FIPS > 2030規格への準拠 ~3倍
4096ビット ~140ビット 高信頼性のルート、長期的なドキュメント署名 ~7倍

PEMの位置付け

鍵はPKCS#8/SPKIでラップされ、-----BEGIN-----から-----END-----のマーカーの間にbase64符号化されており、これはすべての主要なライブラリが採用している標準フォーマットです(OpenSSL、Node.jsのcrypto、Pythonのcryptography、Goのcrypto/rsa、JavaのKeyFactory)。

運用に関するヒント

  • 広く使われる署名鍵は、少なくとも年1回はローテーションしてください。
  • 新しいシステムでは、ECDSA(P-256)またはEd25519を推奨します。これらは処理速度が速く、署名サイズも大幅に小さくなります。
  • 関連性のないシステム間で鍵ペアを再利用してはなりません。一度漏洩すると、下流のすべてのシステムが危険にさらされます。
  • 秘密鍵をディスクに保存する際は、パスフレーズを使用してください。暗号化されたPEM(BEGIN ENCRYPTED PRIVATE KEY)が標準です。

よくある質問

はい、ほとんどのAPIおよびセッションの署名に適用されます。NISTおよびBSIは引き続き、2048ビットのRSAを少なくとも2030年まで許容しているものの、より長期にわたって使用する必要がある場合には3072ビットが推奨されています。

PEMのプライベートキーはssh-keygen -y -f key.pemと組み合わせて、ssh-rsaのパブリック鍵を生成します。日常的なSSH通信にはEd25519を推奨します。この方式の鍵サイズが小さく、処理速度も速いです。

1つ目はPKCS#1(RSA専用)です。2つ目はPKCS#8(アルゴリズムに依存しないラッパー)で、現代のライブラリでは一般的に採用されています。このツールはPKCS#8の結果を出力します。

実際にはそうではありません。鍵の生成はWebCrypto APIを用いてローカルで行われ、PEMファイルはページに表示される前にメモリ内で構成されます。

関連ツール

このツールは他の言語でも利用できます