我知道,这是一个非常菜鸟的问题,但今天早上我想知道一些事情。如果是这种情况,他们会以相同的方式加密事物吗?
或者也许有人可以指导我进行有关 linux 如何生成熵和加密事物的有用研究?谷歌给了我切线的结果,但没有什么特别有用的。
我知道,这是一个非常菜鸟的问题,但今天早上我想知道一些事情。如果是这种情况,他们会以相同的方式加密事物吗?
或者也许有人可以指导我进行有关 linux 如何生成熵和加密事物的有用研究?谷歌给了我切线的结果,但没有什么特别有用的。
相同的系统映像在从它们的随机池中提取时会生成不同的数据,除非您正在使用非常无菌的设置来一次同步地移动它们一个时钟周期。
系统中的活动会根据包括硬件中断在内的事件影响随机池。现实表明,磁盘驱动器、网卡以及按下电源按钮的那一刻都会有所不同。即使是训练有素的时钟也会在机器之间存在一些差异,并且会随着时间的推移而增长。
一些不错的读物包括一篇关于 Linux RNG的学术论文和来自当前内核源代码的 random.c 文件(有意取消链接)。
不。
Linux RNG 通过收集来自外部硬件(硬盘、鼠标、网络等)触发的中断定时等来源的噪声来使用真实熵的环境源。事实上,您可以说 Linux 使用“真正的随机数生成器”不是“伪随机数生成器”,因为除非您可以窥视熵源,否则输出确实是不可预测的,就像任何其他 TRNG 一样。
但是,在机器从已知状态启动之后,有一段时间它还没有机会从环境中收集任何熵,在此期间的输出/dev/urandom
是可预测的。
http://en.wikipedia.org/wiki//dev/random#Linux具有指导意义且易于理解。
这个问题是基于一个错误的假设,即您可以拥有两个相同的系统。这在这个宇宙中是不可能的。例如,至少,他们必须在不同的地方。那些不同的地方会有不同的微观区域温度变化。这些变化会影响驱动 CPU 时钟和网络时钟的石英振荡器之间的相位关系。
同样,磁盘盘片和硬盘驱动器外壳内部的微观表面缺陷也会影响空气的湍流剪切。这会影响盘片的旋转速度。不可能有两个具有相同湍流剪切特性的硬盘驱动器。
即使使用相同的时钟和相同的硬盘,他们仍然会各自发出自己的请求。他们仍然会收到自己的网络数据包。他们仍然会各自走自己的路。
你必须想象一个与我们的宇宙非常不同的宇宙,才能提出这个问题。是的,Linux RNG 算法确实使用了这些东西。