我一直在使用根据本原多项式实现的 LFSR,但如您所知,LFSR 按重复顺序生成许多可能的值,这意味着它不是真正随机的!
继续使用 LFSR 并确保它产生真正随机值的一个解决方案是使用某种动态方式读取 LFSR 输出的值,但我不知道如何在硬件(VHDL)中执行此操作!
因此,我正在寻找一种真正产生定义长度的随机意外重复值的替代方法,即。 10 位
有什么建议吗?我计划用 VHDL 实现它们!
最佳答案
生成真正的随机数实际上是一个独立的研究领域。基本上,您需要通过某种传感器收集有关一些看似随机的自然现象的信息。目前的硬件和软件是确定性的,因此具有相同的输入将始终导致相同的输出。收集外部传感器信息可以“随机化”您的输入。
这里有一些阅读:https://en.wikipedia.org/wiki/Pseudorandom_number_generator
此外,这是在同行评审的期刊文章中使用外部传感器输入的实际示例,标题为 Random Number Generated from White Noise of Webcam ,以及摘要中的一小段信息:
Random number generators play a very import role in modern cryptography, especially in personal information security. For example, to generate random number from white noise of webcam is a new approach for personal device. Through our algorithms, 91% IPcam generating sequences pass at least four statistical tests, 87% pass all five ones has been approved. Compared with webcam and video respectively, on the contrary, the possibility for both generating sequences to pass all five statistical tests is roughly 80%. The result implies improvement by algorithm on personal devices such as laptop, for instance, is necessary to generate qualified random number to protect private information.
关于vhdl - 在 VHDL 中生成随机值的替代算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35343671/