CryptGenRandom является функцией генератора случайных чисел в CryptoAPI в Windows. Сколько энтропии имеет тот генератор случайных чисел? Я уже посмотрел много, но я не мог найти его.Заранее спасибо.
Точный алгоритм Windows CryptGenRandom никогда не публиковался, поэтому некоторые эксперты по безопасности предлагают вообще не использовать его.
Был проведен некоторый обратный инжиниринг и криптоанализ.В опубликованном исследовании ( Криптоанализ генератора случайных чисел Windows - Лео Доррендорф, 2007 ) был изучен ГСЧ Windows 2000 и обнаружен ряд слабые места в дизайне и реализации.
В документе также описан механизм сбора энтропии алгоритма (раздел 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.