As Richard M. Nixon used to say, "let me say this about that."
| There is not a bit of difference in the fundamental logic gates and processes between a hardware RNG and a software PRNG. They are precisely analogous. The difference only lies within the seeding of each implementation of that logic. |
I don't think it's productive to carry our philosophical debate much farther, so these will be my last words about it.
To concede your point, both a hardware RNG and a PRNG take some data -- which for crypto purposes, we hope to be unpredictable -- and apply an algorithm to compute a fully deterministic function of the hopefully-unpredictable data. Yes, they have that in common.
Here's an example of a hardware RNG algorithm:
1. find a nickel
2. give it a good spinning toss
3. if it lands heads-up, write '1' in the next position on a strip of paper
4. if it lands heads-down, write '0' in the next position on a strip of paper
5. if it lands on edge, is lost, or otherwise can't be observed, go back to step 1
I won't give an example of a PRNG algorithm, because you are familiar with the concept, and indeed have just proffered one yourself.
Kindly note that the hardware RNG algorithm does not depend in any way on any previous iteration. Unless the coin itself remembers the previous toss, the algorithm is memoryless -- that is, it retains no information whatsoever.
All practical PRNGs do retain information -- in fact, they must, in order to avoid repeating themselves. Now, it is possible to reseed at every iteration as you described, stitching together a half-man half-horse, but that isn't a PRNG. It is a hardware RNG with some postprocessing, and this is something people do in the real world in order to reduce bias that may occur in the hardware RNG.
But in principle, it makes no difference whether a PRNG gets all of its seed a the beginning, or pieces of seed are dribbled in iteratively: it is a fully deterministic function of its seed input.
Maybe you're missing the motivation of PRNGs for cryptography: reliably unpredictable data is traditionally expensive, can be slow to gather, and its unpredictability is difficult to assure. So the whole point of PRNGs is that they should NOT need to be constantly reseeded. With the hardware RNG on new Intel processors, this motivation may be growing obsolete ... if you're happy for your application to work only on certain equipment, and if you trust Intel.
As I tried to explain before, the unpredictability of hardware RNG output depends primarily (but not 100%) on physical structures that are known to exhibit unpredictable behavior. Knowledge or previous outputs is inherently almost useless in the prediction of future outputs. The unpredictability of PRNG output depends primarily (but not 100%) on the difficulty of using known PRNG outputs to infer the generator's internal state.
To me, these cases are not precisely analogous.