Udostępnij za pośrednictwem


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.

projektowania i funkcji cng kryptograficznych pierwotnych

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.