Fortuna is a cryptographically secure PRNG designed by Niels Ferguson and Bruce Schneier. Uses 32 SHA-256 entropy pools with exponential pool scheduling and AES-256 counter mode for output generation.
| Property | Value |
|---|---|
| Category | Random Number Generators |
| Sub-category | Cryptographic PRNG |
| Security status | π‘οΈ Secure |
| Complexity | Advanced |
| Inventor | Niels Ferguson, Bruce Schneier |
| Year | 2003 |
| Origin | πΊπΈ United States |
| Source | algorithms/random/fortuna.js |
| Parameter | Supported values |
|---|---|
| Seed sizes | 0 bytes (0 bits) to 1024 bytes (8192 bits) |
| Flag | Value |
|---|---|
IsDeterministic |
Yes |
IsCryptographicallySecure |
Yes |
Status: π‘οΈ Secure
No vulnerabilities are recorded for this implementation.
2 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 β Deterministic test - 64 bytes entropy pattern, generate 32 bytes
| Field | Value |
|---|---|
seed |
0123456789abcdef0123456789abcdef 0123456789abcdef0123456789abcdef 0123456789abcdef0123456789abcdef 0123456789abcdef0123456789abcdef |
outputSize |
32 |
input |
null |
expected |
224a0fa0d0a71441a7190c4b9fdb0d8660905d0f5f390906ca61d2c469f4b886 |
Vector 2 β Multiple block test - 128 bytes sequential entropy, generate 64 bytes
| Field | Value |
|---|---|
seed |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f 404142434445464748494a4b4c4d4e4f 505152535455565758595a5b5c5d5e5f 606162636465666768696a6b6c6d6e6f 707172737475767778797a7b7c7d7e7f |
outputSize |
64 |
input |
null |
expected |
667dbf72dbf3a8b403512fc0e26ec57f 8b3ea2a5bd5efd0cf33b76dcfcf5bdd0 f181a1459a23164744c27c2655b296dd abf72282dd08fd7c01375758cacca9ba |