已经定义了许多提供者类型。下表列出了这些提供者类型,以及每种类型必须支持的算法。给定类型的CSP除了列出的CSP之外,还可以自由地支持其他算法。
提供者类型 | 主要交易所 | 签名 | 加密 | 哈希 |
PROV_RSA_FULL | RSA | RSA | RC2, RC4 | MD5, SHA |
PROV_RSA_SIG | n/a | RSA | n/a | MD5, SHA |
PROV_DSS | n/a | DSS | n/a | SHA |
PROV_FORTEZZA | KEA | DSS | 飞鱼 | SHA |
PROV_MS_EXCHANGE | RSA | RSA | CAST | MD5 |
PROV_SSL | RSA | RSA | 变化 | 变化 |
如果两个或多个应用程序计划交换密钥和加密消息,则它们都应使用相同类型的CSP,但是一些CSP类型可能与其他CSP类型部分兼容。
编写自定义CSP的任何人都可以定义新的提供者类型。然而,这个人然后负责将新的提供者类型分发给任何使用它的应用程序的作者。
如果上表提到的算法不熟悉,下表简要说明了各种算法。
算法 | 描述 |
CAST | 这是一个由C开发的64位对称块密码M.亚当斯和S.E.塔瓦雷斯。该算法有点类似于DES(数据加密标准)。 |
DES | 国家标准技术研究所(NIST)数据加密标准。这是一个具有56位固定密钥长度的64位对称块密码。 |
DH | Diffie-Hellman.这是一种用于安全密钥交换的公钥算法。它不能用于数据加密。 |
DSS | 数字签名标准。该标准使用数字签名算法(DSA),它是用于生成数字签名的公钥密码。它不能用于数据加密。 |
KEA | 密钥交换算法这是Diffie-Hellman的改进版本。 |
MD2 | MD2.这是一个产生128位哈希值的散列算法。 |
MD4 | MD4.这是一个产生128位哈希值的散列算法。 |
MD5 | MD5.这是MD4的改进版本。它还产生128位哈希值。 |
RC2 | RC2块密码。这是一个64位的对称块密码。 |
RC4 | RC4流密码。这是一个对称流密码。 |
RSA | RSA公钥密码。这是用于加密和签名的流行公钥密码。 |
SHA | 安全哈希算法。这是一个产生160位哈希值的散列算法。 |
飞鱼 | 这是Clipper和Capstone芯片使用的算法。它是具有80位固定密钥长度的对称块密码。 |