RC2 クラス
アセンブリ: mscorlib (mscorlib.dll 内)


System.Security.Cryptography.SymmetricAlgorithm
System.Security.Cryptography.RC2
System.Security.Cryptography.RC2CryptoServiceProvider


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


RC2 コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)


抽象クラスのインスタンスは作成できません。アプリケーション コードは、派生クラスの新しいインスタンスを作成します。
このアルゴリズムは 40 ~ 1024 ビットのキー長を 8 ビット単位でサポートしますが、RC2CryptoServiceProvider 実装は 40 ~ 128 ビットのキー長のみを 8 ビット単位でサポートします。
このメソッドは、SymmetricAlgorithm のプロテクト フィールドを次の表に示す既定値で初期化します。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


RC2 フィールド

名前 | 説明 | |
---|---|---|
![]() | BlockSizeValue | 暗号操作のブロック サイズをビット単位で表します。 ( SymmetricAlgorithm から継承されます。) |
![]() | EffectiveKeySizeValue | RC2 アルゴリズムで使用する共有キーの有効なサイズをビット単位で表します。 |
![]() | FeedbackSizeValue | 暗号操作のフィードバック サイズをビット単位で表します。 ( SymmetricAlgorithm から継承されます。) |
![]() | IVValue | 対称アルゴリズムで使用する初期化ベクタ (IV) を表します。 ( SymmetricAlgorithm から継承されます。) |
![]() | KeySizeValue | 対称アルゴリズムで使用する共有キーのサイズをビット単位で表します。 ( SymmetricAlgorithm から継承されます。) |
![]() | KeyValue | 対称アルゴリズムの共有キーを表します。 ( SymmetricAlgorithm から継承されます。) |
![]() | LegalBlockSizesValue | 対称アルゴリズムでサポートされているブロック サイズを指定します。 ( SymmetricAlgorithm から継承されます。) |
![]() | LegalKeySizesValue | 対称アルゴリズムでサポートされているキー サイズを指定します。 ( SymmetricAlgorithm から継承されます。) |
![]() | ModeValue | 対称アルゴリズムで使用する暗号モードを表します。 ( SymmetricAlgorithm から継承されます。) |
![]() | PaddingValue | 対称アルゴリズムで使用する埋め込みモードを表します。 ( SymmetricAlgorithm から継承されます。) |

RC2 プロパティ

名前 | 説明 | |
---|---|---|
![]() | BlockSize | 暗号操作のブロック サイズをビット単位で取得または設定します。 ( SymmetricAlgorithm から継承されます。) |
![]() | FeedbackSize | 暗号操作のフィードバック サイズをビット単位で取得または設定します。 ( SymmetricAlgorithm から継承されます。) |
![]() | IV | 対称アルゴリズムの初期化ベクタ (IV) を取得または設定します。 ( SymmetricAlgorithm から継承されます。) |
![]() | Key | 対称アルゴリズムの共有キーを取得または設定します。 ( SymmetricAlgorithm から継承されます。) |
![]() | KeySize | オーバーライドされます。 RC2 アルゴリズムで使用する共有キーのサイズをビット単位で取得または設定します。 |
![]() | LegalBlockSizes | 対称アルゴリズムでサポートされているブロック サイズを取得します。 ( SymmetricAlgorithm から継承されます。) |
![]() | LegalKeySizes | 対称アルゴリズムでサポートされているキー サイズを取得します。 ( SymmetricAlgorithm から継承されます。) |
![]() | Mode | 対称アルゴリズムの操作モードを取得または設定します。 ( SymmetricAlgorithm から継承されます。) |
![]() | Padding | 対称アルゴリズムで使用する埋め込みモードを取得または設定します。 ( SymmetricAlgorithm から継承されます。) |

RC2 メソッド

