Bugtraq mailing list archives
Re: Flaw in commonly used bash random seed method
From: Matthijs <thotter () gmail com>
Date: Tue, 4 Apr 2006 16:47:30 +0200
Hmm looks like I was wrong... -snip- /* Returns a pseudo-random number between 0 and 32767. */ static int brand () { rseed = rseed * 1103515245 + 12345; return ((unsigned int)((rseed >> 16) & 32767)); /* was % 32768 */ }
From bash-3.1/variables.c lines 1146-1152
-snip- (copied from http://cer.freeshell.org/renma/LibraryRandomNumber/#LibraryRandomNumber_sec_bash) altough it returns a number between 0 and 32767, it indeed saves a 32 bit number, so the cycle length of this linear congruential generator is actually 2^32. So yes, the seed should be 4 bits and the generator is better then I first tought. Sorry about that, I should have checked the code a bit more careful. Still it is a bad idea to use a PRNG in general, and especially an LCG for password generation. On 4/4/06, Dave English <dave.english () thus net> wrote:
In message <a260a2190604031256g23cf3645s348f829530982b38 () mail gmail com>, Matthijs <thotter () gmail com> writesBy the way, if the random function can only generate numbers between 0 and 32767, won't 2 bytes be enough then? The algorithm will perform a modulo calculation anyway, so 4 bytes won't really add anything. Of course, it is much better then only one byte.That will depend on whether the state stored between calls to the PRNG is only 15-bits, or something larger. If more state is stored than is enumerated in the result, then the generator should have more points on its sequence than 32768 . In that case then, seeding with more than 15 bits would be worthwhile. I have not looked at Bash myself, to see what it actually does -- Dave English Senior Software & Systems Engineer Internet Platform Development, Thus plc
Current thread:
- Flaw in commonly used bash random seed method coderpunk (Apr 03)
- Re: Flaw in commonly used bash random seed method Matthijs (Apr 03)
- Re: Flaw in commonly used bash random seed method Dave English (Apr 04)
- Re: Flaw in commonly used bash random seed method Matthijs (Apr 04)
- Re: Flaw in commonly used bash random seed method Matthijs (Apr 04)
- Re: Flaw in commonly used bash random seed method Dave English (Apr 04)
- Re: Flaw in commonly used bash random seed method Dave Korn (Apr 05)
- Re: Flaw in commonly used bash random seed method Steve VanDevender (Apr 10)
- Re: Flaw in commonly used bash random seed method Matthijs (Apr 03)