Randomness

給定相同的熵值,我可以生成相同的隨機數嗎?

  • March 26, 2018

假設我可以預測用於生成隨機數的相同熵值,我是否可以生成相同的隨機值,比如在基於 Windows 的 python 應用程序中?

是的,您當然可以假設性地做到這一點。根據定義,隨機數是基於熵以及已知值和算法生成的。當然,當然有必要知道這些常量和算法。這通常是可能的,因為隨機數生成器的原始碼通常以某種方式(開源或研究程序)已知。

通常執行時使用作業系統的隨機生成器,Microsoft 算法非常複雜,可能會因作業系統的不同版本而變化。然而,眾所周知,良好的隨機數生成在 VM 上很複雜。

如今,作業系統很可能混合了 Intel 和 AMD 處理器上基於硬體的 RNG 值或主機板上的 TPM 模組,這使得幾乎不可能猜測用於播種 OS PRNG 的熵。

TL;DR 有可能嗎?是的,如果你真的知道所有的熵——這通常是一個有問題的假設。但即便如此,它也需要大量的實踐知識和大量的努力。

您只是在問 Python 是否可以重複它的隨機數?如果是這樣,請參閱 random.seed(…) @ https://docs.python.org/3/library/random.html#notes-on-reproducibility

這就像任何典型的隨機數生成器上的手動種子一樣。請注意,預設的 Python RNG 是 Mersenne Twister。這不是加密盟友安全的。您需要查看機密模組以獲取安全號碼。

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