Compartir a través de


Pseudo-identificadores del algoritmo CNG

A partir de Windows 10, CNG proporciona identificadores de algoritmo predefinidos para muchos algoritmos. Puede utilizar estos identificadores en cualquier situación que requiera un identificador de algoritmo.

Algoritmos de hash y código de autenticación de mensajes (MAC)

Constante Descripción
BCRYPT_MD2_ALG_HANDLE Un identificador para el algoritmo hash MD2. Estándar: RFC 1319.
BCRYPT_MD4_ALG_HANDLE Un identificador para el algoritmo hash MD4. Estándar: RFC 1320.
BCRYPT_MD5_ALG_HANDLE Un identificador para el algoritmo hash MD5. Estándar: RFC 1321.
BCRYPT_SHA1_ALG_HANDLE Un identificador para el algoritmo hash seguro de 160 bits. Estándar: FIPS 180-2, FIPS 198.
BCRYPT_SHA256_ALG_HANDLE Un identificador para el algoritmo hash seguro de 256 bits. Estándar: FIPS 180-2, FIPS 198.
BCRYPT_SHA384_ALG_HANDLE Identificador del algoritmo hash seguro de 384 bits. Estándar: FIPS 180-2, FIPS 198.
BCRYPT_SHA512_ALG_HANDLE Un identificador para el algoritmo hash seguro de 512 bits. Estándar: FIPS 180-2, FIPS 198.
BCRYPT_SHA3_256_ALG_HANDLE Identificador del algoritmo hash seguro SHA3 de 256 bits. Estándar: FIPS 202.
Windows 11, versión 24H2: Comienza la compatibilidad con este algoritmo.
BCRYPT_SHA3_384_ALG_HANDLE Identificador del algoritmo hash seguro sha3 de 384 bits. Estándar: FIPS 202.
Windows 11, versión 24H2: Comienza la compatibilidad con este algoritmo.
BCRYPT_SHA3_512_ALG_HANDLE Identificador del algoritmo hash seguro SHA3 de 512 bits. Estándar: FIPS 202.
Windows 11, versión 24H2: Comienza la compatibilidad con este algoritmo.
BCRYPT_HMAC_MD2_ALG_HANDLE Identificador para el código de autenticación de mensajes basado en hash mediante el algoritmo hash MD2. Estándar: RFC 2104, RFC 1319.
BCRYPT_HMAC_MD4_ALG_HANDLE Identificador para el código de autenticación de mensajes basado en hash mediante el algoritmo hash MD4. Estándar: RFC 2104, RFC 1320.
BCRYPT_HMAC_MD5_ALG_HANDLE Identificador para el código de autenticación de mensajes basado en hash mediante el algoritmo hash MD4. Estándar: RFC 2104, RFC 1321.
BCRYPT_HMAC_SHA1_ALG_HANDLE Identificador para el código de autenticación de mensajes basado en hash mediante el algoritmo hash seguro de 160 bits. Estándar: RFC 2014, FIPS 180-2, FIPS 198.
BCRYPT_HMAC_SHA256_ALG_HANDLE Identificador para el código de autenticación de mensajes basado en hash mediante el algoritmo hash seguro de 256 bits. Estándar: RFC 2014, FIPS 180-2, FIPS 198.
BCRYPT_HMAC_SHA384_ALG_HANDLE Identificador para el código de autenticación de mensajes basado en hash mediante el algoritmo hash seguro de 384 bits. Estándar: RFC 2014, FIPS 180-2, FIPS 198.
BCRYPT_HMAC_SHA512_ALG_HANDLE Identificador para el código de autenticación de mensajes basado en hash mediante el algoritmo hash seguro de 512 bits. Estándar: RFC 2014, FIPS 180-2, FIPS 198.
BCRYPT_HMAC_SHA3_256_ALG_HANDLE Identificador del código de autenticación de mensajes basado en hash mediante el algoritmo hash seguro SHA3 de 256 bits. Estándar: RFC 2014, FIPS 202.
Windows 11, versión 24H2: Comienza la compatibilidad con este algoritmo.
BCRYPT_HMAC_SHA3_384_ALG_HANDLE Identificador del código de autenticación de mensajes basado en hash mediante el algoritmo hash seguro SHA3 de 384 bits. Estándar: RFC 2014, FIPS 202.
Windows 11, versión 24H2: Comienza la compatibilidad con este algoritmo.
BCRYPT_HMAC_SHA3_512_ALG_HANDLE Identificador del código de autenticación de mensajes basado en hash mediante el algoritmo hash seguro SHA3 de 512 bits. Estándar: RFC 2014, FIPS 202.
Windows 11, versión 24H2: Comienza la compatibilidad con este algoritmo.
BCRYPT_KMAC128_ALG_HANDLE Identificador del código de autenticación de mensajes de Keccak derivado de SHA3 (KMAC) basado en CSHAKE128. Estándar: SP800-185.
Windows 11, versión 24H2: Comienza la compatibilidad con este algoritmo.
BCRYPT_KMAC256_ALG_HANDLE Identificador del código de autenticación de mensajes de Keccak derivado de SHA3 (KMAC) basado en CSHAKE256. Estándar: SP800-185.
Windows 11, versión 24H2: Comienza la compatibilidad con este algoritmo.

