CNG 算法标识符

以下标识符用于识别各种 CNG 函数和结构(例如 CRYPT_INTERFACE_REG 结构)中的标准加密算法。 第三方提供程序可能具有它们支持的其他算法。

常量/值 DESCRIPTION
BCRYPT_3DES_ALGORITHM
L“3DES”
三重数据加密标准对称加密算法。
标准:SP800-67、SP800-38A
BCRYPT_3DES_112_ALGORITHM
L“3DES_112”
112 位三元数据加密标准对称加密算法。
标准:SP800-67、SP800-38A
BCRYPT_AES_ALGORITHM
L“AES”
高级加密标准 (AES) 对称加密算法。
标准:FIPS 197
BCRYPT_AES_CMAC_ALGORITHM
L“AES-CMAC”
高级加密标准(AES)基于密码的消息身份验证代码(CMAC)对称加密算法。
标准:SP 800-38B
Windows 8: 开始对此算法的支持。
BCRYPT_AES_GMAC_ALGORITHM
L“AES-GMAC”
高级加密标准 (AES) Galois 消息身份验证代码 (GMAC) 对称加密算法。
标准:SP800-38D
Windows Vista: 从 Windows Vista SP1 开始,支持此算法。
BCRYPT_CAPI_KDF_ALGORITHM
L“CAPI_KDF”
加密 API (CAPI) 密钥派生函数算法。 由 BCryptKeyDerivationNCryptKeyDerivation 函数使用。
BCRYPT_CHACHA20_POLY1305_ALGORITHM
L“CHACHA20_POLY1305”
ChaCha20-Poly1305 AEAD 算法。
标准:RFC 8439
Windows 10: 开始支持此算法。
BCRYPT_CSHAKE128_ALGORITHM
L“CSHAKE128”
SHA3 派生的具有 128 位强度的可自定义 XOF。
标准:SP800-185。
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_CSHAKE256_ALGORITHM
L“CSHAKE256”
SHA3 派生的具有 256 位强度的可自定义 XOF。
标准:SP800-185。
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_DES_ALGORITHM
L“DES”
数据加密标准对称加密算法。
标准:FIPS 46-3、FIPS 81
BCRYPT_DESX_ALGORITHM
L“DESX”
扩展数据加密标准对称加密算法。
标准:无
BCRYPT_DH_ALGORITHM
L“DH”
Diffie-Hellman 密钥交换算法。
标准:PKCS #3
BCRYPT_DSA_ALGORITHM
L“DSA”
数字签名算法。
标准:FIPS 186-2
Windows 8: 从 Windows 8 开始,此算法支持 FIPS 186-3。 小于或等于 1024 位的键遵循 FIPS 186-2,密钥大于 1024 到 FIPS 186-3。
BCRYPT_ECDH_ALGORITHM
L“ECDH”
泛型黄金椭圆曲线 Diffie-Hellman 密钥交换算法(有关详细信息,请参阅 “备注 ”部分)。
标准:SP800-56A。
BCRYPT_ECDSA_ALGORITHM
L“ECDSA”
通用质椭圆曲线数字签名算法(有关详细信息,请参阅 “备注 ”部分)。
标准:ANSI X9.62。
BCRYPT_ECDH_P256_ALGORITHM
L“ECDH_P256”
256 位质椭圆曲线 Diffie-Hellman 密钥交换算法。
标准:SP800-56A
BCRYPT_ECDH_P384_ALGORITHM
L“ECDH_P384”
384 位质椭圆曲线 Diffie-Hellman 密钥交换算法。
标准:SP800-56A
BCRYPT_ECDH_P521_ALGORITHM
L“ECDH_P521”
521 位质椭圆曲线 Diffie-Hellman 密钥交换算法。
标准:SP800-56A
BCRYPT_ECDSA_P256_ALGORITHM
L“ECDSA_P256”
256 位质椭圆曲线数字签名算法(FIPS 186-2)。
标准:FIPS 186-2、X9.62
BCRYPT_ECDSA_P384_ALGORITHM
L“ECDSA_P384”
384 位质椭圆曲线数字签名算法(FIPS 186-2)。
标准:FIPS 186-2、X9.62
BCRYPT_ECDSA_P521_ALGORITHM
L“ECDSA_P521”
521 位质椭圆曲线数字签名算法(FIPS 186-2)。
标准:FIPS 186-2、X9.62
BCRYPT_HKDF_ALGORITHM
L“HKF”
基于 HMAC 的提取和扩展密钥派生函数。
标准:RFC 5869
Windows 10: 开始支持此算法。
BCRYPT_KMAC128_ALGORITHM
L“KMAC128”
基于CSHAKE128构建的 SHA3 派生 Keccak 消息身份验证代码 (KMAC)。
标准:SP800-185。
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_KMAC256_ALGORITHM
L“KMAC256”
基于CSHAKE256构建的 SHA3 派生 Keccak 消息身份验证代码 (KMAC)。
标准:SP800-185。
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_LMS_ALGORITHM
L“LMS”
Leighton-Micali Hash-Based 签名算法。 标准:RFC 8554。

