対称アルゴリズムのサンプル
更新 : 2007 年 11 月
このサンプルでは、Rijndael クラスと TripleDESCryptoServiceProvider クラスを使用して、「暗号化の概要」で解説されている対称 (共有キー) 暗号を実装します。
サンプルとそのインストール手順を取得するには
次のいずれかを実行します。
[ヘルプ] メニューの [サンプル] をクリックします。
サンプルの情報を示す Readme が表示されます。
Visual Studio 2008 のサンプルの Web サイトにアクセスします。ここには、サンプルの最新版が掲載されています。
Visual Studio をインストールしたコンピュータで、サンプルを検索します。既定では、サンプルおよび Readme ファイルは drive:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid にインストールされています。Visual Studio の Express Edition については、すべてのサンプルがオンラインで提供されています。
詳細については、「サンプル ファイルの格納場所」を参照してください。
セキュリティに関するメモ : |
---|
このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。 |
このサンプルを実行するには
- F5 キーを押します。
使用例
SampleCrypto クラスは、暗号アルゴリズム、salt と初期化ベクタ (IV)、および 1 つの暗号化ファイルを定義する暗号化ルーチンと復号化ルーチンをカプセル化します。コンストラクタはパラメータを 1 つ受け取り、それにより暗号方式の種類 (Rijndael または TripleDES) を決定します。クラス内でこれに対応するフィールドは crpSym で、SymmetricAlgorithm 抽象型です。これは、Rijndael クラスまたは TripleDESCryptoServiceProvider クラスのインスタンスに設定されます。CreateSaltIVFile メソッドは、salt 値と IV 値を .dat ファイルに保存します。Decrypt メソッドと Encrypt メソッドは、SourceFileName プロパティで指定されたソース ファイルを処理します。
フォームの読み込み時に、SampleCrypto クラスの 1 つのインスタンスが作成されます。フォーム上のコントロールは、SampleCrypto クラスのメソッドとプロパティをデモンストレーションします。[Encrypt with Password] コントロールがオンになっている場合、キーは自動的に生成および設定されるのではなく、"salt 処理" されたパスワードから取り出されます。さらに、salt および初期化ベクタ (IV) は、暗号化なしで .dat ファイルに保持されます。この方法を使うと、他人に文書を安全に送ることができます。つまり、暗号化されたドキュメントは安全性の低い伝送路で送信されるが、.dat ファイルおよびパスワードは、非対称 (公開キー) 暗号を使用して安全に転送できます。非対称暗号は、最も安全な形式の暗号化ですが、処理に要する時間ははるかに長くなります。このため、共有キー、salt/IV ファイル、パスワードなどの小さなアイテムに使用するのが普通です。