【问题标题】:Degree of randomness in entropy and true randomness熵和真随机性的随机性程度
【发布时间】:2018-06-16 22:07:41
【问题描述】:

当谈到真正的随机数真正的随机数是如何时,我发现了不同的答案。

假设我们想要一个用于密码学的随机数。如果我们从鼠标移动和其他来源收集熵;这不是真正的随机数据吗?怎么可能预测或重新创建这些来源产生的熵(除非有人在此设备上进行间谍活动)?

另一个例子是测量辐射并将其转化为熵。算法可以提取数据流的随机性,但它们真的可以预测在特定熵收集实例中发生的确切辐射模式吗?

是产生的熵太少的问题,密码函数可以通过暴力破解吗?

【问题讨论】:

    标签: random cryptography terminology entropy


    【解决方案1】:

    是熵产生太少的问题,而 密码功能可以通过暴力破解吗?

    如果你使用strong加密正确并提供随机数没有问题。任何加密都可以通过暴力破解来逆转,这是默认情况。良好加密的直接蛮力平均长达数万亿年,因此我们基本上将其视为牢不可破。算法、其使用或随机数质量的弱点使得攻击者能够比暴力破解更快地反向加密。

    如果我们从鼠标移动和其他来源收集熵;这是 不是真正的随机数据?一个人怎么可能预测或重建 这些来源产生的熵(除非有人在监视这个 设备)?

    作为一个稍微做作的例子:我们从鼠标位置数据的最后一位收集随机性。一些制造商使用支持全 32 位精度的昂贵鼠标控制器,但其他制造商使用更便宜的低分辨率控制器,为我们提供 24 个有效位,最后 8 位始终为零。

    另一个例子是测量辐射并将其转化为熵。

    现在这是一个更好的例子,这就是 真实 随机性的来源。据我所知,真正的随机性是指数据,它是一个过程的结果,被认为是是完全不可预测的。鼠标运动是由肌肉收缩引起的,这是可以预测的(鉴于您体内的大量原子信息,这些信息无法收集或处理)。放射性衰变是量子过程的结果,无论我们拥有多少数据或处理能力,它本质上是不可预测的。

    这是一个弱 RNG 破坏良好加密的真实示例:您的操作系统实现了 CSPRNG(加密安全伪随机数生成器)。它通常从网络数据包的时间、硬盘寻道时间、按键和鼠标移动等方面获得随机性。现在让我们想象一下带有 SSD 的服务器,它刚刚启动并且必须生成加密密钥。它没有任何网络流量,也没有连接键盘或鼠标。现在情况很糟糕,CSPRNG 可能会输出可猜测的随机数。

    有很多(有点缺陷的)方法可以防止这种情况发生,包括在关机时存储 CSPRNG 的最后状态并在启动时重新加载它,使用处理器本身的温度传感器来获取一些热熵,或者 CSPRNG 不返回随机数,直到它从其来源中获得足够的熵。

    老实说,随机数很少会导致失败,大多数是由于错误地使用了密码算法或程序员使用了已知的弱算法,因此“不要编写自己的密码”是​​一句常见的谚语.

    【讨论】:

      猜你喜欢
      • 2019-09-19
      • 1970-01-01
      • 2012-12-14
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      • 2019-01-18
      相关资源
      最近更新 更多