crypto++ 中的 AutoSeededRandomPool 实际上是随机的吗?文档中的 fork() 是什么意思?

Is the AutoSeededRandomPool in crypto++ actually random? What does fork() in the documentation mean?

我正在阅读 crypto++ 中 AutoSeededRandomPool 的文档,我看到了如下详细描述。
您应该在 fork() 之后重新播种生成器以避免多个生成器具有相同的内部状态。
这是否意味着 AutoSeededRandomPool 实际上不是随机的?还有什么时候调用 fork() ?我在文档中的任何地方都找不到它。我什么时候需要重新播种以避免相同的内部状态? 这是文档的 link:https://cryptopp.com/docs/ref/class_auto_seeded_random_pool.html

有一个名为 fork()posix API 用于创建内部子进程。分叉进程有时用于交换线程。当你使用 fork() 时,大量的进程内部内存被复制。这就是为什么他们说您需要调用 reseed。因为如果你不这样做,这个复制的内存会为主进程和子进程创建一个相似的种子,所以生成的随机数将是相似的。

关于完全随机性,我真的不知道。因为我不知道这个class的播种来源是什么。如果你想要一个真正的随机数,你需要一些硬件源来创建真正的随机数。这实际上取决于您的使用情况。在某些情况下,例如 RSA 的随机数,您需要几乎是真实的随机数,但在很多情况下,伪随机数就足够了。