我浏览了StackExchange网站,Google,Wikipedia和所有其他常用资源,但未能找到对我的问题的好的答案。
“播种伪随机数生成器时,以比特为单位的大小重要吗?
我了解到,在很多情况下(大多数情况下),时间被用作种子值,但是解释说明了为什么如此处理都是获得不断变化的种子值的有用方法。大小似乎不是问题。
我开始研究一些与加密有关的问题,这激起了我的好奇心。作为外行,如果使用例如1到100之间的整数作为种子,似乎可以通过蛮力很容易地复制生成的数字。我已经看到0和1经常使用。即使随便看时间,如果可以密切监控开始时间,也可能会被强行使用。但是,强行强制使用随机的256位数字将非常困难。
我是对的还是我不知道有什么机制使这不是问题?
我什至不会假装自己只是这个领域其他用户的最终用户,并且明白我的问题可能是幼稚的。但这是我不了解的事情,将不胜感激。
我目前正在python 3.x中开发一个项目(这对我来说还很新),因此用该字符串标记了问题,但该问题实际上比特定的语言实现更通用(我认为)。
最佳答案
种子的大小至少在理想上等于PRNG的状态长度的意义上很重要。尽管通常使用的种子长度为32或64位,但通常仅当基础PRNG的状态长度分别为32或64位时,此类种子才是合适的。但是,许多现代PRNG的状态长度较长。 (通常,种子的种类越多,PRNG可以生成的随机数序列的种类就越多。)
关于python-3.x - PRNG的种子大小(以位为单位)会有所不同吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50402168/