Fortuna (PRNG)
Криптографический генератор случайных чисел 2003 года, устроенный так, чтобы не приходилось гадать, сколько энтропии накоплено.
Нильс Фергюсон и Брюс Шнайер представили его в книге Practical Cryptography как преемника собственного Yarrow. Слабым местом Yarrow была оценка энтропии: нужно знать, насколько случаен источник, а это редко известно. Fortuna обходит вопрос, распределяя входные данные по 32 пулам. Пул i опустошается только при каждом 2i-м пересеве, так что рано или поздно в каком-то пуле окажется больше случайности, чем атакующий способен перебрать, — и считать ничего не пришлось.
Сам генератор — это AES в режиме счётчика с заменой ключа после каждого запроса, чтобы украденное внутреннее состояние ничего не говорило о прошлом выводе. FreeBSD перешла на Fortuna в версии 11 (2016), и генератор ядра Apple построен по той же схеме.