暗号化プリミティブ
CNG API には、ハッシュの作成やデータの暗号化と復号化などの基本的な暗号化操作を実行する一連の関数が用意されています。 これらの関数の詳細については、「CNG 暗号化プリミティブ関数の」を参照してください。
CNG には、多数の暗号化アルゴリズムが実装されています。 アルゴリズムの各クラスは、独自のプリミティブ API を公開します。 特定のアルゴリズムの複数の実装を同時にインストールできます。ただし、特定の時点で既定値になる実装は 1 つだけです。
CNG の各アルゴリズム クラスは、プリミティブ ルーターによって表されます。 CNG プリミティブ関数を使用するアプリケーションは、ユーザー モードで Bcrypt.dll ルーター バイナリ ファイルにリンクするか、関数を呼び出す前にカーネル モードで Ksecdd.sys します。 さまざまなルーター ルーチンが、すべてのアルゴリズム プリミティブを管理します。 これらのルーターは、システムにインストールされている各アルゴリズム実装を追跡し、各関数呼び出しを適切なプリミティブ プロバイダー モジュールにルーティングします。
CNG は、次のクラスのアルゴリズムのプリミティブを提供します。
アルゴリズム クラス | 形容 |
---|---|
乱数ジェネレーター |
プラグ可能な乱数生成 (RNG)。 |
ハッシュ |
SHA1 や SHA2 などのハッシュに使用されるアルゴリズム。 |
対称暗号化 |
AES、3DES、RC4 などの対称暗号化に使用されるアルゴリズム。 |
非対称暗号化の |
RSA などの暗号化をサポートする非対称 (公開キー) アルゴリズム。 |
署名 |
DSA や ECDSA などの署名アルゴリズム。 このクラスは RSA でも使用できます。 |
秘密契約 |
Diffie-Hellman (DH) や楕円曲線 Diffie-Hellman (ECDH) などの秘密契約アルゴリズム。 |
次の図は、CNG 暗号化プリミティブの設計と機能を示しています。
ヘッダー ファイル Bcrypt.h は、MS_PRIMITIVE_PROVIDER 定数を "Microsoft プリミティブ プロバイダー" として定義します。 Microsoft プリミティブ プロバイダーを使用するには、この値を BCryptOpenAlgorithmProvider渡します。