密碼編譯基本類型
CNG API 提供一組函式,可執行基本的密碼編譯作業,例如建立哈希或加密和解密數據。 如需這些函式的詳細資訊,請參閱 CNG 密碼編譯基本函式。
CNG 會實作許多密碼編譯演算法。 每個演算法或演算法類別都會公開自己的基本 API。 可以同時安裝指定演算法的多個實作;不過,在任何指定時間,只有一個實作會是預設值。
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 Primitive Provider”。 若要使用 Microsoft Primitive Provider,請將此值傳遞至 BCryptOpenAlgorithmProvider。