注意: 此标识符是预发行产品的一部分,在商业发布之前可能会对其进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_MD2_ALGORITHM
L“MD2”
MD2 哈希算法。
标准:RFC 1319
BCRYPT_MD4_ALGORITHM
L“MD4”
MD4 哈希算法。
标准:RFC 1320
BCRYPT_MD5_ALGORITHM
L“MD5”
MD5 哈希算法。
标准:RFC 1321
BCRYPT_MLDSA_ALGORITHM
L“ML-DSA”
模块Lattice-Based 数字签名算法(ML-DSA)。
标准:FIPS 204。

注意: 此标识符是预发行产品的一部分,在商业发布之前可能会对其进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_MLKEM_ALGORITHM
L“ML-KEM”
模块Lattice-Based 密钥封装机制(ML-KEM)算法。
标准: FIPS 203

注意: 此标识符是预发行产品的一部分,在商业发布之前可能会对其进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_RC2_ALGORITHM
L“RC2”
RC2 对称加密算法。
标准:RFC 2268
BCRYPT_RC4_ALGORITHM
L“RC4”
RC4 对称加密算法。
标准:各种
BCRYPT_RNG_ALGORITHM
L“RNG”
随机数生成器算法。
标准:FIPS 186-2、FIPS 140-2、NIST SP 800-90
注意: 从 SP1 和 Windows Server 2008 开始,随机数生成器基于 NIST SP 800-90 标准中指定的 AES 计数器模式。
Windows Vista: 随机数生成器基于 FIPS 186-2 标准中指定的基于哈希的随机数生成器。
Windows 8: 从 Windows 8 开始,RNG 算法支持 FIPS 186-3。 小于或等于 1024 位的键遵循 FIPS 186-2,密钥大于 1024 到 FIPS 186-3。
BCRYPT_RNG_DUAL_EC_ALGORITHM
L“DUALECRNG”
双椭圆曲线随机数生成器算法。
标准:SP800-90。
Windows 8: 从 Windows 8 开始,EC RNG 算法支持 FIPS 186-3。 小于或等于 1024 位的键遵循 FIPS 186-2,密钥大于 1024 到 FIPS 186-3。
Windows 10: 从 Windows 10 开始,已删除双椭圆曲线随机数生成器算法。 此算法的现有用途将继续工作;但是,随机数生成器基于 NIST SP 800-90 标准中指定的 AES 计数器模式。 新代码应使用 BCRYPT_RNG_ALGORITHM,建议更改现有代码以使用 BCRYPT_RNG_ALGORITHM
BCRYPT_RNG_FIPS186_DSA_ALGORITHM
L“FIPS186DSARNG”
适用于 DSA(数字签名算法)的随机数生成器算法。
标准:FIPS 186-2。
Windows 8: FIPS 186-3 支持开始。
BCRYPT_RSA_ALGORITHM
L“RSA”
RSA 公钥算法。
标准:PKCS #1 v1.5 和 v2.0。
BCRYPT_RSA_SIGN_ALGORITHM
L“RSA_SIGN”
RSA 签名算法。 目前不支持此算法。 可以使用 BCRYPT_RSA_ALGORITHM 算法来执行 RSA 签名作。
标准:PKCS #1 v1.5 和 v2.0。
BCRYPT_SHA1_ALGORITHM
L“SHA1”
160 位安全哈希算法。
标准:FIPS 180-2、FIPS 198。
BCRYPT_SHA256_ALGORITHM
L“SHA256”
256 位安全哈希算法。
标准:FIPS 180-2、FIPS 198。
BCRYPT_SHA384_ALGORITHM
L“SHA384”
384 位安全哈希算法。
标准:FIPS 180-2、FIPS 198。
BCRYPT_SHA512_ALGORITHM
L“SHA512”
512 位安全哈希算法。
标准:FIPS 180-2、FIPS 198。
BCRYPT_SHA3_256_ALGORITHM
L“SHA3_256”
SHA3 256 位安全哈希算法。
标准:FIPS 202。
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_SHA3_384_ALGORITHM
L“SHA3_384”
SHA3 384 位安全哈希算法。
标准:FIPS 202。
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_SHA3_512_ALGORITHM
L“SHA3_512”
SHA3 512 位安全哈希算法。
标准:FIPS 202。
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_SHAKE128_ALGORITHM
L“SHAKE128”
具有 128 位强度的 SHA3 XOF。
标准:FIPS 202。

