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

Az előző részben megismerkedhettünk azzal, hogy miért fontos a véletlen számok generálása a számítógépek világában, valamint röviden azzal is, hogy milyen eljárások vannak, és milyen folyamatok által generálnak a számítógépek ’valódi’ véletlen számokat és szekvenciákat. Ebben a részben megnézzük, hogy a ’Pseudorandom’, avagy ’hamis-véletlen’ számok hogyan generálódnak egy számítógépben.

A hamis-véletlen számsorozatok egy alternatíva a valódi véletlen számsorozatokhoz. A számítógép ez esetben egy alapértéket (seed value) állít fel és egy algoritmus segítségével létrehoz egy számot, mely véletlenszerűnek tűnik, de valójában megjósolható, hiszen ott van az algoritmus és az alapérték. Fontos, hogy ebben az eljárásban a számítógép nem végez méréseket a környezetben és nem ezen mérési adatok alapján generál véletlen számokat és számsorozatokat.

Ha nem titkosításról van szó, akkor a Pseudorandom eljárás használata teljesen rendben van, hiszen senkinek nem érdeke megfejteni, hogy miként jönnek létre a véletlenszerű számok. Titkosításban viszont semmiképp sem akarunk Pseudorandom eljárással készült véletlen számokat használni, mivel a támadó ezekre rájöhet. Ha a támadó rendelkezik az alapértékkel és ismeri az algoritmust, akkor bármilyen szekvenciát meg tud fejteni, amit ezekkel generált egy gép.

Mi a valóság?

Annak érdekében, hogy a fejlesztők dolga egyszerűbb legyen és biztonságos véletlenszerű számsorozatok jöjjenek létre, az Intel chip-ek tartalmaznak egy hardveres alapú véletlen szám generátort, melynek ’RdRand’ a neve. Ez a hardver valódi véletlen számokat generál a processzor adatait és környezetét felhasználva, és szoftverek számára nyújt véletlenszerű számokat, amikor azok kérik ezt a szolgáltatást. Az RdRand alapjában véve egy feketedoboz, melynek működését nem ismerjük. Ez azért érdekes, mert, ha lenne egy NSA típusú hátsó ajtó a generátorban, akkor egy támadó (lehet akár a kémkedő kormány is!) például fel tudna törni titkosított kódokat azokkal az adatokkal, melyeket a fekete doboz biztosított a kód elkészítéséhez.

2013-ban az FreeBSD fejlesztői eltávolították az RdRand támogatását, mint véletlenszerű számok forrása, mivel azt állították, hogy nem megbízható. Linux rendszerek úgy javítottak a helyzeten, hogy az RdRand által kibocsátott adatokat újabb algoritmusokon vezették át, és így egy lehetséges NSA vagy bármilyen egyéb hátsó ajtó jelenléte sem jelentene veszélyt.

Rengeteg módon generálhatók manapság véletlen számok, azonban a két legelfogadottabb metódus a valódi és a hamis-véletlen számok generálása továbbra is.

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.