RSA 暗号化 & 復号

無料オンライン RSA 暗号化 & 復号 ツール。100% ローカル処理 — データは端末の外に出ません。

National Standards
Other
出力

結果がここに表示されます...

入力 暗号化

Usage Guide

RSAについて

RSA(Rivest–Shamir–Adleman)は1977年に発明された、最も広く使われている非対称暗号アルゴリズムです。数学的に関連付けられた鍵ペアを使用します:暗号化には公開鍵、復号化には秘密鍵。セキュリティは大きな整数の因数分解の計算困難性に基づいています。RSAは現代のセキュア通信の基盤であり、SSL/TLS証明書、HTTPS、SSH、PGP、デジタル署名はすべてRSAまたはその派生に依存しています。

非対称暗号化:対称アルゴリズム(例: AES)とは異なり、RSAは暗号化と復号化に異なる鍵を使用します。公開鍵は自由に共有できます。秘密鍵の保有者のみが、その公開鍵で暗号化されたメッセージを復号化できます。

使用手順

このツールはRSA鍵ペアの生成、暗号化、復号化をサポートしています:

1. 鍵サイズを選択鍵サイズを選択します(2048推奨;高セキュリティには4096)。鍵が大きいほど安全ですが、処理が遅くなります。
2. 鍵ペアを生成「鍵ペアを生成」をクリックして公開鍵/秘密鍵ペアを作成します。両方の鍵はPEM形式でエクスポートされます。
3. 鍵を保存両方の鍵をコピーして安全に保存してください。秘密鍵は機密に保つ必要があります。紛失すると永久に復号化できなくなります。
4. 暗号化公開鍵を貼り付け、平文メッセージを入力し、「暗号化」をクリックします。出力はBase64エンコードされた暗号文です。
5. 復号化秘密鍵を貼り付け、Base64の暗号文を入力フィールドに貼り付け、「復号化」をクリックして平文を復元します。
プライバシー保護:すべての鍵生成と暗号化処理はブラウザ内で完全に実行されます。鍵や平文がサーバーに送信されることは一切ありません。

パディング方式

RSAのセキュリティ確保にはパディング方式が必要です。このツールは2つのオプションをサポートしています:

OAEP(推奨)SHA-256を使用したOptimal Asymmetric Encryption Padding。現代の標準 — 確率的、意味論的に安全で、選択暗号文攻撃に耐性があります。すべての新しいプロジェクトにはOAEPを使用してください。
PKCS1v15(レガシー)PKCS #1 v1.5パディング。古いシステムで広くサポートされていますが、BleichenbacherによるAdaptive Chosen-Ciphertext攻撃に脆弱です。レガシーシステムとの互換性目的のみに使用してください。
セキュリティ警告:新しい実装には常にOAEPパディングを優先してください。PKCS1v15はレガシーと見なされており、Bleichenbacher攻撃に脆弱です。

鍵サイズガイド

適切なRSA鍵サイズの選択はセキュリティとパフォーマンスのバランスです:

1024ビット(弱い)もはや安全とは見なされていません。現代のコンピューティングリソースで解読可能です。新しいシステムには使用しないでください。
2048ビット(最低限)NISTと主要CAが推奨する現在の業界最低基準。~2030年まで大部分のアプリケーションに十分です。
3072ビット(強い)2030年以降もセキュリティが必要なシステムに推奨。AES-128のセキュリティレベルと一致します。
4096ビット(高セキュリティ)AES-192のセキュリティレベルと一致。長期鍵(ルートCA証明書など)に適していますが、処理が顕著に遅くなります。
実践的な推奨:日常使用と短期鍵には2048ビットを使用してください。ルート認証局や多年間有効であることを意図した鍵には4096ビットを使用してください。

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。

Q: Bleichenbacher攻撃とは何ですか、なぜ重要なのですか?

A: Bleichenbacher攻撃(1998年)はPKCS1v15パディングに対するAdaptive Chosen-Ciphertext攻撃です。攻撃者は秘密鍵なしに最終的に平文を復元できます。多くの実際のTLS実装がこの攻撃の亜種に脆弱でした(ROBOT攻撃、2017年)。OAEPパディングはこのクラスの攻撃に対して証明可能な安全性があります。

Use Cases

推奨:AESとのハイブリッド暗号化

ランダムな AES-256-GCM 鍵を生成し、AESでペイロードを暗号化し、AES鍵を受信者のRSA公開鍵で暗号化します。これはTLS、PGP、S/MIMEで使用されているパターンです。

Recommended Configuration:
  • ✅ AES鍵暗号化にはRSA-OAEP(SHA-256)
  • ✅ データ暗号化にはAES-256-GCM
  • ✅ RSAは最低2048ビット;長期鍵には4096ビット
  • ❌ RSAで大きなデータを直接暗号化しない
推奨:安全な秘密情報の送信

RSAは信頼できないチャネルを通じて小さな秘密情報 — パスワード、トークン、対称鍵 — を送信するのに適しています。OAEPパディングと少なくとも2048ビット鍵を使用してください。

Recommended Configuration:
  • ✅ OAEP-SHA256パディング(推奨)
  • ✅ 2048ビットまたは4096ビットの鍵サイズ
  • ✅ 公開鍵の真正性を確認(証明書またはフィンガープリント)
  • 💡 2048ビットのOAEP-SHA256では秘密情報を190バイト以下に保つ
推奨:SSL/TLS鍵交換(参考情報)

TLS 1.2は鍵交換にRSAを使用していました。TLS 1.3はForward SecrecyのためにRSA鍵交換をECDHEに置き換えましたが、RSA証明書はサーバー認証に引き続き使用されています。

Recommended Configuration:
  • ✅ TLS証明書には最低2048ビット
  • ✅ ルートCA証明書には4096ビット
  • ✅ TLS 1.3を推奨(ECDHEを使用、RSA鍵交換ではない)
  • 💡 TLS 1.3のRSAは認証のみに使用、鍵交換には使用されない
推奨:デジタル署名(重要概念)

RSA秘密鍵はデータに署名でき、対応する公開鍵が署名を検証します。新しい実装にはRSA-PSSを使用してください;PKCS1v15署名はレガシーですが、依然として広くサポートされています。

Recommended Configuration:
  • ✅ RSA-PSS(現代的、署名に推奨)
  • ✅ PKCS1v15署名(レガシー、広く互換性あり)
  • ✅ まずメッセージをハッシュ化(SHA-256以上)
  • 💡 署名は秘密鍵で署名し公開鍵で検証(暗号化の逆)
非推奨:大きなファイルの暗号化

RSAは~190バイト(2048ビット、OAEP-SHA256)より大きなデータを直接暗号化できません。大量データには常に AES を使用し、RSAはAES鍵の保護のみに使用してください。

Recommended Configuration:
  • ❌ RSAでファイルや大きなペイロードを直接暗号化しない
  • ✅ データにはAES-256-GCMを使用
  • ✅ AES鍵の暗号化のみにRSA-OAEPを使用
  • 💡 このハイブリッドパターンはすべての主要なセキュアプロトコルで使用されている
非推奨:対称スタイルのデータ暗号化

RSAは対称暗号化より著しく遅く(100〜1000倍)、厳格な平文サイズ制限があります。大量暗号化には常に AES を選択してください。

Recommended Configuration:
  • ❌ 高頻度または大量の暗号化に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を推奨します。

ディスカッション&フィードバック

0件のコメント
自分