What do you mean by a "good" PRNG ? I think what we understand to be good here might have to change. It's one thing for a PRNG to generate a sequence of numbers with good statistical properties and which doesn't repeat its inherently predictable sequence until a very large integer number space is exhausted. It's entirely another to have a PRNG with a published algorithm and an attacker able to obtain prior information relevant to its internal state but provably unable to predict the subsequent sequence of numbers generated. The P here means pseudo, because the randomness isn't randomness at all - it means that the sequence of numbers is generated using an algorithm and not a noise source. Certainly the developer and administrator can attempt to reseed such an algorithm periodically and cryptically. The issue is how much can an attacker learn by knowing previous numbers in the sequence in order to predict subsequent numbers in the sequence. One solution for the paranoid is to use /dev/random instead of /dev/urandom as the entropy source. This is a good idea when generating cryptographic keys intended for medium-long term use, but running a DNS recursive resolving server which needs to generate thousands of unpredictable source port numbers and transaction IDs a second is going to need a faster entropy source than /dev/random hence the need for a PRNG in the first place.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds