13Jul
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életlen számok és áljel-számok - és a különbség fontos a titkosítási rendszerek biztonsága szempontjából.
A számítógépek valódi véletlen számokat generálhatnak bizonyos külső adatok, például az egérmozgások vagy a rajongói zaj miatt, ami nem előrelátható, és az adatok létrehozása is. 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émakör mostanában ellentmondásosabbá 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életlenszerű számokat használnak az
-hez 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 kiszámíthatatlan eredmények létrehozása a számítógépes játékban, a véletlenszerűség fontos a titkosításhoz.
Az 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 elengedhetetlenek a biztonságos titkosításhoz, függetlenül attól, hogy titkosítja a saját fájljait, vagy csak egy HTTPS webhelyet használ az interneten.
Valódi véletlen számok
Lehet, hogy kíváncsi, hogy a számítógép valójában véletlenszerű 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, hogyan generáltak: "Igaz" véletlen számok és pszeudo-véletlen számok.
Egy "valós" 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ül történik. 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.
Egy napról napra példaként a számítógép támaszkodhat atmoszferikus zajra, vagy egyszerűen csak azt a pontos időt használja, amikor a billentyűzet gombjait 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ásával. E gombnyomással kapcsolatos konkrét időpontok megragadása és az entrópia forrása egy "igaz" 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. Az /dev/ véletlenszerű eszköz Linuxon, amely véletlenszerű 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.
Pszeudorandom számok
A pszeudorandom számok az "igazi" véletlen számok alternatívájaként szolgálnak. 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.
Például mondjuk, hogy egy támadó ismeri az algoritmust és a vetőmag értéket, amelyet egy áljelölő számgenerá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é dolgozhat, és meghatározhatja 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átora
A fejlesztők számára a dolgok megkönnyítése és a biztonságos véletlen szá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.[Source]
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.
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életlen számok esetén, amelyek nem valóban véletlenszerűek, csak algoritmust és magértéket használhatnak.
képarány: rekre89 a Flickr-en, Lisa Brewster a Flickr-en, Ryan Somma a Flickr-en, huangjiahui a Flickr-en