Partager via


Pseudo-handles de l’algorithme CNG

À compter de Windows 10, CNG (API de chiffrement : Nouvelle génération) fournit des handles d’algorithmes prédéfinis pour les opérations de chiffrement. Ces algorithmes simplifient le développement en éliminant la nécessité de créer manuellement des handles pour les algorithmes de chiffrement courants, notamment les fonctions de hachage, les algorithmes de chiffrement, les signatures numériques et les fonctions de dérivation de clé.

Algorithmes de code d’authentification de hachage et de message (MAC)

Constante Descriptif Standards
BCRYPT_MD2_ALG_HANDLE
0x00000001
Handle pour l’algorithme de hachage MD2. RFC 1319
BCRYPT_MD4_ALG_HANDLE
0x00000011
Handle pour l’algorithme de hachage MD4. RFC 1320
BCRYPT_MD5_ALG_HANDLE
0x00000021
Handle pour l’algorithme de hachage MD5. RFC 1321
BCRYPT_SHA1_ALG_HANDLE
0x00000031
Handle pour l’algorithme de hachage sécurisé 160 bits. FIPS 180-4
BCRYPT_SHA256_ALG_HANDLE
0x00000041
Handle pour l’algorithme de hachage sécurisé 256 bits. FIPS 180-4
BCRYPT_SHA384_ALG_HANDLE
0x00000051
Handle pour l’algorithme de hachage sécurisé 384 bits. FIPS 180-4
BCRYPT_SHA512_ALG_HANDLE
0x00000061
Handle pour l’algorithme de hachage sécurisé 512 bits. FIPS 180-4
BCRYPT_HMAC_SHA1_ALG_HANDLE
0x000000A1
Handle pour le code d’authentification de message basé sur le hachage à l’aide de l’algorithme de hachage sécurisé 160 bits. FIPS 180-4, FIPS 198-1
BCRYPT_HMAC_SHA256_ALG_HANDLE
0x000000B1
Handle pour le code d’authentification de message basé sur le hachage à l’aide de l’algorithme de hachage sécurisé 256 bits. FIPS 180-4, FIPS 198-1
BCRYPT_HMAC_SHA384_ALG_HANDLE
0x000000C1
Handle pour le code d’authentification de message basé sur le hachage à l’aide de l’algorithme de hachage sécurisé 384 bits. FIPS 180-4, FIPS 198-1
BCRYPT_HMAC_SHA512_ALG_HANDLE
0x000000D1
Handle pour le code d’authentification de message basé sur le hachage à l’aide de l’algorithme de hachage sécurisé 512 bits. FIPS 180-4, FIPS 198-1
BCRYPT_HMAC_MD2_ALG_HANDLE
0x00000121
Handle pour le code d’authentification de message basé sur le hachage à l’aide de l’algorithme de hachage MD2. RFC 1319, RFC 2104
BCRYPT_HMAC_MD4_ALG_HANDLE
0x00000131
Handle pour le code d’authentification de message basé sur le hachage à l’aide de l’algorithme de hachage MD4. RFC 1320, RFC 2104
BCRYPT_HMAC_MD5_ALG_HANDLE
0x00000091
Handle pour le code d’authentification de message basé sur le hachage à l’aide de l’algorithme de hachage MD4. RFC 1321, RFC 2104
Disponible dans Windows 11, version 23H2
BCRYPT_SHA3_256_ALG_HANDLE
0x000003B1
Handle pour l’algorithme de hachage sécurisé SHA3 256 bits. FIPS 202
BCRYPT_SHA3_384_ALG_HANDLE
0x000003C1
Handle pour l’algorithme de hachage sécurisé SHA3 384 bits. FIPS 202
BCRYPT_SHA3_512_ALG_HANDLE
0x000003D1
Handle pour l’algorithme de hachage sécurisé SHA3 512 bits. FIPS 202
BCRYPT_HMAC_SHA3_256_ALG_HANDLE
0x000003E1
Handle pour le code d’authentification de message basé sur le hachage à l’aide de l’algorithme de hachage sécurisé SHA3 256 bits. FIPS 202, FIPS 198-1
BCRYPT_HMAC_SHA3_384_ALG_HANDLE
0x000003F1
Handle pour le code d’authentification de message basé sur le hachage à l’aide de l’algorithme de hachage sécurisé SHA3 384 bits. FIPS 202, FIPS 198-1
BCRYPT_HMAC_SHA3_512_ALG_HANDLE
0x00000401
Handle pour le code d’authentification de message basé sur le hachage à l’aide de l’algorithme de hachage sécurisé SHA3 512 bits. FIPS 202, FIPS 198-1
BCRYPT_CSHAKE128_ALG_HANDLE
0x00000411
Handle pour l’algorithme de hachage CSHAKE 128 bits dérivé de SHA3 (fonction de sortie extensible). SP 800-185
BCRYPT_CSHAKE256_ALG_HANDLE
0x00000421
Handle pour l’algorithme de hachage CSHAKE 256 bits dérivé de SHA3 (fonction de sortie extensible). SP 800-185
BCRYPT_KMAC128_ALG_HANDLE
0x00000431
Handle pour le code d’authentification de message Keccak dérivé de SHA3 basé sur cSHAKE128. SP 800-185
BCRYPT_KMAC256_ALG_HANDLE
0x00000441
Handle pour le code d’authentification de message Keccak dérivé de SHA3 basé sur cSHAKE256. SP 800-185

