RSA暗号化:鍵ペア生成とオンライン暗号化 | 無料ツール
667 回使用公開鍵
秘密鍵
RSA暗号化のヒント
RSA-2048鍵生成
Web Crypto APIで安全なRSA-2048鍵ペアを生成。
非対称暗号化
公開鍵で暗号化、秘密鍵で復号。
ブラウザ内暗号化
Web Crypto APIですべてローカル処理。
サイズ制限
RSA-2048は約190バイトまで暗号化可能。
よくある質問
このツールで生成したRSA鍵をSSHログインに使えますか?
使えますが、秘密鍵の形式変換が必要です。このツールはPEM形式の鍵を出力しますが、SSHは独自のOpenSSH形式を要求します。秘密鍵をテキストファイルに保存し、'ssh-keygen -p -m PEM -f keyfile'を実行して変換してください。公開鍵も'ssh-keygen -i -f pubkey.pub'で変換が必要です。変換なしではSSHは鍵を受け付けません。まずテストサーバーで動作確認してから本番環境で使いましょう。
ブラウザでRSA鍵を生成しても本当にランダムですか?
はい、ただしブラウザの暗号APIが正しく動作している場合に限ります。このツールはWeb Crypto APIを使用しており、マウスの動きやキー入力のタイミングなど、OSからエントロピーを取得します。実際のリスクは乱数生成ではなく、環境にあります。キーロガーやマルウェアに感染したマシンでは、鍵自体も危険にさらされます。安全策として、ネットワークから切断したデバイスで鍵を生成し、公開鍵だけをUSB経由で転送する方法をお勧めします。
同じRSA鍵ペアを複数の暗号化セッションで再利用できますか?
技術的には可能で、多くの開発者が実際にそうしています。OAEPのランダムパディングによりセッションごとに異なる暗号文が生成されるため、パターン漏洩は起こりません。しかし、もし攻撃者が秘密鍵を入手すると、過去の全セッションが危険にさらされます。機密データでは90日ごとに鍵を交換すべきです。このツールはそれを強制しません。実用的な習慣として、API認証用に毎月新しい鍵ペアを生成し、古いものは保存しておきましょう。
同じメッセージを2回暗号化すると結果が異なるのはなぜですか?
OAEPパディングがランダムなバイトを追加するからです。毎回異なる暗号文が生成されるため、攻撃者がパターンを検出できません。古いPKCS#1v1.5スキームにはこの脆弱性がありました。実際に試してみてください:「こんにちは」を暗号化し、もう一度同じ文字列を暗号化する。まったく違う出力が得られますが、どちらも正しく復号できます。ただし、暗号化された値を検索したり比較したりすることはできません。
公開鍵に比べて秘密鍵がすごく長いのはなぜ?
バグではなく、仕組み上そうなっています。公開鍵には法と指数(n と e)だけが入っていて、PEM形式で約270文字です。秘密鍵には2つの素数、法、秘密指数、復号を高速化するための事前計算値が含まれます。RSA-2048では合計で約1,700文字になります。もし秘密鍵が異常に短かったら、本物のRSA鍵ではない可能性が高いです。簡単な確認方法:両方の鍵をテキストエディタに貼り付けて文字数を比べてみてください。秘密鍵はおよそ6倍の長さのはずです。
ファイルを暗号化できますか、それともテキストだけですか?
RSA-2048では、暗号化1回につき約190バイトの平文のみ対応しています。およそ190文字です。それ以上の内容なら、ハイブリッド方式を使いましょう。ファイルをAESなどの共通鍵暗号で暗号化し、そのAES鍵をこのツールのRSA公開鍵で暗号化します。メッセージ欄にPDFを直接貼り付けることはできません。実用的な回避策として、小さなファイルはBase64エンコードできますが、すでに厳しい上限がさらに狭まります。
パスワードを保存するためにRSAで暗号化しても安全ですか?
正直、おすすめしません。RSAは非対称暗号なので、アプリが侵害された場合、サーバー上の秘密鍵が単一障害点になります。パスワード保存には、bcryptやArgon2のような不可逆ハッシュを使うべきで、可逆的な暗号化は不適切です。このツールでパスワードを転送用に暗号化するのは構いませんが、保管庫代わりには使わないでください。実践的な代替案:RSAで対称鍵をラップし、パスワード自体は別途低速なKDFでハッシュ化します。
ブラウザのキャッシュをクリアすると、生成したRSAキーは消去されますか?
はい、タブを閉じたりローカルストレージをクリアしたりすると、キーは即座に消去されます。このツールはサーバーにデータを一切保存しないため、保存作業はすべてご自身で行う必要があります。生成後すぐに秘密鍵をコピーし、.pemファイルとして保存してください。うっかりブラウザを閉じてしまった場合は、最初からキーペアを再生成する必要があります。
秘密鍵をチームメンバーと共有しても問題ありませんか?
秘密鍵を共有すると非対称暗号の意味が完全に失われます。その鍵を持つ人は誰でもあなたのメッセージを復号し、あなたになりすますことができます。秘密鍵は手元に厳重に保管し、同僚には公開鍵だけを渡してください。複数のメンバーから機密データを受け取る場合は、PEM形式の公開鍵ファイルを共有しましょう。メールで秘密鍵を送ることは絶対に避けてください。
暗号化後に秘密鍵を紛失した場合どうなりますか?
対応する公開鍵で暗号化されたすべてのデータへのアクセスが永久に失われます。数学的に、特定の素因数なしでの復元は絶対に不可能です。生成されたPEMファイルは、直ちに外部ドライブへバックアップしてください。この手順を忘れると、開発中のテストデータ復元ができなくなります。
RSA暗号化の使い方
- 鍵ペアを生成
- テキストを入力(最大約190バイト)
- 公開鍵で暗号化
- 秘密鍵で復号