I once read/heard that one could generate a cryptographically secure pseudo random number generator based on two cryptographically secure hash functions.
The algorithm goes this way:
- Let $f$ and $g$ be two independant cryptographically secure hash functions of block size $s$.
- This algorithm outputs blocks of $s$, the block $n$ is defined as: $output[n \times s; (n+1) \times s] = f(g_{n}(seed))$
- The function $g_{n}(seed)$ is defined as $g_{n} = g_{n-1}(seed)$ where $g_{0}(seed) = g(seed)$.
Concretely, the first block is generated with $f(g(seed))$, the second block with $f(g(g(seed)))$, then $f(g(g(g(seed))))$, and so on...
I've been looking around for any paper, or anybody mentioning this algorithm and/or trying to do cryptanalysis of this algorithm, but I haven't found anything.
Cryptographically strong seeded pseudo random number generator suggests the same algorithm, but only uses one hash function contrary to what I'm suggesting. The selected answer says to use two hash functions, but I couldn't find more details in the literature.
Is this algorithm real? What is the name of it?