Algorithmes de signature numérique PQ

Remarque

Les handles PQDSA de cette section concernent un produit de préversion qui peut être sensiblement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, expresse ou implicite, en ce qui concerne les informations fournies ici. La fonctionnalité décrite dans cette section est disponible dans les versions préliminaires de Windows Insider Preview.

Constante Descriptif Standards
BCRYPT_LMS_ALG_HANDLE Handle de l’algorithme Leighton-Micali Hash-Based Signature (LMS). RFC 8554
BCRYPT_MLDSA_ALG_HANDLE Handle de l’algorithme de signature numériqueLattice-Based module (ML-DSA). FIPS 204
BCRYPT_SLHDSA_ALG_HANDLE Handle de l’algorithme de signature numérique basé sur le hachage sans état (SLH-DSA). FIPS 205
BCRYPT_XMSS_ALG_HANDLE Handle de l’algorithme basé sur le hachage avec état eXtended Merkle Signature Scheme (XMSS). RFC 8391

Algorithmes de chiffrement de flux

Constante Descriptif Standards
BCRYPT_RC4_ALG_HANDLE
0x00000071
Handle pour l’algorithme de chiffrement de flux RC4. Divers

Algorithmes de générateur de nombres aléatoires

Constante Descriptif Standards
BCRYPT_RNG_ALG_HANDLE
0x00000081
Handle de l’algorithme de générateur de nombres aléatoires. À compter de Windows 10 : L’algorithme RNG utilisé est AES CTR_DRBG, défini dans SP 800-90A.

Algorithmes de fonction de dérivation de clé (KDF)

Constante Descriptif
BCRYPT_CAPI_KDF_ALG_HANDLE
0x00000321
Handle de l’algorithme de fonction de dérivation de clé d’API Crypto (CAPI). Utilisé par les fonctions BCryptKeyDerivation et NCryptKeyDerivation .
BCRYPT_PBKDF2_ALG_HANDLE
0x00000331
Handle de l’algorithme de dérivation de clé basée sur le mot de passe 2 (PBKDF2). Utilisé par les fonctions BCryptKeyDerivation et NCryptKeyDerivation .
BCRYPT_SP800108_CTR_HMAC_ALG_HANDLE
0x00000341
Handle vers le mode Compteur, algorithme de fonction de dérivation de clé HMAC (Code d’authentification de message basé sur le hachage). Utilisé par les fonctions BCryptKeyDerivation et NCryptKeyDerivation .
BCRYPT_SP80056A_CONCAT_ALG_HANDLE
0x00000351
Handle de l’algorithme de fonction de dérivation de clé SP800-56A. Utilisé par les fonctions BCryptKeyDerivation et NCryptKeyDerivation .
BCRYPT_HKDF_ALG_HANDLE
0x00000391
Handle de la fonction de dérivation de clé Extract-and-Expand basée sur HMAC. Utilisé par les fonctions BCryptKeyDerivation et NCryptKeyDerivation .

