Hogy a számítógépek generálják a véletlen számokat

Tartalomjegyzék:

Hogy a számítógépek generálják a véletlen számokat
Hogy a számítógépek generálják a véletlen számokat

Videó: Hogy a számítógépek generálják a véletlen számokat

Videó: Hogy a számítógépek generálják a véletlen számokat
Videó: How to Use Google Chromecast: A 5-Minute Setup Guide - YouTube 2024, Április
Anonim
A számítógépek véletlen számot generálnak mindentől a titkosítástól a videojátékokig és a szerencsejátékokig. A véletlen számok két kategóriája létezik - "igaz" véletlenszerű számok és pszeudorandom számok - és a különbség a titkosítási rendszerek biztonsága szempontjából fontos.
A számítógépek véletlen számot generálnak mindentől a titkosítástól a videojátékokig és a szerencsejátékokig. A véletlen számok két kategóriája létezik - "igaz" véletlenszerű számok és pszeudorandom számok - és a különbség a titkosítási rendszerek biztonsága szempontjából fontos.

A számítógépek valódi véletlen számokat generálhatnak bizonyos külső adatok, például egérmozgások vagy rajongói zajok figyelembevételével, amelyek nem kiszámíthatóak, és adatok generálását. Ez entrópiaként ismert. Más időkben algoritmussal generálnak "ál-véletlen" számokat, így az eredmények véletlenszerűnek tűnnek, még ha nem is.

Ez a téma az utóbbi időben vitathatóbbá vált, sokan megkérdőjelezik, hogy az Intel beépített hardveres véletlenszám-generátor chipje megbízható-e. Ahhoz, hogy megértsük, miért nem lehet megbízható, meg kell értenünk, hogy a véletlenszerű számok először genreáltak, és mire használják őket.

Milyen véletlen számokat használnak

A véletlen számokat évezredek óta használják. Függetlenül attól, hogy egy érmét forgat vagy dobott egy kockát, a cél az, hogy a végeredményt véletlenszerű esélyre hagyja. Számítógépes véletlen számgenerátorok hasonlóak - próbálnak kiszámíthatatlan, véletlenszerű eredményeket elérni.

A véletlenszám-generátorok sokféle célra hasznosak. Eltekintve a nyilvánvaló alkalmazásoktól, mint például a véletlenszerű számok létrehozása a szerencsejátékok szempontjából, vagy előre nem látható eredmények létrehozása a számítógépes játékban, a véletlenszerűség fontos a titkosításhoz.

A kriptográfia olyan számokat igényel, amelyeket a támadók nem találhatnak. Nem használhatjuk ugyanazt a számokat újra és újra. Ezeket a számokat nagyon kiszámíthatatlan módon szeretnénk létrehozni, így a támadók nem tudják kitalálni őket. Ezek a véletlen számok nélkülözhetetlenek a biztonságos titkosításhoz, függetlenül attól, hogy titkosítja-e a saját fájljait vagy csak HTTPS-webhelyet használ az interneten.

Image
Image

Valódi véletlen számok

Lehet, hogy kíváncsi, hogy a számítógép valójában egy véletlen számot generálhat. Hol származik ez a "véletlen". Ha ez csak egy darab számítógépes kód, nem lehetséges, hogy a számítógép által létrehozott számok kiszámíthatóak lennének?

Általában csoportosítjuk a véletlenszerű számokat a számítógépek két típusba, attól függően, hogy hogyan generáltak: "Igaz" véletlen számok és pszeudo-véletlen számok.

Az "igaz" véletlen szám létrehozásához a számítógép valamilyen fizikai jelenséget végez, amely a számítógépen kívülre kerül. Például a számítógép képes mérni egy atom radioaktív bomlását. A kvantumelmélet szerint nem lehet biztos abban, hogy radioaktív bomlás következik be, tehát ez lényegében "tiszta véletlenszerűség" az univerzumból. A támadó nem tudná megjósolni, hogy mikor fog bekövetkezni a radioaktív bomlás, ezért nem ismerik a véletlen értéket.

