Algorithm 用户在随机拍摄之间的延迟是否是PRNG的良好改善?

Algorithm 用户在随机拍摄之间的延迟是否是PRNG的良好改善?,algorithm,entropy,prng,Algorithm,Entropy,Prng,我认为,对于随机选择,例如播放器中的下一个曲目或浏览器中的下一个页面,可以将时间作为“自然现象”使用,例如,体面的RPNG可以连续获得下一个随机数,而无需程序请求(例如,在线程中每隔几毫秒或更频繁的事件)当时间到来时(基于用户的决定),选择自然会受到用户延迟的影响 这种方法足够好吗?如何进行测试?手动测试的问题是,我不能在现实世界中等待那么长的时间来保存足够的随机数,以便将它们提供给某个测试程序。任何人为加速的尝试都会使方法本身无效 谢谢你,一个好的随机数生成器真的不需要改进,即使改进了,也不清

我认为,对于随机选择,例如播放器中的下一个曲目或浏览器中的下一个页面,可以将时间作为“自然现象”使用,例如,体面的RPNG可以连续获得下一个随机数,而无需程序请求(例如,在线程中每隔几毫秒或更频繁的事件)当时间到来时(基于用户的决定),选择自然会受到用户延迟的影响

这种方法足够好吗?如何进行测试?手动测试的问题是,我不能在现实世界中等待那么长的时间来保存足够的随机数,以便将它们提供给某个测试程序。任何人为加速的尝试都会使方法本身无效


谢谢你,一个好的随机数生成器真的不需要改进,即使改进了,也不清楚用户输入时间是否有帮助

用户是否能够在LCG选择的轨迹中检测到模式?无论您的平台是什么,其内置的
random()
函数都可能足够好(也就是说,对于用户来说,它看起来完全是随机的)

但是,如果您仍然担心,请使用加密质量的RNG,其中包含来自系统上专用随机性源的数据。如今,许多系统RNG使用硬件中通过量子事件生成的真正随机比特。然而,它们产生比特的速度很慢,所以最好将它们用作快速算法PRNG的种子

现在,如果您不相信这些方法足够好,那么您应该非常怀疑用户键入的时间是否是一个好的来源。用户按下的键是高度可预测的,因为使用的词汇量有限,而且在这有限的一组单词中往往会出现一些模式。字母序列的这种可预测性导致按键之间时间的高度可预测性


我知道很多安全程序在密钥生成期间都使用这种技术。我不认为它是纯蛇油,但它可以作为安慰使用者的安慰剂。一个好的产品取决于系统RNG。

一个好的随机数生成器确实不需要改进,即使改进了,也不清楚用户输入定时是否有帮助

用户是否能够在LCG选择的轨迹中检测到模式?无论您的平台是什么,其内置的
random()
函数都可能足够好(也就是说,对于用户来说,它看起来完全是随机的)

但是,如果您仍然担心,请使用加密质量的RNG,其中包含来自系统上专用随机性源的数据。如今,许多系统RNG使用硬件中通过量子事件生成的真正随机比特。然而,它们产生比特的速度很慢,所以最好将它们用作快速算法PRNG的种子

现在,如果您不相信这些方法足够好,那么您应该非常怀疑用户键入的时间是否是一个好的来源。用户按下的键是高度可预测的,因为使用的词汇量有限,而且在这有限的一组单词中往往会出现一些模式。字母序列的这种可预测性导致按键之间时间的高度可预测性


我知道很多安全程序在密钥生成期间都使用这种技术。我不认为它是纯蛇油,但它可以作为安慰使用者的安慰剂。好的产品取决于系统RNG。

获取您描述的时间信息确实可以为PRNG增加熵。然而,从您对预期应用的描述来看,我认为您不需要它。对于“随机选择,例如播放器中的下一首曲目或浏览器中的下一页”,一个简单的、未修改的PRNG就可以了。对于诸如nonce等安全应用程序,它更为重要


无论如何,您应该阅读有关PRNG熵源的信息。

获取您描述的时间信息确实可以为PRNG增加熵。然而,从您对预期应用的描述来看,我认为您不需要它。对于“随机选择,例如播放器中的下一首曲目或浏览器中的下一页”,一个简单的、未修改的PRNG就可以了。对于诸如nonce等安全应用程序,它更为重要


无论如何,你应该阅读关于PRNG熵源的内容。

我不会用用户延迟来改善PRNG,主要是因为它们是非常规则的:你以大约相同的速度键入,并且测量一次点击和另一次点击之间的延迟(假设正常使用)需要很长时间。我更愿意使用其他用户触发的事件:按键、每次单击之间的距离、鼠标在给定时刻的位置。

我不会用用户延迟来改善PRNG,主要是因为它们非常常见:你以大约相同的速度键入,并且测量一次单击和另一次单击之间的延迟(假设正常使用)需要很长时间。我更愿意使用其他用户触发的事件:按键、每次单击之间的距离、鼠标在给定时刻的位置。

您可能会发现这很有用:它使用了相同的概念,但更进一步。biziclop,感谢您指出,最近我还发现了这个不错的概念,但在Windows for Windows上不可用,请看,您可能会发现这很有用:它使用了相同的概念,但更进一步。biziclop,感谢您指出,最近我还发现了这个不错的概念,但在Windows for Windows上不可用,请参阅