Kryptograficzne elementy pierwotne
Interfejs API CNG udostępnia zestaw funkcji, które wykonują podstawowe operacje kryptograficzne, takie jak tworzenie skrótów lub szyfrowanie i odszyfrowywanie danych. Aby uzyskać więcej informacji na temat tych funkcji, zobacz CNG Kryptograficzne funkcje pierwotne.
CNG implementuje wiele algorytmów kryptograficznych. Każdy algorytm lub klasa algorytmów uwidacznia własny pierwotny interfejs API. W tym samym czasie można zainstalować wiele implementacji danego algorytmu; jednak tylko jedna implementacja będzie domyślna w danym momencie.
Każda klasa algorytmu w sieci CNG jest reprezentowana przez router pierwotny. Aplikacje korzystające z funkcji pierwotnych CNG będą łączyć się z plikiem binarnym routera Bcrypt.dll w trybie użytkownika lub Ksecdd.sys w trybie jądra przed wywołaniem funkcji. Różne procedury routera zarządzają wszystkimi algorytmami pierwotnymi. Te routery śledzą każdą implementację algorytmu zainstalowaną w systemie i kierują każde wywołanie funkcji do odpowiedniego modułu dostawcy pierwotnego.
CNG udostępnia typy pierwotne dla następujących klas algorytmów.
Klasa Algorithm | Opis |
---|---|
generator liczb losowych |
Podłączane generowanie liczb losowych (RNG). |
hashing |
Algorytmy używane do tworzenia skrótów, takie jak SHA1 i SHA2. |
szyfrowanie symetryczne |
Algorytmy używane do szyfrowania symetrycznego, takiego jak AES, 3DES i RC4. |
szyfrowanie asymetryczne |
Algorytmy asymetryczne (klucz publiczny), które obsługują szyfrowanie, takie jak RSA. |
podpis |
Algorytmy podpisów, takie jak DSA i ECDSA. Tej klasy można również używać z rsa. |
umowa Secret |
Tajne algorytmy umowy, takie jak Diffie-Hellman (DH) i krzywa eliptyczna Diffie-Hellman (ECDH). |
Na poniższej ilustracji przedstawiono projekt i funkcję kryptograficznych pierwotnych CNG.
Plik nagłówka Bcrypt.h definiuje stałą MS_PRIMITIVE_PROVIDER jako "Dostawca pierwotny firmy Microsoft". Aby użyć dostawcy pierwotnego firmy Microsoft, przekaż tę wartość do BCryptOpenAlgorithmProvider.