Fortuna is a
cryptographically secure pseudorandom number generator (PRNG) devised by
Bruce Schneier and
Niels Ferguson
Niels T. Ferguson (born 10 December 1965, Eindhoven) is a Dutch cryptographer and consultant who currently works for Microsoft. He has worked with others, including Bruce Schneier, designing cryptographic algorithms, testing algorithms and protoco ...
and published in 2003. It is named after
Fortuna, the Roman goddess of chance.
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
uses Fortuna for
/dev/random
In Unix-like operating systems, and are special files that serve as cryptographically secure pseudorandom number generators. They allow access to environmental noise collected from device drivers and other sources. typically blocked if there ...
and /dev/urandom is symbolically linked to it since FreeBSD 11. Apple OSes have switched to Fortuna since 2020 Q1.
Design
Fortuna is a ''family'' of secure PRNGs; its design
leaves some choices open to implementors. It is composed of the following pieces:
* The generator itself, which once
seeded will produce an indefinite quantity of pseudo-random data.
* The
entropy accumulator, which collects genuinely random data from various sources and uses it to reseed the generator when enough new randomness has arrived.
* The seed file, which stores enough state to enable the computer to start generating random numbers as soon as it has booted.
Generator
The generator is based on any good
block cipher
In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called ''blocks''. Block ciphers are specified cryptographic primitive, elementary components in the design of many cryptographic protocols and ...
. ''Practical Cryptography'' suggests
AES
AES may refer to:
Businesses and organizations Companies
* AES Corporation, an American electricity company
* AES Data, former owner of Daisy Systems Holland
* AES Eletropaulo, a former Brazilian electricity company
* AES Andes, formerly AES Gener ...
,
Serpent or
Twofish. The basic idea is to run the c