Algoritmos de firma digital PQ

Nota:

Los identificadores PQDSA de esta sección se relacionan con un producto de versión preliminar que puede modificarse sustancialmente antes de su lanzamiento comercial. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí. La característica descrita en esta sección está disponible en versiones preliminares de Windows Insider Preview.

Constante Descripción
BCRYPT_LMS_ALG_HANDLE Identificador del algoritmo de firma de Leighton-Micali Hash-Based (LMS). Estándar: RFC 8554.
BCRYPT_MLDSA_ALG_HANDLE Identificador del módulo:Lattice-Based algoritmo de firma digital (ML-DSA). Estándar: FIPS 204.
BCRYPT_SLHDSA_ALG_HANDLE Identificador del algoritmo de firma digital basado en hash sin estado (SLH-DSA). Estándar: FIPS 205.
BCRYPT_XMSS_ALG_HANDLE Identificador del algoritmo basado en hash con estado eXtended Merkle Signature Scheme (XMSS). Estándar: RFC 8391.

Algoritmos de cifrado de flujo

Constante Descripción
BCRYPT_RC4_ALG_HANDLE Un identificador para el algoritmo de cifrado de flujo RC4. Estándar: Varios.

Algoritmos generadores de números aleatorios

Constante Descripción
BCRYPT_RNG_ALG_HANDLE Identificador del algoritmo generador de números aleatorios. Nota A partir de Windows Vista con SP1 y Windows Server 2008, el generador de números aleatorios se basa en el modo de contador AES especificado en el estándar NIST SP 800-90.
Windows Vista: El generador de números aleatorios se basa en el generador de números aleatorios basado en hash especificado en el estándar FIPS 186-2.
Windows 8: El algoritmo RNG es compatible con FIPS 186-3. Las claves menores o iguales a 1024 bits se adhieren a FIPS 186-2 y las claves mayores que 1024 a FIPS 186-3.
BCRYPT_RNG_FIPS186_DSA_ALG_HANDLE Un identificador para el algoritmo generador de números aleatorios adecuado para DSA (Algoritmo de firma digital). Estándar: FIPS 186-2.

Algoritmos de función de derivación de claves (KDF)

Constante Descripción
BCRYPT_CAPI_KDF_ALG_HANDLE Un identificador para el algoritmo de función de derivación de claves de Crypto API (CAPI). Usado por las funciones BCryptKeyDerivation y NCryptKeyDerivation .
BCRYPT_HKDF_ALG_HANDLE Identificador de la función de derivación de claves Extract-and-Expand basada en HMAC. Usado por las funciones BCryptKeyDerivation y NCryptKeyDerivation .
Windows 10: Comienza la compatibilidad con este algoritmo.
BCRYPT_PBKDF2_ALG_HANDLE Identificador del algoritmo de la función de derivación de claves basada en contraseña 2 (PBKDF2). Usado por las funciones BCryptKeyDerivation y NCryptKeyDerivation .
BCRYPT_SP800108_CTR_HMAC_ALG_HANDLE Identificador del algoritmo de función de derivación de clave de código de autenticación de mensajes basado en hash (HMAC) en modo contador. Usado por las funciones BCryptKeyDerivation y NCryptKeyDerivation .
BCRYPT_SP80056A_CONCAT_ALG_HANDLE Un identificador para el algoritmo de función de derivación de clave SP800-56A. Usado por las funciones BCryptKeyDerivation y NCryptKeyDerivation .

