Поделиться через


Псевдо-дескриптор алгоритма CNG

Начиная с Windows 10, CNG (API шифрования: следующее поколение) предоставляет предварительно определенные алгоритмы для криптографических операций. Этот алгоритм упрощает разработку, устраняя необходимость вручную создавать дескриптора для распространенных алгоритмов шифрования, включая хэш-функции, алгоритмы шифрования, цифровые подписи и функции вывода ключей.

Алгоритмы хэш-проверки подлинности и кода проверки подлинности сообщений (MAC)

Постоянный Описание Стандарты
BCRYPT_MD2_ALG_HANDLE
0x00000001
Дескриптор хэш-алгоритма MD2. RFC 1319
BCRYPT_MD4_ALG_HANDLE
0x00000011
Дескриптор хэш-алгоритма MD4. RFC 1320
BCRYPT_MD5_ALG_HANDLE
0x00000021
Дескриптор хэш-алгоритма MD5. RFC 1321
BCRYPT_SHA1_ALG_HANDLE
0x00000031
Дескриптор для 160-разрядного алгоритма безопасного хэша. FIPS 180-4
BCRYPT_SHA256_ALG_HANDLE
0x00000041
Дескриптор для 256-разрядного алгоритма безопасного хэша. FIPS 180-4
BCRYPT_SHA384_ALG_HANDLE
0x00000051
Дескриптор для 384-разрядного алгоритма безопасного хэша. FIPS 180-4
BCRYPT_SHA512_ALG_HANDLE
0x00000061
Дескриптор для 512-разрядного хэш-алгоритма. FIPS 180-4
BCRYPT_HMAC_SHA1_ALG_HANDLE
0x000000A1
Дескриптор для кода проверки подлинности на основе хэша на основе хэша с помощью 160-разрядного алгоритма безопасного хэша. FIPS 180-4, FIPS 198-1
BCRYPT_HMAC_SHA256_ALG_HANDLE
0x000000B1
Дескриптор для кода проверки подлинности на основе хэша на основе хэша с помощью 256-разрядного алгоритма безопасного хэша. FIPS 180-4, FIPS 198-1
BCRYPT_HMAC_SHA384_ALG_HANDLE
0x000000C1
Дескриптор для кода проверки подлинности на основе хэша на основе хэша с помощью 384-разрядного алгоритма безопасного хэша. FIPS 180-4, FIPS 198-1
BCRYPT_HMAC_SHA512_ALG_HANDLE
0x000000D1
Дескриптор для кода проверки подлинности на основе хэша на основе хэша с помощью 512-разрядного алгоритма безопасного хэша. FIPS 180-4, FIPS 198-1
BCRYPT_HMAC_MD2_ALG_HANDLE
0x00000121
Дескриптор для кода проверки подлинности на основе хэша сообщений с помощью алгоритма хэша MD2. RFC 1319, RFC 2104
BCRYPT_HMAC_MD4_ALG_HANDLE
0x00000131
Дескриптор для кода проверки подлинности на основе хэша сообщений с помощью алгоритма хэша MD4. RFC 1320, RFC 2104
BCRYPT_HMAC_MD5_ALG_HANDLE
0x00000091
Дескриптор для кода проверки подлинности на основе хэша сообщений с помощью алгоритма хэша MD4. RFC 1321, RFC 2104
Доступно в Windows 11 версии 23H2
BCRYPT_SHA3_256_ALG_HANDLE
0x000003B1
Дескриптор алгоритма хэша SHA3 256-разрядной защиты. FIPS 202
BCRYPT_SHA3_384_ALG_HANDLE
0x000003C1
Дескриптор для алгоритма хэша SHA3 384-разрядной защиты. FIPS 202
BCRYPT_SHA3_512_ALG_HANDLE
0x000003D1
Дескриптор для алгоритма хэша SHA3 512-разрядной защиты. FIPS 202
BCRYPT_HMAC_SHA3_256_ALG_HANDLE
0x000003E1
Дескриптор для кода проверки подлинности на основе хэша на основе хэша с помощью алгоритма хэша SHA3 256-разрядной версии. FIPS 202, FIPS 198-1
BCRYPT_HMAC_SHA3_384_ALG_HANDLE
0x000003F1
Дескриптор для кода проверки подлинности на основе хэша на основе хэша с помощью алгоритма хэша SHA3 384-разрядной версии. FIPS 202, FIPS 198-1
BCRYPT_HMAC_SHA3_512_ALG_HANDLE
0x00000401
Дескриптор для кода проверки подлинности на основе хэша на основе хэша с помощью алгоритма хэша SHA3 512-разрядного хэша. FIPS 202, FIPS 198-1
BCRYPT_CSHAKE128_ALG_HANDLE
0x00000411
Дескриптор хэш-алгоритма sha3, производный от CSHAKE 128-разрядной (расширяемой выходной функции). SP 800-185
BCRYPT_CSHAKE256_ALG_HANDLE
0x00000421
Дескриптор хэш-алгоритма хэша SHA3, производный от CSHAKE 256-разрядной (расширяемой выходной функции). SP 800-185
BCRYPT_KMAC128_ALG_HANDLE
0x00000431
Дескриптор для производного кода проверки подлинности сообщений Keccak (KMAC), созданного на основе cSHAKE128. SP 800-185
BCRYPT_KMAC256_ALG_HANDLE
0x00000441
Дескриптор для производного кода проверки подлинности сообщений Keccak (KMAC), созданного на основе cSHAKE256. SP 800-185

