CoderTools

RSA暗号化/復号化ツール

公開鍵暗号化、秘密鍵復号化、鍵生成とデジタル署名をサポート

🔒 100% ローカル処理入力されたデータはすべてブラウザ内で処理されます。サーバーに送信されることはありません。

RSA暗号とは?

RSA(Rivest–Shamir–Adleman)は、安全なデータ送信に使用される最初で最も広く使用されている公開鍵暗号システムの1つです。単一の鍵を使用する共通鍵アルゴリズム(AESなど)とは異なり、RSAは暗号化用の「公開鍵」と復号化用の「秘密鍵」のペアを使用します。この非対称性により、秘密鍵を秘密にしたまま、公開鍵を広く共有することができます。

RSAの安全性は、2つの大きな素数の積を因数分解することの計算上の困難さ(素因数分解問題)に基づいています。これは、SSL/TLS証明書、電子メール暗号化(PGP/S/MIME)、および安全なリモート接続(SSH)で使用される標準技術です。

主な機能

  • <strong>鍵生成</strong>:PEM形式で安全な1024、2048、または4096ビットのRSA鍵ペアを生成します。
  • <strong>暗号化</strong>:公開鍵を使用してメッセージを暗号化し、秘密鍵の所有者だけが読み取れるようにします。
  • <strong>復号化</strong>:秘密鍵を使用して、暗号化されたメッセージを復号化します。
  • <strong>デジタル署名</strong>:秘密鍵でメッセージに署名し、真正性を証明します(誰でも公開鍵で検証可能)。
  • <strong>パディングモード</strong>:最新の<strong>OAEP</strong>(セキュリティに最適)と従来の<strong>PKCS#1 v1.5</strong>(互換性用)をサポートしています。
  • 複数のハッシュアルゴリズム:SHA-1、SHA-256、SHA-384、SHA-512
  • パディングモード選択:OAEP(推奨)とPKCS#1 v1.5(レガシー互換)をサポート
  • 複数形式:入力/出力はテキスト、Base64、Hexなどをサポート

鍵長の選択

適切な鍵長を選択することは、セキュリティとパフォーマンスにとって重要です:

  • 1024-bit: 1024ビット:新しいシステムには非推奨、数年以内に解読される可能性あり
  • 2048-bit: 2048ビット:現在推奨される最小長、ほとんどのアプリケーションに適しています
  • 4096-bit: 4096ビット:最高のセキュリティを提供、ただし暗号化/復号化が遅い

パディングモード

このツールは2つのRSAパディングモードをサポートしています。セキュリティ要件と互換性のニーズに基づいて選択してください:

  • OAEP: 最適非対称暗号化パディング、セマンティックセキュリティを提供し、選択暗号文攻撃から保護します。新しいシステムに推奨。
  • PKCS#1 v1.5: 既知のBleichenbacher攻撃脆弱性を持つレガシーパディングモード。レガシーシステムとの互換性のためにのみ推奨。

フォーマットオプション

このツールは異なるシステムとの統合を容易にするため、複数のデータ形式をサポートしています:

  • テキスト: UTF-8テキストの直接入力/出力、通常の文字列に適しています
  • Base64: Base64エンコード形式、ネットワーク転送やバイナリデータ保存に一般的に使用
  • Hex: 16進数形式、バイナリデータの表示とデバッグに便利

使用シナリオ

  • 安全な通信:送信前に機密データを暗号化
  • デジタル署名:メッセージの真正性と完全性を検証
  • 鍵交換:対称鍵を安全に交換
  • 身元認証:送信者の身元を確認
  • ソフトウェアライセンス:ライセンスの生成と検証

セキュリティのベストプラクティス

  • <strong>鍵長</strong>:少なくとも2048ビットの鍵を使用してください。長期的なセキュリティには4096ビットを推奨します。1024ビットはもはや安全とは見なされません。
  • <strong>パディング</strong>:PKCS#1 v1.5よりも、常にOAEP(Optimal Asymmetric Encryption Padding)を優先してください。OAEPは「パディングオラクル攻撃」を防ぎます。
  • <strong>鍵の秘密保持</strong>:秘密鍵は絶対に共有しないでください。秘密鍵があれば、誰でも暗号化されたメッセージを読んだり、あなたになりすましたりできます。
  • <strong>ハイブリッド暗号化</strong>:RSAは計算が遅く、サイズ制限があります。大きなファイルの場合は、RSAでランダムなAESキーを暗号化し、そのAESキーでファイルを暗号化してください。
  • <strong>クライアントサイドのみ</strong>:このツールはWeb Crypto APIを使用して完全にブラウザ内で実行されます。秘密鍵がデバイスから出ることはありません。

技術的な制限

  • <strong>データサイズ</strong>:RSAは、鍵長からパディングのオーバーヘッドを引いたサイズより大きいデータを直接暗号化できません。例:OAEPを使用した2048ビット鍵の場合、最大約214バイトです。
  • <strong>パフォーマンス</strong>:RSAは共通鍵暗号(AES)よりも大幅に低速です。大量データの暗号化には使用しないでください。
  • <strong>フォーマット</strong>:このツールは標準のPEM形式(-----BEGIN...ヘッダー付きのBase64)を使用します。他のツールがこの形式をサポートしていることを確認してください。

技術リファレンス

よくある質問 (FAQ)

このサイトでRSA鍵を生成・使用しても安全ですか?

はい。このツールはJavaScriptを使用してブラウザ内で100%実行されます。鍵やデータがサーバーに送信されることはありません。秘密鍵はデバイス上に厳重に保持されます。

公開鍵と秘密鍵の違いは何ですか?

**公開鍵**はデータの暗号化と署名の検証に使用され、公開できます。**秘密鍵**はデータの復号化と署名の作成に使用され、秘密にする必要があります。

長いテキストを暗号化できないのはなぜですか?

RSAには、鍵長とパディングに基づく最大メッセージ長の制限があります。OAEPパディングを使用した2048ビット鍵の場合、制限は約214バイトです。より長いテキストの場合は、「ハイブリッド暗号化」(AESでデータを暗号化し、そのAESキーをRSAで暗号化する)を使用してください。

OAEPとPKCS1 v1.5のどちらのパディングを使用すべきですか?

可能な限り**OAEP**を使用してください。より優れたセキュリティ特性を提供します。PKCS#1 v1.5はパディングオラクル攻撃に対して脆弱な古い標準ですが、古いシステムとの互換性のために必要になる場合があります。

どの鍵サイズ(2048 vs 4096)を選ぶべきですか?

**2048ビット**が現在の業界標準であり、ほとんどの用途で安全です。**4096ビット**はより安全ですが、生成と使用が大幅に遅くなります。**1024ビット**は安全ではないため、使用しないでください。

PEM形式とは何ですか?

PEM(Privacy Enhanced Mail)は、暗号鍵を保存するための標準形式です。基本的には、`-----BEGIN PUBLIC KEY-----`のようなヘッダーでラップされたBase64エンコードされたASN.1データです。

クイックメニュー

最近のツールはありません