Primitivos criptográficos
La API de CNG proporciona un conjunto de funciones que realizan operaciones criptográficas básicas, como crear hashes o cifrar y descifrar datos. Para obtener más información sobre estas funciones, vea Funciones primitivas criptográficas de CNG.
CNG implementa numerosos algoritmos criptográficos. Cada algoritmo o clase de algoritmos expone su propia API primitiva. Se pueden instalar varias implementaciones de un algoritmo determinado al mismo tiempo; sin embargo, solo una implementación será la predeterminada en un momento dado.
Cada clase de algoritmo de CNG se representa mediante un enrutador primitivo. Las aplicaciones que usan las funciones primitivas de CNG se vincularán al archivo binario del enrutador Bcrypt.dll en modo de usuario o Ksecdd.sys en modo kernel antes de llamar a las funciones. Varias rutinas de enrutador administran todos los primitivos del algoritmo. Estos enrutadores realizan un seguimiento de cada implementación de algoritmo instalada en el sistema y enrutan cada llamada de función al módulo de proveedor primitivo adecuado.
CNG proporciona primitivos para las siguientes clases de algoritmos.
Clase Algorithm | Descripción |
---|---|
Generador de números aleatorios |
Generación de números aleatorios conectables (RNG). |
Hash |
Algoritmos usados para el hash, como SHA1 y SHA2. |
Cifrado simétrico |
Algoritmos usados para el cifrado simétrico, como AES, 3DES y RC4. |
Cifrado asimétrico |
Algoritmos asimétricos (clave pública) que admiten el cifrado, como RSA. |
Signature |
Algoritmos de firma como DSA y ECDSA. Esta clase también se puede usar con RSA. |
Acuerdo secreto |
Algoritmos de acuerdo secreto, como Diffie-Hellman (DH) y curva elíptica Diffie-Hellman (ECDH). |
En la ilustración siguiente se muestra el diseño y la función de los primitivos criptográficos CNG.
El archivo de encabezado Bcrypt.h define la constante MS_PRIMITIVE_PROVIDER como "Proveedor primitivo de Microsoft". Para usar el proveedor primitivo de Microsoft, pase este valor a BCryptOpenAlgorithmProvider.