暗号化プロバイダーの種類
暗号化の分野は大きく成長しています。 さまざまな標準データ形式とプロトコルがあります。 これらは一般的にグループまたはファミリに編成され、それぞれに独自のデータ形式のセットと操作方法があります。 2 つのファミリが同じアルゴリズム (たとえば、RC2 block 暗号) を使用する場合でも、多くの場合、異なる パディング スキーム、異なるキーの長さ、および異なる既定のモードが使用されます。 CryptoAPI は、CSP プロバイダーの種類が特定のファミリを表すよう設計されています。
アプリケーションが特定の種類の CSP に接続すると、各 CryptoAPI 関数は、既定では、その CSP の種類に対応するファミリによって規定された方法で動作します。 アプリケーションのプロバイダーの種類を選択すると、次の項目が指定されます。
アイテム | 説明 |
---|---|
キー交換アルゴリズム | 各プロバイダーの種類では、1 つだけのキー交換アルゴリズムを指定します。 特定の種類のすべての CSP がこのアルゴリズムを実装する必要があります。 アプリケーションは、適切なプロバイダーの種類の CSP を選択して、使用するキー交換アルゴリズムを指定します。 |
デジタル署名アルゴリズム | 各プロバイダーの種類は、デジタル署名アルゴリズムを 1 つだけ指定します。 特定の種類のすべての CSP がこのアルゴリズムを実装する必要があります。 アプリケーションは、適切なプロバイダーの種類の CSP を選択して、使用するデジタル署名アルゴリズムを指定します。 |
キー BLOB 形式 | 入力の種類によって、キー BLOB の形式が決まります。キー BLOBは、CSP からキーをエクスポートし、CSP にキーをインポートするために使用されます。 |
デジタル署名形式 | プロバイダーの種類によって、デジタル署名の形式が決定します。 これにより、特定のプロバイダーの種類の CSP によって生成された署名を、同じプロバイダーの種類の任意の CSP によって検証できるようになります。 |
セッション キー派生スキーム | プロバイダーの種類は、ハッシュからセッション キーを派生させるために使用されるメソッドを決定します。 |
キーの長さ | 一部のプロバイダーの種類では、公開/秘密キーのペアの長さとセッション キーが指定されます。 |
既定モード | プロバイダーの種類では、多くの場合、ブロック暗号化の暗号化モードまたはブロック暗号化パディング メソッドなど、さまざまなオプションの既定のモードが指定されます。 |
一部の高度なアプリケーションは一度に複数の CSP に接続できますが、ほとんどのアプリケーションでは通常、1 つの CSP のみを使用します。
現在、定義済みのプロバイダーの種類は多数あります。 次のセクションでは、以下のプロバイダーの種類に関する情報を提供しています。
- PROV_RSA_FULL
- PROV_RSA_AES
- PROV_RSA_SIG
- PROV_RSA_SCHANNEL
- PROV_DSS
- PROV_DSS_DH
- PROV_DH_SCHANNEL
- PROV_FORTEZZA
- PROV_MS_EXCHANGE
- PROV_SSL
一部の CSP の種類は他の CSP と部分的に互換性がある場合がありますが、キーと暗号化されたメッセージを交換する必要がある 2 つ以上のアプリケーションでは、同じ種類の CSP を使用する必要があります。
カスタム CSP ライターでは、新しいプロバイダーの種類を定義できます。 ただし、CSP ライターは、新しいプロバイダーの種類を使用するすべてのアプリケーションの作成者に配布する役割を担うことになります。 カスタム CSP の作成の詳細については、「暗号化サービス プロバイダー」を参照してください。