CipherMode 列挙型

定義

暗号化に使用するブロック暗号モードを指定します。

public enum class CipherMode
public enum CipherMode
[System.Serializable]
public enum CipherMode
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CipherMode
type CipherMode = 
[<System.Serializable>]
type CipherMode = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CipherMode = 
Public Enum CipherMode
継承
CipherMode
属性

フィールド

名前 説明
CBC 1

暗号ブロック チェーン (CBC) モードでは、フィードバックが導入されます。 各プレーン テキスト ブロックが暗号化される前に、ビットごとの排他的 OR 操作によって前のブロックの暗号テキストと結合されます。 これにより、プレーン テキストに多数の同じブロックが含まれている場合でも、それぞれが異なる暗号テキスト ブロックに暗号化されます。 初期化ベクトルは、ブロックが暗号化される前にビットごとの排他的 OR 演算によって、最初のプレーン テキスト ブロックと組み合わされます。 暗号テキスト ブロックの 1 ビットが壊れている場合、対応するプレーン テキスト ブロックもマングルされます。 さらに、後続のブロック内のビットは、元のマングルビットと同じ位置で、マングルされます。

ECB 2

電子コードブック (ECB) モードでは、各ブロックが個別に暗号化されます。 同じメッセージ内にあるプレーン テキストのブロック、または同じキーで暗号化された別のメッセージ内にあるプレーン テキストのブロックは、同じ暗号テキスト ブロックに変換されます。 重要: このモードは、複数のセキュリティ悪用の扉を開くので、推奨されません。 暗号化するプレーン テキストに大量の繰り返しが含まれている場合は、暗号テキストを一度に 1 ブロックずつ分割できます。 ブロック分析を使用して暗号化キーを決定することもできます。 また、アクティブな敵対者は、検出せずに個々のブロックを置き換えて交換できます。これにより、ブロックを保存し、検出せずに他のポイントでストリームに挿入することができます。

OFB 3

出力フィードバック (OFB) モードでは、ブロック全体を一度に処理するのではなく、プレーン テキストを少しずつ暗号テキストに処理します。 このモードは CFBに似ています。2 つのモードの唯一の違いは、シフト レジスタの塗りつぶし方法です。 暗号テキストのビットが壊れている場合、対応するプレーンテキストのビットが壊れていきます。 ただし、暗号テキストに余分なビットまたは不足しているビットがある場合、プレーンテキストはその時点から壊れてしまいます。

CFB 4

暗号フィードバック (CFB) モードでは、ブロック全体を一度に処理するのではなく、プレーン テキストを少しずつ暗号化テキストに処理します。 このモードでは、長さが 1 ブロックのシフト レジスタが使用され、セクションに分割されます。 たとえば、ブロック サイズが 8 バイトで、一度に 1 バイトが処理される場合、シフト レジスタは 8 つのセクションに分割されます。 暗号テキストのビットが壊れている場合、1 つのプレーン テキスト ビットが壊れ、シフト レジスタが破損します。 これにより、無効なビットがシフト レジスタからシフトされるまで、次のいくつかのプレーン テキストインクリメントがマングルされます。 既定のフィードバック サイズはアルゴリズムによって異なりますが、通常は 8 ビットまたはブロック サイズのビット数です。 FeedbackSize プロパティを使用して、フィードバック ビット数を変更できます。 CFB をサポートするアルゴリズムでは、このプロパティを使用してフィードバックを設定します。

CTS 5

暗号テキスト盗用 (CTS) モードでは、任意の長さのプレーン テキストが処理され、その長さがプレーン テキストの長さと一致する暗号テキストが生成されます。 このモードは、プレーン テキストの最後の 2 ブロックを含むすべての CBC モードと同様に動作します。

注釈

ブロック暗号アルゴリズムは、一度に 1 バイトではなく、ブロック単位でデータを暗号化します。 最も一般的なブロック サイズは 8 バイトです。 各ブロックは大量に処理されるため、ブロック暗号はストリーム暗号よりも高いレベルのセキュリティを提供します。 ただし、ブロック暗号アルゴリズムは、ストリーム暗号よりも実行速度が遅くなる傾向があります。

ブロック暗号では、ブロックごとに同じ暗号化アルゴリズムが使用されます。 このため、プレーン テキストのブロックは、同じキーとアルゴリズムで暗号化されると、常に同じ暗号テキストを返します。 この動作を使用して暗号を解読できるため、以前のブロック暗号化からのフィードバックに基づいて暗号化プロセスを変更する暗号モードが導入されます。 結果として得られる暗号化は、単純なブロック暗号化よりも高いレベルのセキュリティを提供します。

適用対象

こちらもご覧ください