次の方法で共有


AsymmetricAlgorithm クラス

非対称アルゴリズムのすべての実装が継承する必要がある、抽象基本クラスを表します。

この型のすべてのメンバの一覧については、AsymmetricAlgorithm メンバ を参照してください。

System.Object
   System.Security.Cryptography.AsymmetricAlgorithm
      System.Security.Cryptography.DSA
      System.Security.Cryptography.RSA

MustInherit Public Class AsymmetricAlgorithm
   Implements IDisposable
[C#]
public abstract class AsymmetricAlgorithm : IDisposable
[C++]
public __gc __abstract class AsymmetricAlgorithm : public
   IDisposable
[JScript]
public abstract class AsymmetricAlgorithm implements IDisposable

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

非対称暗号アルゴリズムは公開キー アルゴリズムとも呼ばれますが、送信者と受信者の双方が関連キーのペア (秘密キーと公開キー) を保持していることが必要です。いずれのキーもエンティティに対して一意です。公開キーはだれでも利用でき、受信者に送信されるデータのエンコーディングに使用されます。受信者は、秘密キーを秘密にしておく必要があります。秘密キーは、エンコードされているメッセージを受信者の公開キーを使用してデコードするときに使用されます。 RSACryptoServiceProvider は公開キー アルゴリズムの実装です。

また、公開キー システムを使用してデジタル署名を記述することもできます。デジタル署名は、別のエンティティの ID を認証し、データの整合性を保護するために使用されます。たとえば、公開キー システムを使用してメッセージにデジタル署名を行うには、送信者は最初にメッセージにハッシュ関数を適用して、メッセージのダイジェストを作成します。次に、送信者は、自身の秘密キーでメッセージ ダイジェストを暗号化し、送信者の個人的な署名を作成します。秘密キーは送信者を一意に識別します。受信者は、メッセージと署名を受け取ると、送信者の公開キーを使用して署名を解読してメッセージ ダイジェストを復元し、送信者が使用したものと同じハッシュ アルゴリズムを使用してメッセージをハッシュします。受信者が計算したメッセージ ダイジェストが送信者から受信したメッセージ ダイジェストと完全に一致する場合、受信者はそのメッセージが送信者から送られたものであると見なすことができます。送信者の公開キーは公開されています。だれもが署名を検証できることに注意してください。この方法ではメッセージを秘密にすることはできません。メッセージを秘密にするには、先に述べた方法で暗号化も行う必要があります。受信者は、自身の秘密キーを使用してメッセージを解読し、上記のようにメッセージ ダイジェストを計算します。 DSACryptoServiceProvider は、デジタル署名アルゴリズムの実装です。また、 RSACryptoServiceProvider を使用してデジタル署名を作成し、検証することもできます。

現在の実装では、 RSA および DSA だけに具象クラスが用意されています。このクラスは、アプリケーション コードでは拡張できません。

必要条件

名前空間: 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 内)

参照

AsymmetricAlgorithm メンバ | System.Security.Cryptography 名前空間 | 暗号サービス