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