相关疑难解决方法(0)

随机数生成器安全性:BCryptGenRandom 与 RNGCryptoServiceProvider

对于那些赶时间,这是相关的争议Dual_EC_DRBG埋下NIST的SP800-90A内。

关于两个RNG:

  1. Microsoft BCRYPT 层基于他们的 C API。BCryptGenRandom遵循 NIST SP800-90A CTR_DRBG(即使用经批准的分组密码 AES 来创建随机位)。但是,尚不清楚它是否使用硬件随机源作为种子(或种子的一部分)......

  2. Microsoft .NETRNGCryptoServiceProvider是基于 C# 的。查看.NET 源代码(或此处),我看到它最终调用了 C++ 方法CapiNative.GenerateRandomBytes()。C#=>C++ 转换应该有一个 P/Invoke 存根,但我在框架源代码中的任何地方都找不到它。所以我不知道它是如何实际实施的。

有没有人有关于这两个随机数生成器的其他信息?是否使用 HW 随机种子(通过旧英特尔中的二极管噪声或RDRAND最新英特尔中的争议)。

PS:不确定这应该在安全、StackOverflow 或密码学...

.net c# security random cryptography

4
推荐指数
1
解决办法
5268
查看次数

标签 统计

.net ×1

c# ×1

cryptography ×1

random ×1

security ×1