Graph
Yarrow

🌿Yarrow

NEW

A CSPRNG design emphasizing entropy pools and reseeding to mitigate state compromise risks.

DESCRIPTION

Yarrow is a family of CSPRNGs designed by Kelsey, Schneier, and Ferguson to collect entropy from multiple sources into pools with thresholds that trigger reseeding. Its goal is robust recovery after compromise and reliable operation under varying entropy conditions. Yarrow influenced later designs and deployments in operating systems. However, practical feedback led to Fortuna as a successor with simplified and improved entropy management. Today, Yarrow is mostly of historical interest, with Fortuna and NIST DRBGs preferred.

ALTERNATIVE DEFINITIONS

Wikipedia

Yarrow is a family of cryptographic pseudorandom number generators (PRNGs) devised by Bruce Schneier, John Kelsey and Niels Ferguson.

Identifies authorship and class as CSPRNGs.

Source

Schneier.com

Yarrow-160 is a PRNG based on a combination of entropy accumulation, reseeding, and cryptographic primitives to ensure robustness after compromise.

Stresses entropy accumulation and post-compromise recovery.

Source

Cryptographically Secure Pseudorandom Number Generator Entropy Source Reseeding NIST SP 800-90A Hash Function Pool-based PRNG

COMPETING TERMS

Fortuna

KNOWLEDGE AREAS

Data Security Testing & Validation

TARGET AUDIENCE

Cybersecurity Engineer Security Architect Chief Information Security Officer Software Developer

EXTERNAL SOURCES

TOP QUESTIONS

What problem did Yarrow aim to solve?

Robustness after PRNG state compromise via entropy pooling and controlled reseeding thresholds.

Category: Concept

Why was Yarrow superseded by Fortuna?

Operational complexity and feedback informed a simpler, more robust Fortuna design.

Category: Relevancy

How does Yarrow handle entropy?

It uses multiple pools and reseeding thresholds to manage variable-quality entropy sources.

Category: Requirements

No. Prefer Fortuna or NIST SP 800-90A DRBGs in modern systems.

Category: BestPractice

Where was Yarrow deployed?

Historically in some operating system RNGs, later replaced by improved designs.

Category: Example

What are Yarrow’s main components?

Entropy pools, reseeding logic, and cryptographic primitives like hashes and ciphers.

Category: Concept

What is a common misunderstanding about Yarrow?

That any entropy pool design suffices; details of thresholds and mixing are crucial.

Category: Misunderstanding

What risks exist if reseeding is misconfigured in Yarrow?

Insufficient reseeding can leave the PRNG predictable; excessive reseeding may waste entropy.

Category: Risk

How should teams migrate from Yarrow?

Adopt a modern CSPRNG (Fortuna or SP 800-90A DRBG), ensure secure seeding, and validate outputs.

Category: BestPractice