RSA鍵ペアジェネレーター

Web Crypto APIを使用して、RSA公開鍵と秘密鍵のペアをPEM形式で生成します。すべての処理はブラウザ内で完結します。

このツールについて

RSA鍵ペアジェネレーターは、Web Crypto APIを使用して暗号学的に安全なRSA鍵ペアをブラウザ内で直接生成します。204830724096ビットの鍵サイズをサポートし、業界標準のPKCS#8(秘密鍵)およびSPKI(公開鍵)PEM形式でエクスポートします。サーバーは一切関与しません。秘密鍵がマシンの外に出ることはありません。

RSA(Rivest-Shamir-Adleman)は、最も広く展開されている公開鍵暗号方式の一つです。TLS/SSL証明書、SSH認証、コード署名、JSON Web Tokenのデジタル署名に使用されています。ここで提供される2つのアルゴリズムモードは、RSAの主要なユースケースをカバーしています。非対称暗号化にはRSA-OAEP、デジタル署名にはRSASSA-PKCS1-v1_5を使用します。どちらも基盤となるハッシュ関数としてSHA-256を使用します。

生成されたPEM出力は、OpenSSL、Node.js、Python、Go、およびほぼすべての暗号ライブラリで直接使用できます。秘密鍵はPKCS#8 DERエンコーディングをPEMアーマー(64文字改行のbase64とBEGIN/ENDヘッダー)でラップしてエクスポートされます。公開鍵はSubjectPublicKeyInfo(SPKI)エンコーディングを使用します。鍵やデータのハッシュを計算する必要がある場合は、ハッシュジェネレーターをお試しください。

すべての鍵生成とエクスポートはブラウザ内で完全に実行されます。Web Crypto APIはオペレーティングシステムのネイティブ暗号ライブラリに委譲するため、利用可能な場合はハードウェアアクセラレーションされた鍵生成が行われます。2048ビットの鍵は通常500ミリ秒以内に生成されますが、4096ビットの鍵はデバイスによって数秒かかる場合があります。各操作後に生成時間が表示されるため、パフォーマンスを確認できます。

使い方

  1. 鍵サイズを選択:2048ビット(高速、標準)、3072ビット(新しいシステムに推奨)、または4096ビット(最高強度、低速)。
  2. アルゴリズムを選択:暗号化/復号化にはRSA-OAEP、署名/検証にはRSASSA-PKCS1-v1_5。
  3. Generate Key PairをクリックするかCtrl+Enterを押します。鍵の生成中はローディングスピナーが表示されます。
  4. 生成が完了すると、公開鍵秘密鍵の両方がPEM形式で表示されます。
  5. いずれかの鍵の横にあるCopyをクリックしてクリップボードにコピーするか、Ctrl+Shift+Cで公開鍵をコピーします。
  6. Clearをクリックしてページから生成された鍵を削除します。
  7. 必要に応じて設定を変更し、追加の鍵ペアを生成します。

よくある質問

データは安全ですか?

はい。すべての鍵生成はWeb Crypto APIを使用してブラウザ内で完全に実行されます。秘密鍵がサーバーに送信されたり、データベースに保存されたり、アナリティクスに記録されたりすることはありません。ブラウザの開発者ツールのネットワークタブで確認できます。

どの鍵サイズを選ぶべきですか?

ほとんどの用途では、2048ビットの鍵は2030年まで安全と見なされています。NISTは2030年以降のセキュリティには3072ビットの鍵を推奨しています。4096ビットの鍵は最高レベルのセキュリティを提供しますが、生成と使用に時間がかかります。脅威モデルとパフォーマンス要件に基づいて選択してください。

RSA-OAEPとRSASSA-PKCS1-v1_5の違いは何ですか?

RSA-OAEP(Optimal Asymmetric Encryption Padding)は、公開鍵でデータを暗号化し、対応する秘密鍵で復号化するために使用されます。RSASSA-PKCS1-v1_5は、秘密鍵でデジタル署名を作成し、公開鍵で検証するために使用されます。意図するユースケースに合ったアルゴリズムを選択してください。

鍵はどの形式でエクスポートされますか?

秘密鍵はPKCS#8 PEM形式(-----BEGIN PRIVATE KEY-----)でエクスポートされます。公開鍵はSPKI(SubjectPublicKeyInfo)PEM形式(-----BEGIN PUBLIC KEY-----)でエクスポートされます。どちらの形式もOpenSSL、プログラミングライブラリ、セキュリティツールで広くサポートされています。

4096ビットの鍵生成に時間がかかるのはなぜですか?

RSA鍵の生成には2つの大きな素数を見つける必要があります。鍵サイズが大きいほど素数も大きくなり、素数判定テストと計算量が増加します。4096ビットの鍵は2048ビットの鍵の約2倍の大きさの素数を使用し、生成時間は超線形にスケールします。これは一度きりのコストで、生成後の鍵操作はより高速です。

これらの鍵をOpenSSLやSSHで使用できますか?

PKCS#8秘密鍵とSPKI公開鍵のPEM形式はOpenSSLと直接互換性があります。SSHの場合は、'ssh-keygen -i -m PKCS8 -f key.pub'のようなコマンドで公開鍵をOpenSSH形式に変換する必要があります。秘密鍵は直接使用できるか、OpenSSLで変換できます。

関連ツール