名前 | 説明 | |
---|---|---|
![]() | Clear | SymmetricAlgorithm クラスによって使用されているすべてのリソースを解放します。 ( SymmetricAlgorithm から継承されます。) |
![]() | Create | オーバーロードされます。 暗号オブジェクトのインスタンスを作成し、RC2 アルゴリズムを実行します。 |
![]() | CreateDecryptor | オーバーロードされます。 対称復号化オブジェクトを作成します。 ( SymmetricAlgorithm から継承されます。) |
![]() | CreateEncryptor | オーバーロードされます。 対称暗号化オブジェクトを作成します。 ( SymmetricAlgorithm から継承されます。) |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GenerateIV | 派生クラスでオーバーライドされると、アルゴリズムで使用するランダムな初期化ベクタ (IV) を生成します。 ( SymmetricAlgorithm から継承されます。) |
![]() | GenerateKey | 派生クラスでオーバーライドされると、アルゴリズムで使用するランダム キー (Key) を生成します。 ( SymmetricAlgorithm から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
![]() | ValidKeySize | 指定されたキー サイズが、現在のアルゴリズムに対して有効かどうかを判断します。 ( SymmetricAlgorithm から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Dispose | SymmetricAlgorithm によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。 ( SymmetricAlgorithm から継承されます。) |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

RC2 メンバ
RC2 アルゴリズムのすべての実装の派生元となる基本クラスを表します。


名前 | 説明 | |
---|---|---|
![]() | BlockSizeValue | 暗号操作のブロック サイズをビット単位で表します。(SymmetricAlgorithm から継承されます。) |
![]() | EffectiveKeySizeValue | RC2 アルゴリズムで使用する共有キーの有効なサイズをビット単位で表します。 |
![]() | FeedbackSizeValue | 暗号操作のフィードバック サイズをビット単位で表します。(SymmetricAlgorithm から継承されます。) |
![]() | IVValue | 対称アルゴリズムで使用する初期化ベクタ (IV) を表します。(SymmetricAlgorithm から継承されます。) |
![]() | KeySizeValue | 対称アルゴリズムで使用する共有キーのサイズをビット単位で表します。(SymmetricAlgorithm から継承されます。) |
![]() | KeyValue | 対称アルゴリズムの共有キーを表します。(SymmetricAlgorithm から継承されます。) |
![]() | LegalBlockSizesValue | 対称アルゴリズムでサポートされているブロック サイズを指定します。(SymmetricAlgorithm から継承されます。) |
![]() | LegalKeySizesValue | 対称アルゴリズムでサポートされているキー サイズを指定します。(SymmetricAlgorithm から継承されます。) |
![]() | ModeValue | 対称アルゴリズムで使用する暗号モードを表します。(SymmetricAlgorithm から継承されます。) |
![]() | PaddingValue | 対称アルゴリズムで使用する埋め込みモードを表します。(SymmetricAlgorithm から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | BlockSize | 暗号操作のブロック サイズをビット単位で取得または設定します。(SymmetricAlgorithm から継承されます。) |
![]() | FeedbackSize | 暗号操作のフィードバック サイズをビット単位で取得または設定します。(SymmetricAlgorithm から継承されます。) |
![]() | IV | 対称アルゴリズムの初期化ベクタ (IV) を取得または設定します。(SymmetricAlgorithm から継承されます。) |
![]() | Key | 対称アルゴリズムの共有キーを取得または設定します。(SymmetricAlgorithm から継承されます。) |
![]() | KeySize | オーバーライドされます。 RC2 アルゴリズムで使用する共有キーのサイズをビット単位で取得または設定します。 |
![]() | LegalBlockSizes | 対称アルゴリズムでサポートされているブロック サイズを取得します。(SymmetricAlgorithm から継承されます。) |
![]() | LegalKeySizes | 対称アルゴリズムでサポートされているキー サイズを取得します。(SymmetricAlgorithm から継承されます。) |
![]() | Mode | 対称アルゴリズムの操作モードを取得または設定します。(SymmetricAlgorithm から継承されます。) |
![]() | Padding | 対称アルゴリズムで使用する埋め込みモードを取得または設定します。(SymmetricAlgorithm から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Clear | SymmetricAlgorithm クラスによって使用されているすべてのリソースを解放します。 (SymmetricAlgorithm から継承されます。) |
![]() | Create | オーバーロードされます。 暗号オブジェクトのインスタンスを作成し、RC2 アルゴリズムを実行します。 |
![]() | CreateDecryptor | オーバーロードされます。 対称復号化オブジェクトを作成します。 (SymmetricAlgorithm から継承されます。) |
![]() | CreateEncryptor | オーバーロードされます。 対称暗号化オブジェクトを作成します。 (SymmetricAlgorithm から継承されます。) |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GenerateIV | 派生クラスでオーバーライドされると、アルゴリズムで使用するランダムな初期化ベクタ (IV) を生成します。 (SymmetricAlgorithm から継承されます。) |
![]() | GenerateKey | 派生クラスでオーバーライドされると、アルゴリズムで使用するランダム キー (Key) を生成します。 (SymmetricAlgorithm から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
![]() | ValidKeySize | 指定されたキー サイズが、現在のアルゴリズムに対して有効かどうかを判断します。 (SymmetricAlgorithm から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Dispose | SymmetricAlgorithm によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。 (SymmetricAlgorithm から継承されます。) |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

RC2
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/01/03 17:50 UTC 版)
ナビゲーションに移動 検索に移動
The MIX transformation of RC2; four of these comprise a MIXING round
|
|
一般 | |
---|---|
設計者 | ロナルド・リベスト |
初版発行日 | 1996年に漏洩(1987年に設計) |
暗号詳細 | |
鍵長 | 8–1024 bits(8 bitごと)デフォルトは64 bits |
ブロック長 | 64 bits |
構造 | 変形Feistel構造 |
ラウンド数 | 16 (MIXING), 2 (MASHING) |
最良の暗号解読法 | |
234 個の選択平文を使った関連鍵攻撃 (Kelsey et al., 1997). |
RC2 は1987年にロナルド・リベストが設計したブロック暗号。"RC" は "Ron's Code" または "Rivest Cipher" の略。リベストの設計した他の暗号として RC4、RC5、RC6 がある。
概要
RC2 の開発資金は、Lotus Notesソフトウェアの一部として輸出可能な独自の暗号を探していたロータス社が資金提供した(輸出以前にNSAの評価が必要だった)。NSA はいくつかの修正を示唆し、リベストはそれを取り入れた。さらなる交渉の末、この暗号は1989年に輸出が許可された。RC4と同様 40ビットのキーを持つ RC2 はアメリカ合衆国の暗号輸出規制の中では重宝された。
当初、アルゴリズムの詳細は秘密とされたが(RSAセキュリティが権利を保有)、1996年1月29日、RC2 のソースコードが匿名でネットニュースの sci.crypt にポストされてしまった。似たような機密開示は RC4 で既に発生していた。ポストした者が仕様にアクセスする権限を持っていたのか、リバースエンジニアリングでソースを作成したのかは不明である。
RC2 は 64 ビットブロック暗号で任意長の鍵が可能である。18ラウンドの変形Feistel構造で、うち 16 ラウンドが1つのタイプ(MIXING)、2ラウンドがもう1つのタイプ(MASHING)である。MIXING ラウンドは 4 種類のMIX変換から構成される。
RC2 は 234 個の選択平文を使った関連鍵攻撃に対して無防備である(Kelsey 他、1997年)。
参考文献
- Steven Levy, Crypto: How the Code Rebels Beat the Government — Saving Privacy in the Digital Age, ISBN 0-14-024432-8, 2001.
- Lars R. Knudsen, Vincent Rijmen, Ronald L. Rivest, Matthew J. B. Robshaw: On the Design and Security of RC2. Fast Software Encryption 1998: 206–221
- John Kelsey, Bruce Schneier, David Wagner: Related-key cryptanalysis of 3-WAY, Biham-DES, CAST, DES-X, NewDES, RC2, and TEA. ICICS 1997: 233–246
外部リンク
- RFC 2268: A Description of the RC2(r) Encryption Algorithm
- RSA FAQ: What is RC2?
- sci.crypt posting revealing the RC2 algorithm
|
- RC-2のページへのリンク