CipherMode 列挙体
暗号化に使用するブロック暗号モードを指定します。
<Serializable>
Public Enum CipherMode
[C#]
[Serializable]
public enum CipherMode
[C++]
[Serializable]
__value public enum CipherMode
[JScript]
public
Serializable
enum CipherMode
解説
ブロック暗号アルゴリズムは、データを一度に 1 バイトずつではなくブロック単位で暗号化します。最も一般的なブロック サイズは 8 バイトです。各ブロックが厳重に処理されるため、ブロック暗号はストリーム暗号よりも安全です。ただし、ブロック暗号アルゴリズムは、ストリーム暗号よりも実行速度が遅くなる傾向があります。
ブロック暗号では、ブロックごとに同じ暗号アルゴリズムで処理が行われます。このため、ある平文のブロックを同じキーおよびアルゴリズムで暗号化した場合、必ず同じ暗号文が返されることになります。この動作を利用して暗号を解読できてしまうため、前のブロックの暗号化の結果に基づいて次のブロックに対する暗号化処理を変えていく暗号モードが導入されました。その結果生まれた暗号化方式のセキュリティは、単純なブロック暗号方式に比べて大幅に強化されています。
メンバ
メンバ名 | 説明 |
---|---|
CBC | CBC (Cipher Block Chaining) モードは、前のブロックの演算結果を次に引き継ぎます。平文の各ブロックは、暗号化される前に、前のブロックの演算結果である暗号文とビットごとの排他的 OR 演算によって組み合わされます。これにより、平文に同一のブロックが多数含まれている場合でも、それらのブロックはそれぞれ異なった暗号文へと暗号化されます。最初の平文ブロックの場合は、暗号化される前に、ビットごとの排他的 OR 演算によって初期化ベクタと組み合わされます。
暗号文ブロックの 1 つのビットが破損すると、対応する平文ブロックも破損します。さらに、後続ブロックの、元の破損ビットと同位置にあるビットも破損してしまいます。 |
CFB | CFB (Cipher Feedback) モードは、一度に 1 ブロック全体を処理するのではなく、平文を少しずつ処理して暗号文を生成します。このモードでは、長さが 1 ブロックで、複数のセクションに分割されたシフト レジスタを使用します。たとえば、ブロック サイズが 8 バイトで、一度に 1 バイトずつ処理される場合、シフト レジスタは 8 個のセクションに分割されます。
暗号文の 1 つのビットが破損すると、対応する平文のビットが 1 つ破損し、シフト レジスタも破損します。この結果、不良なビットがシフト レジスタからシフト アウトするまで、続けて処理される平文中のいくつかのビットも破損してしまいます。 |
CTS | CTS (Cipher Text Stealing) モードは、任意の長さの平文を処理し、その平文と同じ長さの暗号文を生成します。このモードは、平文の最後の 2 ブロック以外については、 CBC モードと同じように動作します。 |
ECB | ECB (Electronic Codebook) モードは、各ブロックを個別に暗号化します。つまり、同じメッセージ、または同じキーで暗号化された別のメッセージに含まれる同一の平文ブロックは、同一の暗号文ブロックに変換されます。
暗号化する平文に繰り返しが多い場合、生成された暗号文に含まれるあるブロックが一度に破壊される可能性が高まります。また、悪意のある攻撃者が、攻撃に気付かれることなく個別のブロックを置き換えたり、交換したりすることもできてしまいます。 暗号文ブロックの 1 つのビットが破損すると、対応する平文ブロック全体も破損してしまいます。 |
OFB | OFB (Output Feedback) モードは、一度に 1 ブロック全体を処理するのではなく、平文を少しずつ処理して暗号文を生成します。このモードは CFB とほとんど同じですが、シフト レジスタへの入力方法だけが異なります。
暗号文の 1 つのビットが破損すると、平文の対応するビットが破損します。ただし、暗号文に余分なビットや欠落しているビットがあると、平文はその位置から破損してしまいます。 |
必要条件
名前空間: System.Security.Cryptography
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: Mscorlib (Mscorlib.dll 内)