Точный алгоритм Windows CryptGenRandom никогда не был опубликован, поэтому некоторые эксперты по безопасности предлагают его вообще не использовать.
Был проведен некоторый реинжиниринг и криптоанализ.
В опубликованном исследовании ( Криптоанализ генератора случайных чисел в Windows - Лео Доррендорф, 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.