CNG 算法标识符

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

常量/值 说明
BCRYPT_3DES_ALGORITHM
“3DES”
三重数据加密标准对称加密算法。
标准:SP800-67、SP800-38A
BCRYPT_3DES_112_ALGORITHM
“3DES_112”
112 位三重数据加密标准对称加密算法。
标准:SP800-67、SP800-38A
BCRYPT_AES_ALGORITHM
“AES”
高级加密标准对称加密算法。
标准:FIPS 197
BCRYPT_AES_CMAC_ALGORITHM
“AES-CMAC”
高级加密标准 (AES) 基于密码的消息身份验证代码 (CMAC) 对称加密算法。
标准:SP 800-38B
Windows 8: 开始支持此算法。

BCRYPT_AES_GMAC_ALGORITHM
“AES-GMAC”
高级加密标准 (AES) Galois 消息身份验证代码 (GMAC) 对称加密算法。
标准:SP800-38D
Windows Vista: 从 Windows Vista SP1 开始支持此算法。
BCRYPT_CAPI_KDF_ALGORITHM
L“CAPI_KDF”
加密 API (CAPI) 密钥派生函数算法。 由 BCryptKeyDerivationNCryptKeyDerivation 函数使用
BCRYPT_DES_ALGORITHM
“DES”
数据加密标准对称加密算法。
标准:FIPS 46-3、FIPS 81
BCRYPT_DESX_ALGORITHM
“DESX”
扩展数据加密标准对称加密算法。
标准:无
BCRYPT_DH_ALGORITHM
“DH”
Diffie-Hellman 密钥交换算法。
标准:PKCS #3
BCRYPT_DSA_ALGORITHM
“DSA”
数字签名算法。
标准:FIPS 186-2
Windows 8: 从 Windows 8 开始,此算法支持 FIPS 186-3。 小于或等于 1024 位的密钥遵循 FIPS 186-2,大于 1024 的密钥遵循 FIPS 186-3。
BCRYPT_ECDH_P256_ALGORITHM
“ECDH_P256”
256 位素椭圆曲线 Diffie-Hellman 密钥交换算法。
标准:SP800-56A
BCRYPT_ECDH_P384_ALGORITHM
“ECDH_P384”
384 位素椭圆曲线 Diffie-Hellman 密钥交换算法。
标准:SP800-56A
BCRYPT_ECDH_P521_ALGORITHM
“ECDH_P521”
521 位素椭圆曲线 Diffie-Hellman 密钥交换算法。
标准:SP800-56A
BCRYPT_ECDSA_P256_ALGORITHM
“ECDSA_P256”
256 位素椭圆曲线数字签名算法 (FIPS 186-2) 。
标准:FIPS 186-2、X9.62
BCRYPT_ECDSA_P384_ALGORITHM
“ECDSA_P384”
384 位原点椭圆曲线数字签名算法 (FIPS 186-2) 。
标准:FIPS 186-2、X9.62
BCRYPT_ECDSA_P521_ALGORITHM
“ECDSA_P521”
521 位素椭圆曲线数字签名算法 (FIPS 186-2) 。
标准:FIPS 186-2、X9.62
BCRYPT_MD2_ALGORITHM
“MD2”
MD2 哈希算法。
标准:RFC 1319
BCRYPT_MD4_ALGORITHM
“MD4”
MD4 哈希算法。
标准:RFC 1320
BCRYPT_MD5_ALGORITHM
“MD5”
MD5 哈希算法。
标准:RFC 1321
BCRYPT_RC2_ALGORITHM
“RC2”
RC2 块对称加密算法。
标准:RFC 2268
BCRYPT_RC4_ALGORITHM
“RC4”
RC4 对称加密算法。
标准:各种
BCRYPT_RNG_ALGORITHM
“RNG”
随机数生成器算法。
标准:FIPS 186-2、FIPS 140-2、NIST SP 800-90
注意: 从 SP1 和 Windows Server 2008 的 Windows Vista 开始,随机数生成器基于 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
“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
“FIPS186DSARNG”
适用于 DSA (数字签名算法) 的随机数生成器算法。
标准:FIPS 186-2。
Windows 8: 开始支持 FIPS 186-3。
BCRYPT_RSA_ALGORITHM
“RSA”
RSA 公钥算法。
标准:PKCS #1 v1.5 和 v2.0。
BCRYPT_RSA_SIGN_ALGORITHM
“RSA_SIGN”
RSA 签名算法。 当前不支持此算法。 可以使用 BCRYPT_RSA_ALGORITHM 算法执行 RSA 签名操作。
标准:PKCS #1 v1.5 和 v2.0。
BCRYPT_SHA1_ALGORITHM
“SHA1”
160 位安全哈希算法。
标准:FIPS 180-2、FIPS 198。
BCRYPT_SHA256_ALGORITHM
“SHA256”
256 位安全哈希算法。
标准:FIPS 180-2、FIPS 198。
BCRYPT_SHA384_ALGORITHM
“SHA384”
384 位安全哈希算法。
标准:FIPS 180-2、FIPS 198。
BCRYPT_SHA512_ALGORITHM
“SHA512”
512 位安全哈希算法。
标准:FIPS 180-2、FIPS 198。
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_ECDSA_ALGORITHM
“ECDSA”
泛型质椭圆曲线数字签名算法 (请参阅 备注 ,了解) 的详细信息。
标准:ANSI X9.62。
BCRYPT_ECDH_ALGORITHM
“ECDH”
泛型质椭圆曲线 Diffie-Hellman 密钥交换算法 (有关详细信息) ,请参阅 备注
标准:SP800-56A。
BCRYPT_XTS_AES_ALGORITHM
“XTS-AES”
XTS 模式下的高级加密标准对称加密算法。
标准:SP-800-38E,IEEE 标准 1619-2007。
Windows 10:开始支持此算法。

注解

若要使用 BCRYPT_ECDSA_ALGORITMBCRYPT_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 [仅限桌面应用]
Header
Bcrypt.h

请参阅

BCryptOpenAlgorithmProvider

NCryptCreatePersistedKey