The Yarrow algorithm is a family of cryptographic pseudorandom number generators devised by John Kelsey, Bruce Schneier and Niels Ferguson and published in 1999. It is explicitly unpatented, royalty-free and open source. Yarrow was designed to resist known attacks on earlier generators, to be usable by programmers with no cryptography background, and to reuse existing building blocks instead of inventing new primitives. It has four components: an entropy accumulator, a reseed mechanism, a generation mechanism and reseed control. Entropy is collected into two pools. The fast pool reseeds the key often so that any key compromise is short lived, and the slow pool reseeds rarely but conservatively, so reseeding stays safe even when entropy estimates are optimistic. The Yarrow-160 variant generates output with three-key Triple DES in counter mode and reseeds using SHA-1 and Triple DES. Its main weaknesses are its dependence on SHA-1, which has since been broken for collision resistance, and the need to estimate entropy, a difficulty that the successor design Fortuna removes. The name alludes to the yarrow stalks used to generate random bits in I Ching divination. Yarrow was used in FreeBSD and in Apple operating systems before both moved to Fortuna.
Facts
Problem SolvedGenerating cryptographically secure pseudorandom numbers 1 Connections
Credited To
Source Schneier on Security: Yarrow (Schneier on Security)
In Field
Source Yarrow algorithm (Wikipedia)
Invented
Source Yarrow algorithm (Wikipedia)
Sources
1. Schneier on Security: Yarrow (Schneier on Security)
Schneier on SecurityHeader, subtitle
A secure pseudorandom number generator
Credited To: Bruce Schneier, Header
Designed by Bruce Schneier and John Kelsey
View the Source Yarrow algorithm (Wikipedia)
In Group: Cryptographic Techniques, Lead
The Yarrow algorithm is a family of cryptographic pseudorandom number generators (CSPRNG) devised by John Kelsey, Bruce Schneier, and Niels Ferguson and published in 1999.
In Field: Cryptography, Lead, field
The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it.
Invented: Bruce Schneier, Lead, designers
devised by John Kelsey, Bruce Schneier, and Niels Ferguson
View the SourceReader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.
Sign in to dispute this or suggest a correction.