piapia123
ja

RC4 の暗号化と復号

エンコード

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

RC4(ARCFOUR とも呼ばれます)でテキストを暗号化・復号します。わずか十数行で非常に高速なため、数多くの古いプロトコルに組み込まれました:WEP、WPA の TKIP、初期の SSL 暗号スイート、Microsoft の RDP、そして多数の組み込み機器 —— ここに来るのはほとんどが古いデータを読むためか、旧システムの暗号文を再現するためでしょう。⚠️ RC4 は現在完全に安全ではありません:出力の先頭数バイトは明らかにランダムから偏っており(2バイト目が 0 になる確率は 1/256 ではなく約 1/128)、先頭部分の組み合わせだけで平文を知らずに鍵の一部を復元できます —— WEP が破られたのはまさにこのためです。新規には AES-GCM か ChaCha20-Poly1305 を使ってください。旧システムと接続する必要がある場合でも、少なくとも出力の先頭 256 バイトは捨ててください。本ツールが代わりに捨てないのは、それでは照合したい結果と一致しなくなるからです。

機能

  • 両方向が同じ PRGA を共有 —— RC4 の暗号化と復号はもともと同じ演算です
  • 鍵は任意の長さ(1〜256 バイト)。テキストまたは16進数で指定(コロン・空白・0x 接頭辞を許容)
  • 暗号文は Base64 または16進数で出力。入力時はどちらも受け付けます
  • 日本語や emoji は UTF-8 バイトとして処理します
  • 結果は決定的:同じ入力と鍵からは必ず同じ出力になり、乱数要素はありません
  • 鍵を間違えても「壊れている」と誤解させず、原因を説明します

使い方

  1. 鍵を入力します(暗号化と復号で完全に一致させる必要があります)
  2. 方向を選びます:暗号化または復号
  3. 入力欄に内容を貼り付けます
  4. 「コピー」で結果を取り出せます

よくある質問

RC4 はまだ使えますか?
新規には使わないでください。 問題は3つあります:先頭バイトの統計的な偏り、鍵と IV の相関を利用できること(FMS 攻撃。WEP はこれで破られました)、そして完全性の検証がまったくないこと —— 攻撃者が暗号文の1ビットを反転させると、平文の対応するビットが反転し、受信側は気づきません。今日の位置づけは MD5 と同じで、古いデータの読解と旧システムの結果再現に限られます。ストリーム暗号が必要なら ChaCha20-Poly1305、ブロック暗号なら AES-GCM を使ってください。
暗号化と復号が同じ操作なのはなぜですか?
RC4 がストリーム暗号だからです:鍵から平文と同じ長さの鍵ストリームを生成し、1バイトずつ XOR します。XOR には「同じ値で2回行うと打ち消し合う」性質があるため、暗号文を同じ鍵ストリームでもう一度 XOR すると平文に戻ります —— 数学的には暗号化と復号は同一の関数です。そのため本ツールの実装は1つで済みます。方向は「入力をテキストとして読むか暗号文として読むか」と出力形式にしか影響しません。
鍵の長さに決まりはありますか?
1〜256 バイトの任意です(256 を超えても強度は上がりません。鍵スケジュールは `鍵[i % 長さ]` しか読まないためです)。実用上は 16 バイト(128 ビット)以上を使ってください。RC4 の鍵は AES や DES と違い固定長ではありません —— あちらでは長さが違えば即エラーになります。
復号結果が文字化けしました。ツールが壊れていますか?
ほとんどは鍵の誤りです。RC4 には検証情報がないため、鍵が違ってもエラーにはならず、静かにランダムなバイト列を返します —— そして本ツールがそれを UTF-8 として解釈する段階で失敗します。暗号化時と鍵が完全に一致しているか(大文字小文字や空白も含めて)、指定形式(テキストか16進数か)も一致しているか確認してください。暗号文がそもそもバイナリである可能性もあります。

関連ツール