このクラスは SymmetricAlgorithm クラスから派生しており、CBC (Cipher Block Chaining) と呼ばれるチェーン モードが使用されます。このモードでデータの暗号変換を実行するには、キー (Key) と初期化ベクタ (IV) が必要になります。SymmetricAlgorithm クラスのいずれかを使用して暗号化されたデータを復号化するには、Key プロパティと IV プロパティを、暗号化に使用された値と同じ値に設定する必要があります。対称アルゴリズムを使用する場合には、送信者と受信者以外に共有キーを知られないようにする必要があります。
RijndaelManaged、DESCryptoServiceProvider、RC2CryptoServiceProvider、および TripleDESCryptoServiceProvider は、対称アルゴリズムの実装です。
セキュリティの観点から考えると、派生クラスを使用する場合はオブジェクトの使用後にガベージ コレクションを実行するだけでは不十分です。オブジェクトに対して明示的に Clear メソッドを呼び出し、オブジェクト内の重要情報をすべて 0 にした後で解放する必要があります。ガベージ コレクションでは、収集されたオブジェクトのコンテンツをすべて 0 にするのではなく、単純にメモリを再割り当て可能としてマークするだけです。したがって、ガベージ コレクションの対象となったオブジェクトのデータが、未割り当てメモリのメモリ ヒープ内に残る場合があります。暗号化オブジェクトの場合、このデータにキー データや平文ブロックなどの機密情報が含まれている可能性があります。
.NET Framework では、重要情報を格納するすべての暗号化クラスに Clear メソッドが実装されています。Clear メソッドを呼び出すと、オブジェクト内の重要情報がすべて 0 で上書きされた後、オブジェクトが解放されます。これにより、オブジェクトに安全にガベージ コレクションを実行できます。オブジェクトが 0 で上書きされて解放されたら、disposing パラメータを True に設定して Dispose メソッドを呼び出し、オブジェクトに関連付けられているマネージ リソースとアンマネージ リソースをすべて破棄する必要があります。
継承元へのメモ :SymmetricAlgorithm クラスから継承する場合、CreateDecryptor、CreateEncryptor、GenerateIV、GenerateKey の各メンバをオーバーライドする必要があります。