Share via


密碼編譯基本類型

CNG API 提供一組函式,可執行基本的密碼編譯作業,例如建立雜湊或加密和解密資料。 如需這些函式的詳細資訊,請參閱 CNG 密碼編譯基本函式

CNG 會實作許多密碼編譯演算法。 每個演算法或演算法類別都會公開自己的基本 API。 可以同時安裝指定演算法的多個實作;不過,在任何指定時間,只有一個實作會是預設值。

CNG 中的每個演算法類別都是以基本路由器表示。 使用 CNG 基本函式的應用程式會在使用者模式中連結至路由器二進位檔案Bcrypt.dll,或在呼叫函式之前Ksecdd.sys核心模式。 各種路由器常式會管理所有演算法基本類型。 這些路由器會追蹤系統上所安裝的每個演算法實作,並將每個函式呼叫路由傳送至適當的基本提供者模組。

CNG 提供下列演算法類別的基本類型。

演算法類別 Description
亂數產生器
RNG) (插入式亂數產生。
散 列
用於雜湊的演算法,例如 SHA1 和 SHA2。
對稱式加密
用於對稱加密的演算法,例如 AES、3DES 和 RC4。
非對稱式加密
支援加密的非對稱 (公開金鑰) 演算法,例如 RSA。
簽名
DSA 和 ECDSA 等簽章演算法。 此類別也可以與 RSA 搭配使用。
秘密合約
Diffie-Hellman (DH) 和橢圓曲線等秘密協定演算法,Diffie-Hellman (ECDH) 。

下圖顯示 CNG 密碼編譯基本類型的設計和功能。

cng 密碼編譯基本類型的設計和函式

標頭檔 Bcrypt.h 會將 MS_PRIMITIVE_PROVIDER 常數定義為 「Microsoft Primitive Provider」。 若要使用 Microsoft Primitive Provider,請將此值傳遞至 BCryptOpenAlgorithmProvider