Pokud to neni opravdu nutne, tak se pouzivaji generatory psedonahodnych cisel. Tj. zvenku se tvari jako nahodne, ale jejich posloupnost je predem dana.
Maji tu vyhodu, ze v pripade chyby v programu, je mozne cely proces otestovat.
Mezi nejjednodusi patri posuvny register + XOR hradlo z nekterych z poslednich bitu.
Kratke pojednani treba zde:
http://www.kemt.fei.tuke.sk/predmety/KEMT414_AK/_materialy/Cvicenia/kryp_4.pdfhttp://en.wikipedia.org/wiki/Random_number_generationUkazka kodu (netestoval jsem to):
m_w = <choose-initializer>; /* must not be zero */
m_z = <choose-initializer>; /* must not be zero */
uint get_random()
{
m_z = 36969 * (m_z & 65535) + (m_z >> 16);
m_w = 18000 * (m_w & 65535) + (m_w >> 16);
return (m_z << 16) + m_w; /* 32-bit result */
}
Zajisteni opravdu nahodneho generatoru je velmi slozite bez specialniho HW.