CryptGenRandom是Windows中的CryptoAPI中的随机数生成器函数。 那个随机数发生器有多less熵? 我已经看了很多,但是我找不到。 提前致谢。
Windows CryptGenRandom的确切算法从未发布过,因此,一些安全专家建议不要使用它。
进行了一些逆向工程和密码分析。 已发表的研究( Windows随机数生成器的密码分析 – Leo Dorrendorf,2007 )研究了Windows 2000 RNG,发现了一些设计和实现方面的弱点。
该文件还描述了算法的熵收集器机制(第4.2.3节)。 熵源是:
Source Bytes requested CircularHash 256 KSecDD 256 GetCurrentProcessID() 8 GetCurrentThreadID() 8 GetTickCount() 8 GetLocalTime() 16 QueryPerformanceCounter() 24 GlobalMemoryStatus() 16 GetDiskFreeSpace() 40 GetComputerName() 16 GetUserName() 257 GetCursorPos() 8 GetMessageTime() 16 NTQuerySystemInformation calls: ProcessorTimes 48 Performance 312 Exception 16 Lookaside 32 ProcessorStatistics up to the remaining length (3584 bytes buffer) ProcessesAndThreads up to the remaining length
由于我们谈论的是一个伪数字生成器,而不是一个实数生成器,所以可以说完全没有真正的熵,或者只计算可以认为是“熵”(伪熵)的来源, 。
我无法在Windows上找到有关较新版本的信息。