Microsoft 增强型加密提供程序
Microsoft 增强型加密提供程序(称为增强型提供程序)支持与 Microsoft 基本加密提供程序(称为基本提供程序)相同的功能。 增强型提供程序通过更长的密钥和其他算法支持更强的安全性。 它可以与所有版本的 CryptoAPI 一起使用。
为了保持与早期提供程序版本的向后兼容性,Wincrypt.h 头文件中定义的提供程序名称保留版本 1.0 指定。 但是,此提供程序的版本 2.0 当前正在交付。 若要确定正在使用的提供程序的版本,请调用 CryptGetProvParam, 并将 dwParam 参数设置为 PP_VERSION。 如果返回0x0200,则使用版本 2.0。
值 | |
---|---|
提供程序类型 | PROV_RSA_FULL |
提供程序名称 | MS_ENHANCED_PROV |
下表突出显示了基本提供程序、强提供程序和增强提供程序之间的差异。 显示的密钥长度是默认密钥长度。
算法 | 基本提供程序密钥长度 | 强提供程序密钥长度 | 增强的提供程序密钥长度 |
---|---|---|---|
RSA 公钥签名算法 | 512 位 | 1,024 位 | 1,024 位 |
RSA 公钥交换算法 | 512 位 | 1,024 位 | 1,024 位 |
RC2 块加密算法 | 40 位 | 128 位 | 可以设置 128 位 Salt 长度。 |
RC4 流加密算法 | 40 位 | 128 位 | 可以设置 128 位 Salt 长度。 |
DES | 56 位 | 56 位 | 56 位 |
三重 DES (2 键) | 不支持 | 112 位 | 112 位 |
三重 DES (3 键) | 不支持 | 168 位 | 168 位 |
强提供程序和增强提供程序与基本提供程序向后兼容,不同之处在于提供程序只能生成默认 密钥长度的 RC2 或 RC4 密钥。 基本提供程序的默认长度为 40 位。 增强提供程序的默认长度为 128 位。 因此,增强型提供程序无法创建具有基本提供程序兼容密钥长度的密钥。 但是,增强型提供程序可以导入最多 128 位的 RC2 和 RC4 密钥。 因此,增强型提供程序可以导入和使用通过基本提供程序生成的 40 位密钥。