Monero使用基于Keccak哈希函数的PRNG。基本上,前一个散列轮的输出是下一个散列轮的输入。
初始种子来自操作系统提供的熵源。在Linux和MacOS上,种子来自 /dev/urandom。在Windows上,WinAPI CryptGenRandom调用用于种子设定。
此处没有重新播种。
注意事项
- 这涉及到Monero引用的C++实现。请注意,有许多私钥生成的替代实现,包括JavaScript、Python、Android /Java。为了正确起见,应该逐个研究这些问题。
- 在Monero源代码中,您还可以找到基于libnadium的随机字节生成器。它是嵌入式库的一部分,显然没有在实际的Monero代码中使用。