从 Windows 10 开始,CNG 为许多算法提供预定义的算法句柄。 在任何需要算法句柄的情况下,都可以使用这些句柄。
哈希和消息身份验证代码 (MAC) 算法
不断 | 描述 |
---|---|
BCRYPT_MD2_ALG_HANDLE | MD2 哈希算法的句柄。 标准:RFC 1319。 |
BCRYPT_MD4_ALG_HANDLE | MD4 哈希算法的句柄。 标准:RFC 1320。 |
BCRYPT_MD5_ALG_HANDLE | MD5 哈希算法的句柄。 标准:RFC 1321。 |
BCRYPT_SHA1_ALG_HANDLE | 160 位安全哈希算法的句柄。 标准:FIPS 180-2、FIPS 198。 |
BCRYPT_SHA256_ALG_HANDLE | 256 位安全哈希算法的句柄。 标准:FIPS 180-2、FIPS 198。 |
BCRYPT_SHA384_ALG_HANDLE | 384 位安全哈希算法的句柄。 标准:FIPS 180-2、FIPS 198。 |
BCRYPT_SHA512_ALG_HANDLE | 512 位安全哈希算法的句柄。 标准:FIPS 180-2、FIPS 198。 |
BCRYPT_SHA3_256_ALG_HANDLE | SHA3 256 位安全哈希算法的句柄。 标准:FIPS 202。 Windows 11 版本 24H2: 开始支持此算法。 |
BCRYPT_SHA3_384_ALG_HANDLE | SHA3 384 位安全哈希算法的句柄。 标准:FIPS 202。 Windows 11 版本 24H2: 开始支持此算法。 |
BCRYPT_SHA3_512_ALG_HANDLE | SHA3 512 位安全哈希算法的句柄。 标准:FIPS 202。 Windows 11 版本 24H2: 开始支持此算法。 |
BCRYPT_HMAC_MD2_ALG_HANDLE | 使用 MD2 哈希算法处理基于哈希的消息身份验证代码的句柄。 标准:RFC 2104、RFC 1319。 |
BCRYPT_HMAC_MD4_ALG_HANDLE | 使用 MD4 哈希算法处理基于哈希的消息身份验证代码的句柄。 标准:RFC 2104、RFC 1320。 |
BCRYPT_HMAC_MD5_ALG_HANDLE | 使用 MD4 哈希算法处理基于哈希的消息身份验证代码的句柄。 标准:RFC 2104、RFC 1321。 |
BCRYPT_HMAC_SHA1_ALG_HANDLE | 使用 160 位安全哈希算法处理基于哈希的消息身份验证代码的句柄。 标准:RFC 2014、FIPS 180-2、FIPS 198。 |
BCRYPT_HMAC_SHA256_ALG_HANDLE | 使用 256 位安全哈希算法处理基于哈希的消息身份验证代码的句柄。 标准:RFC 2014、FIPS 180-2、FIPS 198。 |
BCRYPT_HMAC_SHA384_ALG_HANDLE | 使用 384 位安全哈希算法处理基于哈希的消息身份验证代码的句柄。 标准:RFC 2014、FIPS 180-2、FIPS 198。 |
BCRYPT_HMAC_SHA512_ALG_HANDLE | 使用 512 位安全哈希算法处理基于哈希的消息身份验证代码的句柄。 标准:RFC 2014、FIPS 180-2、FIPS 198。 |
BCRYPT_HMAC_SHA3_256_ALG_HANDLE | 使用 SHA3 256 位安全哈希算法处理基于哈希的消息身份验证代码的句柄。 标准:RFC 2014、FIPS 202。 Windows 11 版本 24H2: 开始支持此算法。 |
BCRYPT_HMAC_SHA3_384_ALG_HANDLE | 使用 SHA3 384 位安全哈希算法处理基于哈希的消息身份验证代码的句柄。 标准:RFC 2014、FIPS 202。 Windows 11 版本 24H2: 开始支持此算法。 |
BCRYPT_HMAC_SHA3_512_ALG_HANDLE | 使用 SHA3 512 位安全哈希算法处理基于哈希的消息身份验证代码的句柄。 标准:RFC 2014、FIPS 202。 Windows 11 版本 24H2: 开始支持此算法。 |
BCRYPT_KMAC128_ALG_HANDLE | 基于CSHAKE128构建的 SHA3 派生 Keccak 消息身份验证代码(KMAC)的句柄。 标准:SP800-185。 Windows 11 版本 24H2: 开始支持此算法。 |
BCRYPT_KMAC256_ALG_HANDLE | 基于CSHAKE256构建的 SHA3 派生 Keccak 消息身份验证代码(KMAC)的句柄。 标准:SP800-185。 Windows 11 版本 24H2: 开始支持此算法。 |
PQ 数字签名算法
注释
本部分中的 PQDSA 句柄与预发行版产品相关,该产品在商业发布之前可能会进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。 本节中所述的功能在 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 签名方案 (XMSS) 有状态基于哈希的算法的句柄。 标准:RFC 8391。 |
流密码算法
不断 | 描述 |
---|---|
BCRYPT_RC4_ALG_HANDLE | RC4 流密码算法的句柄。 标准:各种。 |
随机数生成器算法
不断 | 描述 |
---|---|
BCRYPT_RNG_ALG_HANDLE | 随机数生成器算法的句柄。注意 从 SP1 和 Windows Server 2008 的 Windows Vista 开始,随机数生成器基于 NIST SP 800-90 标准中指定的 AES 计数器模式。 Windows Vista: 随机数生成器基于 FIPS 186-2 标准中指定的基于哈希的随机数生成器。 Windows 8: RNG 算法支持 FIPS 186-3。 小于或等于 1024 位的键遵循 FIPS 186-2,密钥大于 1024 到 FIPS 186-3。 |
BCRYPT_RNG_FIPS186_DSA_ALG_HANDLE | 适用于 DSA(数字签名算法)的随机数生成器算法的句柄。 标准:FIPS 186-2。 |
密钥派生函数 (KDF) 算法
不断 | 描述 |
---|---|
BCRYPT_CAPI_KDF_ALG_HANDLE | 加密 API (CAPI) 密钥派生函数算法的句柄。 由 BCryptKeyDerivation 和 NCryptKeyDerivation 函数使用。 |
BCRYPT_HKDF_ALG_HANDLE | 基于 HMAC 的提取和扩展密钥派生函数的句柄。 由 BCryptKeyDerivation 和 NCryptKeyDerivation 函数使用。 Windows 10: 开始支持此算法。 |
BCRYPT_PBKDF2_ALG_HANDLE | 基于密码的密钥派生函数 2 (PBKDF2) 算法的句柄。 由 BCryptKeyDerivation 和 NCryptKeyDerivation 函数使用。 |
BCRYPT_SP800108_CTR_HMAC_ALG_HANDLE | 计数器模式基于哈希的消息身份验证代码 (HMAC) 密钥派生函数算法的句柄。 由 BCryptKeyDerivation 和 NCryptKeyDerivation 函数使用。 |
BCRYPT_SP80056A_CONCAT_ALG_HANDLE | SP800-56A 密钥派生函数算法的句柄。 由 BCryptKeyDerivation 和 NCryptKeyDerivation 函数使用。 |
密钥封装机制 (KEM) 算法
注释
本部分中的 ML-KEM 句柄与预发行产品相关,该产品在商业发布之前可能会进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。 本节中所述的功能在 Windows 预览体验成员预览版的预发行版本中提供。
不断 | 描述 |
---|---|
BCRYPT_MLKEM_ALG_HANDLE | 模块Lattice-Based 密钥封装机制(ML-KEM)算法的句柄。 标准: FIPS 203。 |
非对称算法
不断 | 描述 |
---|---|
BCRYPT_DH_ALG_HANDLE | Diffie-Hellman 密钥交换算法的句柄。 标准:PKCS #3。 |
BCRYPT_DSA_ALG_HANDLE | 数字签名算法(DSA)数字签名算法的句柄。 标准:FIPS 186-2。 注意: 从 Windows 8 开始,此算法支持 FIPS 186-3。 小于或等于 1024 位的键遵循 FIPS 186-2,密钥大于 1024 到 FIPS 186-3。 |
BCRYPT_ECDH_ALG_HANDLE | 泛型质椭圆曲线的句柄 Diffie-Hellman 密钥交换算法。 标准:SP800-56A。 |
BCRYPT_ECDSA_ALG_HANDLE | 泛型质椭圆曲线数字签名算法的句柄。 标准:ANSI X9.62。 |
BCRYPT_ECDH_P256_ALG_HANDLE | 256 位质椭圆曲线的句柄 Diffie-Hellman 密钥交换算法。 标准:SP800-56A。 |
BCRYPT_ECDH_P384_ALG_HANDLE | 384 位质椭圆曲线的句柄 Diffie-Hellman 密钥交换算法。 标准:SP800-56A。 |
BCRYPT_ECDH_P521_ALG_HANDLE | 521 位质椭圆曲线的句柄 Diffie-Hellman 密钥交换算法。 标准:SP800-56A。 |
BCRYPT_ECDSA_P256_ALG_HANDLE | 256 位质椭圆曲线数字签名算法(FIPS 186-2)的句柄。 标准:FIPS 186-2、X9.62。 |
BCRYPT_ECDSA_P384_ALG_HANDLE | 384 位质椭圆曲线数字签名算法(FIPS 186-2)的句柄。 标准:FIPS 186-2、X9.62。 |
BCRYPT_ECDSA_P521_ALG_HANDLE | 521 位质椭圆曲线数字签名算法(FIPS 186-2)的句柄。 标准:FIPS 186-2、X9.62。 |
BCRYPT_RSA_ALG_HANDLE | RSA 公钥算法的句柄。 标准:PKCS #1 v1.5 和 v2.0。 |
BCRYPT_RSA_SIGN_ALG_HANDLE | RSA 签名算法的句柄。 目前不支持此算法。 可以使用 BCRYPT_RSA_ALG_HANDLE 算法来执行 RSA 签名作。 标准:PKCS #1 v1.5 和 v2.0。 |
阻止基于密码和基于密码的消息身份验证代码算法
不断 | 描述 |
---|---|
BCRYPT_3DES_CBC_ALG_HANDLE | 使用密码块链模式(CBC)的三重数据加密标准算法的句柄。 标准:SP800-67、SP800-38A。 |
BCRYPT_3DES_ECB_ALG_HANDLE | 使用电子食谱模式的三重数据加密标准算法的句柄(ECB)。 标准:SP800-67、SP800-38A。 |
BCRYPT_3DES_CFB_ALG_HANDLE | 使用密码反馈模式的三重数据加密标准算法的句柄(CFB)。 标准:SP800-67、SP800-38A。 |
BCRYPT_3DES_112_CBC_ALG_HANDLE | 使用密码块链模式 (CBC) 的 112 位三重数据加密标准算法的句柄。 标准:SP800-67、SP800-38A。 |
BCRYPT_3DES_112_CBC_ALG_HANDLE | 使用密码块链模式 (CBC) 的 112 位三重数据加密标准算法的句柄。 标准:SP800-67、SP800-38A。 |
BCRYPT_3DES_112_ECB_ALG_HANDLE | 使用电子食谱模式(ECB)的 112 位三重数据加密标准算法的句柄。 标准:SP800-67、SP800-38A。 |
BCRYPT_3DES_112_CFB_ALG_HANDLE | 使用密码反馈模式 (CFB) 的 112 位三重数据加密标准算法的句柄。 标准:SP800-67、SP800-38A。 |
BCRYPT_AES_CMAC_ALG_HANDLE | 高级加密标准 (AES) 基于密码的消息身份验证代码 (CMAC) 算法的句柄。 标准:SP800-38B。 |
BCRYPT_AES_CBC_ALG_HANDLE | 使用密码块链模式(CBC)的高级加密标准(AES)算法的句柄。 标准:FIPS 197。 |
BCRYPT_AES_ECB_ALG_HANDLE | 使用电子食谱模式(ECB)的高级加密标准(AES)算法的句柄。 标准:FIPS 197。 |
BCRYPT_AES_CFB_ALG_HANDLE | 使用密码反馈模式(CFB)的高级加密标准 (AES) 算法的句柄。 标准:FIPS 197。 |
BCRYPT_AES_CCM_ALG_HANDLE | 将计数器与 CBC-MAC 模式(CCM)配合使用的高级加密标准 (AES) 算法的句柄。 标准:FIPS 197。 |
BCRYPT_AES_GCM_ALG_HANDLE | 使用 Galois 计数器模式 (GCM) 的高级加密标准 (AES) 算法的句柄。 标准:FIPS 197。 |
BCRYPT_DES_CBC_ALG_HANDLE | 使用密码块链模式(GCM)的数据加密标准(DES)算法的句柄。 标准:FIPS 46-3、FIPS 81。 |
BCRYPT_DES_ECB_ALG_HANDLE | 使用电子食谱模式(ECB)的数据加密标准(DES)算法的句柄。 标准:FIPS 46-3、FIPS 81。 |
BCRYPT_DES_CFB_ALG_HANDLE | 使用密码反馈模式(CFB)的数据加密标准(DES)算法的句柄。 标准:FIPS 46-3、FIPS 81。 |
BCRYPT_AES_CMAC_ALG_HANDLE | 高级加密标准(AES)基于密码的消息身份验证代码(CMAC)对称加密算法的句柄。 标准:SP 800-38B。 |
BCRYPT_AES_GMAC_ALG_HANDLE | 高级加密标准 (AES) Galois 消息身份验证代码 (GMAC) 对称加密算法的句柄。 标准:SP800-38D。 |
BCRYPT_RC4_ALG_HANDLE | RC4 对称加密算法的句柄。 标准:各种。 |
言论
从 Windows 10 开始,CNG 为许多算法提供预定义的算法句柄。 在任何需要算法句柄的情况下,都可以使用这些句柄。 但是,当算法句柄共享且无法修改时,对 BCryptSetProperty 的任何调用都会失败。 此外,这些句柄不能在 IRQL=DISPATCH
内核模式下使用。