System.Security.Cryptography.RandomNumberGenerator是否使用TPM的RNG?

时间:2015-02-17 05:44:15

标签: .net security random

如果TPM已安装且处于活动状态,System.Security.Cryptography.RandomNumberGenerator是否会使用TPM的RNG?

1 个答案:

答案 0 :(得分:2)

RandomNumberGenerator类只是一个抽象类,它创建了一种与随机数生成器交互(即编程)的标准方法。如果要使用特定的随机数生成器(RNG),例如TPM中的随机数生成器,则需要查阅TPM附带的文档和/或库。

如果TPM提供加密服务提供程序(CSP),则使用RNGCryptoServiceProvider参数实例化CspParameters可以指定要使用的CSP(以及TPM提供的RNG)。例如:

// Find in HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider Types
int providerType; 
// Find in HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider
string providerName;

CspParameters cspParameters = new CspParameters(providerType, providerName);
RNGCryptoServiceProvder = new RNGCryptoServiceProvider(cspParameters);