Sokan kérdezték tőlem az utóbbi időben, hogyan hozhatnánk létre igazán biztonságos titkosítási kulcsokat anélkül, hogy drága hardverekre költenénk, ezért ma megmutatom, hogyan valósítható meg a Kvantumszámítógép a fiókban: Így építs valódi kriptográfiai véletlenszám-generátort légköri zajból és egy olcsó RTL-SDR dongle-ből házilag. A modern operációs rendszerek általában pszeudovéletlenszámokat használnak, amik bár gyorsak, kiszámíthatóak lehetnek. Ezzel szemben a rádiófrekvenciás zaj, ami a légkörből érkezik, valódi fizikai entrópia, amit szinte lehetetlen reprodukálni vagy megjósolni.
A számítógépek alapvetően determinisztikus gépek. Ha megadsz nekik egy kezdeti értéket, mindig ugyanazt az eredményt kapják vissza. A kriptográfia viszont a bizonytalanságra épít. A legtöbb jelszókezelő vagy titkosító algoritmus szoftveres alapú "véletlenséget" használ, ami statisztikailag rendben van, de ha valaki ismeri a kezdeti állapotot, a kód feltörhető.
A rádióamatőrök és a kiberbiztonsági szakemberek régóta tudják, hogy az éterben zajló háttérzaj – legyen az távoli villámlások hatása vagy kozmikus sugárzás – tökéletes forrása a valódi véletlennek. Amikor egy RTL-SDR vevővel ráhangolódsz egy frekvenciára, ahol nincs állomás, csak a sercegést hallod, az valójában a világegyetem egyik legizgalmasabb fizikai folyamata.
Nem kell mérnöki diploma a rendszer összeállításához. A hardverigény minimális, szinte mindenki talál otthon egy fiókban porosodó eszközt.
Az egész rendszer szíve az RTL-SDR szoftvercsomag, ami lehetővé teszi, hogy a dongle digitális adatfolyamként értelmezze a rádiójeleket. A célunk nem az, hogy rádiót hallgassunk, hanem az, hogy a vett jel amplitúdójának apró ingadozásait rögzítsük.
A rendszer működése három fő lépésből áll. Először rögzítjük a zajt, másodszor kiszűrjük a felesleges adatokat, végül pedig a kinyert zajból egy erős kriptográfiai hash-sel generálunk véletlenszámot.
Az első lépésben az rtl_sdr parancssori eszközt használjuk a nyers adatok kinyerésére. A cél az, hogy a jel-zaj arányt a lehető legkisebbre vegyük, mert nekünk pont a zaj kell, nem a tiszta adás.
A legfontosabb rész az entrópia kinyerése. Mivel a nyers rádiójel nem teljesen egyenletes eloszlású, szükség van egy úgynevezett "whitening" folyamatra. Ezt a legegyszerűbben az SHA-256 hash algoritmussal tudjuk megoldani. Amikor a rádiózajból vett adatokat áthajtod ezen az algoritmuson, a kimenet már kriptográfiailag biztonságos véletlenszám-sorozat lesz.
Sok kezdő elköveti azt a hibát, hogy vakon bízik a saját fejlesztésű eszközében. A kriptográfiában a tesztelés a legfontosabb. A dieharder nevű tesztcsomag a sztenderd arra, hogy kiderüljön, a generált számaid valóban véletlenszerűek-e.
Miután összeállt a rendszer, számtalan dologra használhatod. A titkosítási kulcsok generálása az elsődleges felhasználási terület. Ha saját szervert üzemeltetsz, a haveged vagy más entrópia-generáló démonok helyett táplálhatod a rendszer véletlenszám-generátorát (a /dev/random eszközt) a saját, légköri zajból származó adataiddal.
Ez a megoldás nem csak izgalmas projekt, hanem egyfajta digitális szuverenitást is ad. Nem függsz a processzorod belső véletlenszám-generátorától, ami akár szándékosan gyengített is lehet. A rádióhullámok kaotikus természete mindenki számára elérhető, teljesen ingyenes, és ami a legfontosabb, a te irányításod alatt áll.
A rádiófrekvenciás környezet változékony. Egy közeli router vagy akár a mikrosütő bekapcsolása is megzavarhatja a mérést. Érdemes a rendszert egy árnyékolt dobozban elhelyezni, vagy szoftveresen korrigálni a túl alacsony jelszintet.
Ezzel a módszerrel egy olyan eszközt kapsz, ami valóban a fizikai világból meríti a titkokat. Érdekes belegondolni, hogy egy távoli villámcsapás vagy egy éppen érkező kozmikus részecske lesz az az adat, ami megvédi a személyes üzeneteidet az illetéktelenektől. Építsd meg, kísérletezz vele, és élvezd, hogy a fiókodban rejlő kis kütyü a fizika törvényeit használja a digitális világ biztonságáért.