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 位密钥。