Yarrow-160: Notes on the Design and Analysis of the Yarrow Cryptographic Pseudorandom Number Generator

John Kelsey, Bruce Schneier, and Niels Ferguson

In Selected Areas in Cryptography, Proc. SAC '99, Lecture Notes in Computer Science #1758, pp. 13–33, Springer Verlag, 1999.

Abstract

We describe the design of Yarrow, a family of cryptographic pseudo-random number generators (PRNG). We describe the concept of a PRNG as a separate cryptographic primitive, and the design principles used to develop Yarrow. We then discuss the ways that PRNGs can fail in practice, which motivates our discussion of the components of Yarrow and how they make Yarrow secure. Next, we define a specific instance of a PRNG in the Yarrow family that makes use of available technology today. We conclude with a brief listing of open questions and intended improvements in future releases.

New developments

Our new book Practical Cryptography contains a new design for a PRNG called Fortuna, which is superior to Yarrow. Implementing the entropy estimators for Yarrow is a huge, and essentially unsolvable, problem. Fortuna does not need any entropy estimators and is therefore easier to implement securely.

Download

Zipped PostScript (99 kB)
PostScript (257 kB)