CryptGenRandom熵

was*_*sja 7 windows random winapi entropy

CryptGenRandom是Windows中CryptoAPI中的随机数生成器函数.这个随机数生成器有多少熵?我已经看了很多,但我找不到它.提前致谢.

Lio*_*gan 11

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
Run Code Online (Sandbox Code Playgroud)

由于我们讨论的是伪数生成器而不是实数生成器,您可能会说根本没有真正的熵,或者只计算您可能认为是"熵"的伪源(伪熵) .

我无法在Windows上找到有关较新版本的信息.