linear congruential generators & you
the standard gcc library definition for rand() is a simple linear congruential generator
Code:
static unsigned long int next = 1;
int rand(void) // RAND_MAX assumed to be 32767
{
next = next * 1103515245 + 12345;
return (unsigned int)(next/65536) % 32768;
}
void srand(unsigned int seed)
{
next = seed;
}
Quote:
Linear congruential generator should also not be used for cryptographic applications; see cryptographically secure pseudo-random number generator for more suitable generators. If a linear congruential generator is seeded with a character and then iterated once, the result is a simple classical cipher called an affine cipher; this cipher is easily broken by standard frequency analysis.
|
if you think the embedded devices like your router or printer et al. is using anything fancier you are sadly mistaken
these are your x.509 certificates we're talking about here people
|