Hogyan generálják a számítógépek a véletlen számokat? (1. rész)

A számítógépek manapság rengeteg különböző célra generálnak minden másodpercben ’véletlenszerű’ számokat. Ilyen célok a titkosítás, a videójátékok elemei és az online szerencsejátékok is (gambling). Általánosságban megkülönböztethetünk ’valódi’ (true) véletlen számokat, és ’ pseudorandom’ (avagy hamis-igaz) véletlen számokat. Ez a különbség kiemelten fontos a biztonsági titkosítási rendszerek számára.

A véletlenszerű számok létrehozásának célja, hogy úgy hozzunk létre számokat, hogy abban ne legyen lekövethető, logikus rendszer. Ezt az elvet használják manapság a titkosítási eljárásokban, avagy egy olyan számrendszert vagy számkódot akarunk létrehozni, melyet a támadó nem tud csak úgy kitalálni vagy megfejteni. Nem használhatjuk tehát ugyanazokat a számokat újra és újra, mindig új számokra lesz szükségünk, hogy a támadók előtt maradjunk. Egy átlagos HTTPS weboldalnak is fejlett véletlen-szám generátorra van manapság szüksége, de ezt használja a Windows is, amikor saját fájljainkat akarjuk titkosítani.

A ’valódi’ véletlen számok

Sokan gondolkoznak azon, hogy vajon egy gép hogyan képes véletlenszerű számok generálására, hiszen az egész csak áramkör, ahol a 0 és 1 értékek változása nyomonkövethető. Ha az egész csak egy kód, akkor értelemszerűen meg lehet fejteni a kódot. A válasz igencsak érdekes.

A valódi véletlen számok létrehozásához a gép mindig elvégez valamilyen külső fizikai jelenséggel kapcsolatos mérést a számítógépen kívül. A számítógép például megmérheti a radioaktív bomlását egy atomnak. A kvantum-elmélet szerint nem lehet tudni pontosan sosem, hogy ez mikor fog bekövetkezni, így ez alapján a véletlen faktor már biztosítva van. A támadó biztos, hogy nem fogja tudni, hogy mikor következik be egy atom bomlása, tehát a véletlen érték forrását nem tudja meghatározni.

Az előbb olvasott módszer már egy kicsit elavult. A gépek manapság olyan dolgokat mérnek, mint az atmoszférikus zaj, vagy akár a billentyűleütések egzakt időpontja, és ezeket használja forrásként megjósolhatatlan számok kreálására. A számítógép például megfigyelheti, hogy pontosan 0.23423523 másodperccel 3 óra után ütötted le az ’F’ billentyűt. Néhány extra mérés, és a gép már el is készít egy ’valódi’ véletlen számot a gyűjtött adatok alapján. A támadónak esélye sincs, hogy kitalálja, hogy mi mikor ütjük le az ’F’ billentyűt, így a véletlen szám alapját nem tudja meghatározni.

A következő részben a ’pseudorandom’ véletlen számokkal fogunk foglalkozni!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.