CryptGenRandom是Windows中CryptoAPI中的随机数生成器函数。这个随机数生成器有多少熵?我已经看了很多,但我找不到它。提前谢谢。
答案 0 :(得分:11)
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
由于我们讨论的是伪数生成器而不是实数生成器,您可能会说根本没有真正的熵,或者只计算您可能认为是“熵”的源(伪-entropy)。
我无法在Windows上找到有关较新版本的信息。