【问题标题】:RNG Distribution with multiple instances具有多个实例的 RNG 分发
【发布时间】:2022-01-13 17:41:17
【问题描述】:

如果我需要使用 RandomNumberGenerator 类生成随机 8 个字节,我可以使用单个实例生成所有 8 个字节,也可以使用 RandomNumberGenerator 的两个实例生成 8 个字节 - 第一个将生成 4 个字节和第二个将生成剩余的 4 个字节。问题是 - 如果我使用 RandomNumberGenerator 的两个实例,它会使 8 个字节中的任何一个比其他的更可能吗?它会是一个安全的生成器吗?

【问题讨论】:

  • RandomNumberGenerator 生成均匀分布独立(具有0相关性)随机值。这就是为什么拥有一台或多台发电机并不重要
  • 您是否尝试过运行这两个案例,可能每个 24 小时,并测试两个输出是否具有您期望的随机性?
  • 没有机器生成的随机序列是真正随机的。唯一真正的随机生成器是基于 Nature 的。理论上,如果您有一个真正的随机生成器,那么使用单个 8 位生成器或使用两个 4 位生成器来创建结果的概率应该没有区别。所以这可能是一个棘手的问题。
  • 我将尝试运行这两种情况并写下频率直方图

标签: c# asp.net .net random cryptography


【解决方案1】:

RandomNumberGenerator 是一种加密安全的随机生成器,因此使用一个实例生成两位应该与使用两个实例生成一位一样安全。

【讨论】:

  • 从技术上讲,没有任何证据表明任何 PRG 都是安全的。
  • 如果你在谈论数学,当然。 RandomNumberGenerator 确实说它用于“加密随机数生成器”。
  • 是的,这是正确的术语,即它用于加密目的,不像 crypto-secure random generator
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
相关资源
最近更新 更多