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.
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.