注意: 此标识符是预发行产品的一部分,在商业发布之前可能会对其进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_SHAKE256_ALGORITHM
L“SHAKE256”
具有 256 位强度的 SHA3 XOF。
标准:FIPS 202。

注意: 此标识符是预发行产品的一部分,在商业发布之前可能会对其进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_SLHDSA_ALGORITHM
L“SLH-DSA”
基于无状态哈希的数字签名算法(SLH-DSA)。
标准:FIPS 205。

注意: 此标识符是预发行产品的一部分,在商业发布之前可能会对其进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_SP800108_CTR_HMAC_ALGORITHM
L“SP800_108_CTR_HMAC”
计数器模式、基于哈希的消息身份验证代码(HMAC)密钥派生函数算法。 由 BCryptKeyDerivationNCryptKeyDerivation 函数使用。
BCRYPT_SP80056A_CONCAT_ALGORITHM
L“SP800_56A_CONCAT”
SP800-56A 密钥派生函数算法。 由 BCryptKeyDerivationNCryptKeyDerivation 函数使用。
BCRYPT_PBKDF2_ALGORITHM
L“PBKDF2”
基于密码的密钥派生函数 2 (PBKDF2) 算法。 由 BCryptKeyDerivationNCryptKeyDerivation 函数使用。
BCRYPT_XMSS_ALGORITHM
L“XMSS”
eXtended Merkle 签名方案 (XMSS) 基于状态哈希的签名算法。 XMSS 标准版:RFC 8391。

注意: 此标识符是预发行产品的一部分,在商业发布之前可能会对其进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_XTS_AES_ALGORITHM
L“XTS-AES”
XTS 模式下的高级加密标准 (AES) 对称加密算法。
标准:SP-800-38E、IEEE Std 1619-2007。
Windows 10: 开始支持此算法。

注解

若要使用BCRYPT_ECDSA_ALGORITHMBCRYPT_ECDH_ALGORITHM,请使用 BCRYPT_ECDSA_ALGORITHMBCRYPT_ECDH_ALGORITHM 作为 pszAlgId 调用 BCryptOpenAlgorithmProvider。 然后使用 BCryptSetPropertyBCRYPT_ECC_CURVE_NAME 属性设置为 CNG 命名曲线中列出的命名算法。

若要直接提供用户定义的椭圆曲线参数,请使用 BCryptSetProperty 设置 BCRYPT_ECC_PARAMETERS 属性。 有关详细信息,请下载 Windows 10 加密提供程序开发人员工具包(CPDK )。

要求

要求 价值
支持的最低客户端
Windows Vista [仅限桌面应用]
支持的最低服务器
Windows Server 2008 [仅限桌面应用]
标题
Bcrypt.h

BCryptOpenAlgorithmProvider

NCryptCreatePersistedKey

CNG 属性标识符

BCryptSetProperty