如果TPM已安装且处于活动状态,System.Security.Cryptography.RandomNumberGenerator是否会使用TPM的RNG?
答案 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);