“Dobj egy dNTP-t sebzésre!” – Véletlenszámok DNS-sel

Mire jó egy véletlenszám?

A véletlenszámok generálása mindig is a hétköznapok szerves részét képezte. Már az ókori Egyiptomból és Mezopotámiából (i.e. 3000 környéke) is maradtak fenn olyan népszerű társasok, ahol a fej-vagy-írás a játék központi mechanizmusa. Sokkal később már volt életművész, aki a fizikai Nobel-díjat a makao nevű kártyajátékon nyerte el Noah Bertinus professzortól. Az én gimnazista éveimnek pedig legizgalmasabb pillanatai közé sorolható, mikor d10-esekkel (10 oldalú dobókocka) egész orkhordákat tettünk el láb alól, ha a sors nekünk kedvezett. Akkor még ciki volt szerepjátékozni, aztán jött a Trónok Harca és a Stranger Things…

Manapság azonban a kocka és érme már nem elég hatékony. Számítógépes szimulációk során például másodpercenként több ezer random számra is szükség lehet. De talán ennél is fontosabb ipar napjainkban a kriptográfia (meg vannak véletlensevendéglátóegység kaszinók). Legyen szó banki átutalásról vagy bármilyen kommunikációról a digitális térben, a bizalmas információk titkosítása hatalmas nagyságrendben igényel véletlenszámokat.

Pszeudo és valódi random számok

Léteznek úgynevezett pszeudo (nem valódi) random számok. Könnyen lehet ilyeneket generálni egyszerűbb matematikai szabályokkal is, amik egy kezdeti értékből kiindulva randomnak tűnő számsorozatokat eredményeznek. A legtöbb területen (modellezés, számítógépes játékok) ezek is megállják a helyük. Azonban még a komolyabb pszeudorandom generátorok is rejtenek magukban hátrányokat. Legnagyobb veszélyük, hogy determinisztikusak, azaz ha valaki ismeri az algoritmust és generátor belső állapotát, akkor meg tudja jósolni, hogy az egyes lépésekben milyen számok keletkeznek. Virtuális lottósorsolásokon hasonló manőverrel már nyert valaki körülbelül 7,5 milliárd forintnak megfelelő dollárt (majd 25 év letöltendőt), illetve az Amerikai Nemzetbiztonsági Ügynökséggel (NSA) kapcsolatban is felmerült, hogy egyes titkosításra használt számgenerátorokba ilyen kiskapukat épít.

Pont ezért olyan izgalmas piac a valódi random számok területe. Ezek a számgenerátorok szoftveres és algoritmikus megoldások helyett ténylegesen véletlenszerű fizikai folyamatok valós idejű mérésére építkeznek. Az eképpen keletkezett adatok teljesen jósolhatatlanok, így biztonságosabbak is kriptográfiai szempontból. Ilyen véletlen forrása lehet, a teljesség igénye nélkül, a radioaktív bomlás, atmoszférikus rádiózajok, áramkörökben fellépő fluktuációk és egyéb kvantummechanikai események (ezek közül a kedvencem a kaotikus félvezető lézer, ami úgy hangzik, mint a hatodik Halálcsillagra tervezett szuperfegyver).

D&D: DNS és Digitalizációja

Egy ilyen, valódi véletlenszám-generátorokkal kapcsolatos felvetés, hogy kémiai folyamatokat molekuláris szinten figyeljünk meg, és ezt használjuk ki valamilyen módon. Itt jön a képbe a DNS, mint egy lehetséges rendszer, melyet mostanság sikerült megvalósítani Meisernek és munkatársainak.

Hogy zajlik ez gyakorlatban? Vegyük e nukleinsav építőköveit, a négyféle dNTP-t (leánykori nevükön dezoxiribonukleotid-trifoszfátokat): dATP, dTTP, dCTP és dGTP. Ezek elegyéből indulunk ki egy véletlenszerű DNS szintézise során. Nem egy meglévő DNS-t másolunk; minden egyes polimerizációs lépés olyan, mintha dobnánk egy négyoldalú dobókockával: először mondjuk egy G-t, aztán A-t, T-t, újra T-t satöbbi. Így jutunk egy random DNS-szálhoz (1. ábra). Sőt, nem is kell nekünk szenvedni a laborban! Random DNS-ek már kereskedelmi forgalomban is kaphatóak, ha valaki szeretne egyet otthonra. Pont olyan izgalmas a tartásuk, mint egy cserép petúniának.

1. ábra: Random DNS-ek szintézise (forrás: Meiser és mtsai., 2020)

Ami ezek után még hátravan, az a generált random DNS-ek beolvasása (szekvenálás) és random számokká alakítása. A szekvenálás manapság elterjedt újgenerációs technológiákkal könnyen és gyorsan megoldható. A DNS-ek random számmá való átdolgozása sem kihívás. A digitális világ amúgy is bináris értékekkel operál. Rendeljünk mindegyik bázishoz nullát vagy egyet a következőképpen: A→0, C→0, T→1, G→1. Így lesz mondjuk a GATTACA szekvenciából 1011000, mint random bitek sorozata.

