RC暗号ファミリー 暗号化/復号化ツール
Ron Rivest設計のRC2/RC4/RC5/RC6対称暗号
⚠️ セキュリティ通知
RC4には既知の脆弱性があり、TLS/SSLから非推奨となっています。最高のセキュリティにはAES-256をお勧めします。すべてのデータはブラウザ内でローカル処理されます。
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次評価の再現