Jak funguje generátor náhodných čísel (RNG)?
Panna nebo orel, na tom nezáleží. Důležité je, že nemůžete výsledek předvídat. Nanejvýš se ho můžete pokusit uhodnout. A v tomto případě by to bylo docela snadné, protože máte jen dvě možnosti. Ale co kdybyste museli uhodnout dlouhou posloupnost čísel a/nebo symbolů? To by bylo téměř nemožné, že?
Generátory náhodných čísel (RNG) jsou hardwarová zařízení nebo softwarové algoritmy, které pokaždé, když jsou aktivovány, vytvářejí odlišnou posloupnost čísel (a/nebo symbolů), podobně jako házení mincí, ale v digitálním světě.
📝Obsah
Stručné dějiny náhody
Lidé využívali náhodnost už od starověku. Kostky, pocházející zhruba z roku 2400 př. n. l., byly nalezeny v archeologických nalezištích v Egyptě, a sumerksé pyramidové kostky (se čtyřmi stranami) se datují do třetího tisíciletí př. n. L.
V moderním světě už kostky a házení mincí nestačilo.
V roce 1947 RAND Corporation vytvořila elektronické zařízení, které generovalo čísla pomocí generátoru náhodných impulzů. Poté byly zveřejněny výsledky v knize, která byla určena k tomu, aby byla užitečná pro vědce a výzkumné pracovníky, kteří potřebují náhodný odběr vzorků.
Britská elektrotechnická firma Ferranti Ltd přidala generátor náhodných čísel do Ferranti Mark 1, prvního komerčně dostupného počítače na světě, který byl k dispozici v únoru 1951. Vestavěný RNG používal elektrický šum k vytvoření až 20 náhodných číslic najednou.
Jak funguje generátor náhodných čísel?
Ke generování náhodných čísel se dnes používají jak hardwarová zařízení, tak softwarové algoritmy. Abychom pochopili, jak RNG fungují, musíme prozkoumat tyto dvě různé metody generování náhodných čísel.
Hardwarové generátory náhodných čísel (HRNG) se také nazývají generátory skutečných náhodných čísel (TRNG). Je to proto, že spoléhají na fyzické změny s náhodnými vlastnostmi, aby vytvořili určitý počet náhodných bitů za sekundu.
Například HRNG mohou měřit atmosférický hluk prostřednictvím rádiového přijímače, tepelný hluk z rezistoru, lavinový hluk nebo Zenerův hluk z poruchových diod atd. Nebo mohou detekovat kvantovou mechanickou fyzickou náhodnost v procesu radioaktivního rozpadu pomocí Geigerova počítadla, odchylky ve vakuové energii prostřednictvím homodynové detekce, Poissonův šum v elektronických obvodech, fotony v poloprůhledných zrcadlech a zesílené signály z reverzních tranzistorů (prostřednictvím kvantového tunelování přes energetické mezery) a dalších zdrojů.
Naproti tomu softwarové RNG se uchylují k algoritmům. Algoritmus je omezený soubor instrukcí. Algoritmus v RNG zahrnuje řadu matematických operací, které musí být provedeny na náhodné počáteční nebo počáteční hodnotě. Protože to může podmínit konečné náhodné bitové sekvence, nepovažují se softwarové RNG za skutečně náhodné, ale pouze za emulující náhodnost. Proto se nazývají generátory pseudonáhodných čísel (PRNG).
PRNG jsou však mnohem rychlejší než HRNG a úroveň náhodnosti, kterou mohou poskytnout, je pro určité aplikace stále dostačující.
Generátory náhodných čísel v kryptografii
Kryptografie je praxe a studium technik dat a komunikace s cílem udržet je v soukromí.
Vzhledem k tomu, že se jedná o obor, jehož cílem je učinit informace nepřístupné pro neoprávněné uživatele, kryptografie často spoléhá na generování náhodných čísel, například za účelem vytvoření klíčů, které se používají k šifrování dat, pro počáteční hodnoty nebo autentizační protokoly pro kryptograficky chráněné komunikace, jednorázové podložky, atd.
Jak si můžete domyslet, tato aplikace vyžaduje vysoce bezpečné, nepředvídatelné generování náhodných čísel. Běžné generátory pseudonáhodných čísel nejsou dostatečně bezpečné a generátory hardwarových čísel nejsou dostatečně rychlé nebo jsou omezeny množstvím entropie, která je k dispozici pro použití. Proto nejsou obecně vhodné pro kryptografii.
Vzhledem k těmto nevýhodám používají kryptografové hybridní přístup, který pracuje jak s přirozenou entropií, tak s počítačovými algoritmy. Tento druh generování náhodných čísel se nazývá kryptograficky zabezpečené generování pseudonáhodných čísel (CSPRNG).
CSPRNG extrahují náhodné bity z fyzických událostí probíhajících ve stroji (např. z čipového generátoru tepelného šumu) a kódují je pomocí hašovací funkce, která je vhodná pro kryptografii.
RNG v hraní her
Náhodnost oživí spoustu her. Představte si deskové hry jako Člověče nezlob se nebo Dostihy a dokonce i kasinové hry, které můžete vidět ve filmech z Las Vegas bez RNG složky. Online verze těchto her vegas simuluje digitální kostky a další události prostřednictvím PRNG. Jedním slavným příkladem jsou hrací automaty inspirované mnoha různými tématy, jako jsou rockové kapely, televizní seriály nebo mytologické bytosti, kde generátor náhodných čísel vždy zajišťuje, že výsledek je zcela náhodný a spravedlivý.
Ve videohrách se PRNG používají k udržení vysoké úrovně nepředvídatelnosti a přidání hodnoty opakování do hry, a zároveň šetří čas a úsilí vývojářů, protože je pro ně mnohem jednodušší náhodně vybrat například kořist namísto programování toho, co z každého nepřítele vypadne, když je zabit. Jedním slavným příkladem jsou MMORPG hry, kde hráči vždy hledají nejlepší kořist, mechaniku, která je obecně randomizována pomocí technologie RNG.
RNG ve videohrách lze také použít k určení toho, jakou položku hráč získá z truhly, s jakými náhodnými událostmi se setká v otevřeném světě včetně změn počasí) a kdy a zda hráč dostane kritický zásah během bitvy a samozřejmě má další využití.