Az olvasóban felmerülhet, hogy megduplázhatnánk a hatékonyságot, ha kettesével osztanánk ki a biteket, pl.: A→00, C→01, T→10, G→11. Ennek hiánya a jelenlegi technológia egyik gyermekbetegségének, pontosabban annak megoldásának tudható be. A random DNS szintézis ugyanis nem teljesen random, G és T sokkal gyakrabban épül be a jelenlegi eljárások során. Ez azt is jelenti, hogy bizonyos véletlenszámok nagyobb valószínűséggel ütnék fel a fejüket. A probléma más számgenerátorok esetében is ismert, megoldására létezik is algoritmus, melyet von Neumann korrektor-nak hívnak (Neumann János után). Ez a korrekció azonban nem működne, ha kettesével generálnánk a biteket.

Ami ennél is fájdalmasabb, hogy a korrektor is további veszteségekkel dolgozik, az eredeti nemannyiravéletlen bittengerből így csak negyedannyi igazánvalódi random számot lehet kitermelni. Összességében tehát nyolcszoros veszteségről beszélhetünk. Mégis, az ilyen csiszolatlanságai ellenére is elfogadhatóan teljesít a DNS ha más generátorokkal vetjük össze (1. táblázat). Különösen igaz ez akkor, ha azt az ismertebb valódi véletlenszám technológiák teljesítményéhez mérjük.

RendszerTípusProdukciós ráta (MB/s)
Mersenne Twister algoritmuspszeudo15000
Kaotikus félvezető lézer (Reidler és mtsai., 2009)valódi1560
Intel® DRNGhibrid (valódi + pszeudo)800
DNS (Meiser és mtsai., 2020)valódi0,3
Atmoszférikus zörej (Random.org)valódi0,0015
Radioaktív bomlás (HotBits)valódi0,0001
1. táblázat: DNS és más véletlenszám-generátorok teljesítménye, Meiser és mtsai. (2020) nyomán, módosítva

A DNS-alapú rendszer komoly előnye a könnyű hordozhatósága: egy 1ml-nyi DNS körülbelül 1019 bit információt tud raktározni (ez merevlemeznek sem utolsó, de a mi esetünkben ez mind értékes random bit lehetne). Szekvenátorokból is vannak már egész kompakt típusok. A rendszer jelenlegi korlátját és fő költségét is ez utóbbi, a szekvenálás jelenti, ami viszont továbbra is egy fejlődő terület. Javulásra tehát még számíthatunk a későbbiekben, s így semmi jövőbeli akadálya nincs annak, hogy a holnap társasjátékait már sufnituning dNTP random számokkal játszhassuk.

(A borítókép a Wikipedia oldaláról származik)


Meiser, L.C., Koch, J., Antkowiak, P.L. et al. DNA synthesis for true random number generation. Nat Commun 11, 5869 (2020). https://doi.org/10.1038/s41467-020-19757-y

Reidler, I., Aviad, Y., Rosenbluh, M. & Kanter, I. Ultrahigh-speed random number generation based on a chaotic semiconductor laser. Phys. Rev. Lett.103, 1–4 (2009). https://doi.org/10.1103/PhysRevLett.103.024102

Zhirnov, V., Zadegan, R., Sandhu, G. et al. Nucleic acid memory. Nature Mater 15, 366–370 (2016). https://doi.org/10.1038/nmat4594

4 thoughts on ““Dobj egy dNTP-t sebzésre!” – Véletlenszámok DNS-sel

  1. Fordulo Bogyo

    Aprosag:
    ” A random DNS szintézis ugyanis nem teljesen random, G és T sokkal gyakrabban épül be a jelenlegi eljárások során. ”
    Ez konnyen korrigalhato a G es T monomerek koncentraciojanak modositasaval.
    Mellesleg en nem tapasztaltam ezt, amikor (vagy 20 eve) az IDT-tol random DNS-t vasaroltam, es szekvenaltam. Az volt a trukk, hogy ahelyett, hogy N-t programoztak volna a DNS-t szintetizalo berendezesbe, ami mind a negy szelepet egyszerre kinyitja, kezzel keszitettek egy mind a negy monomert tartalmazo kevereket es ebbol szintetizaltak. Igy konnyu a kemiai aktivitasuk aranyaban keverni a betuket.

    Reply
    1. Ádám Radványi Post author

      Ezek a random DNS-ek kereskedelmi forgalomban voltak kaphatók, és különböző biotech cégektől származtak (név szerint Microsynth és Eurofins, ha valakinek ez jelent valamit, nekem nem). Nem tudom a szerzők milyen szinten tudták befolyásolni a rendelés menetét. Elvileg más lépések (PCR és maga a szekvenálási folyamat) is is eredményezhet ilyen bias-t, de a szerzők minden egyebet kizártak és a szekvenálás maradt magyarázatnak,
      Amúgy a bias maga nem volt nagyon extrém ( G-T: kb, 30-30% ; C-A: kb. 20-20% )

      Reply
    1. Ádám Radványi Post author

      Szerepjátékban gyakran elhangzó mondat szokott lenni hogy: “Dobj d10-zel kezdeményezésre/sebzésre/képességpróbára”. Ez akkor történik mikor kocka segítségével döntjük el, hogy az adott karakter valamilyen cselekményt sikeresen, vagy milyen sikeresen hajt végre? Ennek kifordítása.

      Reply

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.