Delen via


Cryptografische primitieven

De CNG-API biedt een set functies die eenvoudige cryptografische bewerkingen uitvoeren, zoals het maken van hashes of het versleutelen en ontsleutelen van gegevens. Zie cryptografische primitieve functies van CNGvoor meer informatie over deze functies.

CNG implementeert talloze cryptografische algoritmen. Elk algoritme of elke klasse van algoritmen maakt een eigen primitieve API beschikbaar. Meerdere implementaties van een bepaald algoritme kunnen tegelijkertijd worden geïnstalleerd; slechts één implementatie is echter de standaardinstelling op elk gewenst moment.

Elke algoritmeklasse in CNG wordt vertegenwoordigd door een primitieve router. Toepassingen die de primitieve CNG-functies gebruiken, worden gekoppeld aan het binaire routerbestand Bcrypt.dll in de gebruikersmodus of Ksecdd.sys in kernelmodus voordat de functies worden aangeroepen. Verschillende routerroutines beheren alle algoritmeprimitief. Deze routers volgen elke implementatie van het algoritme die op het systeem is geïnstalleerd en routeer elke functie-aanroep naar de juiste primitieve providermodule.

CNG biedt primitieven voor de volgende klassen algoritmen.

Algoritmeklasse Beschrijving
generator voor willekeurige getallen
Pluggable random number generation (RNG).
hashing
Algoritmen die worden gebruikt voor hashing, zoals SHA1 en SHA2.
symmetrische versleuteling
Algoritmen die worden gebruikt voor symmetrische versleuteling, zoals AES, 3DES en RC4.
Asymmetrische versleuteling
Asymmetrische (openbare sleutel) algoritmen die ondersteuning bieden voor versleuteling, zoals RSA.
handtekening
Handtekeningalgoritmen zoals DSA en ECDSA. Deze klasse kan ook worden gebruikt met RSA.
geheime overeenkomst
Algoritmen voor geheime overeenkomsten, zoals Diffie-Hellman (DH) en elliptische curve Diffie-Hellman (ECDH).

In de volgende afbeelding ziet u het ontwerp en de functie van de cryptografische primitieven van CNG.

ontwerp en functie van cryptografische primitieven

Het headerbestand Bcrypt.h definieert de MS_PRIMITIVE_PROVIDER constante als 'Microsoft Primitive Provider'. Als u de Microsoft Primitive Provider wilt gebruiken, geeft u deze waarde door aan BCryptOpenAlgorithmProvider.