Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Algorithm

Yarrow algorithm

Cryptographic Algorithm

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 Solved
Generating cryptographically secure pseudorandom numbers 1
Connections

Credited To

Source Schneier on Security: Yarrow (Schneier on Security)

In Field

Cryptography, Fields
Source Yarrow algorithm (Wikipedia)

Invented

Source Yarrow algorithm (Wikipedia)
Sources
1. Schneier on Security: Yarrow (Schneier on Security)
Schneier on Security
  • Header, 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 Source
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.