密碼編譯基本類型
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 密碼編譯基本類型的設計和功能。
標頭檔 Bcrypt.h 會將 MS_PRIMITIVE_PROVIDER 常數定義為 「Microsoft Primitive Provider」。 若要使用 Microsoft Primitive Provider,請將此值傳遞至 BCryptOpenAlgorithmProvider。