Randomness

在物理引擎中實現的骰子真的是隨機的嗎?

  • November 6, 2014

所以,公平的擲骰子真的是隨機的,而不是偽的。那麼,作為物理引擎(例如,Newton、Havok、Nvidia 的 PhysX)中擲骰子結果實現的 RNG 是否會被視為既加密安全又真正隨機(不是 PRNG,而是真正的 RNG)?

不,這不是真正的 RNG,因為這些物理引擎只會重複完全相同的計算,從而重複整個隨機數序列 - 就像 PRNG。起始條件是此 PRNG 的種子。

骰子在現實世界中是真正隨機的。嗯,是嗎?如果我們忽略量子效應,我們可以測量環境的所有相關值,然後計算骰子的下一個值——至少在理論上是這樣。在實踐中,計算太難了,量子效應甚至破壞了計算結果的理論可能性。

物理引擎大多只計算計算的重要部分:與其他物體的碰撞和重力。但在現實世界中,我們得到了空氣運動(風,人的呼吸),溫度的波動,地球的微小運動,地球引力場的差異,甚至心臟的振動,磨損骰子或只是材料中的污染。

即使引擎可以在可接受的時間段內計算出所有這些,它也必須自己引入一個 RNG 來模擬量子效應。如果引擎這樣做(就像 mikeazo 在評論中提到的那樣),那麼為什麼要直接使用引擎而不是 RNG?如果引擎的輸出大於實習生 RNG 的輸入,它就不再是真正的隨機數生成器了。它必須拉伸隨機數。也許它仍然是安全的,但是在CTR模式下使用AES會做同樣的事情,而且性能肯定要好得多。

有趣的事實:Dice-o-matic一次又一次地擲出許多骰子來確定隨機數。它用於獲取線上遊戲平台的隨機數。好吧,這可能是您從帶有骰子的機器中獲得真正隨機數的最接近的方法。

引用自:https://crypto.stackexchange.com/questions/20020