RSA 鍵ペアジェネレーター
Web Crypto でブラウザ内に RSA 鍵ペア(2048・3072・4096 ビット)を生成。PEM 鍵を PKCS#8/SPKI または PKCS#1 形式でダウンロードできます。何もアップロードされません。
鍵はブラウザ内で Web Crypto API(crypto.subtle.generateKey)により生成されます。公開鍵は自由に共有でき、暗号化や検証に使います。
関連ツール
すべて表示RSA 鍵ジェネレーターとは?
Web Crypto API を使ってブラウザ内で新しい RSA の公開鍵・秘密鍵ペアを作成し、コピーやダウンロードできる PEM テキストとして両方の鍵を表示します。2048・3072・4096 ビットと、新しい PKCS#8 + SPKI 形式または古い PKCS#1「RSA PRIVATE KEY」形式を選べます。
RSA 鍵ジェネレーターの使い方
- 鍵長 を選びます(2048 ビットが一般的な最小値、長期利用なら 3072)。
- 鍵の形式 を選びます:PKCS#8 + SPKI(推奨)または PKCS#1。
- 鍵ペアを生成 をクリックして少し待ちます(4096 ビットの鍵は時間がかかります)。
public.pemとprivate.pemをコピーまたは ダウンロード し、秘密鍵は安全に保管します。
例
Key size 2048 bits, format PKCS#8 + SPKI
-----BEGIN PUBLIC KEY----- … (about 450 characters) and -----BEGIN PRIVATE KEY----- … (about 1700 characters)
鍵はランダムなので、実行のたびに異なる鍵ペアになります。
RSA 鍵ジェネレーターを使うべき場面
テスト用・開発用の鍵、デモ、JWT RS256 の実験、このサイトの RSA ツールでのデータ暗号化に使ってください。本番サーバー、証明書、SSH では、秘密鍵がブラウザを通らないよう、使用するマシン上で鍵を生成する方が安全です(openssl genpkey、ssh-keygen)。鍵はパスワードで保護されません。
RSA 鍵ジェネレーターの仕組み
crypto.subtle.generateKey は、ブラウザの暗号論的に安全な乱数生成器でモジュラスの半分のサイズの素数 p と q をランダムに選び、n = p·q、公開指数 e = 65537、秘密指数 d = e⁻¹ mod λ(n) を設定します。鍵は DER(公開鍵は SPKI、秘密鍵は PKCS#8)としてエクスポートされ、64 文字ごとに折り返した Base64 で PEM に包まれます。PKCS#1 では同じ鍵が RSAPublicKey / RSAPrivateKey として再エンコードされます。鍵は OpenSSL、OpenSSH(変換後)、Java、.NET、Node.js、Web Crypto で使えます。
一般的な使用例
- RSA-OAEP の暗号化・復号をテストするための鍵ペアを作成する
- ローカルでの JWT 署名の実験用に RS256 鍵を生成する
- 単体テスト用の PEM フィクスチャを作成する
- PKCS#8、SPKI、PKCS#1 の PEM ヘッダーの違いを学ぶ
セキュリティ注意事項
秘密鍵はプレーンテキストで表示され、パスワードで保護されていません。安全な場所(パスワードマネージャー、暗号化されたディスク)に保存し、リポジトリにコミットしないでください。
よくある質問
どの鍵長を選べばよいですか?
2048 ビットは現在受け入れられている最小値で、おおよそ 112 ビットの安全性に相当します。2030 年以降も使う鍵には 3072 ビット(128 ビットの安全性)を推奨します。4096 ビットは遅くなる割に実用上の利点は小さいです。
PKCS#8 と PKCS#1 のどちらにすべきですか?
PKCS#8(BEGIN PRIVATE KEY)と SPKI(BEGIN PUBLIC KEY)は、Web Crypto、Java、OpenSSL 3 が使う、アルゴリズムに依存しない新しい形式です。PKCS#1(BEGIN RSA PRIVATE KEY)は RSA 専用の古い形式で、一部のレガシーなツールが今も要求します。
鍵はサーバーに送信されますか?
いいえ。生成はブラウザの Web Crypto API で行われ、鍵はページを閉じるまでこのページ上にしか存在しません。
鍵を SSH に使えますか?
公開鍵を ssh-keygen -i -m PKCS8 -f public.pem で変換してください。実際の SSH アクセスには、ローカルで ssh-keygen を実行する方が安全です。