RSA 暗号化・復号化ツール
オンラインRSA非対称暗号化 - 鍵ペア生成、公開鍵暗号化、秘密鍵復号化
暗号化設定
鍵管理
操作を選択
RSA暗号化とは?
RSA(Rivest-Shamir-Adleman)は、1977年にMITの3人の数学者Ron Rivest、Adi Shamir、Leonard Adlemanによって発明された、世界初の広く使用された非対称暗号化アルゴリズムです。AESなどの対称暗号化アルゴリズムとは異なり、RSAは鍵ペアを使用します:公開鍵で暗号化し、秘密鍵で復号化します。公開鍵は公開できますが、秘密鍵は厳重に管理する必要があり、この仕組みにより鍵配布の問題を根本的に解決します。 RSAの安全性は、大きな整数の素因数分解の数学的困難性に基づいています。2つの大きな素数の掛け算は簡単ですが、その結果を元の2つの素数に分解することは極めて困難です。現在2048ビット以上の鍵長が推奨されており、1024ビット鍵は安全ではないとされています。量子コンピュータの発展はRSAに潜在的な脅威を与えますが、実用的な量子コンピュータはまだ存在しません。 RSAの応用场景には、HTTPS/TLSハンドシェイク時の鍵交換、デジタル署名と認証(SSH、コード署名)、メール暗号化(PGP/GPG)、ブロックチェーンのトランザクション署名などがあります。本ツールはブラウザネイティブのWeb Crypto APIを使用してRSA暗号化を実装し、すべての操作はローカルで完結します。
使い方
基本操作
- 鍵長を選択(2048ビット以上を推奨)
- パディング方式を選択(OAEP推奨、より安全)
- ハッシュアルゴリズムを選択(SHA-256推奨)
- 「鍵ペアを生成」をクリックして公開鍵と秘密鍵を作成
- 暗号化時:公開鍵を公開鍵エリアに貼り付け、平文を入力すると暗号文が自動生成
- 復号化時:秘密鍵を秘密鍵エリアに貼り付け、暗号文を入力すると平文が自動生成
- 結果をコピーまたは「入替」ボタンで入力と出力を入れ替え
パラメータ説明
使用例
基本暗号化
RSA公開鍵でメッセージを暗号化
1. 2048ビット鍵ペアを生成
2. 公開鍵をコピー
3. 平文を入力:Hello, RSA!
4. OAEP + SHA-256を選択
5. 出力:Base64形式の暗号文典型的ワークフロー
標準的な安全通信フロー
送信側:
1. 受信者の公開鍵を取得
2. 公開鍵でメッセージを暗号化
3. 暗号文を送信
受信側:
1. 自分の秘密鍵で復号化
2. 元のメッセージを取得使用のヒント
ベストプラクティス
RSAは小さなデータ(鍵など)向け
大量データはハイブリッド暗号化:
1. RSAでAES鍵を暗号化
2. AESで実データを暗号化
3. RSA暗号文 + AES暗号文を送信よくある質問
Q: RSAとAESの違いは?
A: RSAは非対称暗号化アルゴリズムで、公開鍵で暗号化・秘密鍵で復号化し、鍵交換やデジタル署名に適していますが、速度が遅く小さなデータのみ。AESは対称暗号化アルゴリズムで同じ鍵で暗号化・復号化し、高速で大量データに適しています。実際には両方を組み合わせて使用:RSAでAES鍵を交換し、AESでデータを暗号化します。
Q: 鍵長はいくつにすべき?
A: 2048ビットは現在の最低セキュリティ基準で一般的な用途に適しています。3072ビットは企業向けにより高いセキュリティマージンを提供。4096ビットは最高のセキュリティですが、処理速度が著しく低下します。NISTは2030年以降3072ビット以上を推奨。1024ビット鍵は安全ではないため使用を避けるべきです。
Q: OAEPとPKCS#1 v1.5の違いは?
A: OAEP(最適非対称暗号化パディング)は推奨方式で、セマンティックセキュリティを持ち同じ平文でも毎回異なる暗号文を生成し、選択暗号文攻撃を防ぎます。PKCS#1 v1.5は旧標準で互換性は高いが既知の脆弱性があります。新しいアプリケーションでは常にOAEPを使用すべきです。
Q: RSAで暗号化できるデータ量は?
A: RSA暗号化のデータサイズは鍵長とパディング方式に制限されます。2048ビット鍵+OAEP(SHA-256)の場合、最大平文は約190バイトです。大量データにはハイブリッド暗号化を使用:ランダムなセッション鍵を生成し、RSAでセッション鍵を暗号化、AES等で実データを暗号化します。
Q: 公開鍵と秘密鍵の違いは?
A: 公開鍵はデータの暗号化に使用し、誰とでも共有できます。秘密鍵はデータの復号化に使用し、厳重に管理する必要があります。公開鍵で暗号化されたデータは対応する秘密鍵でのみ復号できます(署名の場合は逆も同様)。公開鍵はSubjectPublicKeyInfo(SPKI)形式、秘密鍵はPKCS#8形式で保存され、どちらもPEMエンコードされます。
Q: このツールの暗号化は安全ですか?
A: 本ツールはブラウザネイティブのWeb Crypto APIを使用してRSA暗号化を実装しており、アルゴリズムの実装は標準準拠です。ただし注意点:1)ブラウザ環境は専用暗号化デバイスより安全性が低い;2)秘密鍵はブラウザ拡張機能やコンソールから漏洩する可能性がある;3)学習・テスト・一般的な用途向けで、本番環境では専用の暗号化サービスを使用すべきです。すべてのデータ処理はブラウザローカルで完結します。
Q: 復号化が失敗する理由は?
A: 復号化失敗の一般的な原因:1)誤った秘密鍵を使用(暗号化時の公開鍵とペアである必要がある);2)暗号文の形式が正しくない(Base64/Hex形式の一致を確認);3)パディング方式やハッシュアルゴリズムが一致しない;4)暗号文が改ざんまたは切り詰められている;5)鍵のPEM形式が不完全(ヘッダー/フッター行を含む必要がある)。暗号化と復号化がまったく同じ設定と鍵ペアを使用していることを確認してください。