Алгоритмы цифровой подписи PQ

Замечание

Дескриптор PQDSA в этом разделе относится к предварительному продукту, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь. Функция, описанная в этом разделе, доступна в предварительной версии предварительной версии Предварительной версии Windows.

Постоянный Описание Стандарты
BCRYPT_LMS_ALG_HANDLE Дескриптор алгоритма подписи Leighton-Micali Hash-Based (LMS). RFC 8554
BCRYPT_MLDSA_ALG_HANDLE Дескриптор алгоритма цифровой подписи модуляLattice-Based (ML-DSA). FIPS 204
BCRYPT_SLHDSA_ALG_HANDLE Дескриптор алгоритма цифровой подписи без отслеживания состояния (SLH-DSA). FIPS 205
BCRYPT_XMSS_ALG_HANDLE Дескриптор алгоритма хэш-хэша с отслеживанием состояния в схеме eXtended Merkle Signature Scheme (XMSS). RFC 8391

Алгоритмы шифров потоковой передачи

Постоянный Описание Стандарты
BCRYPT_RC4_ALG_HANDLE
0x00000071
Дескриптор алгоритма шифра потока RC4. Разное

Алгоритмы генератора случайных чисел

Постоянный Описание Стандарты
BCRYPT_RNG_ALG_HANDLE
0x00000081
Дескриптор алгоритма генератора случайных чисел. Начиная с Windows 10: Используемый алгоритм RNG — это AES CTR_DRBG, определенный в пакете обновления 800-90A.

Алгоритмы функции производных ключей (KDF)

Постоянный Описание
BCRYPT_CAPI_KDF_ALG_HANDLE
0x00000321
Дескриптор алгоритма функции вывода ключей API шифрования (CAPI). Используется функциями BCryptKeyDerivation и NCryptKeyDerivation .
BCRYPT_PBKDF2_ALG_HANDLE
0x00000331
Дескриптор функции производного ключа на основе паролей 2 (PBKDF2). Используется функциями BCryptKeyDerivation и NCryptKeyDerivation .
BCRYPT_SP800108_CTR_HMAC_ALG_HANDLE
0x00000341
Дескриптор режима счетчика, хэш-код проверки подлинности сообщений (HMAC) алгоритм функции вывода ключей. Используется функциями BCryptKeyDerivation и NCryptKeyDerivation .
BCRYPT_SP80056A_CONCAT_ALG_HANDLE
0x00000351
Дескриптор функции извлечения ключей SP800-56A. Используется функциями BCryptKeyDerivation и NCryptKeyDerivation .
BCRYPT_HKDF_ALG_HANDLE
0x00000391
Дескриптор функции извлечения и расширения ключа на основе HMAC. Используется функциями BCryptKeyDerivation и NCryptKeyDerivation .

Алгоритмы механизма инкапсуляции ключей (KEM)

Замечание

ML-KEM дескриптор в этом разделе относится к предварительному продукту, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь. Функция, описанная в этом разделе, доступна в предварительной версии предварительной версии Предварительной версии Windows.

Постоянный Описание Стандарты
BCRYPT_MLKEM_ALG_HANDLE Дескриптор алгоритмаLattice-Based инкапсуляции ключа (ML-KEM) модуля. FIPS 203

Асимметричные алгоритмы

Постоянный Описание Стандарты
BCRYPT_DH_ALG_HANDLE
0x00000281
Дескриптор алгоритма обмена ключами Diffie-Hellman. PKCS #3
BCRYPT_DSA_ALG_HANDLE
0x000002D1
Дескриптор алгоритма цифровой подписи (DSA). FIPS 186-2
Начиная с Windows 8: Этот алгоритм поддерживает FIPS 186-3. Ключи меньше или равно 1024 битам соответствуют FIPS 186-2 и ключам больше 1024 до FIPS 186-3.
BCRYPT_ECDH_ALG_HANDLE
0x00000291
Дескриптор универсальной эллиптической кривой Diffie-Hellman алгоритм обмена ключами. SP 800-56A
BCRYPT_ECDH_P256_ALG_HANDLE
0x000002A1
Дескриптор 256-разрядной основной эллиптической кривой Diffie-Hellman алгоритме обмена ключами. SP 800-56A
BCRYPT_ECDH_P384_ALG_HANDLE
0x000002B1
Дескриптор 384-разрядной эллиптической кривой Diffie-Hellman алгоритме обмена ключами. SP 800-56A
BCRYPT_ECDH_P521_ALG_HANDLE
0x000002C1
Дескриптор 521-разрядной эллиптической кривой Diffie-Hellman алгоритме обмена ключами. SP 800-56A
BCRYPT_ECDSA_ALG_HANDLE
0x000000F1
Дескриптор универсального алгоритма цифровой подписи с многоточием. ANSI X9.62
BCRYPT_ECDSA_P256_ALG_HANDLE
0x000002E1
Дескриптор 256-разрядной эллиптической кривой цифровой подписи. FIPS 186-2, X9.62
BCRYPT_ECDSA_P384_ALG_HANDLE
0x000002F1
Дескриптор 384-разрядной эллиптической кривой цифровой подписи. FIPS 186-2, X9.62
BCRYPT_ECDSA_P521_ALG_HANDLE
0x00000301
Дескриптор 521-разрядной эллиптической кривой цифровой подписи. FIPS 186-2, X9.62
BCRYPT_RSA_ALG_HANDLE
0x000000E1
Дескриптор алгоритма открытого ключа RSA. PKCS #1 v1.5 и v2.0
BCRYPT_RSA_SIGN_ALG_HANDLE
0x00000311
Дескриптор алгоритма подписи RSA. Этот алгоритм в настоящее время не поддерживается. Для выполнения операций подписывания RSA можно использовать алгоритм BCRYPT_RSA_ALG_HANDLE. PKCS #1 v1.5 и v2.0.

