Генератор случайных чисел
Криптографически стойкие генераторы псевдослучайных чисел (КСГПСЧ) являются важным строительным блоком безопасного программного обеспечения. Поэтому Apple предоставляет надежный программный КСГПСЧ, работающий в ядре iOS, iPadOS, macOS, tvOS и watchOS. Используя в качестве источника энтропии саму систему, генератор предоставляет надежные случайные числа для ядра и пользовательского пространства.
Источники энтропии
КСГПСЧ ядра использует несколько источников энтропии во время загрузки и в течение всего срока службы устройства. Сюда входят (при наличии):
аппаратный генератор истинных случайных чисел Secure Enclave;
флуктуация времени во время загрузки;
энтропия аппаратных прерываний;
начальный файл, используемый для сохранения энтропии между загрузками;
инструкции Intel для генерации случайных чисел, например RDSEED и RDRAND (только на компьютере Mac с процессором Intel).
КСГПСЧ ядра
КСГПСЧ ядра работает по алгоритму Fortuna, который ориентирован на 256-битный уровень защиты. Генератор предоставляет числа с высокой степенью случайности для пользовательского пространства через следующие API:
системный вызов
getentropy
(2);генератор случайных чисел (/dev/random).
КСГПСЧ ядра использует в качестве источника энтропии действия пользователя, которые сохраняются в генераторе случайных чисел.