Algorithmes de mécanisme d’encapsulation de clé (KEM)

Remarque

Les ML-KEM handles de cette section concernent un produit de préversion qui peut être sensiblement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, expresse ou implicite, en ce qui concerne les informations fournies ici. La fonctionnalité décrite dans cette section est disponible dans les versions préliminaires de Windows Insider Preview.

Constante Descriptif Standards
BCRYPT_MLKEM_ALG_HANDLE Handle de l’algorithme Module-Lattice-Based Key Encapsulation Mechanism (ML-KEM). FIPS 203

Algorithmes asymétriques

Constante Descriptif Standards
BCRYPT_DH_ALG_HANDLE
0x00000281
Handle de l’algorithme d’échange de clés Diffie-Hellman. PKCS #3
BCRYPT_DSA_ALG_HANDLE
0x000002D1
Handle de l’algorithme de signature numérique DSA (Digital Signature Algorithm). FIPS 186-2
À compter de Windows 8 : Cet algorithme prend en charge FIPS 186-3. Les clés inférieures ou égales à 1024 bits adhèrent à FIPS 186-2 et les clés supérieures à 1024 à FIPS 186-3.
BCRYPT_ECDH_ALG_HANDLE
0x00000291
Handle de la courbe elliptique prime générique Diffie-Hellman algorithme d’échange de clés. SP 800-56A
BCRYPT_ECDH_P256_ALG_HANDLE
0x000002A1
Handle de la courbe elliptique 256 bits Diffie-Hellman algorithme d’échange de clés. SP 800-56A
BCRYPT_ECDH_P384_ALG_HANDLE
0x000002B1
Handle de la courbe elliptique 384 bits Diffie-Hellman algorithme d’échange de clés. SP 800-56A
BCRYPT_ECDH_P521_ALG_HANDLE
0x000002C1
Handle de la courbe elliptique 521 bits Diffie-Hellman algorithme d’échange de clés. SP 800-56A
BCRYPT_ECDSA_ALG_HANDLE
0x000000F1
Handle vers l’algorithme générique de signature numérique de courbe elliptique générique. ANSI X9.62
BCRYPT_ECDSA_P256_ALG_HANDLE
0x000002E1
Handle de l’algorithme de signature numérique de courbe elliptique 256 bits. FIPS 186-2, X9.62
BCRYPT_ECDSA_P384_ALG_HANDLE
0x000002F1
Handle vers l’algorithme de signature numérique de courbe elliptique 384 bits. FIPS 186-2, X9.62
BCRYPT_ECDSA_P521_ALG_HANDLE
0x00000301
Handle à l’algorithme de signature numérique de courbe elliptique 521 bits. FIPS 186-2, X9.62
BCRYPT_RSA_ALG_HANDLE
0x000000E1
Handle de l’algorithme de clé publique RSA. PKCS #1 v1.5 et v2.0
BCRYPT_RSA_SIGN_ALG_HANDLE
0x00000311
Handle de l’algorithme de signature RSA. Cet algorithme n’est actuellement pas pris en charge. Vous pouvez utiliser l’algorithme BCRYPT_RSA_ALG_HANDLE pour effectuer des opérations de signature RSA. PKCS #1 v1.5 et v2.0.

Bloquer le chiffrement et les algorithmes de code d’authentification de message basés sur le chiffrement

