Megosztás a következőn keresztül:


Kriptográfiai primitívek

A CNG API olyan függvényeket biztosít, amelyek alapvető titkosítási műveleteket hajtanak végre, például kivonatokat hoznak létre, vagy titkosítják és visszafejtik az adatokat. További információ ezekről a függvényekről: CNG Cryptographic Primitive Functions.

A CNG számos titkosítási algoritmust implementál. Minden algoritmus vagy algoritmusosztály saját primitív API-t tesz elérhetővé. Egy adott algoritmus több implementációja is telepíthető egyszerre; azonban egy adott időpontban csak egy implementáció lesz az alapértelmezett.

A CNG minden algoritmusosztályát egy primitív útválasztó képviseli. A CNG primitív függvényeket használó alkalmazások az útválasztó bináris fájlját Bcrypt.dll felhasználói módban, vagy kernel módban Ksecdd.sys a függvények meghívása előtt. A különböző útválasztó-rutinok az összes algoritmusprimitívet kezelik. Ezek az útválasztók nyomon követik a rendszeren telepített algoritmus-implementációkat, és az egyes függvényhívásokat a megfelelő primitív szolgáltatói modulhoz irányítják.

A CNG a következő algoritmusosztályokhoz biztosít primitíveket.

Algoritmusosztály Leírás
Véletlenszerű számgenerátor
Csatlakoztatható véletlenszerű számgenerálás (RNG).
kivonatolás
Kivonatoláshoz használt algoritmusok, például SHA1 és SHA2.
szimmetrikus titkosítás
A szimmetrikus titkosításhoz használt algoritmusok, például az AES, a 3DES és az RC4.
aszimmetrikus titkosítás
Titkosítást támogató aszimmetrikus (nyilvános kulcsú) algoritmusok, például RSA.
aláírás
Aláírási algoritmusok, például DSA és ECDSA. Ez az osztály RSA-val is használható.
titkos szerződés
Titkos szerződési algoritmusok, például Diffie-Hellman (DH) és háromliptikus görbe Diffie-Hellman (ECDH).

Az alábbi ábra a CNG-titkosítási primitívek tervezését és működését mutatja be.

cng titkosítási primitívek tervezése és működése

A Bcrypt.h fejlécfájl a MS_PRIMITIVE_PROVIDER állandót "Microsoft Primitív szolgáltatóként" határozza meg. A Microsoft Primitív szolgáltató használatához adja át ezt az értéket a BCryptOpenAlgorithmProvider.