CNG 算法标识符

The following identifiers are used to identify standard encryption algorithms in various CNG functions and structures, such as the CRYPT_INTERFACE_REG structure. 第三方提供程序可能具有它们支持的其他算法。

Constant/value 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: Support for this algorithm begins.
BCRYPT_AES_GMAC_ALGORITHM
L"AES-GMAC"
高级加密标准 (AES) Galois 消息身份验证代码 (GMAC) 对称加密算法。
Standard: SP800-38D
Windows Vista: This algorithm is supported beginning with Windows Vista with SP1.
BCRYPT_CAPI_KDF_ALGORITHM
L"CAPI_KDF"
加密 API (CAPI) 密钥派生函数算法。 Used by the BCryptKeyDerivation and NCryptKeyDerivation functions.
BCRYPT_CHACHA20_POLY1305_ALGORITHM
L"CHACHA20_POLY1305"
ChaCha20-Poly1305 AEAD 算法。
标准:RFC 8439
Windows 10: Support for this algorithm begins.
BCRYPT_CSHAKE128_ALGORITHM
L"CSHAKE128"
SHA3 派生的具有 128 位强度的可自定义 XOF。
Standard: SP800-185.
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_CSHAKE256_ALGORITHM
L"CSHAKE256"
SHA3 派生的具有 256 位强度的可自定义 XOF。
Standard: SP800-185.
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_DES_ALGORITHM
L"DES"
数据加密标准对称加密算法。
标准:FIPS 46-3、FIPS 81
BCRYPT_DESX_ALGORITHM
L"DESX"
扩展数据加密标准对称加密算法。
Standard: None
BCRYPT_DH_ALGORITHM
L"DH"
Diffie-Hellman 密钥交换算法。
标准:PKCS #3
BCRYPT_DSA_ALGORITHM
L"DSA"
数字签名算法。
标准:FIPS 186-2
Windows 8: Beginning with Windows 8, this algorithm supports FIPS 186-3. 小于或等于 1024 位的键遵循 FIPS 186-2,密钥大于 1024 到 FIPS 186-3。
BCRYPT_ECDH_ALGORITHM
L"ECDH"
Generic prime elliptic curve Diffie-Hellman key exchange algorithm (see the Remarks section for more information).
Standard: SP800-56A.
BCRYPT_ECDSA_ALGORITHM
L"ECDSA"
Generic prime elliptic curve digital signature algorithm (see the Remarks section for more information).
标准:ANSI X9.62。
BCRYPT_ECDH_P256_ALGORITHM
L"ECDH_P256"
256 位质椭圆曲线 Diffie-Hellman 密钥交换算法。
Standard: SP800-56A
BCRYPT_ECDH_P384_ALGORITHM
L"ECDH_P384"
384 位质椭圆曲线 Diffie-Hellman 密钥交换算法。
Standard: SP800-56A
BCRYPT_ECDH_P521_ALGORITHM
L"ECDH_P521"
521 位质椭圆曲线 Diffie-Hellman 密钥交换算法。
Standard: 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"HKDF"
基于 HMAC 的提取和扩展密钥派生函数。
标准:RFC 5869
Windows 10: Support for this algorithm begins.
BCRYPT_KMAC128_ALGORITHM
L"KMAC128"
基于CSHAKE128构建的 SHA3 派生 Keccak 消息身份验证代码 (KMAC)。
Standard: SP800-185.
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_KMAC256_ALGORITHM
L"KMAC256"
基于CSHAKE256构建的 SHA3 派生 Keccak 消息身份验证代码 (KMAC)。
Standard: SP800-185.
Windows 11 版本 24H2: 开始支持此算法。
BCRYPT_LMS_ALGORITHM
L"LMS"
Leighton-Micali Hash-Based 签名算法。 标准:RFC 8554。

Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. 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。

Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_MLKEM_ALGORITHM
L"ML-KEM"
模块Lattice-Based 密钥封装机制(ML-KEM)算法。
Standard: FIPS 203.

Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_RC2_ALGORITHM
L"RC2"
RC2 对称加密算法。
标准:RFC 2268
BCRYPT_RC4_ALGORITHM
L"RC4"
RC4 对称加密算法。
Standard: Various
BCRYPT_RNG_ALGORITHM
L"RNG"
随机数生成器算法。
标准:FIPS 186-2、FIPS 140-2、NIST SP 800-90
Note: Beginning with Windows Vista with SP1 and Windows Server 2008, the random number generator is based on the AES counter mode specified in the NIST SP 800-90 standard.
Windows Vista: The random number generator is based on the hash-based random number generator specified in the FIPS 186-2 standard.
Windows 8: Beginning with Windows 8, the RNG algorithm supports FIPS 186-3. 小于或等于 1024 位的键遵循 FIPS 186-2,密钥大于 1024 到 FIPS 186-3。
BCRYPT_RNG_DUAL_EC_ALGORITHM
L"DUALECRNG"
双椭圆曲线随机数生成器算法。
Standard: SP800-90.
Windows 8: Beginning with Windows 8, the EC RNG algorithm supports FIPS 186-3. 小于或等于 1024 位的键遵循 FIPS 186-2,密钥大于 1024 到 FIPS 186-3。
Windows 10: Beginning with Windows 10, the dual elliptic curve random number generator algorithm has been removed. 此算法的现有用途将继续工作;但是,随机数生成器基于 NIST SP 800-90 标准中指定的 AES 计数器模式。 New code should use BCRYPT_RNG_ALGORITHM, and it is recommended that existing code be changed to use BCRYPT_RNG_ALGORITHM.
BCRYPT_RNG_FIPS186_DSA_ALGORITHM
L"FIPS186DSARNG"
适用于 DSA(数字签名算法)的随机数生成器算法。
标准:FIPS 186-2。
Windows 8: Support for FIPS 186-3 begins.
BCRYPT_RSA_ALGORITHM
L"RSA"
RSA 公钥算法。
标准:PKCS #1 v1.5 和 v2.0。
BCRYPT_RSA_SIGN_ALGORITHM
L"RSA_SIGN"
RSA 签名算法。 目前不支持此算法。 You can use the BCRYPT_RSA_ALGORITHM algorithm to perform RSA signing operations.
标准: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。

Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_SHAKE256_ALGORITHM
L"SHAKE256"
具有 256 位强度的 SHA3 XOF。
标准:FIPS 202。

Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_SLHDSA_ALGORITHM
L"SLH-DSA"
基于无状态哈希的数字签名算法(SLH-DSA)。
标准:FIPS 205。

Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_SP800108_CTR_HMAC_ALGORITHM
L"SP800_108_CTR_HMAC"
计数器模式、基于哈希的消息身份验证代码(HMAC)密钥派生函数算法。 Used by the BCryptKeyDerivation and NCryptKeyDerivation functions.
BCRYPT_SP80056A_CONCAT_ALGORITHM
L"SP800_56A_CONCAT"
SP800-56A 密钥派生函数算法。 Used by the BCryptKeyDerivation and NCryptKeyDerivation functions.
BCRYPT_PBKDF2_ALGORITHM
L"PBKDF2"
基于密码的密钥派生函数 2 (PBKDF2) 算法。 Used by the BCryptKeyDerivation and NCryptKeyDerivation functions.
BCRYPT_XMSS_ALGORITHM
L"XMSS"
eXtended Merkle 签名方案 (XMSS) 基于状态哈希的签名算法。 XMSS 标准版:RFC 8391。

Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft对此处提供的信息不作任何明示或暗示的保证。 该标识符在 Windows 预览体验成员预览版的预发行版本中可用。
BCRYPT_XTS_AES_ALGORITHM
L"XTS-AES"
XTS 模式下的高级加密标准 (AES) 对称加密算法。
标准:SP-800-38E、IEEE Std 1619-2007。
Windows 10: Support for this algorithm begins.

Remarks

To use BCRYPT_ECDSA_ALGORITHM or BCRYPT_ECDH_ALGORITHM, call BCryptOpenAlgorithmProvider with either BCRYPT_ECDSA_ALGORITHM or BCRYPT_ECDH_ALGORITHM as the pszAlgId. Then use BCryptSetProperty to set the BCRYPT_ECC_CURVE_NAME property to a named algorithm listed in CNG Named Curves.

To provide user-defined elliptic curve parameters directly, use BCryptSetProperty to set the BCRYPT_ECC_PARAMETERS property. 有关详细信息,请下载 Windows 10 加密提供程序开发人员工具包(CPDK )。

Requirements

Requirement Value
支持的最低客户端
Windows Vista [仅限桌面应用]
支持的最低服务器
Windows Server 2008 [仅限桌面应用]
Header
Bcrypt.h

BCryptOpenAlgorithmProvider

NCryptCreatePersistedKey

CNG 属性标识符

BCryptSetProperty