Componentz

Digitális erődítmény: Építs saját hardveres EMI-alapú véletlenszám-generátort (TRNG) a kriptográfiai kulcsaid maximális biztonságához

2026-05-27
Digitális erődítmény: Építs saját hardveres EMI-alapú véletlenszám-generátort (TRNG) a kriptográfiai kulcsaid maximális biztonságához

Amikor a privát kulcsaid biztonságáról van szó, a legtöbben elkövetik azt a hibát, hogy a számítógépük beépített, látszólag véletlenszerű funkcióira bízzák a sorsukat. A valódi, visszafejthetetlen véletlen azonban nem szoftveres eredetű. Ha igazán nyugodtan akarsz aludni, miközben a kriptográfiai kulcsaid maximális biztonságához szükséges eljárásokat keresed, akkor a modern "zaj-diktatúra": így építs saját, hardveres EMI-alapú véletlenszám-generátort (TRNG) a kriptográfiai kulcsaid maximális biztonságához című írásom neked szól. Ez nem egy bonyolult elméleti értekezés, hanem egy kézzelfogható megoldás azokra a problémákra, amiket a digitális világ szürke zajszintje okoz.

Miért nem elég a szoftveres véletlen?

A számítógépek alapvetően determinisztikusak, vagyis minden lépésüket egy előre megírt utasításrendszer vezérli. A legtöbb operációs rendszer úgynevezett pszeudo-véletlenszám-generátorokat (PRNG) használ. Ezek egy adott kezdeti értékből, a seedből indulnak ki, és egy matematikai algoritmus segítségével generálnak látszólag kiszámíthatatlan számsorozatot.

Ha valaki ismeri ezt a kezdőértéket és az algoritmust, a teljes számsorozatot újra tudja alkotni. Ez a kriptográfia legnagyobb ellensége. A valódi véletlen (TRNG – True Random Number Generator) ezzel szemben valamilyen fizikai folyamatra támaszkodik, amelyet lehetetlen előre jelezni vagy reprodukálni. Ilyen fizikai jelenség például az elektromágneses interferencia (EMI), a termikus zaj vagy a radioaktív bomlás.

A zaj mint a legbiztosabb forrás

Az EMI vagyis az elektromágneses interferencia mindenhol jelen van. A falban futó vezetékek, a Wi-Fi jelek, a mobiltelefonok és a közeli elektromos eszközök folyamatosan apró, kaotikus zavarjeleket bocsátanak ki a környezetünkbe. Ha egy egyszerű antennát csatlakoztatsz egy analóg-digitális konverterhez, akkor ezt a környezeti zajt képes vagy befogni.

Ez a zaj önmagában nem rendezett, és ami a legfontosabb, nem tartalmaz semmilyen mintázatot. Amikor ezt a zúgást digitális jellé alakítod, olyan bitfolyamot kapsz, amely statisztikailag tökéletesen egyenletes eloszlású. Ebből az alapanyagból aztán kiváló kriptográfiai kulcsokat lehet formálni, amik ellenállnak a statisztikai elemzéseken alapuló támadásoknak.

Mire lesz szükséged az építéshez?

Nem kell mérnöki diploma ahhoz, hogy összehozz egy ilyen eszközt. Pár alkatrész beszerezhető bármelyik hobbi elektronikai boltból. A cél az, hogy a környezeti elektromágneses zajt felerősítsük, majd egy mikrokontrollerrel feldolgozzuk.

Az alábbi elemekre lesz szükséged:

  • Egy Arduino vagy ESP32 mikrokontroller, ami a digitális feldolgozást végzi.
  • Egy kis méretű rézhuzal, ami antennaként funkcionál és befogja a környezeti EMI-t.
  • Egy műveleti erősítő (op-amp), amivel a gyenge jelet felerősítheted a mikrokontroller számára értelmezhető szintre.
  • Pár ellenállás és kondenzátor, amivel a zajt szűrheted és stabilizálhatod a bemeneti jelet.
  • Egy breadboard a forrasztásmentes teszteléshez, mielőtt dobozolnád a cuccot.

A folyamat lelke: A mintavételezés

Miután összekötötted az antennát a műveleti erősítővel, a kimenő jelet a mikrokontroller analóg portjára kell kötnöd. A programozás során nem az a cél, hogy egy sima jelet mérj, hanem hogy a zajt mintavételezd. A leggyakoribb hiba, hogy az olvasott értékek között korreláció lép fel. Ezt úgy tudod kiküszöbölni, ha a mintavételezés frekvenciáját nem hangolod össze semmilyen órajellel.

Az így kapott értékekből a legkevésbé jelentős biteket (Least Significant Bits) érdemes kinyerni. Ezekben a bitekben rejlik a valódi káosz. A kinyert biteket aztán egy úgynevezett von Neumann-algoritmuson keresztül futtatod át, ami kiküszöböli a statisztikai torzítást, és garantálja, hogy a kimenetünk valódi, magas entrópiájú véletlen legyen.

Hogyan használd a generált kulcsokat?

Amikor elkészült az eszközöd, a mikrokontrollert USB-n keresztül csatlakoztathatod a számítógépedhez. Egy egyszerű szkripttel a kimeneti adatfolyamot elmentheted egy fájlba, vagy közvetlenül bevezetheted egy GPG-kulcs generáló folyamatba.

A legfontosabb szabály, hogy soha ne bízz meg vakon az általad épített hardverben sem az első napon. Érdemes futtatni rajta különböző statisztikai tesztcsomagokat, mint amilyen az ent vagy a dieharder. Ezek a programok képesek kimutatni, ha a zajforrásod mégsem lenne elég véletlenszerű, vagy ha valami szisztematikus hiba csúszott volna az áramkörbe.

Biztonsági szempontok az építés során

A hardveres véletlenszám-generátor nemcsak a szoftveres támadások ellen véd, hanem a fizikai kompromittálódás ellen is. Ha a számítógéped operációs rendszere fertőzött, a szoftveres véletlenszám-generátorok kimenetét könnyen kitalálhatják. Az EMI-alapú generátorod viszont a géptől független, külső forrásból táplálkozik.

Néhány dolog, amire érdemes figyelni a gyakorlatban:

  • A dobozolásnál használj árnyékolást, de az antenna maradjon szabadon, hogy be tudja fogni a környezeti zajt.
  • Kerüld az akkumulátoros táplálást, ha lehetséges, mert a feszültségszabályozók saját, periodikus zajt adhatnak hozzá a jelhez.
  • Soha ne tárold a generált kulcsokat a gép merevlemezén titkosítás nélkül, mert a hardveres véletlen csak a kulcs létrehozásakor nyújt védelmet.

A saját TRNG megépítése egyfajta technológiai függetlenséget ad. Nem a szoftverfejlesztő cégek matematikai modelljeire támaszkodsz, hanem a körülötted lévő univerzum folyamatos, zajos rezgéseire. Ez a megközelítés a valódi önrendelkezés alapja a digitális térben, ahol a bizalom helyét a fizikai valószínűség számítások veszik át. Ne elégedj meg az átlagos biztonsággal, amikor egy kis kreativitással és néhány elektronikai alkatrésszel te magad is irányíthatod a kriptográfiai véletlened forrását.