Блокировать алгоритмы проверки подлинности сообщений на основе шифров и шифров

Постоянный Описание Стандарты
BCRYPT_AES_CMAC_ALG_HANDLE
0x00000101
Дескриптор для алгоритма симметричного шифрования на основе шифрования на основе AES (CMAC). SP 800-38B
BCRYPT_AES_GMAC_ALG_HANDLE
0x00000111
Дескриптор для алгоритма симметричного шифрования GMAC (AES) Galois. SP800-38D
BCRYPT_3DES_CBC_ALG_HANDLE
0x00000141
Дескриптор для тройного алгоритма шифрования данных уровня "Стандартный" с помощью режима цепочки блоков шифров (CBC). SP 800-67, SP 800-38A
BCRYPT_3DES_ECB_ALG_HANDLE
0x00000151
Дескриптор для тройного алгоритма шифрования данных уровня "Стандартный" с помощью режима электронной кодовой книги (ECB). SP 800-67, SP 800-38A
BCRYPT_3DES_CFB_ALG_HANDLE
0x00000161
Дескриптор для тройного алгоритма шифрования данных уровня "Стандартный" с помощью режима обратной связи шифров (CFB). SP 800-67, SP 800-38A
BCRYPT_3DES_112_CBC_ALG_HANDLE
0x00000171
Дескриптор для 112-разрядного стандартного алгоритма шифрования данных с использованием режима цепочки блоков шифров (CBC). SP 800-67, SP 800-38A
BCRYPT_3DES_112_ECB_ALG_HANDLE
0x00000181
Дескриптор для 112-разрядного стандартного алгоритма шифрования данных с использованием режима электронной кодовой книги (ECB). SP 800-67, SP 800-38A
BCRYPT_3DES_112_CFB_ALG_HANDLE
0x00000191
Дескриптор для 112-разрядного стандартного алгоритма шифрования данных с помощью режима обратной связи шифров (CFB). SP 800-67, SP 800-38A
BCRYPT_AES_CBC_ALG_HANDLE
0x000001A1
Дескриптор алгоритма расширенного шифрования (AES) с помощью режима цепочки блоков шифров (CBC). FIPS 197
BCRYPT_AES_ECB_ALG_HANDLE
0x000001B1
Дескриптор алгоритма расширенного шифрования (AES) с помощью режима электронных кодеков (ECB). FIPS 197
BCRYPT_AES_CFB_ALG_HANDLE
0x000001C1
Дескриптор алгоритма расширенного шифрования (AES) с помощью режима обратной связи шифров (CFB). FIPS 197
BCRYPT_AES_CCM_ALG_HANDLE
0x000001D1
Дескриптор алгоритма расширенного шифрования (AES) с помощью счетчика с режимом CBC-MAC (CCM). FIPS 197
BCRYPT_AES_GCM_ALG_HANDLE
0x000001E1
Дескриптор алгоритма расширенного шифрования (AES) с помощью режима счетчика Galois (GCM). FIPS 197
BCRYPT_DES_CBC_ALG_HANDLE
0x000001F1
Дескриптор алгоритма шифрования данных (DES) с помощью режима цепочки блоков шифров (GCM). FIPS 46-3, FIPS 81
BCRYPT_DES_ECB_ALG_HANDLE
0x00000201
Дескриптор алгоритма шифрования данных (DES) с помощью режима электронной кодовой книги (ECB). FIPS 46-3, FIPS 81
BCRYPT_DES_CFB_ALG_HANDLE
0x00000211
Дескриптор алгоритма шифрования данных (DES) с помощью режима обратной связи шифров (CFB). FIPS 46-3, FIPS 81

Замечания

Эти дескриптора можно использовать в любой ситуации, требующей дескриптора алгоритма. Однако любой вызов BCryptSetProperty завершается ошибкой, так как дескриптор алгоритма является общим и не может быть изменен. Кроме того, эти дескриптора нельзя использовать в IRQL=DISPATCH режиме ядра.