Random 熵的随机度和真实随机性

Random 熵的随机度和真实随机性,random,cryptography,terminology,entropy,Random,Cryptography,Terminology,Entropy,当谈到真正的随机数到底有多随机时,我发现了混合答案 假设我们想要一个用于密码学的随机数。如果我们从鼠标移动和其他来源收集熵;这不是真实的随机数据吗?人们怎么可能预测或再现这些来源产生的熵(除非有人在监视这个设备) 另一个例子是测量辐射并将其转化为熵。算法可以提取数据流的随机性,但它们真的能够预测在熵收集的特定实例中发生的辐射的确切模式吗 问题是产生的熵太少,而加密功能可以通过暴力强制来逆转吗 问题是产生的熵太少,而 加密功能可以通过暴力强制来逆转吗 如果您正确地使用strong加密并提供好的随机

当谈到真正的随机数到底有多随机时,我发现了混合答案

假设我们想要一个用于密码学的随机数。如果我们从鼠标移动和其他来源收集熵;这不是真实的随机数据吗?人们怎么可能预测或再现这些来源产生的熵(除非有人在监视这个设备)

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

问题是产生的熵太少,而加密功能可以通过暴力强制来逆转吗

问题是产生的熵太少,而 加密功能可以通过暴力强制来逆转吗

如果您正确地使用strong加密并提供好的随机数,那么就没有问题了。任何加密都可以通过暴力强制来逆转,这是默认情况。良好加密的直接暴力平均长达数万亿年,所以我们基本上认为它是牢不可破的。算法、使用或随机数质量方面的弱点使攻击者能够比暴力方法更快地反向加密

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

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

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

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

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

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

老实说,随机数很少是失败的原因,大多数是由于程序员不正确地使用加密算法或使用已知的弱算法,因此“不要编写自己的密码”是一句常见的谚语