公開キー暗号方式の技術サンプル
更新 : 2007 年 11 月
このサンプルでは、公開キー暗号化方式を使用してメッセージを交換する方法の例を示します。このサンプルには Microsoft Windows 2000 高度暗号化パックが必要です。高度暗号化パックに関する詳細およびダウンロードについては、https://www.microsoft.com/japan/windows2000/downloads/recommended/encryption/ を参照してください。
このサンプルの使用については、次のトピックを参照してください。
コマンド プロンプトを使用してサンプルをビルドするには
コマンド プロンプトで、PublicKeyCryptography ディレクトリの使用言語に対応したサブディレクトリに移動します。必要な設定および SDK のコマンド プロンプトについては、「方法 : サンプルの設定を設定する」を参照してください。
使用するプログラミング言語に応じて「msbuild PublicKeyCryptographyCS.sln」または「msbuild PublicKeyCryptographyVB.sln」と入力します。実行可能ファイルは、既定の \bin ディレクトリまたは \bin\Debug ディレクトリにビルドされます。
Visual Studio を使用してサンプルをビルドするには
Windows エクスプローラを開き、PublicKeyCryptography ディレクトリの使用言語に対応するサブディレクトリに移動します。
使用するプログラミング言語に応じて、Visual Studio ソリューション ファイル PublicKeyCS.sln または PublicKeyVB.sln を開きます。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
サンプルを実行するには
コマンド プロンプトを使用して、ビルドした実行可能ファイルが格納されているディレクトリに移動します。
「PublicKey.exe」と入力します。
メモ : |
---|
このサンプルでは、コンソール アプリケーションをビルドします。出力を表示するには、これをコマンド プロンプトで実行する必要があります。 |
解説
この例では、メッセージを対称アルゴリズム (RC2) によって暗号化し、次に RC2 キーを非対称アルゴリズム (RSA) によって暗号化します。非対称暗号化アルゴリズム (公開キー アルゴリズム) では、相互関係のあるキーのペアである公開キーと秘密キーを各エンティティが保持する必要があります。どちらのキーもエンティティに固有です。公開キーはだれに公開してもかまいません。公開キーは、受信者に送信するデータをエンコードするために使用されます。秘密キーは受信者が秘密にして保管します。秘密キーは、受信者の公開キーを使用してエンコードされたメッセージをデコードするために使用されます。
このサンプルでは、次のクラスが使用されています。
RSACryptoServiceProvider は、RSA (非対称 (公開キー) アルゴリズム) のマネージ実装を提供します。RSA は、暗号化されたメッセージと共に送信される RC2 キーの暗号化に使用されます。
RC2CryptoServiceProvider は、メッセージ テキストの暗号化のための対称暗号化アルゴリズムを提供します。
ICryptoTransformは、基本的な暗号化転送を定義するインターフェイスを提供します。
CryptoStreamは、MemoryStream に入力されるデータを暗号化するためのストリームを提供します。
Encodingは、文字列とバイト配列との間の変換を実現します。
キー ペア暗号化の詳細については、ソース コード ファイルのコメントを参照してください。