Generátory náhodných čísel Vít Bílý 12.5.2016
Cíle experimentu Získat funkce na testování náhodnosti čísel Otestovat nejjednodušší generátory pseudonáhodných čísel Sestavit domácí generátor čísel Otestovat ho
Teorie Softwarové generování čísel PRNG Pseudonáhodná čísla Za použití algoritmu RAND() SRAND()
Teorie Hardwarové generátory čísel TRNG Využívají náhodné fyzikální jevy – kvantová fyzika, radioaktivita Ale i hrací kostka, hod mincí,… Metoda Monte Carlo HotBits
Testování náhodnosti [1]
Testování náhodnosti Problém – nikdy nelze říct, že testovaný vzorek dat je náhodný, ale ani s naprostou jistotou to nemůžeme vyloučit Využití statistických testů Jednoduchý vizuální test ENT
Testování náhodnosti Statistické testy Chí kvadrát test dobré shody Hodnota Monte Carlo pro π Aritmetický průměr Entropie (Možnost komprese)
Testování náhodnosti Chí kvadrát test dobré shody Funguje na principu porovnávání očekáváné a skutečné četnosti znaků na různých disjunktních intervalech Po porovnání s odvozeným testovým kritériem lze rozhodovat o náhodnosti čísel Velmi citlivý
Testování náhodnosti Chí kvadrát test dobré shody χ 2 = 𝑖=0 𝑘 ( 𝑋 𝑖 − 𝑃 𝑖 ) 2 𝑃 𝑖 Kde 𝑋 𝑖 je skutečná četnost a 𝑃 𝑖 očekávaná četnost Tuto hodnotu porovnáme s kritickou hodnotou pro n-1 stupňů volnosti
Testování náhodnosti [2]
Testování náhodnosti Hodnota Monte Carlo pro π [3]
Testování náhodnosti Aritmetický průměr Entropie Jednoduchý test, určující relativní velikost hodnot U velkých souborů prakticky postrádá smysl V našem případě : 127,5 Entropie Udává informační hustotu souboru v bitech na znak
Šum = náhodný signál Bílý šum má konstantní výkonovou spektrální hustotu jsou v něm zastoupeny rovnoměrně přibližně všechny frekvence
A nyní již experiment:
Závěr Všechny stanovené cíle se kvůli nečekaným problémům s testovacími funkcemi podařilo splnit v podstatě jen napůl
Poděkování Vám za pozornost Ing. Vojtěch Svoboda, CSc Tomáš Truhlář Vojta “Zlatovláska” Fišer
Literatura [1] - DILBERT © 2001 Scott Adams, dostupné na: https://www.random.org/analysis/ [2] – ROOT.CZ, dostupné na: http://www.root.cz/clanky/ent-program-pro-testovani-sekvenci-pseudonahodnych-cisel/ [3] ENT by John Walker, dostupné na: http://www.fourmilab.ch/random/ [4] Tomáš Ecler, dostupné na: https://www.vutbr.cz/www_base/zav_prace_soubor_verejne.php?file_id=105408