Algoritmos del mecanismo de encapsulación de claves (KEM)

Nota:

Los identificadores de ML-KEM de esta sección se relacionan con un producto de versión preliminar que puede modificarse sustancialmente antes de su lanzamiento comercial. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí. La característica descrita en esta sección está disponible en versiones preliminares de Windows Insider Preview.

Constante Descripción
BCRYPT_MLKEM_ALG_HANDLE Identificador del algoritmo Module-Lattice-Based Key Encapsulation Mechanism (ML-KEM). Estándar: FIPS 203.

Algoritmos asimétricos

Constante Descripción
BCRYPT_DH_ALG_HANDLE Un identificador para el algoritmo de intercambio de claves Diffie-Hellman. Estándar: PKCS #3.
BCRYPT_DSA_ALG_HANDLE Un identificador para el algoritmo de firma digital Digital Signature Algorithm (DSA). Estándar: FIPS 186-2.
Nota: A partir de Windows 8, este algoritmo es compatible con FIPS 186-3. Las claves menores o iguales a 1024 bits se adhieren a FIPS 186-2 y las claves mayores que 1024 a FIPS 186-3.
BCRYPT_ECDH_ALG_HANDLE Identificador de la curva elíptica genérica Diffie-Hellman algoritmo de intercambio de claves. Estándar: SP800-56A.
BCRYPT_ECDSA_ALG_HANDLE Identificador del algoritmo genérico de firma digital de curva elíptica. Estándar: ANSI X9.62.
BCRYPT_ECDH_P256_ALG_HANDLE Un identificador para la curva elíptica principal de 256 bits Diffie-Hellman algoritmo de intercambio de claves. Estándar: SP800-56A.
BCRYPT_ECDH_P384_ALG_HANDLE Un identificador para la curva elíptica principal de 384 bits Diffie-Hellman algoritmo de intercambio de claves. Estándar: SP800-56A.
BCRYPT_ECDH_P521_ALG_HANDLE Un identificador para la curva elíptica principal de 521 bits Diffie-Hellman algoritmo de intercambio de claves. Estándar: SP800-56A.
BCRYPT_ECDSA_P256_ALG_HANDLE Un identificador para el algoritmo de firma digital de curva elíptica principal de 256 bits (FIPS 186-2). Estándar: FIPS 186-2, X9.62.
BCRYPT_ECDSA_P384_ALG_HANDLE Identificador del algoritmo de firma digital de curva elíptica principal de 384 bits (FIPS 186-2). Estándar: FIPS 186-2, X9.62.
BCRYPT_ECDSA_P521_ALG_HANDLE Un identificador para el algoritmo de firma digital de curva elíptica principal de 521 bits (FIPS 186-2). Estándar: FIPS 186-2, X9.62.
BCRYPT_RSA_ALG_HANDLE Identificador del algoritmo de clave pública RSA. Estándar: PKCS #1 v1.5 y v2.0.
BCRYPT_RSA_SIGN_ALG_HANDLE Identificador del algoritmo de firma RSA. Este algoritmo no es compatible actualmente. Puede utilizar el algoritmo BCRYPT_RSA_ALG_HANDLE para realizar operaciones de firma RSA. Estándar: PKCS #1 v1.5 y v2.0.

Cifrado de bloques y algoritmos de código de autenticación de mensajes basados en cifrado