Constante Descriptif Standards
BCRYPT_AES_CMAC_ALG_HANDLE
0x00000101
Handle pour l’algorithme de chiffrement symétrique CMAC (Advanced Encryption Standard) basé sur le chiffrement basé sur les messages (AES). SP 800-38B
BCRYPT_AES_GMAC_ALG_HANDLE
0x00000111
Handle pour l’algorithme de chiffrement symétrique AES (Advanced Encryption Standard) Galois (GMAC). SP800-38D
BCRYPT_3DES_CBC_ALG_HANDLE
0x00000141
Handle pour l’algorithme Triple Data Encryption Standard à l’aide du mode de chaînage de blocs de chiffrement (CBC). SP 800-67, SP 800-38A
BCRYPT_3DES_ECB_ALG_HANDLE
0x00000151
Handle pour l’algorithme triple Data Encryption Standard à l’aide du mode Codebook électronique (BCE). SP 800-67, SP 800-38A
BCRYPT_3DES_CFB_ALG_HANDLE
0x00000161
Handle pour l’algorithme triple Data Encryption Standard à l’aide du mode de commentaires de chiffrement (CFB). SP 800-67, SP 800-38A
BCRYPT_3DES_112_CBC_ALG_HANDLE
0x00000171
Handle pour l’algorithme standard de chiffrement de données triple 112 bits à l’aide du mode de chaînage de blocs de chiffrement (CBC). SP 800-67, SP 800-38A
BCRYPT_3DES_112_ECB_ALG_HANDLE
0x00000181
Handle pour l’algorithme 112 bits triple Data Encryption Standard à l’aide du mode Codebook électronique (BCE). SP 800-67, SP 800-38A
BCRYPT_3DES_112_CFB_ALG_HANDLE
0x00000191
Handle pour l’algorithme standard de chiffrement de données triple 112 bits à l’aide du mode de commentaires de chiffrement (CFB). SP 800-67, SP 800-38A
BCRYPT_AES_CBC_ALG_HANDLE
0x000001A1
Handle pour l’algorithme AES (Advanced Encryption Standard) à l’aide du mode de chaînage de blocs de chiffrement (CBC). FIPS 197
BCRYPT_AES_ECB_ALG_HANDLE
0x000001B1
Handle pour l’algorithme AES (Advanced Encryption Standard) à l’aide du mode de codebook électronique (BCE). FIPS 197
BCRYPT_AES_CFB_ALG_HANDLE
0x000001C1
Handle pour l’algorithme AES (Advanced Encryption Standard) à l’aide du mode de commentaires de chiffrement (CFB). FIPS 197
BCRYPT_AES_CCM_ALG_HANDLE
0x000001D1
Handle pour l’algorithme AES (Advanced Encryption Standard) à l’aide de Counter avec CBC-MAC Mode (CCM). FIPS 197
BCRYPT_AES_GCM_ALG_HANDLE
0x000001E1
Handle pour l’algorithme AES (Advanced Encryption Standard) à l’aide de Galois Counter Mode (GCM). FIPS 197
BCRYPT_DES_CBC_ALG_HANDLE
0x000001F1
Handle pour l’algorithme DES (Data Encryption Standard) à l’aide du mode de chaînage de blocs de chiffrement (GCM). FIPS 46-3, FIPS 81
BCRYPT_DES_ECB_ALG_HANDLE
0x00000201
Handle pour l’algorithme DATA Encryption Standard (DES) à l’aide du mode De codebook électronique (BCE). FIPS 46-3, FIPS 81
BCRYPT_DES_CFB_ALG_HANDLE
0x00000211
Handle pour l’algorithme DES (Data Encryption Standard) à l’aide du mode de commentaires de chiffrement (CFB). FIPS 46-3, FIPS 81

Remarques

Vous pouvez utiliser ces handles dans n’importe quelle situation nécessitant un handle d’algorithme. Toutefois, tout appel à BCryptSetProperty échoue car le handle d’algorithme est partagé et ne peut pas être modifié. En outre, ces handles ne peuvent pas être utilisés en IRQL=DISPATCH mode noyau.