CoderTools

RC暗号ファミリー 暗号化/復号化ツール

Ron Rivest設計のRC2/RC4/RC5/RC6対称暗号

⚠️ セキュリティ通知

RC4には既知の脆弱性があり、TLS/SSLから非推奨となっています。最高のセキュリティにはAES-256をお勧めします。すべてのデータはブラウザ内でローカル処理されます。

RC2鍵長: 1-128バイト。ブロックサイズ: 64ビット。推奨有効鍵ビット: 128
フォーマットオプション

RC暗号ファミリーについて

RC(Rivest暗号、「Ron's Code」とも)ファミリーはRon RivestがMITとRSA Securityで数十年かけて設計しました。RC2(1987年、RFC 2268として1998年発行)は64ビットブロック暗号で鍵長は64〜128ビット、輸出規制向けに作成され現在もS/MIME実装に残存。RC4(1987年、1994年にCypherpunksメーリングリストへ流出)はWEP鍵スケジュール脆弱性とFluhrer-Mantin-Shamir(FMS)攻撃で悪名高いストリーム暗号です。

RC5(1994年、Rivest)は完全パラメータ化ブロック暗号を導入:RC5-w/r/bはワード幅(16/32/64ビット)、ラウンド数(0-255)、鍵長(0-255バイト)を選択。RC5-32/12/16が参照実装。RC6(1998年、Rivest/Gupta/Shamir/Yin)は整数乗算と4レジスタでRC5を拡張したAES最終候補。RC6-32/20は20ラウンドと128/192/256ビット鍵を使用します。

アルゴリズム比較

アルゴリズム タイプ 鍵長 ブロックサイズ セキュリティ 状態
RC2 ブロック暗号 1-128バイト 64ビット 弱い 非推奨
RC4 ストリーム暗号 1-256バイト N/A (ストリーム) 弱い 非推奨
RC5 ブロック暗号 0-255バイト 32/64/128ビット 良好 安全
RC6 ブロック暗号 16/24/32バイト 128ビット 優秀 AES決勝

RC2 (Rivest Cipher 2)

RC2は1987年に設計された64ビットブロック暗号です。可変長キー(1-128バイト)を使用し、キー検索空間を制限できる独自の「有効鍵ビット」パラメータがあります。

元々機密として設計されたRC2は、40ビット有効鍵長での輸出互換性を目的としていました。既知の脆弱性により、レガシーシステム互換性のみに使用すべきです。

RC4 (Rivest Cipher 4)

RC4は1987年に設計されたストリーム暗号です。擬似ランダムバイトストリーム(キーストリーム)を生成し、平文とXOR演算します。シンプルさと速度で知られ、SSL/TLS、WEP、WPAプロトコルで広く使用されていました。

発見された脆弱性(特にキーストリームの最初のバイト)により、RC4は現代のセキュリティプロトコルから非推奨となっています。'RC4-Drop'バリアントは、これらの問題を軽減するために初期キーストリームバイトを破棄します。

RC5 (Rivest Cipher 5)

RC5は1994年に発表され、3つの変数を持つパラメータ化設計を導入しました:ワードサイズ(w)、ラウンド数(r)、鍵長(b)。この柔軟性により、RC5は異なるセキュリティ要件に適応できます。

RC5はデータ依存回転を主な非線形操作として使用し、シンプルながら効果的です。一般的な構成にはRC5-32/12/16(32ビットワード、12ラウンド、16バイト鍵)があります。

RC6 (Rivest Cipher 6)

RC6は1998年にAES候補として提出され、5つのファイナリストの1つでした。整数乗算でRC5を拡張してより良い拡散を実現し、2つではなく4つの作業レジスタを使用します。

固定128ビットブロックサイズと128/192/256ビット鍵のサポートにより、RC6は優れたセキュリティを提供します。RijndaelがAESに選ばれましたが、RC6は依然として尊敬される安全なアルゴリズムです。

主な特徴

  • RC2: 可変長鍵のレガシーブロック暗号、互換性目的のみ
  • RC4: 非常に高速なストリーム暗号、リアルタイムアプリケーションに最適
  • RC5: パラメータ化設計により柔軟なセキュリティ/パフォーマンスのトレードオフが可能
  • RC6: 強力なセキュリティ保証を持つ現代的なブロック暗号
  • すべてのアルゴリズムは特許フリーで、あらゆる用途に無料で使用可能

暗号化モード (RC5/RC6)

  • CBC: RC2/RC5/RC6のCBC — RC2の64ビットブロックはSweet32誕生日界リスクあり(同一鍵でCBCデータ≈32GB後に深刻)。RC5-32/RC6-32も64ビットブロック。RC4はネイティブPRGAストリームでブロックチェーンなし。
  • ECB: RC2/RC5/RC6のECB — 各ブロックが独立して全ラウンド処理。同一8バイト入力は常に同一暗号文。単一ブロックのトークン/鍵ラップ以外は不適切。
  • CFB: RC2/RC5/RC6のCFB — ブロック暗号関数が前の暗号文(IVから開始)を暗号化し、上位nビットがn平文ビットとXOR。自己同期ストリームモード。
  • OFB: RC2/RC5/RC6のOFB — ブロック暗号がIV初期化フィードバックを反復暗号化して鍵ストリーム生成。エラー伝播なし。

セキュリティ上の考慮事項

  • RC4は新しいアプリケーションに絶対使用禁止。RFC 7465(2015)がTLSでのRC4を正式禁止。FMS攻撃(2001)は捕捉IVから1分以内にWEP鍵を回収。RC4のサポートは過去データ復号専用。
  • RC4-Drop(PRGAの最初の768〜3072バイト廃棄)は脆弱性を軽減するが排除しない。RC4 NOMORE攻撃(2015年BlackHat)は75時間でRC4 TLSセッションからCookieを回収。いかなる設定でも新規認証データ交換に安全ではない。
  • RC5とRC6に完全ラウンド実用攻撃は発表されていないが、64ビットブロックがCBCモードでSweet32誕生日界リスクを生む。同一鍵で約32GB超のCBCデータ暗号化は暗号文ブロック衝突で平文を漏洩。
  • RC2は輸出規制用(40ビット有効鍵)として設計され弱い。完全128ビット鍵でも現代暗号のブロックサイズ余裕に欠ける。旧S/MIME互換にのみ使用。

使用例

  • WEP/WPAレガシーフォレンジック:802.11フレームからRC4ベースWEP/WPA-TKIPデータ復旧には3バイトIV+ネットワーク鍵からのRC4鍵ストリーム再構築が必要
  • S/MIME互換復号:旧メールクライアントのRC2/40またはRC2/128(RFC 2268)で署名・暗号化されたアーカイブの復号
  • RC5パラメータ化研究:RC5-32/12/16対RC5-64/20/16の比較でARXワード幅スケーリングを理解
  • AES候補評価:RC6-32/20をRijndael/Serpent/Twofish/MARSと同一テストベクタで比較するNIST第1次評価の再現

参考資料

クイックメニュー

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