Constante Descripción
BCRYPT_3DES_CBC_ALG_HANDLE Un identificador para el algoritmo estándar de cifrado de datos triple que utiliza el modo de encadenamiento de bloques de cifrado (CBC). Estándar: SP800-67, SP800-38A.
BCRYPT_3DES_ECB_ALG_HANDLE Un identificador para el algoritmo triple estándar de cifrado de datos que utiliza el modo de libro de recetas electrónico (ECB). Estándar: SP800-67, SP800-38A.
BCRYPT_3DES_CFB_ALG_HANDLE Un identificador para el algoritmo estándar de cifrado de datos triple que utiliza el modo de retroalimentación de cifrado (CFB). Estándar: SP800-67, SP800-38A.
BCRYPT_3DES_112_CBC_ALG_HANDLE Un identificador para el algoritmo estándar de cifrado de datos triple de 112 bits que usa el modo de encadenamiento de bloques de cifrado (CBC). Estándar: SP800-67, SP800-38A.
BCRYPT_3DES_112_CBC_ALG_HANDLE Un identificador para el algoritmo estándar de cifrado de datos triple de 112 bits que usa el modo de encadenamiento de bloques de cifrado (CBC). Estándar: SP800-67, SP800-38A.
BCRYPT_3DES_112_ECB_ALG_HANDLE Un identificador para el algoritmo estándar de cifrado de datos triple de 112 bits que utiliza el modo de libro de recetas electrónico (ECB). Estándar: SP800-67, SP800-38A.
BCRYPT_3DES_112_CFB_ALG_HANDLE Un identificador para el algoritmo estándar de cifrado de datos triple de 112 bits que usa el modo de retroalimentación de cifrado (CFB). Estándar: SP800-67, SP800-38A.
BCRYPT_AES_CMAC_ALG_HANDLE Identificador del algoritmo de código de autenticación de mensajes (CMAC) basado en cifrado del estándar de cifrado avanzado (AES). Estándar: SP800-38B.
BCRYPT_AES_CBC_ALG_HANDLE Un identificador para el algoritmo del estándar de cifrado avanzado (AES) que utiliza el modo de encadenamiento de bloques de cifrado (CBC). Estándar: FIPS 197.
BCRYPT_AES_ECB_ALG_HANDLE Un identificador para el algoritmo del Estándar de cifrado avanzado (AES) mediante el modo de libro de recetas electrónico (ECB). Estándar: FIPS 197.
BCRYPT_AES_CFB_ALG_HANDLE Un identificador para el algoritmo del estándar de cifrado avanzado (AES) mediante el modo de retroalimentación de cifrado (CFB). Estándar: FIPS 197.
BCRYPT_AES_CCM_ALG_HANDLE Un identificador para el algoritmo Advanced Encryption Standard (AES) que utiliza Counter with CBC-MAC Mode (CCM). Estándar: FIPS 197.
BCRYPT_AES_GCM_ALG_HANDLE Un identificador para el algoritmo Advanced Encryption Standard (AES) mediante el modo de contador de Galois (GCM). Estándar: FIPS 197.
BCRYPT_DES_CBC_ALG_HANDLE Identificador del algoritmo Estándar de cifrado de datos (DES) mediante el modo de encadenamiento de bloques de cifrado (GCM). Estándar: FIPS 46-3, FIPS 81.
BCRYPT_DES_ECB_ALG_HANDLE Un identificador para el algoritmo del estándar de cifrado de datos (DES) mediante el modo de libro de recetas electrónico (ECB). Estándar: FIPS 46-3, FIPS 81.
BCRYPT_DES_CFB_ALG_HANDLE Un identificador para el algoritmo del estándar de cifrado de datos (DES) mediante el modo de retroalimentación de cifrado (CFB). Estándar: FIPS 46-3, FIPS 81.
BCRYPT_AES_CMAC_ALG_HANDLE Identificador del algoritmo de cifrado simétrico basado en código de autenticación de mensajes (CMAC) basado en cifrado Advanced Encryption Standard (AES). Estándar: SP 800-38B.
BCRYPT_AES_GMAC_ALG_HANDLE Un identificador para el algoritmo de cifrado simétrico del código de autenticación de mensajes Galois (GMAC) del Estándar de cifrado avanzado (AES). Estándar: SP800-38D.
BCRYPT_RC4_ALG_HANDLE Un identificador para el algoritmo de cifrado simétrico RC4. Estándar: Varios.

Observaciones

A partir de Windows 10, CNG proporciona identificadores de algoritmo predefinidos para muchos algoritmos. Puede utilizar estos identificadores en cualquier situación que requiera un identificador de algoritmo. Sin embargo, se produce un error en cualquier llamada a BCryptSetProperty , ya que el identificador de algoritmo se comparte y no se puede modificar. Además, estos identificadores no se pueden usar en IRQL=DISPATCH modo kernel.

BCryptOpenAlgorithmProvider

NCryptCreatePersistedKey