RSA 暗号化 & 復号
無料オンライン RSA 暗号化 & 復号 ツール。100% ローカル処理 — データは端末の外に出ません。
結果がここに表示されます...
入力 → 暗号化
Usage Guide
RSAについて
RSA(Rivest–Shamir–Adleman)は1977年に発明された、最も広く使われている非対称暗号アルゴリズムです。数学的に関連付けられた鍵ペアを使用します:暗号化には公開鍵、復号化には秘密鍵。セキュリティは大きな整数の因数分解の計算困難性に基づいています。RSAは現代のセキュア通信の基盤であり、SSL/TLS証明書、HTTPS、SSH、PGP、デジタル署名はすべてRSAまたはその派生に依存しています。
使用手順
このツールはRSA鍵ペアの生成、暗号化、復号化をサポートしています:
パディング方式
RSAのセキュリティ確保にはパディング方式が必要です。このツールは2つのオプションをサポートしています:
鍵サイズガイド
適切なRSA鍵サイズの選択はセキュリティとパフォーマンスのバランスです:
FAQ
Q: RSAが大きなファイルを直接暗号化できないのはなぜですか?
A: RSAはその鍵サイズからパディングオーバーヘッドを差し引いたサイズより小さいデータしか暗号化できません。OAEP-SHA256を使用した2048ビット鍵では、最大平文はわずか190バイトです。大きなデータにはハイブリッド暗号化を使用してください:ランダムな AES 鍵を生成し、AESでデータを暗号化し、AES鍵のみをRSAで暗号化します。
Q: RSA暗号化とRSAデジタル署名の違いは何ですか?
A: RSA暗号化:受信者の公開鍵で暗号化;秘密鍵のみが復号化できる。機密性を保証します。 RSAデジタル署名:自分の秘密鍵で署名;公開鍵を持つ誰でも検証できる。真正性と否認防止を保証します。
Q: 鍵はどのような形式でエクスポートされますか?
A: このツールは標準のPEM形式で鍵をエクスポートします:
秘密鍵:PKCS#8 (-----BEGIN PRIVATE KEY-----)
公開鍵:SPKI (-----BEGIN PUBLIC KEY-----)
これらの形式はOpenSSL、Node.js crypto、Python cryptography、Java、およびほとんどの他のプラットフォームで直接インポートできます。
Q: 公開鍵を公開的に共有しても安全ですか?
A: はい — それが非対称暗号の要点です。公開鍵は自由に配布されるよう設計されています。ただし:1) 秘密鍵は絶対に共有しないでください。2) 中間者攻撃による置き換えを防ぐため、信頼できるチャネルで公開鍵の真正性を確認してください。3) 定期的に鍵ペアをローテーションしてください。
Q: RSAとAESはどのような場合に使い分けるべきですか?
A: RSAは鍵交換と小さな秘密情報向け:低速で平文サイズが限られています。 AES は大量データの暗号化向け:高速で任意サイズを処理できます。両方を組み合わせて使用してください — AES鍵の送信にRSA、データの暗号化にAES。
Use Cases
推奨:AESとのハイブリッド暗号化
ランダムな AES-256-GCM 鍵を生成し、AESでペイロードを暗号化し、AES鍵を受信者のRSA公開鍵で暗号化します。これはTLS、PGP、S/MIMEで使用されているパターンです。
- ✅ AES鍵暗号化にはRSA-OAEP(SHA-256)
- ✅ データ暗号化にはAES-256-GCM
- ✅ RSAは最低2048ビット;長期鍵には4096ビット
- ❌ RSAで大きなデータを直接暗号化しない
推奨:安全な秘密情報の送信
RSAは信頼できないチャネルを通じて小さな秘密情報 — パスワード、トークン、対称鍵 — を送信するのに適しています。OAEPパディングと少なくとも2048ビット鍵を使用してください。
- ✅ OAEP-SHA256パディング(推奨)
- ✅ 2048ビットまたは4096ビットの鍵サイズ
- ✅ 公開鍵の真正性を確認(証明書またはフィンガープリント)
- 💡 2048ビットのOAEP-SHA256では秘密情報を190バイト以下に保つ
推奨:SSL/TLS鍵交換(参考情報)
TLS 1.2は鍵交換にRSAを使用していました。TLS 1.3はForward SecrecyのためにRSA鍵交換をECDHEに置き換えましたが、RSA証明書はサーバー認証に引き続き使用されています。
- ✅ TLS証明書には最低2048ビット
- ✅ ルートCA証明書には4096ビット
- ✅ TLS 1.3を推奨(ECDHEを使用、RSA鍵交換ではない)
- 💡 TLS 1.3のRSAは認証のみに使用、鍵交換には使用されない
推奨:デジタル署名(重要概念)
RSA秘密鍵はデータに署名でき、対応する公開鍵が署名を検証します。新しい実装にはRSA-PSSを使用してください;PKCS1v15署名はレガシーですが、依然として広くサポートされています。
- ✅ RSA-PSS(現代的、署名に推奨)
- ✅ PKCS1v15署名(レガシー、広く互換性あり)
- ✅ まずメッセージをハッシュ化(SHA-256以上)
- 💡 署名は秘密鍵で署名し公開鍵で検証(暗号化の逆)
非推奨:大きなファイルの暗号化
RSAは~190バイト(2048ビット、OAEP-SHA256)より大きなデータを直接暗号化できません。大量データには常に AES を使用し、RSAはAES鍵の保護のみに使用してください。
- ❌ RSAでファイルや大きなペイロードを直接暗号化しない
- ✅ データにはAES-256-GCMを使用
- ✅ AES鍵の暗号化のみにRSA-OAEPを使用
- 💡 このハイブリッドパターンはすべての主要なセキュアプロトコルで使用されている
非推奨:対称スタイルのデータ暗号化
RSAは対称暗号化より著しく遅く(100〜1000倍)、厳格な平文サイズ制限があります。大量暗号化には常に AES を選択してください。
- ❌ 高頻度または大量の暗号化にRSAを使用しない
- ✅ 高速な認証済み大量暗号化にはAES-256-GCM
- ✅ RSAは鍵交換や小さな秘密情報にのみ使用
- 💡 RSA + AESを組み合わせて両方の長所を活用
ベストプラクティス推奨事項
- 新しいRSA暗号化実装には常にOAEP-SHA256パディングを使用してください。PKCS1v15はレガシーであり、Bleichenbacher型攻撃に脆弱です。
- 最低でも2048ビット鍵を使用してください;2030年以降も有効であることを意図した証明書や鍵には4096ビットを推奨します。
- RSAは~190バイト(2048ビット、OAEP-SHA256)より大きなデータを暗号化できません。大きなデータにはハイブリッド暗号化を使用してください:データにはAES、AES鍵にはRSA。
- 秘密鍵を機密に保ち、安全に保存してください。秘密鍵が漏洩すると、対応する公開鍵で暗号化されたすべてのメッセージが露出します。
- デジタル署名にはPKCS1v15署名よりRSA-PSSを推奨します。