A digitális világunkat az algoritmusok mozgatják, de vajon mennyire bízhatsz azokban a véletlenszámokban, amelyeket a számítógéped szoftveresen állít elő? Amikor a "Kvantum-ébresztő az íróasztalon: Hogyan építs saját, hardveres véletlenszám-generátort (TRNG) valódi zajforrásból a 100%-os kriptográfiai biztonságért" kérdésköre szóba kerül, sokan csak a sci-fi filmekre gondolnak, pedig a valóság ennél sokkal kézzelfoghatóbb. A legtöbb operációs rendszer álvéletlenszám-generátorokat használ, amelyek egy előre meghatározott matematikai képletből indulnak ki. Ha valaki ismeri a kezdeti értéket, a teljes biztonsági rendszered egy pillanat alatt kártyavárként dőlhet össze. Én inkább a természet káoszában bízom, ezért építettem egy saját eszközt, ami az univerzum apró, kiszámíthatatlan zajaiból meríti a biztonságot.
A hagyományos számítógépek determinisztikusak. Ez annyit tesz, hogy ugyanarra a bemenetre mindig ugyanazt a kimenetet adják. A szoftverek ezt úgy trükközik ki, hogy az órajelből vagy a merevlemez-mozgásokból próbálnak "zajt" nyerni. Ez azonban biztonsági szempontból kevés. Egy profi támadó számára ezek a folyamatok gyakran előrejelezhetőek.
A hardveres véletlenszám-generátor, azaz a TRNG, a fizikai világ eseményeit használja. Ilyen lehet az elektronok hőmozgása egy ellenállásban, a radioaktív bomlás, vagy éppen egy fotodióda által észlelt kvantumzaj. Mivel ezek a folyamatok alapjaikban véve véletlenszerűek, nem lehet őket modellezni vagy lemásolni.
Nem kell mérnöki diploma ahhoz, hogy összehozz egy ilyen kütyüt. A projekt szíve egy zajforrás, egy erősítő és egy analóg-digitális átalakító. Az alábbi eszközökre lesz szükséged az építéshez:
Az áramkör megépítésekor a legfontosabb szempont a zaj tisztasága. A környezeti elektromágneses interferencia, például a hálózati 50 hertzes brumm, tönkreteheti a véletlenszerűséget. Ezért érdemes az áramkört egy árnyékolt fémdobozba helyezni, ami távol tartja a zavaró jeleket.
Miután a zajos jel megérkezett a mikrokontrollered analóg bemenetére, a szoftveres oldalon dől el a dolog. A digitális átalakítás nem csupán annyit jelent, hogy leolvasod az értékeket. A legtöbb esetben az alsó bitek tartalmazzák a valódi zajt, míg a felsőbb biteket az áramköri zaj vagy az erősítő hibája torzíthatja.
Használj egy úgynevezett von Neumann-féle javítóalgoritmust. Ez az eljárás párosával vizsgálja a biteket. Ha a bitpár 01, akkor 0-t generál, ha 10, akkor 1-et. Ha 00 vagy 11 érkezik, egyszerűen eldobja azokat. Ezzel a módszerrel biztosíthatod, hogy a kimenet egyenletes eloszlású legyen, és ne tartalmazzon statisztikai torzítást.
A NIST-tesztcsomagok segítségével ellenőrizheted, hogy a generált számsorozataid mennyire közelítik meg a tökéletes véletlent. Ha a sorozat átmegy a statisztikai próbákon, akkor nyugodtan használhatod a titkosítási kulcsok generálásához.
Sok kezdő építő ott hibázik, hogy a zajforrást nem szűri meg megfelelően. Ha az áramköröd érzékeny a hőmérsékletre, akkor a véletlenszerűség mértéke az idővel változhat. Én például egy kisebb hűtőbordát ragasztottam a zajgeneráló alkatrészre, hogy stabilizáljam a működést.
A másik gyakori hiba a túl alacsony mintavételezési frekvencia. Ha a mikrokontrollered túl lassan olvassa ki a zajt, a statisztikai tulajdonságok romlanak. Érdemes a lehető legmagasabb órajelen futtatni az analóg-digitális konvertert, hogy minél több "nyers" adatot kapj.
Amikor saját TRNG-vel állítod elő a titkosítási kulcsaidat, teljes kontrollod van a folyamat felett. Nem kell többé hinned a szoftvergyártók ígéreteinek, hogy a generátoraik valóban biztonságosak. A saját építésű eszközöd egyfajta "hardveres pecsét" a privát szférádon.
Ha tárolsz titkosított fájlokat a gépeden, vagy gyakran használsz kriptográfiai eszközöket, a saját zajforrásból származó magok használata garantálja, hogy a kulcsaidat senki sem fogja kitalálni. Ez a nyugalom, amit a valódi fizikai véletlen ad, egyszerűen megfizethetetlen.
A projekt nem ér véget az első sikeres tesztnél. A kíváncsibb építők tovább léphetnek: megvizsgálhatják a környezeti zajok hatását, vagy akár két különböző zajforrást is kombinálhatnak, hogy tovább növeljék az entrópia mértékét. Ez az út a biztonságtechnika mélyebb megértéséhez vezet, és egyúttal segít megszabadulni a digitális világ bizonytalanságaitól. A véletlen tehát nem a véletlen műve, hanem egy jól felépített rendszer, amit az íróasztalod sarkán is összerakhatsz.