A megjósolható véletlenség

A számítógépes programok működéséhez gyakran szükség lehet véletlenszámok használatához.

Az viszont már nagyon nem mindegy, hogy mire és hogyan használjuk őket!

A gépek determinisztikus működésük eredményeképp nem tudnak véletlenszámokat generálni, ezért azok karakterisztikáját csak utánozni próbálják ún. álvéletlen számok segítségével. Ezek habár látszatra véletlennek tűnnek, igazából egy jól meghatározott algoritmus kimeneteként keletkeznek.

Mivel ezek az algoritmusok ismertek (vagy visszafejthetők), ezért pontosan meg tudjuk mondani, hogy milyen számokat generálnak. Azért, hogy ne mindig ugyanazok a számsorozatok generálódjanak tipikusan minden álvéletlen generátornak van legalább egy valóban véletlennek mondható bemenő értéke, aminek nehezen megjósolhatósága adja a véletlenszám generátor nehezen megjósolhatóságát is, így nagyon fontos ezen érték helyes megválasztása.

Habár egyszerűbb műveletekhez már ez a megjósolhatatlanság is elegendő védelmet nyújt, nem ez a helyzet a kriptográfiai műveletek végzéséhez generált véletlenszámokkal. Ilyen esetekben már mindenképp ajánlott ilyen célra fejlesztett véletlengenerátor használata, ami sebessége és erőforrásigénye habár jóval nagyobb lehet, garantálja, hogy olyan valóban nehezen megjósolható forrásokból jusson véletlenhez, mint például a hálózati kártyára érkező bitek értéke és ideje, vagy mint az egér mozgásának karakterisztikája.

A véletlen kevésbé véletlenségének hibáiról és (gyakorlatibb) kihasználásának lehetőségeiről tájékozódhatsz a következő linkeket követve: