Windows CryptGenRandom的确切算法从未发布过,因此,一些安全专家建议根本不使用它.
进行了一些逆向工程和密码分析.
已发表的一项研究(Cryptanalysis of the Windows Random Number Generator – 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上找到有关较新版本的信息.