Sdílet prostřednictvím


Kryptografické primitivy

Rozhraní API CNG poskytuje sadu funkcí, které provádějí základní kryptografické operace, jako je vytváření hodnot hash nebo šifrování a dešifrování dat. Další informace o těchto funkcích naleznete v tématu kryptografické primitivní funkce CNG.

CNG implementuje mnoho kryptografických algoritmů. Každý algoritmus nebo třída algoritmů zveřejňuje své vlastní primitivní rozhraní API. Současně lze nainstalovat více implementací daného algoritmu; V každém okamžiku však bude výchozí pouze jedna implementace.

Každá třída algoritmu v CNG je reprezentována primitivním směrovačem. Aplikace používající primitivní funkce CNG propojí binární soubor směrovače Bcrypt.dll v uživatelském režimu nebo Ksecdd.sys v režimu jádra před voláním funkcí. Různé rutiny směrovače spravují všechny primitivní algoritmy. Tyto směrovače sledují každou implementaci algoritmu nainstalovanou v systému a směrují volání jednotlivých funkcí do příslušného modulu primitivního poskytovatele.

CNG poskytuje primitiva pro následující třídy algoritmů.

Třída algoritmu Popis
generátor náhodných čísel
Připojitelné náhodné generování čísel (RNG).
hashování
Algoritmy používané pro hashování, například SHA1 a SHA2.
symetrické šifrování
Algoritmy používané pro symetrické šifrování, jako je AES, 3DES a RC4.
asymetrické šifrování
Asymetrické algoritmy (veřejný klíč), které podporují šifrování, jako je RSA.
podpis
Algoritmy podpisů, jako jsou DSA a ECDSA. Tuto třídu lze také použít s RSA.
tajná smlouva
Algoritmy tajných smluv, jako jsou Diffie-Hellman (DH) a tři tečky Diffie-Hellman (ECDH).

Následující obrázek znázorňuje návrh a funkci kryptografických primitiv CNG.

návrh a funkce kryptografických primitiv

Soubor hlavičky Bcrypt.h definuje MS_PRIMITIVE_PROVIDER konstantu jako "Microsoft Primitive Provider". Chcete-li použít Microsoft Primitive Provider, předejte tuto hodnotu BCryptOpenAlgorithmProvider.