Napról napra a számítógépen a légköri zajra támaszkodhat, vagy egyszerűen csak akkor használja a pontos időt, amikor a billentyűzet gombjait a kiszámíthatatlan adatok vagy entrópia forrásaként használja. Például a számítógép észreveheti, hogy pontosan 0,23423523 másodperccel megnyomta a gombot egy gomb megnyomása után.Ezzel a gombnyomással kapcsolatos konkrét időket elegendő ideig megragadni, és az entrópia forrása az "igazi" véletlenszerű szám. Ön nem egy kiszámítható gép, így a támadó nem tudja megmondani a pontos pillanatot, amikor megnyomja ezeket a gombokat. A Linux / dev / véletlenszerű eszköz, amely véletlen számokat generál, "blokkolja", és nem ad vissza eredményt, amíg elég entrópiát nem gyűjt, hogy valóban véletlen számot kapjon.

Image
Image

Pszeudorandom számok

A pszeudorandom számok alternatívak az "igaz" véletlen számokhoz. A számítógép egy magértéket és egy algoritmust használhat olyan számok létrehozására, amelyek véletlenszerűnek tűnnek, de valójában előre kiszámíthatóak. A számítógép nem gyűjt véletlenszerű adatokat a környezetből.

Ez nem feltétlenül rossz helyzet minden helyzetben. Például, ha videojátékot játszik, nem számít, hogy az adott játékban fellépő események "valódi" véletlen számok vagy áljelölt számok között vannak-e. Másrészt, ha titkosítást használsz, nem akarsz olyan áljelölt számokat használni, amelyeket a támadó kitalálhat.

Tegyük fel például, hogy egy támadó ismeri az algoritmust és a vetőmag értéket, amelyet egy álnév-generátor használ. Tegyük fel, hogy egy titkosítási algoritmus egy pseudorandom számot kap ezen algoritmusból, és azt felhasználja titkosítási kulcs létrehozásához további véletlenszerűség hozzáadása nélkül. Ha a támadó elegendő, akkor hátrafelé dolgozhatnak, és meghatározhatják a titkosított számot, amelyet a titkosítási algoritmusnak ebben az esetben kell kiválasztania, megtörve a titkosítást.

Az NSA és az Intel hardveres véletlenszám-generálója

A fejlesztők számára a dolgok megkönnyítése és a biztonságos véletlenszámok létrehozása érdekében az Intel chipek tartalmaznak egy hardveres véletlenszám-generátort, amely RdRand néven ismert. Ez a chip egy entrópia forrást használ a processzoron, és véletlenszerű számokat ad a szoftvereknek, amikor a szoftver kéri őket.

A probléma az, hogy a véletlenszám-generátor lényegében fekete doboz, és nem tudjuk, mi történik benne.Ha az RdRand egy NSA backdoor-ot tartalmazott, a kormány képes lenne megtörni a titkosító kulcsokat, amelyeket csak a véletlenszám-generátor által szolgáltatott adatok generáltak.

Ez komoly aggodalomra ad okot. 2013 decemberében a FreeBSD fejlesztõi eltávolították a támogatást az RdRand közvetlen használatának véletlen forrásaiként, mondván, hogy nem bíznak bennük. [Source] Az RdRand eszköz kimenete egy másik algoritmusba kerül, amely további entrópiát eredményez, biztosítva, hogy a véletlenszám-generátor bármely hátsó része ne számítson. A Linux már így is dolgozott, tovább véletlenszerűen véletlenszerűen az RdRandből származó véletlenszerű adatokat, hogy még akkor sem lenne kiszámítható, ha hátsóajtó lenne. [Forrás] Az Intel vezérigazgatója, Brian Krzanich egy nemrégiben megjelent AMA ("Ask Me Anything") a Reddit-ről nem adott választ ezekkel az aggodalmakkal kapcsolatban. [Forrás]

Természetesen ez valószínűleg nem csak az Intel chipjeinek problémája. A FreeBSD fejlesztõi név szerint is felhívták a Via zsetonjait. Ez az ellentmondás azt mutatja, hogy miért olyan valóságos véletlen számok generálása, amelyek valóban véletlenszerűek és nem kiszámíthatóak, olyan fontos.

Image
Image

Valódi véletlen számok létrehozásához a véletlenszerű számgenerátorok összegyűlnek "entrópia" vagy látszólag véletlenszerű adatok a körülöttük lévő fizikai világból. Véletlenszerű számokra, amelyek nem igazán véletlenszerűnek kell lenniük, csak egy algoritmust és egy magértéket használhatnak.

Ajánlott: