Hardwarový generátor náhodných čísel ( true random number generator ) je zařízení, které generuje sekvenci náhodných čísel na základě naměřených, chaoticky se měnících parametrů probíhajícího fyzického procesu. Činnost takových zařízení je často založena na použití spolehlivých zdrojů entropie , jako je tepelný šum , hluk výstřelu , fotoelektrický jev , kvantové jevy atd. Tyto procesy jsou teoreticky absolutně nepředvídatelné, ale v praxi náhodná čísla z nich získaná jsou kontrolovány pomocí speciálních statistických testů .
Hardwarové generátory náhodných čísel se používají především pro statistické testování a v kryptografii , kde se používají ke generování kryptografických klíčů pro šifrovaný přenos dat. Taková zařízení jsou také široce používána v online kasinech k simulaci například rulety . Ale vzhledem ke složitosti implementace a relativní pomalosti závisí použití takových generátorů na potřebách konkrétní oblasti a na návrhu samotného generátoru.
Jednoduché kostky , široce používané v hazardních hrách v minulosti a v deskových hrách dnes, jsou nejjednodušším skutečným generátorem náhodných čísel. V roce 1890 anglický badatel Francis Galton popsal způsob, jak pomocí kostek generovat náhodná čísla pro vědecké účely [1] .
Za další vývoj hardwarových generátorů náhodných čísel lze považovat speciální zařízení – loterijní automaty , používané pro generování čísel v loterii a keno . Skládají se především z bubnu, který míchá kuličky s čísly, a zařízení, které je z něj jednu po druhé odebírá. Tento způsob generování je však velmi pomalý a nevhodný pro automatické generování velkých datových polí [2] .
Pro aplikované úlohy bylo potřeba velké množství dat. V roce 1939 M. J. Kendall a B. Babington-Smith sestrojili první stroj na generování náhodných čísel, který sestrojil tabulku 100 000 náhodných čísel. A po 16 letech vytvořila společnost RAND pomocí speciálních zařízení tabulku milionu náhodných čísel. Přes oživení tabulkové metody v roce 1996 J. Marsaglia , který sestavil 650 MB náhodných čísel, je rozsah použitelnosti takových tabulek velmi úzký [3] .
Mnohem rozšířenější jsou generátory náhodných čísel, které je generují v reálném čase. V roce 1951 byl do počítače Ferranti Mark 1 zahrnut program , který generoval náhodná čísla pomocí šumu rezistoru . Myšlenka vytvoření tohoto programu patřila A. Turingovi [4] . A v roce 1957 byl vynalezen stroj ERNIE (Electronic Random Number Indicator Equipment) , jehož čtvrtá verze byla představena v roce 2004. Toto zařízení bylo původně navrženo pro generování čísel výherních dluhopisů v britské loterii [5] .
Hardwarové generátory náhodných čísel mohou být založeny na makroskopických náhodných procesech využívajících předměty, jako je mince, kostka nebo ruleta. Přítomnost nepředvídatelnosti v datech je vysvětlena teorií nestabilních dynamických systémů a teorií chaosu . I makroskopické systémy kompletně definované Newtonovými rovnicemi v praxi mají nepředvídatelný výstup, protože závisí na mikroskopických detailech počátečních podmínek [6] .
Zařízení založená na makroskopických náhodných procesech nemohou poskytnout rychlost získávání náhodných čísel dostatečnou pro aplikované problémy. Proto jsou moderní AGNG založeny na zdroji šumu , ze kterého jsou extrahovány náhodné bity . Zdroje hluku se dělí na dva typy: mající kvantovou povahu a nevyužívající kvantové jevy [7] [8] .
Důsledkem zákonů kvantové fyziky je skutečnost, že některé přírodní jevy (například radioaktivní rozpad atomů) jsou naprosto náhodné a nelze je v zásadě předvídat (za jeden z prvních experimentů dokazujících pravděpodobnostní povahu některých jevů lze považovat Davisson-Germerův experiment ). Ze statistické mechaniky také vyplývá , že při teplotě, která se nerovná absolutní nule , má každý systém ve svých parametrech náhodné výkyvy .
Vzhledem k tomu, že některé kvantově mechanické procesy jsou zcela náhodné, jsou „zlatým standardem“ pro AGNG. Mezi jevy používané v generátorech patří:
Nekvantové jevy jsou snadněji detekovatelné, ale AGNG na nich založené budou silně záviset na teplotě (například množství tepelného šumu je úměrné teplotě okolí). Mezi procesy používané v AGNG lze poznamenat:
Existuje několik přístupů k získání sekvence náhodných bitů z fyzického náhodného procesu . Jedním z nich je, že přijímaný signál-šum je zesílen, filtrován a přiváděn na vstup vysokorychlostního komparátoru napětí , aby se získal logický signál . Doba trvání stavů komparátoru bude náhodná, což vám umožní vytvořit sekvenci náhodných čísel měřením trvání těchto stavů. V takových systémech je třeba vzít v úvahu, že kromě použitého generátoru šumu jej mohou zavádět další součásti systému (například siločára ), což může značně ovlivnit statistické parametry generovaného bitu. sekvence [11] [8] .
Jiný přístup spočívá v tom, že náhodný signál je přiváděn na vstup analogově-digitálního převodníku (lze použít jak speciální zařízení, tak počítačový audio vstup), v důsledku toho bude digitalizovaný signál posloupností náhodných čísel, která lze zpracovány programově . Existují také metody pro kombinaci rychlého generátoru pseudonáhodných čísel s pomalým hardwarovým generátorem [11] [8] .
Generátory náhodných čísel využívající fyzikálních náhodných procesů produkují dobrá náhodná čísla, ale jejich výroba je poměrně obtížná a nákladná (zejména u AGNG založených na radioaktivním rozpadu ), ale existují dostupnější zdroje náhodnosti [12] :
Mezi nejneobvyklejší generátory patří díla využívající digitální videokamery zaznamenávající makroskopické jevy . Například tým ze Silicon Graphics použil záběry lávové lampy ke generování náhodných čísel, protože vosk v lampě náhodně mění svůj tvar. Také bubliny v akváriu nebo stuhy v proudu vzduchu z ventilátoru mohou být použity jako předmět pro fotografování [13] .
Hlavním problémem hardwarových generátorů náhodných čísel je jejich relativně pomalý provoz ve srovnání s generátory pseudonáhodných sekvencí . Mnohé z nich také postupně degradují (například vlivem poklesu radioaktivity látky v průběhu času), takže je před každým použitím nutné testovat na statistickou náhodnost (mnoho z nich je testováno v reálném čase ) [8] .
Dalším problémem spojeným s hardwarovými generátory náhodných čísel je offset matematického očekávání výstupní bitové sekvence (když je v sekvenci více čísel než ostatní, je v binární soustavě více jedniček než nul ). Je to způsobeno zvláštnostmi fyzikálních procesů používaných v generátorech hluku. Tento problém je řešen pomocí speciálních algoritmů, které umožňují vyrovnat průměrně počet nul a jedniček v dostatečně dlouhém vzorku čísel [14] [8] .
J. Neumann byl jedním z prvních, kdo navrhl jednoduchý algoritmus pro korekci zkresleného očekávání v sekvenci. Algoritmus spočívá v tom, že bity jsou uvažovány v párech: pokud jsou v páru dvě identické hodnoty, pak je pár zahozen; pokud jsou bity různé, pak se místo páru zapíše pouze první bit v tomto páru. Nevýhodou tohoto algoritmu je, že je zahozeno asi 75 % bitů a v důsledku toho výrazně klesá rychlost generování náhodných bitů [14] .
Další metodou je použití kryptografických hashovacích funkcí (např . SHA-1 ), protože splňují přísné požadavky na šifrovací sílu . Ale i přes relativní rychlost této metody jsou obtížně hardwarově reprodukovatelné kvůli nelinearitě hashovacích funkcí a kvůli silné závislosti takového generátoru na kvalitě samotné hashovací funkce [14] .
Pro snížení zkreslení matematického očekávání se také používají kryptograficky silné generátory pseudonáhodných sekvencí , jejichž bitový tok je pomocí operace XOR přidán k bitovému toku z hardwarového generátoru. Hlavní výhodou této metody je, že ji lze implementovat zcela hardwarově, například na FPGA [14] .
Profesor biofyziky Shnol Simon Elievich objevil ve studiích z let 1985-2002 pravidelnou změnu v jemné struktuře statistických distribucí, odrážející výsledky měření získaných při studiu procesů různé povahy. Ukázal, že tvar odpovídajících histogramů ve stejném místním čase je velmi pravděpodobně podobný při měření procesů různé povahy v různých geografických lokalitách a že se mění s periodou rovnou hvězdnému dni (23 hodin 56 minut), od což došel k závěru, že základní kosmofyzikální povaha tohoto jevu.