Generování náhodných čísel na mikrokontrolérech AVR

Rozměr: px
Začít zobrazení ze stránky:

Download "Generování náhodných čísel na mikrokontrolérech AVR"

Transkript

1 Generování náhodných čísel na mikrokontrolérech AVR i

2 České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů Bakalářská práce Generování náhodných čísel na mikrokontrolérech AVR Martin Hadáček Vedoucí práce: Ing. Josef Hlaváč Studijní program: Elektrotechnika a informatika, strukturovaný, Bakalářský Obor: Výpočetní technika 27. května 2010

3 iv Poděkování V první řadě bych chtěl poděkovat panu Ing. Josefu Hlaváčovi za vedení Bakalářské práce a udělené rady. Dále bych chtěl poděkovat své manželce, synovi, rodičům a bratrovi za pomoc a trpělivost při nedostatku času.

4 v Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne

5 Abstract The thesis focuses on the problem of generating random and pseudorandom numbers. Several algorithmic generators as well as several generators based on physical phenomena are shown. One generator is then selected and implemented using the AVR Butterfly demo board. The implementation is then gradually improved for faster random number generation. In order to check the quality of the generator, the thesis furher deals with randomness testing. We describe the approaches to randomness testing as well as individual tests from a test suite that is applicable to pseudorandom and truly random number generators. Individual modifications of the random number generator implementation are tested and the corresponding results are discussed. Abstrakt V práci se zaměřujeme na problematiku náhodného a pseudonáhodného generování čísel. Ukážeme některé algoritmické a fyzikální generátory náhodných čísel. Jeden z generátorů vybereme a implementujeme na vývojové desce AVR Butterfly. Implementaci generátoru budeme postupně upravovat pro rychlejší získávání náhodných čísel. Pro ověření kvality našeho generátoru se zaměříme také na testování náhodnosti. Popíšeme možnosti testování náhodnosti a jednotlivé testy ze sady testů použitelné pro generátory náhodných a pseudonáhodných čísel. Postupně budeme testovat a vyhodnocovat výsledky pro jednotlivé úpravy implementace našeho generátoru. vi

6 Obsah 1 Úvod 1 2 Vymezení cílů BP 3 3 Generátory náhodných čísel Generátory pseudonáhoných čísel Lineární kongruenční generátor LFG generátor LFSR generátor Fyzikální generátory náhodných čísel Generátor náhodného procesu GENAP HotBits Zdroje náhodnosti na mikrokontroléru AVR ATmega164P Vnitřní EEPROM Watchdog reset Watchdog přerušení Nízkofrekvenční krystal Rozhraní RS SPI ADC Časovač ISR Vstupní zachytávací jednotka Náš generátor náhodných čísel na mikrokontroléru Atmel AVR Generování náhodných čísel Testování náhodnosti Testování náhodnosti Popis jednotlivých testů Frequency (Monobit) Test (frekvenční test) Popis testu Definice Příklad Frequency Test within a Block (frekvenční blokový test) Popis testu Definice vii

7 OBSAH viii Příklad Runs Test (test identických skupin) Popis testu Definice Příklad Test for the Longest Run of Ones in a Block (test nejdelší posloupnosti jedniček uvnitř bloku) Popis testu Definice Binary Matrix Rank Test (test hodnosti binární matice) Popis testu Discrete Fourier Transform (spectral) Test (diskrétní test pomocí Fourierovi transformace) Non-overlapping Template Matching Test (test na nepřekrývající se vzory) Popis testu Overlapping Template Matching Test (test na překrývající se vzory) Popis testu Maurer s Universal Statistical Test (Maererův statistický univerzální test) Popis testu Linear Complexity Test (test lineární složitosti) Popis testu Serial Test (sériový test) Popis testu Approximate Entropy Test (aproximační test entropie) Popis testu Cumulative Sums (Cusum) Test (test kumulativní sumy) Popis testu Random Excursions Test (test náhodných odchylek) Popis testu Random Excursions Variant Test (variace testu náhodných odchylek) Popis testu Vyhodnocení výsledků Proportion of Sequences Passing a Test (poměr úspěšných sekvencí) Uniform Distribution of P values (rovnoměrnost rozložení hodnot P value) Konečné vyhodnocení výsledků Návrh řešení Pseudonáhodné generátory versus fyzikální generátory Implementace a testování Předpřipravení dat Použitelné testy Náhodná hodnota každou sekundu

8 OBSAH ix První test Druhý test Vyhodnocení Generování 16 hodnot za sekundu První test Druhý test Testování teplotní závislosti Generování 128 hodnot za sekundu První test Druhý test Vylepšené generování 128 hodnot za sekundu První test Vylepšené generování 512 hodnot za sekundu První test Vyhodnocení Závěr 37 Literatura 38 A Seznam použitých zkratek 39 B Obsah přiloženého DVD 40

9 Seznam obrázků 3.1 Vznik časově náhodných impulsů ze šumu převzato z [6] Princip činnosti generátoru převzato z [6] Schéma hodinových zdrojů u ATmega164P převzato z [11] Schéma ADC u ATmega164P převzato z [11] Princip generování náhodných čísel na AVR Butterfly převzato z [7] Histogram hodnot P value převzato z [3] Final Analysis Report převzato z [3] Četnost neupravených 16bitových hodnot z našeho generátoru Četnost náhodných 8bitových hodnot z našeho generátoru Hodnoty generované při měření teploty Teploty ve C k jednotlivým naměřeným hodnotám Četnost náhodných 16bitových hodnot z našeho generátoru x

10 Seznam tabulek 3.1 Výpočet hodnoty ɛ u generátoru GENAP Požadovaná délka vstupní sekvence pro jednotlivé testy Výsledky prvního testu Výsledky druhého testu xi

11 Kapitola 1 Úvod Generování náhodných čísel není triviální záležitost. Počítače a mikrokontroléry jsou všeobecně konstruovány tak, aby se chovaly deterministicky. Když se nějaký počítač nebo mikrokontrolér začne chovat nedeterministicky, označíme ho za rozbitý a buď ho opravíme nebo vyřadíme. Vzniká nám problém, jak generovat náhodná čísla na deterministickém stroji. V našem případě by se nám více hodily počítače respektive mikrokontroléry, které se chovají náhodně. Tímto by nám vznikl jiný problém. Jak bychom naprogramovaly mikrokontrolér, aby nám generoval náhodná čísla, když se nebude chovat podle programu? I na deterministickém stroji se ale dají generovat náhodná čísla. Když někdo nerozumí nějaké matematické funkci, může pro něj vypočítávat zdánlivě náhodné výsledky. Proto lze pomocí programu generovat náhodná čísla. Když však člověk zná zmíněnou funkci, dokáže výsledky s jistotou vypočítat. Jestliže nechceme, aby se náhodná čísla nedala nikým předvídat, ani tím kdo ví, jak se generují, pak je třeba použít předem nezjistitelný zdroj náhody. Například počasí. Vědci se snaží předvídat počasí po stovky let, ale nikdy nemají jistotu, jaké bude. Všeobecně jsou fyzikální jevy dobrými náhodnými generátory, které se velice špatně předpovídají. Abychom získali z fyzikálních jevů náhodná čísla, musíme je nejdříve změřit. Většinou je potřeba ještě výsledek upravit. Když budeme například měřit rychlost větru v intervalu jedné setiny sekundy, bude jednou naměřená hodnota 30,6 km/h a podruhé 30,8 km/h. Tyto veličiny se mění spojitě. Proto dokážeme odhadnout další naměřenou hodnotu, bude přibližně 31 km/h. Mění se pouze malá část z naměřené hodnoty a tak nelze celý výsledek považovat za náhodný. Za náhodný výsledek by se daly považovat tisíciny z naměřené hodnoty rychlosti větru. V práci řešíme, jaké jsou zdroje náhody a jak lze pomocí nich generovat náhodná čísla. Vybereme jednu metodu, kterou implementujeme na vývojové desce AVR Butterfly. Další problém nastane získáním vygenerovaných čísel. Musíme určit, zda jsou opravdu náhodná. Kritérium náhodnosti je: známe-li libovolné množství předešlých čísel, nemůžeme být schopni určit, jaké číslo bude následovat. Možností testování náhodnosti čísel je více. Jedním z nich je analýza. Výsledky se porovnávají s hodnotami, kterých by pravděpodobně dosáhla náhodná čísla. Můžeme také vytvořit statistiku pozorování posloupností čísel, které považujeme za náhodné, a tu srovnávat s výsledky testovaných posloupností. 1

12 KAPITOLA 1. ÚVOD 2 V práci popíšeme jednotlivé testy ze sady testů, kterou budeme používat. Ukážeme, jak vyhodnocovat výsledky. Postupně se budeme snažit náš generátor zrychlovat. Při každé implementační změně budeme testovat vygenerovaná čísla, jestli jsou stále náhodná.

13 Kapitola 2 Vymezení cílů BP Cílem práce je seznámit se s pseudonáhodnými a fyzikálními generátory náhodných čísel. Vybrat jeden generátor náhodných čísel vhodný k implementaci na vývojové desce AVR Butterfly a implementovat jej. Dále se seznámit s testováním náhodnosti, zlepšovat implementaci generátoru a postupně ji testovat. 3

14 Kapitola 3 Generátory náhodných čísel Generátory náhodných čísel mají dnes velké využití, ať už je to v počítačových hrách, například jako kostka či chování umělé inteligence, nebo při různých simulacích a výzkumech. Téměř každý programovací jazyk dnes obsahuje alespoň jeden generátor náhodných čísel. Další velkou oblastí, která by se bez náhodných čísel téměř neobešla, je kryptografie. Generátory náhodných čísel se snaží vygenerovat posloupnost hodnot se stejnými vlastnostmi, jakých by dosáhla opravdu náhodná sekvence čísel. Dosahují při tom různých kvalit v závislosti na principu generování čísel. Jejich kvalita se testuje pomocí statistických testů náhodnosti. Generátory můžeme rozdělit do dvou základních skupin: na fyzikální generátory náhodných čísel, v literatuře označovány zkratkou RNG (Random Numbers Generator), a na generátory pseudonáhodných čísel (PRNG Pseudorandom Numbers Generator). 3.1 Generátory pseudonáhoných čísel Generátory pseudonáhodných čísel jsou založené na algoritmech. Pokud je znám algoritmus, na němž pracují, lze každý jejich výstup předem vypočítat. V opačném případě je to velice obtížné. U pseudonáhodných generátorů je složité zajistit generování hodnot v celém rozsahu požadovaného intervalu a s rovnoměrným rozložením. Jednodušší algoritmy trpí velkými nedostatky v tomto směru. Složitější pseudonáhodné generátory mohou generovat kvalitní náhodná čísla. Neodbouratelnou nevýhodou všech generátorů pseudonáhodných čísel je periodicita generované sekvence. Pro svůj běh všechny PRNG potřebují tzv. semínko. Semínko musí být náhodné a nepředvídatelné. Z těchto důvodů se ke generování semínka používají obvykle RNG. Pseudonáhodné generátory jsou levné a velice rychlé. Dají se použít v mnoha oblastech: počítačové hry, náhodné vstupy k testování programů, proudové šifry a další. V této sekci se zmíníme o generátorech pseudonáhodných čísel popsaných v [8] Lineární kongruenční generátor Lineární kongruenční generátor (LCG Linear Congruential Generator) je jedním z nejstarších pseudonáhodných generátorů. LCG je jednoduchý, snadný na implementaci a rychlý. 4

15 KAPITOLA 3. GENERÁTORY NÁHODNÝCH ČÍSEL 5 Bohužel je hodně vzdálený od ideálního. Rovnice pro generování náhodných čísel pomocí LGC je: V j+1 A V j + B (mod M), kde V n je sekvence náhodných čísel, A, B a M jsou specifické konstanty generátoru. Perioda LCG je maximálně M, ale velice často je menší. Generátor má nedostatky. Například, pokud je LCG používán ke generování bodů v n-dimenzionálním prostoru, body leží nanejvýše v M 1/n nadrovinách. Tento jev je důsledkem periodické korelace mezi následujícími hodnotami sekvence V n. Pokud M je nastaveno jako mocnina 2, mají nižší bity generované sekvence výrazně kratší periodu, než je perioda celé sekvence. Abychom tento nedostatek alespoň z části redukovali, je doporučeno volit hodnotu M = 2 n 1. LCG se nemůže používat pro účely vyžadující kvalitní náhodná čísla. Dá se použít například v počítačových hrách LFG generátor Generátor LFG (Lagged Fibonacci Generator) je vylepšený standardní lineární kongruenční generátor. Je založen na zobecněné Fibonacciho posloupnosti. Fibonacciho posloupnost je popsána rekurentní rovnicí S n = S n 1 + S n 2. LFG zobecňuje Fibonacciho posloupnost na S n = S n j ( ) S n k (mod M), 0 < j < k. Nové číslo je generováno kombinací dvou různých čísel v sekvenci. Operátor ( ) je některá ze základních binárních operací. Může to být například sčítání, odčítání, násobení nebo bitová aritmetická operace XOR. Teorie LFG je poněkud komplexní a není jednoduché vybrat správné hodnoty pro j a k. LFG generátor je také citlivý na počáteční hodnoty. LFG má maximální periodu ( 2 k 1 ) 2 M 1, pokud je použit operátor sčítání a nebo xor. Při použití násobícího operátoru je perioda ( 2 k 1 ) 2 M 3, což je 1/4 periody použité u sčítacího a xor operátoru. Aby generátor dosáhl maximální periody, musí být polynom y = x k + x j + 1 primitivní nad okruhem celých čísel mod 2. Použitelné hodnoty j a k jsou například: {j = 7, k = 10}, {j = 5, k = 17}, {j = 24, k = 55}, {j = 65, k = 71}, {j = 128, k = 159}. LFG má několik nevýhod: počáteční podmínky pro generování jsou velice složité, maximální perioda může obsahovat cykly a matematická teorie pro LFG není kompletní LFSR generátor LFSR (Linear Feadback Shift Register posuvný registr s lineární zpětnou vazbou) je posuvný registr, jehož vstup je výsledek funkce xor z některých jeho výstupů. Generátor funguje do té doby, dokud posuvný registr neobsahuje samé nuly. Výstupní sekvence LFSR může být reprezentována polynomem mod 2. Jestliže generátor pracuje s pozicemi 17 a 15, polynom je x17 + x Aby byl LFSR maximální, musí být tento polynom primitivní. LFSR generátor může být implementován hardwarově. To je jeho největší výhoda. Velice rychle generuje posloupnost pseudonáhodných čísel. LFSR generátor má dlouhou periodu a rovnoměrně rozložený výstup. Používá se pro proudové šifry, obzvláště ve vojenské kryptografii.

16 KAPITOLA 3. GENERÁTORY NÁHODNÝCH ČÍSEL Fyzikální generátory náhodných čísel Tyto generátory jsou založeny na fyzikálních jevech. Odbourávají největší nevýhodu generátorů pseudonáhodných čísel. Nelze u nich zjistit následující generované číslo ani v případě, že máme příslušný generátor k dispozici a známe celou generovanou sekvenci. Na druhou stranu nemusejí být tak rychlé a mohou být drahé. Kvalitní RNG můžeme použít téměř všude. Jediné místo, kde se použít nedají, je generování proudových šifer Generátor náhodného procesu GENAP-2 Tento hardwarový generátor, popsaný v [6], slouží k vytváření posloupností impulsů dvou typů (0 a 1). Ve spojení s dalšími zařízeními umožňuje také vytvářet náhodné procesy a náhodný telegrafní signál symetrický kolem nuly. V této práci nás bude zajímat jeho první funkce, o dalších se nebudeme dále zmiňovat. Jako fyzikální model náhodného procesu je využíván šum polovodičové diody. Šum je zesílen, vhodně ztvarován a dále jsou indikovány průchody šumu pouze z kladné polarity do záporné. Polarita se vztahuje k referenční hladině. Vznik časově náhodných impulsů ze šumu je znázorněn na obrázku 3.1. Obrázek 3.1: Vznik časově náhodných impulsů ze šumu převzato z [6] Časově náhodné impulsy jsou přiváděny na sčítací obvod (klopný bistabilní obvod), kde je během tzv. počítacího intervalu zjišťováno, jestli počet impulsů byl sudý nebo lichý. Podle toho se na konci počítacího intervalu objeví na výstupu generátoru 1 (byl-li počet impulsů sudý) nebo 0 (byl-li počet impulsů lichý). Princip činnosti generátoru je vidět na obrázku 3.2. Aby mohl být sčítací obvod spolehlivě vyhodnocen, jsou mezi počítacími intervaly zařazeny tzv. blokovací intervaly, ve kterých je prováděno vyhodnocení a nulování.

17 KAPITOLA 3. GENERÁTORY NÁHODNÝCH ČÍSEL 7 Obrázek 3.2: Princip činnosti generátoru převzato z [6] U takto vytvořené posloupnosti je pravděpodobnost výskytu nuly P (0) = 0,5+ɛ, kde ɛ je odchylka pravděpodobnosti od ideální hodnoty 0,5. Jestliže pravděpodobnost výskytu nuly je dle výše uvedené rovnice, pak pravděpodobnost výskytu jedničky je P (1) = 0, 5 ɛ. Vyšší přesnosti statistických parametrů výstupní náhodné posloupnosti lze dosáhnout použitím sčítačky mod 2, o kterou je přístroj GENAP-2 doplněn. Sčítačka mod 2 provádí sčítání výstupní posloupnosti buď po dvojicích a nebo po čtveřicích. Při sčítání po dvojicích získáme ze vstupních kombinací impulsů 00, 11 na výstupu impuls 0 a při vstupech 01, 10 získáme impuls 1. Sčítáním po dvojicích klesne opakovací frekvence výsledné výstupní posloupnosti na polovinu, ale zlepší se konvergence relativních četností nul a jedniček k ideální hodnotě 0,5 tak, že hodnota ɛ se nám změní na 2ɛ 2. V případě, že použijeme sčítání po čtveřicích, klesne opakovací frekvence na čtvrtinu, ale opět nám také klesne odchylka pravděpodobnosti ɛ tentokrát na hodnotu 8ɛ 4. GENAP-2 není ideální generátor. Hodnota ɛ se pohybuje řádově v hodnotách V tabulce 3.1 můžeme vidět hodnotu ɛ vypočtenou pro velký počet generovaných impulsů.

18 KAPITOLA 3. GENERÁTORY NÁHODNÝCH ČÍSEL 8 měř. č. 0 1 D = 1 0 ɛ = D/ ( ) Tabulka 3.1: Výpočet hodnoty ɛ u generátoru GENAP HotBits HotBits je internetový zdroj náhodných čísel popsaný v [5]. Počítač, ke kterému je připojena Geiger Műlerova roura, zaznamenává intervaly mezi rozpady radioaktivních jader (kliknutími) radioaktivního zdroje. Náhodná čísla jsou generována z intervalů mezi kliknutími. Radioaktivní rozpad je zcela náhodný. Jestliže k rozpadu nedojde v jednom momentu, šance, že k němu dojde v dalším momentu je naprosto stejná. Za milión let budou šance pořád stejné. Tento princip nestárne. V danou dobu existují dvě možnosti, buď k rozpadu dojde a nebo ne. Proto nemůžeme měřit životnost radioaktivního materiálu, namísto toho měříme poločas rozpadu, což je doba, za kterou se rozpadne polovina jader v daném vzorku. Jestliže je radioaktivní zdroj dostatečně velký a má velký poločas rozpadu, můžeme ignorovat pomalý rozpad a prohlásit každý klik za nezávislou událost. Pravděpodobnost kliknutí v dané milisekundě je stejná a nezávisí na minulých hodnotách. Je to jako nezávislý hod mincí každou milisekundu. Nicméně, tato mince může být asymetrická. Jestliže je zdroj chladný, bude častěji padat orel (bez kliku) než panna (klik). Naštěstí můžeme vyměnit asymetrickou minci za symetrickou. Hody sdružíme do dvojic a páry, ve kterých jsou oba hody stejné, zahodíme. Na získané páry použijeme pravidlo, že dvojice (panna, orel) = 0 a (orel, panna) = 1. Jestliže jsou hody nezávislé, každý z těchto párů má stejnou pravděpodobnost nezávisle na asymetričnosti mince. Jako výsledek dostaneme neovlivněný bit. Toto je známé jako Von Neumannova strategie. Když použijeme důmyslnější strategii, můžeme získat větší množství neovlivněných bitů. Tento princip je téměř dokonalý pro popsané okolnosti. Radioaktivní materiál může pracovat téměř jako dokonalý zdroj náhodnosti. Ale Geigerův počítač je nedokonalá cesta k detekování této náhodnosti. Reálnému Geigerovu počítači trvá určitou dobu, než se zotaví po detekci každé částice. Pravděpodobnost, že dojde ke kliknutí v dané milisekundě není konstantní, závisí na uplynulé době od posledního kliknutí. Z těchto důvodů budeme měřit intervaly mezi kliknutími. HotBits používá jednodušší strategii. Počítá s intervaly v párech. Když T 0 < T 1, výstup je 0, když T 0 > T 1 tak výstup je 1. Jestliže se intervaly rovnají T 0 = T 1, zahodí se. Když se první pár intervalů vyhodnotí, zahodí se a přejde se na následující pár intervalů. Tento postup garantuje generování skutečně náhodných bitů, ale produkuje o něco méně než 0,5 bitů/vzorek. Kdybychom znali medián intervalů M, mohli bychom počet generovaných bitů zvýšit na 1 bit/vzorek. Pro každý interval bychom generovali výstup a to takto: jestliže T < M výstup bude 0, v opačném případě bude výstup 1. Medián použít nemůžeme, protože stejně jako všechna statistická měření je nepřesný a kdybychom udělali v mediánu chybu, byl by výstup zkreslený. Tento problém vyřešil Yuval Peres strategií Advanced Multi-Level Strategy [9, 10] zkráceně AMLS.

19 KAPITOLA 3. GENERÁTORY NÁHODNÝCH ČÍSEL Zdroje náhodnosti na mikrokontroléru AVR ATmega164P V této sekci se podíváme na metody generování náhodných čísel na mikrokontroléru AVR ATmega164P, které jsou popsané v publikaci [11]. Některé metody používají k získání náhodnosti dva zdroje hodinového signálu. Zdroje hodinového signálu nesmí být na sobě závislé. Jeden z časových zdrojů udává hlavní interval (obvykle ten pomalejší). Po uplynutí tohoto hlavního intervalu se vždy přečte hodnota z rychlejšího zdroje času. Tato hodnota se mění, jelikož se mění jak hlavní inerval, tak rychlost, s jakou čítá rychlejší čítač díky jejich nepřesnostem. Schéma hodinových zdrojů je vidět na obrázku 3.3. Další metody pracují například se šumem u zenerovy diody nebo V/V rozhraními. Obrázek 3.3: Schéma hodinových zdrojů u ATmega164P převzato z [11] Vnitřní EEPROM Obrázek 3.3 ukazuje, že EEPROM používá dva různé časové zdroje časovou řídící jednotku AVR (AVR Clock Control Unit) a kalibrovaný RC oscilátor (Calibrated RC Oscillator). Zapisovací operace paměti EEPROM je vždy časována kalibrovaným interním oscilátorem, zatímco všechny další časové operace používají řídící časovou jednotku AVR. Jestliže nejsou hlavní hodiny kalibrovány interním oscilátorem, pak EEPROM používá dva nezávislé časové zdroje. Dva časové nezávislé zdroje nejsou nikdy ve fázi, proto čas mezi hranami jednoho

20 KAPITOLA 3. GENERÁTORY NÁHODNÝCH ČÍSEL 10 a druhého zdroje je náhodný. Vždy zde bude časový rozdíl několika málo hlavních cyklů, mezi dvěma EEPROM zapisovacími cykly. Zde je vybrán 9,216 MHz krystalový oscilátor jako základní hodinový zdroj pro tento test. Časovač je použitý pro změření doby zapisovací operace EEPROM. Výsledek je posílán přes rozhraní RS-232 do počítače. Algoritmus vypadá následovně: 1. Start zapisovací operace do paměti EEPROM 2. Spuštění časovače (Timer1) 3. Čekání na přerušení od paměti EEPROM, že je opět připravena 4. Přečtení hodnoty z časovače 5. Odeslání hodnoty do PC Watchdog reset ATmega164P má v sobě zabudovaný watchdog (Watchdog Timer, Watchdog Oscillator, Reset Logic), jejž můžete vidět na obrázku 3.3. Tento watchdog je časován vnitřním samostatným zdrojem 128 khz hodinového zdroje. A jestliže nepoužijeme jako hlavní hodiny interní 128 khz oscilátor, máme opět dva nezávislé časové zdroje. Díky tomu získáme rozdílné časové intervaly opět několika hlavních cyklů mezi dvěma resety vyvolanými watchdogem. Když watchdog přeteče, resetuje mikrokontrolér. Reset ovlivní všechny speciální funkční registry, které jsou nově nastaveny na jejich defaultní hodnoty. Časovač tedy nemůže být použit pro měření času přetečení watchdogu. Co není ovlivněno resetem, je 32 univerzálních registrů a interní SRAM. Proměnná může být inkrementována namísto čítače v univerzálním registru. Jádro AVR umí inkrementovat 16bitovou proměnnou velice rychle. V nekonečném cyklu to zabere pouze 4 hlavní takty. Poté, co je watchdog zapnutý, registrová proměnná je opakovaně inkrementována do doby, než watchdog resetuje mikrokontrolér. Po resetu je přečtena hodnota 16bitové registrové proměnné a je odeslána přes rozhraní RS-232 do počítače. U watchdogu ATmega164P lze nastavit nejkratší přetečení na 16 ms. Se zapnutým brownout detektorem lze nakonfigurovat řadič na přímé vykonání restartu, které zabere pouze 14 taktů po resetu watchdogem. Díky tomu je možné, získat náhodnou hodnotu téměř každých 16 ms Watchdog přerušení Tato metoda využívá časovou řídící jednotku AVR (AVR Clock Control Unit) a watchdog. Schéma je vidět na obrázku 3.3. Watchdog u ATmega164P má speciální vlastnost. Může pracovat v módu přerušení. V tomto módu watchdog neresetuje mikrokontrolér a nejsou proto žádné speciální registry nastavovány na defaultní hodnoty, jako u metody watchdog reset. Watchdog stále používá vnitřní 128 khz oscilátor, který je nezávislý na hlavních hodinách (9,216 MHz krystalový oscilátor). Časovač s frekvencí 9,216 MHz a watchdog začínají čítat naráz respektive těsně po sobě. Když watchdog přeteče, je vyvoláno přerušení a přečte se hodnota z časovače. Tato hodnota je pak přes rozhraní RS-232 odeslána do počítače.

21 KAPITOLA 3. GENERÁTORY NÁHODNÝCH ČÍSEL Nízkofrekvenční krystal Tato metoda využívá časovou řídící jednotku AVR (AVR Clock Control Unit) a nízkofrekvenčí krystalový oscilátor (Low-frequency Crystal Oscillator), jež jsou na obrázku 3.3. Časovač Timer2 na ATmega164P může běžet v asynchronním módu. Časovač 2 používá nízkofrekvenční krystalový oscilátor o frekvenci 32 khz. Můžeme tedy použít dva nezávislé časovače běžící na různých frekvencích Timer1: 9,216 MHz, Timer2: 32 khz. Přetečení časovače 2 nám způsobí přerušení. V obsluze přerušení pak pošleme hodnotu časovače 1 přes rozhraní RS Rozhraní RS-232 Pro komunikaci přes rozhraní RS-232 byl jako hlavní hodinový zdroj vybrán 9,216 MHz oscilátor. Tato frekvence umožňuje komunikaci standardní přenosovou rychlostí s chybovostí 0,0%. Šestnácti bitový čítač na ATmega164P může být nastaven tak, aby čítal také s rychlostí 9,216 MHz. Pokaždé, když jsou data příjata, je aktuální hodnota čítače přečtena a odeslána přes rozhraní RS-232 do počítače. Rozhraní RS-232 pracuje asynchronně, proto hodnotu časovače nelze předpovědět. Čtení hodnoty čítače může být spouštěno také přes jiná rozhraní, například digitální a analogový vstup, LIN/CAN rozhraní a další SPI ATmega164P obsahuje sériové periferní rozhraní (SPI Serial Peripheral Interface). SPI pracuje jako jednoduchý posuvný register a je standardní periferií pro většinu mikrokontrolérů. Ke generování náhodných čísel přes SPI, byl připojen přibližně 1,2 MHz externí zdroj hodin na vstup SPI. SPI bylo konfigurováno jako master. Dále byly použity externí hodiny na frekvenci 2,25 khz. Externí a SPI hodiny musí být nezávislé. To zaručí, že hodnota, kterou bude SPI číst je nepředvídatelná. Při generování čísel touto metodou bylo zjištěno, že SPI čte data se stejnou hodnotou v sériích. Kvůli tomu byla přijata podmínka, že data budou akceptována jako náhodná až tehdy, když se nebudou shodovat s předešlými. I přes to byl však ve vygenerovaných hodnotách nalezen opakující se vzor. Proto tato metoda není takto použitelná pro generování náhodných čísel ADC ATmega164P obsahuje 10bitový analogově digitální převodník (ADC Analog to Digital Cenverter) s volitelnou 200 násobnou zesilující částí. Zesilovací část je dostupná v diferenčním vstupním módu. Zenerova dioda na obrázku 3.4 vždy generuje malé µv šumu. Šum je zesílen přes 200 násobnou zesilovací část a měřen analogově digitálním převodníkem. Sto kω odpor a dva kondenzátory eliminují šum na jednom vstupním pinu analogově digitálního převodníku (dolní propust) převádíme tedy pouze zenerovo napětí. Nefiltrované zenerovo napětí je připojeno k druhému pinu ADC. ADC měří pouze rozdíl napětí mezi

22 KAPITOLA 3. GENERÁTORY NÁHODNÝCH ČÍSEL 12 Obrázek 3.4: Schéma ADC u ATmega164P převzato z [11] těmito dvěma piny. Hodnota takto změřeného zesíleného napětí je odeslána do počítače. Nicméně, zesilovací část analogově digitálního převodníku nemá perfektní vstup s nekonečným vstupním odporem a tak vtéká malý proud do zesilovací části. To způsobí, že je přidáno napětí k napětí šumu. Tento jev nám nevadí v případě, že přidané napětí nedosáhne maximálního napětí, které je schopen změřit ADC Časovač ISR Většina instrukcí se v jádře AVR provádí v jednom nebo dvou taktech. Některé instrukce ale zabírají 3, 4 nebo dokonce 5 taktů. Jestliže je vyvoláno přerušení v instrukci, jejíž provádění zabírá více taktů než jeden, je tato instrukce nejprve dokončena a až poté je přerušení obslouženo. To znamená, že čas od vyvolání přerušení do jeho provedení není pevný, ale mění se. Závisí to na právě prováděné instrukci. Jestliže je přerušení vyvoláno po prvním taktu pěti-taktové instrukce, skok do obsluhy přerušení (ISR Interrupt Service Routine) je zpožděn o 4 takty. Jestliže je časovač nastaven tak, aby dokola vyvolával přerušení, zpoždění obsluhy přerušení se bude lišit v závislosti na instrukci, která je prováděna v době zavolání přerušení. Toto zpoždění může být změřeno a použito ke generování náhodných čísel. Algoritmus pro tuto metodu je následující: 1. Spuštění časovače 2. Provádění nějakého programu 3. Při přerušení od časovače 1 je přečtena jeho hodnota 4. Odeslání hodnoty do počítače V této metodě je důležité, aby prováděný program obsahoval instrukce s různým počtem taktů. Jestliže program bude například pouze inkrementovat hodnotu v registru a nebo by byl mikrokontrolér v režimu spánku, tato metoda fungovat nebude, jelikož zpoždění obsluhy přerušení bude pořád stejné.

23 KAPITOLA 3. GENERÁTORY NÁHODNÝCH ČÍSEL Vstupní zachytávací jednotka ATmega164P obsahuje vstupní zachytávací jednotku (TBD Input Capture Unit). Tato jednotka měří frekvenci obdélníkového signálu. Může být také nakonfigurována k ukládání aktuální hodnoty časovače 1 reagující na vzestupnou nebo sestupnou hranu vstupního zachytávacího pinu či vstup analogového komparátoru. Jestliže je měřen externí signál přes vstupní zachytávací jednotku, hodnota časovače 1 by se mohla měnit, což by pak byl zdroj náhodnosti. Toto je pouze myšlenka, která nebyla zatím vyzkoušena Náš generátor náhodných čísel na mikrokontroléru Atmel AVR Náš generátor náhodných čísel je popsaný v [7]. Oscilace RC oscilátoru na vývojové desce jsou použity jako zdroj náhody ke generování osmi náhodných bitů za sekundu. Při implementaci této metody na vývojovou desku AVR Butterfly není zapotřebí žádných přídavných komponentů Generování náhodných čísel Mikrokontrolér ATmega169 [1] na vývojové desce AVR Butterfly [2] může přistupovat k několika oscilátorům. Základní konfigurace využívá RC oscilátor uvnitř čipu jako systémové hodiny. Dále může použít oscilátor s externě připojeným krystalem jako asynchronní hodinový generátor pro časovač 2. Tyto oscilátory nejsou nikdy perfektně stabilní. Jejich frekvence kolísají z mnoha fyzikálních příčin, jako například velikost napětí, okolní teplota a další. Důležité je, že vliv těchto fyzikálních příčin je odlišný u každého oscilátoru. Krystalový oscilátor je více stabilní, zatímco RC oscilátor vykazuje větší kolísání. I když je přípravek pořád ve stabilním prostředí a je napájen ze stabilizovaného zdroje, RC oscilátor vykazuje měřitelné kolísání. Toto kolísání u RC oscilátoru může být použito jako zdroj náhody. V této metodě je použit krystalový oscilátor k tomu, aby odpočítával jednu sekundu. Po uplynutí doby je přečtena hodnota, kterou načítal RC oscilátor. V ideálním světě by byla načítaná čísla stále stejná. Ovšem v reálném světě se tato čísla mění. Princip metody pro generování náhodných čísel je znázorněn na obrázku 3.5. Časovač 1 čítá takty systémového RC oscilátoru, ten funguje na přednastavené frekvenci 2 MHz. Časovač 2 s krystalovým oscilátorem, který funguje na frekvenci 32,768 khz, vyvolává přerušení pomocí předděličky každou sekundu. V obsluze přerušení je 16bitová hodnota z časovače 1 přečtena a uložena. Časovač 1 je následně vynulován a uložená hodnota je odeslána přes rozhraní RS-232 do počítače. Po provedení těchto instrukcí je opuštěna obsluha přerušení a mikrokontrolér čeká opět na přerušení od časovače Testování náhodnosti Pro testování náhodnosti byla použita sada testů NIST sts-2.0b popsaná v [3]. Nyní je důležité rozhodnout, které bity z naměřených hodnot jsou náhodné a které ne. V důsledku toho je nutné z naměřených 16bitových hodnot získat řetězce obsahující pouze jednotlivé bity. Tím vznikne 16 souborů obsahující 0., 1., až 15. bit ze všech naměřených hodnot.

24 KAPITOLA 3. GENERÁTORY NÁHODNÝCH ČÍSEL 14 Obrázek 3.5: Princip generování náhodných čísel na AVR Butterfly převzato z [7] Tyto jednotlivé řetězce jsou pak testovány. Jak se očekávalo, bity nejsou náhodné, jelikož mnoho P value (hodnota v intervalu od nuly do jedné včetně, která udává náhodnost testovaného řetězce) bylo pod hranicí 0,01. Je to vidět i v původním souboru 16 bitových hodnot, kde se tyto vyšší bity skoro vůbec nemění. Bit 9 už je na tom lépe, výrazně se mění. Zbývá zjistit, zda je náhodnost dostatečná. Bohužel i u 9. bitu se objevila P value pod hranicí 0,01 u výsledků více testů. Dále je důležité si uvědomit, že nejméně významný bit 0 (LSB Least Significant Bit) také není náhodný. To proto, že než může být přerušení obslouženo, musí být dokončena právě prováděná instrukce. Většina AVR instrukcí zabírá jeden nebo dva takty. To dělá LSB bit příliš závislý na vykonávaném kódu. V extrémním případě, kdy kód nic nedělá, ale pouze čeká v nekonečném cyklu na přerušení, mikrokontrolér pouze vykonává instrukci RJMP, která zabírá dva takty, LSB zůstává konstantní. Pro zbývající bity 1 8 stále neprošly některé testy. To byl Univerzální test, který neprošel pro nedostatečné množství dat a některé z mnoha výsledků testu NonOverlapping- Template. Výsledek by měl být však stále vpořádku, jelikož 1% hranice očekává, že jeden ze 100 testů může selhat, i když je ve skutečnosti testovaná sekvence náhodná. Nakonec byla otestována i sekvence obsahující všechny náhodné bity a to bity 1 8. Bohužel stále to nestačilo pro univerzální test, ale výsledky ostatních testů byly dobré.

25 Kapitola 4 Testování náhodnosti K testování je možné použít více druhů testů nebo testovacích algoritmů. Některé testy pracují s pevně danými číselnými intervaly, ale ty lepší pracují se sekvencemi jednotlivých bitů. Mezi tyto testy patří také sada statistických testů STS Statistical Test Suite [3] od institutu NIST a sada testů Dieharder [4]. Zde je nutno podotknout, že sada testů Dieharder vyžaduje k testování velice dlouhou sekvenci vygenerovaných bitů. Proto se budeme dále zabývat první zmíněnou sadou testů. Nyní je důležité si uvědomit, jak by mělo vypadat testování náhodnosti respektive rozhodování, zda lze konkrétní sekvenci bitů považovat za náhodnou. Máme určitou sekvenci bitů. Každý bit může být s 50% pravděpodobností 1 nebo 0 a nezáleží na tom, jaké bity stojí před ním. Máme-li k dispozici dostatečně dlouhou bitovou sekvenci, vyplývá z toho, že poměr počtu jedniček a nul by měl být v této sekvenci vyrovnaný. První test, který bychom navrhli pro testování náhodnosti, by byl test poměru jedniček a nul. Tento test se ale dá snadno obejít. Představme si například generátor, který vygeneruje sekvenci obsahující bitů. Aby prošel tímto testem, vygeneruje za sebou nul a jedniček. Tato sekvence by naším testem prošla, ale náhodná zcela určitě není. Tento test nefunguje a musíme vymyslet jiný. Abychom odhalili sekvenci, ve které máme na začátku jedničky a na konci nuly, je potřeba vymyslet jiný test. Druhý test testovanou sekvenci rozdělí do několika podsekvencí a na tyto podsekvence provede náš první test. Ještě zavedeme podmínku, že první test musí projít pro všechny podsekvence, aby mohla být původní sekvence označena za náhodnou. Způsobů dělení do podsekvencí může být více. Sekvenci můžeme rozdělit do pevně daného počtu podsekvencí a nebo ji můžeme dělit po pevně daném počtu bitů. Bohužel i tento test můžeme snadno obejít. Náš generátor bude generovat střídavě dvojici bitů 1 a 0. Projde i druhým testem, ale náhodná čísla negeneruje. Ani tento test nefunguje a musíme opět vymyslet jiný. Náš třetí test bude sčítat počet změn z nuly na jedničku a naopak. Pokud bude počet změn příliš malý nebo příliš velký v závislosti na délce sekvence, vyhodnotí ji jako nenáhodnou. Aby sekvence prošla tímto testem, bude muset mít počet změn přibližně odpovídající očekávanému počtu změn náhodné sekvence (to můžeme získat ze statistik a nebo vypočítat pomocí matematické pravděpodobnosti). Náš třetí test odhalí první i druhou nenáhodnou sekvenci. Víme-li, že ke změně bitů dochází v průměru jednou po 3 bitech, můžeme vygenerovat sekvenci, která obsahuje po sobě vždy jednu nulu a pět jedniček. Tato posloupnost projde naším třetím testem, ale je také nenáhodná. Použitím všech tří testů posloupnost 15

26 KAPITOLA 4. TESTOVÁNÍ NÁHODNOSTI 16 odhalíme. K testování náhodnosti je dobré použít více testů. Proto i výše zmíněné testy (programy) jsou sadami testů. Budeme-li vymýšlet stále další a sofistikovanější testy, bude se nám také dařit vytvářet sekvence, které těmito testy projdou a budou nenáhodné. Velice účinnou zbraň proti výše zmíněnému používá NIST v STS [3]. Testovanou sekvenci rozdělí na podsekvence a ty otestuje sadou patnácti testů. U každého testu spočítá P value, což je hodnota v intervalu <0, 1> udávající náhodnost testované sekvence. Pokud je P value < 0,01, je sekvence vyhodnocena jako nenáhodná. Aby byl generátor dobrý pro generování náhodných čísel, nemusí ani nesmí mít pro všechny podsekvence hodnoty P value rovny 1. Analogii hledejme v opravdu náhodné sekvenci. Kdybychom rozdělili náhodnou sekvenci, jež by měla hodnotu P value 1 (P value = 1 by měla s určitostí pouze nekonečná náhodná sekvence bitů), tak jednotlivé podsekvence nebudou mít P value = 1. Některé podsekvence nemusí ani testy projít. Proto NIST při vyhodnocování používá test rovnoměrného rozložení hodnot P value. A pro kontrolu, jestli neskončilo mnoho sekvencí vyhodnocených jako nenáhodné, používá test poměru úspěšných sekvencí. Tyto testy jsou popsané v sekci Popis jednotlivých testů Pro všechny testy platí, že když P value 0,01, je vstupní sekvence považována za náhodnou. Pro názornost uvádíme u několika prvních jednodušších testů i definici a ukázku příkladu. Konkrétní definice dalších testů jsou popsány v [3] Frequency (Monobit) Test (frekvenční test) Test se zaměřuje na poměr jedniček a nul v celé testované sekvenci. Zkoumá, jestli se poměr jedniček vzhledem k celkovému počtu bitů blíží k hodnotě 0,5. Účelem testu je rozhodnout, zda počet jedniček a nul v testované sekvenci je přibližně stejný jako očekávaný počet pro opravdu náhodnou sekvenci. Všechny následující testy závisí na tom, jestli tento test projde nebo ne Popis testu Nejprve je vstupní sekvence (0, 1) upravena na sekvenci (+1, 1). Všechny hodnoty v nové sekvenci se sečtou a statisticky se vyhodnotí P value Definice n Délka vstupní sekvence. ɛ Jednotlivé bity testované sekvence ɛ = ɛ 1, ɛ 2,..., ɛ n. S n Sekvenci přeměníme na chybovou sekvenci S n skládající se z ±1, tak že S n = X 1 + X X n, kde X i = 2ɛ 1.

27 KAPITOLA 4. TESTOVÁNÍ NÁHODNOSTI 17 S obs Statistický přehled S obs je absolutní chyba dělená druhou odmocninou délky sekvence. S obs = S n n P value ( Sobs P value = erfc ), kde funkce erfc je popsána v [3] v sekci Příklad Sekvence ɛ = (1) Konverze na sekvenci ±1: S n = 1+( 1)+1+1+( 1)+1+( 1)+1+( 1)+1 = 2. (2) S obs = 2 10 = 0, ( ) 0, (3) P value = erfc = 0, Frequency Test within a Block (frekvenční blokový test) Test se zaměřuje na poměr jedniček a nul uvnitř M-bitových bloků. Test zkoumá, jestli je počet jedniček uvnitř M-bitového bloku přibližně rovný hodnotě M/2, jak se očekává u předpokladu náhodnosti. Pro blok velikosti M = 1 je tento test stejný jako test Frequency (Monobit) Test Popis testu Vstupní sekvence se rozdělí do M-bitových bloků. Zbylé bity na konci sekvence jsou nevyužité. Pro každý blok M se spočítá poměr jedniček. Z výsledků jednotlivých bloků se statisticky spočítá P value Definice n M Délka vstupní sekvence. Velikost každého bloku. ɛ Jednotlivé bity testované sekvence ɛ = ɛ 1, ɛ 2,..., ɛ n. χ 2 (obs) Měří, jak se pozorovaný poměr jedniček uvnitř M-bitového bloku rovná očekávané hodnotě 1/2. χ 2 (obs) = 4M (π i 0,5) N 2 i=1

28 KAPITOLA 4. TESTOVÁNÍ NÁHODNOSTI 18 P value P value = igamc ( N/2, χ 2 (obs)/2 ), kde funkce igamc je nekompletní gamma funkce pro Q(a,x) definovaná v [3] v sekci Příklad Pro tento příklad máme sekvenci ɛ = , n = 10, M = 3. n (1) Rozdělíme vstupní sekvenci do N = nepřekrývajících se bloků. Nevy- M užité bity na konci sekvence zahodíme. Dostaneme tři bloky 011, 001, a 101. Poslední 0 bude nevyužita. (2) Spočítáme poměr jedniček π i v každém M-bitovém bloku π i = pro 1 i N. V našem případě π 1 = 2/3, π 2 = 1/3, π 3 = 2/3 ( (3) χ 2 (obs) = 4 3 (2/3 1/2) 2 + (1/3 1/2) 2 + (2/3 1/2) 2) = 1. (4) P value = igamc (3/2, 1/2) = 0, M j=1 ɛ (i 1)M+j M, Runs Test (test identických skupin) Test hledá počet skupin skládajících se z posloupnosti identických bitů. Skupina posloupnosti identických bitů k, je skupina bitů délky k obsahující přesně k identických bitů, které jsou na začátku a na konci ohraničené bity opačnými. Účelem testu je zjistit, zda počet identických skupin různé délky odpovídá očekávanému počtu pro náhodnou sekvenci. Jinými slovy nám tento test určí, zda změna mezi jedničkami a nulami není příliš rychlá a nebo příliš pomalá Popis testu Spočítáme celkový počet posloupností identických bitů. Ze získané hodnoty vypočteme statisticky P value Definice n Délka vstupní sekvence. ɛ Jednotlivé bity testované sekvence ɛ = ɛ 1, ɛ 2,..., ɛ n. n 1 V n (obs) Celkový počet posloupností identických bitů. V n (obs) = r (k) + 1, kde r (k) = 0 když ɛ k = ɛ k+1 v opačném případě r (k) = 1. k=1

29 KAPITOLA 4. TESTOVÁNÍ NÁHODNOSTI 19 P value ( ) Vn (obs) 2nπ (1 π) P value = erfc 2 2nπ (1 π) Příklad Pro tento příklad máme sekvenci ɛ = , n = 10. (1) Nejdříve spočítáme poměr jedniček π ve vstupní sekvenci π = j ɛ j n = 3/5. (2) Počet skupin v sekvenci ɛ = je V 10 (obs) = ( ) + 1 = 7. (3) P value = 0, Test for the Longest Run of Ones in a Block (test nejdelší posloupnosti jedniček uvnitř bloku) Test hledá nejdelší posloupnost jedniček uvnitř M-bitového bloku. Účelem tohoto testu je rozhodnout, zda nejdelší posloupnost jedniček uvnitř testované sekvence odpovídá předpokládané délce pro náhodnou sekvenci. Nepřiměřená délka nejdelší posloupnosti jedniček naznačuje také nepřiměřenou délku nejdelší posloupnosti nul. Proto není třeba dělat test nejdelší posloupnosti nul. Více se o tom dozvíte v sekci 4.4 v [3] Popis testu Vstupní sekvence se rozdělí do M-bitových bloků. Pro každý blok se vyhodnotí nejdelší posloupnost jedniček. Z jednotlivých výsledků se statisticky vypočítá P value Definice n Délka vstupní sekvence. ɛ Jednotlivé bity testované sekvence ɛ = ɛ 1, ɛ 2,..., ɛ n. M Velikost každého bloku. M může nabývat pouze tří hodnot, M = 8 když n 128, M = 128 když n 128 a M = 10 4 když n χ 2 (obs) Zjišťuje, jak délka nejdelší posloupnosti jedniček v M-bitovém bloku odpovídá očekávané délce. χ 2 (v i Nπ i ) 2 K (obs) =, kde hodnota π i je definována v sekci 3.4 v [3], hodnoty K a N závisí na M tak, že když M = 8 pak Nπ i=0 i K = 3 a N = 16, M = 128 pak K = 5 a N = 49, M = 10 4 K = 6 a N = 75. P value P value = igamc ( K/2, χ 2 (obs)/2 )

30 KAPITOLA 4. TESTOVÁNÍ NÁHODNOSTI Binary Matrix Rank Test (test hodnosti binární matice) Test se zaměřuje na hodnost disjunktních sub-matic testované sekvence. Účelem tohoto testu je prověřit lineární závislost mezi podřetězci pevně dané délky z testované sekvence Popis testu U tohoto testu byly spočítány pravděpodobnosti pro binární matice o velikosti 32x32 bitů. Minimální počet testovaných matic je 38. Proto musí být minimální délka testované sekvence větší než bitů. Test se může provádět i s jinými počty řádků a sloupců u matic, ale bylo by zapotřebí vypočítat pro ně pravděpodobnosti. Sekvence se rozdělí do bloků po 32x32 bitů. Přebytečné bity se zahodí. Jednotlivé bloky se zapíší do matic a spočítá se hodnost každé matice. Výsledky hodností matic se rozdělí do tří skupin a spočítá se jejich množství. V první skupině jsou hodnosti o velikosti počtu řádků matice. Ve druhé skupině jsou hodnosti o jedna menší a ve třetí skupině jsou zbylé hodnosti. Nakonec se statisticky vyhodnotí P value Discrete Fourier Transform (spectral) Test (diskrétní test pomocí Fourierovi transformace) Na stránkách institutu NIST, je uvedeno, že ve vyhodnocování tohoto testu je chyba. Proto ho zde nebudeme ani uvádět Non-overlapping Template Matching Test (test na nepřekrývající se vzory) Test se zaměřuje na počet opakování předdefinovaného řetězce v sekvenci. Účelem testu je nalézt generátory, které produkují příliš mnoho opakujících se vzorů Popis testu Test používá m-bitové okno k hledání konkrétního m-bitového vzoru. Jestliže aktuální okno neodpovídá vzoru, přesune se o jeden bit. V případě, že se okno shoduje se vzorem, inkrementuje se hodnota opakování a okno se přesune o m bitů. Test rozděluje vstupní sekvenci do stejných bloků o velikosti M = V kódu je definován počet bloků N = 8. Proto test vyžaduje sekvenci o velikosti alespoň 10 6 bitů. NIST doporučuje zvolit hodnotu m = 9 nebo m = 10. Pro jednotlivé bloky se počítají hodnoty opakování a ze získaných výsledků se statisticky vyhodnotí P value. Test je opakován několikrát pro různé vzory, proto je v souboru finalanalysisreport více řádků s výsledky u tohoto testu Overlapping Template Matching Test (test na překrývající se vzory) Test se zaměřuje na počet opakování předdefinovaného řetězce v sekvenci. U tohoto testu vzor obsahuje samé jedničky.

31 KAPITOLA 4. TESTOVÁNÍ NÁHODNOSTI Popis testu Test používá m-bitové okno k hledání konkrétního m-bitového vzoru. Jestliže aktuální okno neodpovídá vzoru, přesune se o jeden bit. V případě, že se okno shoduje se vzorem, inkrementuje se hodnota opakování a okno se přesune o m 1 bitů. Test rozděluje vstupní sekvenci do stejných bloků o velikosti M = V kódu je definován počet bloků N = 968. Proto test vyžaduje sekvenci o velikosti alespoň 10 6 bitů. NIST doporučuje zvolit hodnotu m = 9 nebo m = 10. Pro jednotlivé bloky se počítají hodnoty opakování, které se rozdělují do 6 skupin následovně: v první skupině jsou hodnoty obsahující 0 opakování, ve druhé skupině hodnoty obsahující 1 opakování,... a v poslední, šesté skupině, jsou hodnoty obsahující 5 a více opakování. Ze získaných výsledků se statisticky vyhodnotí P value Maurer s Universal Statistical Test (Maererův statistický univerzální test) Test se zaměřuje na počet bitů mezi odpovídajícími vzory (to souvisí s délkou komprimované sekvence). Zjišťuje, zda může být sekvence významně zkomprimována bez ztráty informace. Významně zkomprimovatelná sekvence je označena za nenáhodnou Popis testu Test používá malé L-bitové bloky. Hodnota L závisí na velikosti vstupní sekvence a je v intervalu < 6, 16 >. Sekvence pro nejmenší L musí obsahovat alespoň bitů. Test rozděluje vstupní sekvenci na dvě: počáteční sekvenci Q a testovací sekvenci K. Sekvence Q obsahuje 10 2 L bitů a sekvence K obsahuje n/l Q bitů. Pro názornost je průběh testu vysvětlen na tabulce. Na začátku testu je vytvořena tabulka, která obsahuje jeden řádek a sloupce se všemi možnými hodnotami L-bitových bloků, těch je přesně 2 L. V prvním řádku tabulky je zapsaná největší pozice L-bitových bloků v počáteční sekvenci Q. Test postupně prochází testovanou sekvenci K po L-bitových blocích a přidává do tabulky řádky. Nový řádek je shodný s předchozím až na sloupec, který odpovídá aktuálnímu L bloku v testované sekvenci. Zároveň test počítá proměnnou sum. Ta reprezentuje všechny změny detekované v sekvenci K. Proměnná sum se spočítá sum = sum + log 2 (i T i ), kde i je aktuální pozice bloku L a T i je předchozí pozice v přepsaném sloupci. Hodnota sum se následně porovnává s teoreticky očekávanou hodnotou pro náhodnou sekvenci a podle výsledků je statisticky vyhodnocena P value Linear Complexity Test (test lineární složitosti) Test se zaměřuje na délku LFSR. Test zjišťuje, zda je sekvence dostatečně složitá na to, aby mohla být označena za náhodnou. Náhodné sekvence se vyznačují delším LFSR.

32 KAPITOLA 4. TESTOVÁNÍ NÁHODNOSTI Popis testu Vstupní sekvence je rozdělena do N M-bitových bloků. Test hledá uvnitř každého bloku i od počátku nejkratší L i -bitovou sekvenci LFSR, která generuje zbylé bity v bloku i. Aby sekvence L i vygenerovala následující bit, musí se následující bit rovnat součtu některých bitů modulo 2. Sekvence L i se po každém vygenerovaném bitu posune o jeden bit a sečtením bitů na stejných pozicích v sekvenci L i mod 2 musí vygenerovat další bit. Tímto způsobem musí vygenerovat všechny zbylé bity v bloku i. Ze získaných hodnot L i pro jednotlivé bloky a dalších koeficientů je nakonec statisticky vyhodnocena P value. NIST doporučuje pro tento test vstupní sekvenci Hodnota M musí být v rozmezí 500 M 5000 a N musí být Serial Test (sériový test) Test se zaměřuje na frekvenci všech možných překrývajících se m-bitových vzorů skrze celou sekvenci. Test rozhoduje, zda je počet opakování 2 m m-bitových překrývajících se vzorů přibližně shodný s očekávanými výsledky pro náhodnou sekvenci. Náhodné sekvence jsou rovnoměrné, proto každý m-bitový vzor má stejnou šanci se objevit v sekvenci jako ostatní m-bitové vzory. Pokud m = 1 je test Serial Test shodný s testem Frequency (Monobit) Test Popis testu Test nejdříve přidá na konec sekvence prvních m 1 bitů. Dále spočítá četnosti všech možných překrývajících se m-bitových bloků, všech možných překrývajících se m 1bitových bloků a všech možných překrývajících se m 2bitových bloků. Výsledky jsou vyhodnoceny a statisticky se spočítá P value. Doporučení pro zvolení hodnot m a velikosti bloku n je m < log 2 n Approximate Entropy Test (aproximační test entropie) Tento test, stejně jako test Serial Test, se zaměřuje na četnost všech možných překrývajících se m-bitových vzorů skrze celou vstupní sekvenci. Test porovnává četnost překrývajících se bloků dvou velikostí (m a m + 1) s očekávaným výsledkem pro náhodnou sekvenci Popis testu Oproti testu Serial Test je zde P value počítána jiným způsobem. Nároky na hodnoty m a velikosti bloku n jsou zde stejné, tedy m < log 2 n 2.

33 KAPITOLA 4. TESTOVÁNÍ NÁHODNOSTI Cumulative Sums (Cusum) Test (test kumulativní sumy) Test se zaměřuje na maximální odchylku (od nuly) náhodného průchodu pomocí kumulativní sumy upravené sekvence (0, 1) na (+1, 1). Velká odchylka nám říká, že jsou v sekvenci místa nebo místo, kde je velké množství stejných bitů střídané menším množstvím bitů s opačnou hodnotou. Test porovnává velikost odchylky s předpokládanou hodnotou pro náhodnou sekvenci. Velká odchylka od nuly značí příliš mnoho 0 nebo 1. Malá odchylka značí příliš časté střídání hodnot Popis testu Test postupně prochází celou sekvenci a počítá celkovou sumu. Odchylka od nuly je pak maximální absolutní hodnota počítané sumy. Test prochází vstupní sekvenci zepředu a zezadu. Pomocí odchylek a dalších koeficientů jsou spočítány dvě hodnoty P value, jedna pro průchod odpředu a druhá pro průchod odzadu. Vstupní sekvence u tohoto testu by měla mít alespoň 100 bitů Random Excursions Test (test náhodných odchylek) Test se zaměřuje na počet cyklů, které obsahují K návštěv v kumulativní sumě. Test vytváří řetězec S, který obsahuje hodnoty výsledků kumulativní sumy. Cyklus je sekvence obsahující hodnoty z řetězce S, které leží mezi hodnotami Popis testu Test vytvoří řetězec S a přidá na jeho začátek i konec 0. Dále rozdělí řetězec na jednotlivé cykly. Nula, která ukončuje jeden cyklus, je začátkem následujícího cyklu. V dalším kroku se spočítá, kolikrát se v jednotlivých cyklech objevila každá z hodnot -4, -3, -2, -1, 1, 2, 3 a 4. Pro každou hodnotu se nakonec spočítá P value, proto je ve výsledném vyhodnocení osmi výsledků tohoto testu. Je doporučeno, aby vstupní sekvence obsahovala alespoň bitů Random Excursions Variant Test (variace testu náhodných odchylek) Test se zaměřuje na celkový počet návštěv v kumulativní sumě. Test vytváří řetězec S, který obsahuje hodnoty výsledků kumulativní sumy. Cyklus je sekvence obsahující hodnoty z řetězce S, které leží mezi hodnotami Popis testu Test vytvoří řetězec S a přidá na jeho začátek i konec 0. Dále rozdělí řetězec na jednotlivé cykly. Nula, která ukončuje jeden cyklus, je začátkem následujícího cyklu. V dalším kroku se spočítá, kolikrát se v sekvenci S objevila každá z hodnot -9, -8,..., -2, -1, 1, 2,..., 8 a 9. Pro každou hodnotu se nakonec spočítá P value, proto je ve výsledném vyhodnocení osmnácti výsledků tohoto testu. Je doporučeno, aby vstupní sekvence obsahovala alespoň bitů.

34 KAPITOLA 4. TESTOVÁNÍ NÁHODNOSTI Vyhodnocení výsledků Vyhodnocení empirických výsledků může být provedeno mnoha způsoby. NIST v sadě statistických testů používá dva testy pro vyhodnocení výsledků. První z nich je poměr úspěšných sekvencí. To je poměr sekvencí, které projdou testem, k celkovému počtu testů. Druhý test je rozložení hodnot P value pro kontrolu rovnoměrnosti Proportion of Sequences Passing a Test (poměr úspěšných sekvencí) Z empirických výsledků pro jednotlivé statistické testy spočítáme poměr sekvencí, které jsou úspěšné. Například jestliže je testováno binárních sekvencí (tedy m = 1 000) a z toho je 996 sekvencí úspěšných, znamená to, že těchto 996 sekvencí má P value 0,01, potom je poměr úspěšných sekvencí 996/1 000 = 0,996. Rozsah pro úspěšné projití testem poměru úspěšných sekvencí je definován následovně: ˆp (1 ˆp) ˆp ± 3, kde ˆp = 1 0,01 a m je počet sekvencí. Pro příklad, který je uvedený m 0,99 (1 0, 99) výše dostaneme: 0,99 ± 3 = 0,99 ± 0, Poměr úspěšných sekvencí by měl tedy ležet nad hodnotou 0, Uniform Distribution of P values (rovnoměrnost rozložení hodnot P value) Obrázek 4.1: Histogram hodnot P value převzato z [3] Rozložení hodnot P value se zkoumá kvůli určení rovnoměrnosti. Můžeme ho znázornit na obrázku 4.1. Interval od 0 do 1 je rozdělen do 10 podintervalů po 0,1. Hodnoty P value, které spadají do jednotlivýh intervalů jsou sečteny a zobrazeny v grafu. Matematicky je to vyhodnoceno pomocí funkce χ 2 a pomocí vyhodnocení P value z jednotlivých hodnot P value. Funkci χ 2 spočítáme následovně χ 2 Fi s ) 2 10 ( 10 (obs) =, kde i=1 s 10

35 KAPITOLA 4. TESTOVÁNÍ NÁHODNOSTI 25 F i je počet hodnot P value v podintervalu ( ) i, a s je celkový počet sekvencí. P value je spočítána takto: P value T = igamc 9 2, χ2. Jestliže nám vyjde, že P value T 0,000 1, 2 pak může být sekvence považována za rovnoměrně rozloženou Konečné vyhodnocení výsledků Obrázek 4.2: Final Analysis Report převzato z [3] Po provedení všech testů se vytvoří soubor finalanalysisreport. Ukázka souboru je vidět na obrázku 4.2. Soubor obsahuje výsledky rovnoměrnosti hodnot P value a poměr úspěšných sekvencí. Řádky v tomto souboru reprezentují výsledky testů, jejichž název je uveden v sloupci STATISTICAL TEST. Sloupce C1 až C10 nám udávají, kolik hodnot P value leží v daném podintervalu (popsáno v sekci 4.2.2). Ve sloupci P-VALUE je spočítána výsledná P value ze sloupců C1 až C10. Ve sloupci PROPORTION je spočítán poměr úspěšných sekvencí. Aby bylo poznat, zda testovaný vzorek prošel příslušným testem, je na konci souboru spočítána hranice pro test poměru úspěšných sekvencí v závislosti na počtu podsekvencí, do kterých je testovaný vzorek rozdělen.

36 Kapitola 5 Návrh řešení V předchozích sekcích jsme zmínili možnosti generování náhodných čísel. Každá má nějaké výhody a nevýhody. Nyní je důležité rozhodnout se pro implementaci jednoho z uvedených způsobů. Výběr bude záviset na účelech používání generátoru a hardwaru pro implementaci. Pokud to bude možné, chtěli bychom použít modul AVR Butterfly popsaný v [2] bez dalších komponentů a vytvořit co nejlepší náhodný generátor. Modul AVR Butterfly již obsahuje například Watchdog, ADC převodník, rozhraní RS-232 a další. 5.1 Pseudonáhodné generátory versus fyzikální generátory Pseudonáhodné generátory čísel, které jsme popsali v sekci 3.1, by se daly všechny použít pro implementaci na mikrokontroléru AVR. Výhodou pseudonáhodných generátorů je, že generují velice rychle pseudonáhodná čísla. Navíc můžeme pro účely testování generovat hodnoty na počítači a až výsledný otestovaný generátor implementovat na mikrokontolér. Naproti tomu generují čísla s určitou periodou, pro start potřebují semínko a je-li znám algoritmus a jedno vygenerované číslo (pro některé generátory je třeba více čísel s různým umístěním v generované posloupnosti), lze vypočítat další čísla generované posloupnosti. My chceme generovat opravdu náhodná čísla a proto použijeme fyzikální generátor náhodných čísel. Pro implementaci generátoru náhodných čísel jsme si vybrali metodu popsanou v sekci Metoda používá pro generování náhodných hodnot 2 MHz RC oscilátor čítající po dobu jedné sekundy. V publikaci [11] je popsána podobná metoda, jež využívá místo RC oscilátoru 9 MHz krystalový oscilátor. Zvolili jsme první metodu, protože RC oscilátor je méně stabilní a odchylky načítaných hodnot by měly být proto výraznější. Implementace zvolené metody nevyžaduje žádné další komponenty a může být provedena přímo na vývojovou desku AVR Butterfly. 26

37 Kapitola 6 Implementace a testování Jak jsme již zmínili výše, budeme pracovat s vývojovou deskou AVR Butterfly, na kterou implementujeme generátor popsaný v sekci Testovat budeme pomocí sady testů STS [3] od NIST. Při testování je možné měnit parametry u některých testů. Proto můžeme testovat jednu sekvenci několikrát s různými parametry. Pro zjednodušení budeme provádět testování s výchozími parametry. U testování jednotlivých implemetací našeho generátoru zde uvádíme výsledky v tabulkách jen pro prvních několik testů. Všechny dosažené výsledky i s testovacími daty jsou na přiloženém DVD. 6.1 Předpřipravení dat Z našeho generátoru posíláme data přes rozhraní RS-232 do počítače. Nejdříve posíláme dolní byte vygenerovaného čísla a následně horní byte. Pokud si chceme zobrazená data v počítači přečíst, musíme je zobrazit v hexadecimálním formátu. Data je nutné programově zpracovat. Sada testů STS nám dovoluje testovat binární soubory i soubory, kde jsou nuly a jedničky reprezentovány jako ASCII znaky. V ASCII režimu jsou bílé znaky při testování vypouštěny, což nám dovoluje si ukládat data přehledně. My si přijatá data ukládáme v ASCII kódu vždy jednu 16bitovou hodnotu na řádek. Při testování nemáme obvykle k dispozici 16bitové hodnoty se všemi náhodnými bity. Musíme proto nejdříve extrahovat bity, u kterých předpokládáme, že jsou náhodné. Jestliže se chceme přesvědčit, že jsme využili maximum náhodných bitů, a nebo si nejsme jisti, které náhodné jsou a které ne, extrahujeme si postupně všechny bity samostatně. Po zjištění všech náhodných bitů je vyextrahujeme z 16bitové hodnoty dohromady a otestujeme jako celek. Při každém testování bychom měli vědět, kolik bitů testujeme. Při spouštění STS jsme dotázáni na velikost testované podsekvence n a počet testovaných podsekvencí m. Data by měla obsahovat minimální počet bitů l n m. 6.2 Použitelné testy Jak už jsme se zmínili výše, je při testování dat nutné zadat délku testované sekvence n a počet testovaných sekvencí m. Aby měly smysl vyhodnocovací testy poměr úspěšných 27

38 KAPITOLA 6. IMPLEMENTACE A TESTOVÁNÍ 28 Stistický test Požadovaná délka sekvence n Poznámka Frequency 100 BlockFrequency 100 Runs 100 LongestRun 128 Rank NonOverlappingTemplate = pravděpodobnosti OverlappingTemplate = pravděpodobnosti Universal pravděpodobnosti LinearComplexity Serial - ApproximateEntropy - CumulativeSums 100 RandomExcursions RandomExcursionsVariant Tabulka 6.1: Požadovaná délka vstupní sekvence pro jednotlivé testy sekvencí a rovnoměrnost rozložení hodnot P value, je zapotřebí zvolit m 10. Některé testy v STS mají doporučené minimální množství bitů a některé vyžadují vstupní sekvenci přesné délky. Uvádíme zde proto tabulku 6.1, která souhrnně ukazuje potřebný počet bitů u konkrétních testů. Poznámka pravděpodobnosti v tabulce znamená, že testy mají spočítané pravděpodobnostní hodnoty náhodné sekvence o velikosti uvedené v sousedním sloupci. Jestliže nedodržíme požadovanou délku sekvence u těchto testů, nebudou výsledky správné. Díky uvedené tabulce můžeme snadno určit, které testy jsou použitelné pro konkrétní sekvenci délky l. Při zvolení nejmenšího možného m = 10 je vždy zapotřebí alespoň l 10n. 6.3 Náhodná hodnota každou sekundu První implementace našeho RNG generuje vždy jednu 16bitovou hodnotu za sekundu. Program nám ovlivňuje poslední bit, ten je vždy První test Před otestováním prvních dat musíme rozhodnout, která část je náhodná. Nultý bit není třeba testovat, je vždy roven 1. Nejvyšší bity jsou také zcela nenáhodné, protože se mění jen výjimečně. Náhodně vypadající bity jsou 1 8. Ty budeme testovat. Celkem jsme vygenerovali bitových čísel. Z každého čísla použijeme 8 bitů. K dispozici máme tedy = bitů. Minimálně musíme testovat 10 podsekvencí, z nichž každá může mít maximálně bitů. Pro zjednodušení a přehlednost vždy zaokrouhlujeme počet testovaných bitů dolů na Při prvním testu jsme otestovali bitů x 10 podsekvencí. Protože velikost podsekvence je bitů, můžeme provést pouze některé testy. Výsledky použitelných testů jsou v tabulce 6.2.

39 KAPITOLA 6. IMPLEMENTACE A TESTOVÁNÍ 29 Statistický test P value Proportion Frequency BlockFrequency CumulativeSums CumulativeSums Runs LongestRun Rank ApproximateEntropy Serial Serial Minimální hodnota Proportion pro každý statistycký test je přibližně = 0,895607, pro počet podsekvencí = 10. Tabulka 6.2: Výsledky prvního testu Pro provedení všech testů nemáme dostatečné množství dat. U použitelných testů jsou všechny hodnoty P value > 0,000 1 a všechny hodnoty P roportion > 0, Výsledky ukazují, že testovaná sekvence je náhodná Druhý test Při prvním testu jsme otestovali bity 1 8, u nichž jsme na základě odhadu předpokládali náhodnost. Odhad byl správný a z testů vyplývá náhodnost těchto bitů. Abychom si byli jisti, že jsme využili maximum náhodných bitů, rozhodli jsme se při druhém testu otestovat všechny bity zvlášť kromě nultého. Vygenerovali jsme hodnot. Z 16bitových hodnot jsme postupně vyextrahovali každý bit. U jednoho bitu jsme získali sekvenci l o velikosti bitů. Jednotlivé sekvence bitů jsme testovali v 10 podsekvencí o velikosti bitů. Bity 1 8 prošly všemi použitelnými testy. Bit 9 neprošel testy rovnoměrnosti rozložení P value a poměru úspěšných sekvencí pro testy: BlockFrequency, Runs a LongestRun. Bit 10 neprošel žádným testem a další bity už jsme ani netestovali. Bit 9, vzhledem k výsledkům, nepovažujeme za náhodný. Testováním jednotlivých bitů se nám potvrdilo, že náhodné jsou pouze bity 1 8. Pro nově vygenerovanou sekvenci nám ještě zbylo otestovat bity 1 8 jako celek. Tentokrát jsme se je rozhodli otestovat 3krát, pokaždé pro jiný počet podsekvencí. Zajímalo nás, jestli bude mezi vyhodnocením tesů nějaký rozdíl v závislosti na počtu podsekvencí. V našem případě znamená zvýšení počtu podsekvencí snížení délky podsekvence, abychom vždy využili stejné množství otestovaných bitů. K dispozici máme = bitů. Celkový testovaný počet bitů bude l = Testy budeme provádět pro následující rozdělení na podsekvence: bitů x 10 podsekvencí, bitů x 50 podsekvencí a bitů x 100 podsekvencí. Výsledky všech použitelných testů jsou v tabulce 6.3. Jak je vidět, testovaná sekvence prošla všemi testy i při různém rozdělení do podsekvencí.

40 KAPITOLA 6. IMPLEMENTACE A TESTOVÁNÍ x x x 100 Statistický test P value P rop. P value P rop. P value P rop. Frequency BlockFrequency CumulativeSums CumulativeSums Runs LongestRun Rank ApproximateEntropy Serial Serial Min. hodnota Prop Tabulka 6.3: Výsledky druhého testu Vyhodnocení V grafu na obrázku 6.1 ukazujeme četnost 16bitových hodnot získaných přímo z našeho generátoru. Jsou to hodnoty testované v druhém testu. V grafu jsou vidět dvě Gaussova rozložení hodnot. To je způsobeno tím, že se přerušilo generování a my jsme následně spojovali dva datové soubory, abychom získali větší množství hodnot pro testování. Obrázek 6.1: Četnost neupravených 16bitových hodnot z našeho generátoru Pro porovnání původních hodnot s náhodnými hodnotami zjištěnými testováním, jsme vytvořili další graf na obrázku 6.2. Na něm je vidět četnost náhodných 8 bitových hodnot. Podle očekávání pro náhodnou sekvenci jsou jednotlivé hodnoty rozloženy rovnoměrně.

41 KAPITOLA 6. IMPLEMENTACE A TESTOVÁNÍ 31 Obrázek 6.2: Četnost náhodných 8bitových hodnot z našeho generátoru Z důvodu nedostatku dat nebylo možné provést všechny testy v sadě STS, ale náš generátor prošel všemi testy, které jsme na něj aplikovali. Dále jsme graficky znázornili rovnoměrné rozložení vygenerovaných náhodných hodnot. Jelikož jsme zatím neprovedli všechny testy nejsme schopni přesně určit kvalitu našeho generátoru, ale z dosažených výstupů zatím nic nenasvědčuje tomu, že je špatný. 6.4 Generování 16 hodnot za sekundu K aplikaci všech testů nám zatím brání nedostatek dat. Potřebovali bychom alespoň bitů. To znamená přibližně 15 dní generování. Rozhodli jsme se kvůli tomu pro zrychlení našeho generátoru. Rychlost generátorů je také velice důležitá. Čím rychlejší generátor se nám podaří vytvořit, tím lépe. Napadla nás myšlenka, kterou vysvětlíme na příkladu. Náš generátor načítá každou sekundu 8 náhodných bitů. Otázka zní: kolik náhodných bitů by obsahovala 16bitová hodnota načítaná naším generátorem za 2 sekundy? Šestnáct bitů by to nejspíše nebylo. Dle našeho odhadu by to mohlo být možná 10 nebo 11 bitů. Proto, když naopak zkrátíme dobu s jakou generujeme náhodná čísla, měli bychom ve výsledku dostat větší množství náhodných dat. Rozhodli jsme se naši teorii vyzkoušet na 16krát rychlejším čtení hodnoty z čítače. Neočekáváme 8 náhodných bitů z každé 16bitové hodnoty jako doposud. Ale kdybychom získali alespoň 1 náhodný bit, zrychlí se náš generátor dvojnásobně. Dalším problémem je nultý bit. Nyní je vždy jedničkový. Kdyby se nám podařilo tento nedostatek odstranit, mohli bychom získat při každém čtení hodnoty o jeden náhodný bit více.

42 KAPITOLA 6. IMPLEMENTACE A TESTOVÁNÍ 32 Kvůli novým poznatkům jsme upravili implementaci generátoru: 1. Nultý bit se bude měnit. 2. Změna nastavení předděličky u čítače 32 khz krystalového oscilátoru, aby vyvolával přerušení 16krát za sekundu První test S naší novou implementací jsme vygenerovali nová data přesně hodnot. Je třeba otestovat, jestli jsme nepřišli změnou implementace o náhodnost. Předpokládáme, že počet náhodných bitů nebude stejný jako dříve a tak musíme znovu testovat každý bit zvlášť. Tentokrát má smysl díky změnám testovat i nultý bit. Pro testování jednotlivých bitů jsme zvolili počet podsekvencí m = 100. Každá podsekvence obsahuje bitů. Nejdříve jsme otestovali nultý bit. Ten prošel pouze testy Rank a Linear Complexity. Z toho vyplývá, že je stále ovlivněn programem a není proto náhodný. Bity 1 4 vyšly náhodné pro všechny použitelné testy. Bit 5 už nevyšel pro některé testy a vyšší bity je zbytečné testovat. Nyní otestujeme pro ověření náhodné bity jako celek. Máme k dispozici = bitů. Budeme testovat 100 podsekvencí po Výsledky prokázali náhodnost bitů 1 4. Nepodařilo se nám získat náhodnost nultého bitu, ale teorie pro zrychlení generátoru se potvrdila. Což je pro nás výhodnější, než kdyby to bylo naopak. Dříve jsme generovali osm náhodných bitů každou vteřinu a nyní jich generujeme 64 (16 4) Druhý test Úspěšně se nám podařilo zrychlit generátor a díky tomu bychom měli být schopni vygenerovat potřebných bitů pro použití všech testů přibližně za 2 dny. Při generování se nám podařilo získat téměř hodnot. Z prvního testu známe náhodné bity a tak je otestujeme. Dohromady máme přes bitů. Celou sekvenci rozdělíme do podsekvencí po miliónech kvůli některým testům, které NIST doporučuje spouštět pro vstupní sekvenci o velikosti n = , a otestujeme konečně všemi testy. Naše náhodná data prošla pro téměř všechny testy. Pouze u tří ze 148 testů uvnonoverlappingtemplate sekvence nedosáhla pro test poměru úspěšných sekvencí přibližné hranice P roportion 0, Namísto toho dosáhla u těchto tří testů poměru P roportion = 0, Pro kontrolu jsme otestovali tuto sekvenci i pro větší počet podsekvencí ( bitů x 100 podsekvencí). Všechny použitelné testy dopadly úspěšně Testování teplotní závislosti Náš generátor pracuje na principu nestability RC oscilátoru. RC oscilátor, kromě jiných vlivů, je nejvíce závislý na teplotě. Proto je důležité náš generátor otestovat při teplotních změnách.

43 KAPITOLA 6. IMPLEMENTACE A TESTOVÁNÍ 33 Vývojová deska AVR Butterfly [1] přímo umožňuje měření teploty přes ADC převodník. Použitím napěťového děliče přečteme pomocí ADC převodníku hodnotu protékající NTCtermistorem (Negative Temperature Coefficient záporný teplotní koeficient). Teplotu spočítáme následujícím způsobem: T emperature = β ADC ln 1024 ADC + β T zero, kde β = 4 250, T amb ADC = hodnota v datovém registru ADC, T zero = 273 K, T amb = 298 K. Pro tento účel jsme přeprogramovali mikrokontrolér, aby při každém přerušení odesílal s náhodnou hodnotou zároveň hodnotu z ADC převodníku. Při zpracování dat v počítači musíme rozdělit data do dvou souborů na ADC a náhodné hodnoty. Z hodnot získaných pomocí ADC převodníku spočítáme podle výše uvedené rovnice teplotu, která byla naměřena při vygenerování konkrétní hodnoty. Teplotní změny jsme u vývojové desky AVR Butterfly dosahovali pomocí foukání horkého vzduchu a následného vložení do ledničky a mrazáku. Při tom se nám podařilo vygenerovat náhodných hodnot s informací, při jaké teplotě byly hodnoty vygenerovány. Ze získaných hodnot jsme vytvořili grafy, kde jsou zobrazeny po sobě jdoucí hodnoty. Na obrázku 6.3 je vidět graf vygenerovaných hodnot a na obrázku 6.4 je teplotní graf ve C. V grafu hodnot není vidět zpočátku reakce na zvýšení teploty. Pravděpodobně je to tím, že se RC oscilátor nepřizpůsobuje tak rychle změnám teplot jako NTC-termistor a že byl ovlivněn od předešlého neúspěšného zahřívacího pokusu. Další důvod bude nerovnoměrné zahřívání. Při foukání horkého vzduchu jsme mohli více zahřívat NTC-termistor než vlastní mikrokontrolér. Přibližně od měřené hodnoty je v grafu generovaných hodnot vidět výrazná reakce na změnu teploty z 50 C na 0 C. Generátor se zpomalil (ne ve smyslu pomalejšího generování náhodných čísel) a čítá místo přibližně do do Obrázek 6.3: Hodnoty generované při měření teploty Je zřejmé, že náš generátor reaguje na změnu teploty. Důležité je zjistit, zda se tato

44 KAPITOLA 6. IMPLEMENTACE A TESTOVÁNÍ 34 Obrázek 6.4: Teploty ve C k jednotlivým naměřeným hodnotám skutečnost promítne na kvalitě generovaných čísel. Vygenerovali jsme poměrně málo čísel, ale po vložení generátoru do mrazáku se z důvodu své předchozí teploty orosil a přestal fungovat i přesto, že byl vložen do igelitového sáčku a zaizolován izolační páskou. Získané hodnoty jsme testovali v 10 podsekvencích po bitech. Všechny použitelné testy prošly úspěšně. Můžeme proto říci, že teplota nemá vliv na kvalitu generovaných čísel. 6.5 Generování 128 hodnot za sekundu Už jsme zjistili, že náš generátor generuje kvalitní náhodná čísla a je teplotně nezávislý. Jedna z dalších důležitých vlastností RNG je rychlost. Budeme se proto snažit implementovat náš generátor co nejrychlejší. Použijeme metodu zrychlení vyvolávání přerušení od čítače řízeného krystalovým oscilátorem. V implementaci našeho generátoru zrušíme dělící poměr předděličky u čítače, který bude nově vyvolávat přerušení 128krát za sekundu První test Pro první ověřovací test jsme vygenerovali přibližně hodnot. Opět jsme otestovaly nejdříve jednotlivé bity pro zjištění těch náhodných. Všemi použitelnými testy prošly pouze bity 1 a 2. Z vygenerovaných dat jsme vyextrahovali bity 1 a 2 a otestovali je dohromady. Měli jsme pouze bitů, jež nedostačovaly na náročnější testy. Všemi ostatními testy testovaná sekvence prošla.

45 KAPITOLA 6. IMPLEMENTACE A TESTOVÁNÍ Druhý test Pro druhý test jsme vygenerovali okolo hodnot. Z předchozího testu známe náhodné bity. Vyextrahovali jsme rovnou dohromady bity 1 a 2 a otestovali. Použili jsme 65 podsekvencí po bitů. Naše náhodná data prošla všemi testy kromě jednoho ze 148 testů NonOverlapping- Template. Vstupní sekvence v testu poměru úspěšných sekvencí nedosáhla přibližné hranice P roportion 0, Namísto toho dosáhla hodnoty 0, Vylepšené generování 128 hodnot za sekundu Do této doby jsme generátor zlepšovali zkracováním intervalu mezi přerušeními. Ovlivňovali jsme časovač řízený krystalovým oscilátorem. Existuje i druhý způsob. RC oscilátor na vývojové desce AVR Butterfly pracuje na frekvenci 2 MHz kvůli úspoře energie. Můžeme ho ale nastavit, aby fungoval až na 8 MHz. Jestliže zrychlíme 4krát RC oscilátor, zvětší se i 4krát načítaná hodnota čítače řízeného RC oscilátorem a mohli bychom získat více náhodných bitů v každé hodnotě První test Pomocí nové úpravy v implementaci, jsme vygenerovali přes hodnot. Jelikož očekáváme větší množství náhodných bitů než při předchozí implementaci, musíme testovat opět jednotlivé bity. Pro každý bit jsme rozdělili sekvenci do 10 podsekvencí po bitech. Použitelnými testy pro danou velikost vstupní sekvence prošly bity 1 4. Spojené bity jsme již netestovali, jelikož máme z předchozích testů ověřeno, že jsou-li náhodné jednotlivé bity, pak je náhodná i sekvence vytvořená jejich spojením. Při 4násobném zrychlení RC oscilátoru jsme získaly 2x více náhodných bitů. Náš generátor nyní produkuje 512 náhodných bitů za sekundu. 6.7 Vylepšené generování 512 hodnot za sekundu V současné době získáme s každou hodnotou 4 náhodné bity. Kdyby se nám podařilo zkrátit ještě více interval mezi přerušeními, mohl by se náš generátor zrychlit. Časovač řízený krystalovým oscilátorem čítá s největší možnou rychlostí. Pro zkrácení intervalu přerušení musíme do čítače vždy po vyvolání přerušení přednastavit požadovanou hodnotu. Čítač přeteče při hodnotě 256. Rozhodli jsme se zkrátit interval 4krát a tak budeme nastavovat čítač po přerušení na hodnotu První test Jelikož už je náš generátor poměrně rychlý, vygenerovali jsme hned pro první test zaokrouhleně hodnot. Pro určení náhodnosti jsme testovali u jednotlivých bitů 140 podsekvencí po Bit 1 neprošel pouze pro jeden ze 148 testů NonOverlapping- Template. Nedosáhl u testu poměru úspěšných sekvencí přibližné hranice P roportion

46 KAPITOLA 6. IMPLEMENTACE A TESTOVÁNÍ 36 0, Namísto toho dosáhl hodnoty 0, Bit 2 prošel naprosto všemi testy. Další bity náhodné nejsou. Když jsme zjistili náhodnost bitů 1 a 2 otestovali jsme je dohromady pro 280 podsekvencí po bitů. Naše poslední posloupnost prošla všemi testy Vyhodnocení Změnou implementace generátoru se nám ho opět podařilo zrychlit a aktuálně je schopen generovat 1024 bit/s. Náhodné bity získáváme z 16bitových hodnot. Ze začátku jsme neměli dostatek dat pro zobrazení četnosti 16bitových hodnot pro vyextrahované bity. Nyní s naším vylepšeným generátorem získáváme dostatečné množství dat a tak zobrazujeme graf četností 16bitových hodnot na obrázku 6.5. Obrázek 6.5: Četnost náhodných 16bitových hodnot z našeho generátoru

Generátory pseudonáhodných čísel a jejich aplikace v kryptografii (proudové šifry)

Generátory pseudonáhodných čísel a jejich aplikace v kryptografii (proudové šifry) Generátory pseudonáhodných čísel a jejich aplikace v kryptografii (proudové šifry) Hana Srbová Fakulta jaderná a fyzikálně inženýrská, ČVUT Praha 11. 3. 2013 Obsah 1 Úvod 2 Generátory pseudonáhodných čísel

Více

NÁHODNÁ ČÍSLA. F(x) = 1 pro x 1. Náhodná čísla lze generovat některým z následujících generátorů náhodných čísel:

NÁHODNÁ ČÍSLA. F(x) = 1 pro x 1. Náhodná čísla lze generovat některým z následujících generátorů náhodných čísel: NÁHODNÁ ČÍSLA TYPY GENERÁTORŮ, LINEÁRNÍ KONGRUENČNÍ GENERÁTORY, TESTY NÁHODNOSTI, VYUŽITÍ HODNOT NÁHODNÝCH VELIČIN V SIMULACI CO JE TO NÁHODNÉ ČÍSLO? Náhodné číslo definujeme jako nezávislé hodnoty z rovnoměrného

Více

Generátory náhodných čísel V. Bílý Fakulta jaderná a fyzikálně inženýrská, Břehová 7, 115 19 Praha 1 bilyvit@fjfi.cvut.cz Abstrakt Během svého experimentu jsem se zajímal a porovnával různé generátory

Více

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D. Generování pseudonáhodných čísel při simulaci Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky V simulačních modelech se velice často vyskytují náhodné proměnné. Proto se budeme zabývat otázkou, jak při simulaci

Více

SEKVENČNÍ LOGICKÉ OBVODY

SEKVENČNÍ LOGICKÉ OBVODY Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních

Více

Pravděpodobnost, náhoda, kostky

Pravděpodobnost, náhoda, kostky Pravděpodobnost, náhoda, kostky Radek Pelánek IV122 Výhled pravděpodobnost náhodná čísla lineární regrese detekce shluků Dnes lehce nesourodá směs úloh souvisejících s pravděpodobností připomenutí, souvislosti

Více

Karel Břinda. 7. března 2011

Karel Břinda. 7. března 2011 FJFI ČVUT v Praze 7. března 2011 O čem bude dnes řeč Motivace, využití generátorů Co to je náhodná posloupnost Jak náhodnost testovat Se kterými generátory se nejčastěji setkáme a na co si dát pozor Motivace

Více

Pravděpodobnost, náhoda, kostky

Pravděpodobnost, náhoda, kostky Pravděpodobnost, náhoda, kostky Radek Pelánek IV122, jaro 2015 Výhled pravděpodobnost náhodná čísla lineární regrese detekce shluků Dnes lehce nesourodá směs úloh souvisejících s pravděpodobností krátké

Více

7. Rozdělení pravděpodobnosti ve statistice

7. Rozdělení pravděpodobnosti ve statistice 7. Rozdělení pravděpodobnosti ve statistice Statistika nuda je, má však cenné údaje, neklesejte na mysli, ona nám to vyčíslí Jednou z úloh statistiky je odhad (výpočet) hodnot statistického znaku x i,

Více

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni KTE/TEVS - Rychlá Fourierova transformace Pavel Karban Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni 10.11.011 Outline 1 Motivace FT Fourierova transformace

Více

Proudové šifry a posuvné registry s lineární zpětnou vazbou

Proudové šifry a posuvné registry s lineární zpětnou vazbou Proudové šifry a posuvné registry s lineární zpětnou vazbou Andrew Kozlík KA MFF UK Proudové šifry Bloková šifra Šifruje velké bloky otevřeného textu. Bloky mají pevnou délku. Velké znamená, že je prakticky

Více

Úvod do zpracování signálů

Úvod do zpracování signálů 1 / 25 Úvod do zpracování signálů Karel Horák Rozvrh přednášky: 1. Spojitý a diskrétní signál. 2. Spektrum signálu. 3. Vzorkovací věta. 4. Konvoluce signálů. 5. Korelace signálů. 2 / 25 Úvod do zpracování

Více

Title: IX 6 11:27 (1 of 6)

Title: IX 6 11:27 (1 of 6) PŘEVODNÍKY ANALOGOVÝCH A ČÍSLICOVÝCH SIGNÁLŮ Převodníky umožňující transformaci číslicově vyjádřené informace na analogové napětí a naopak zaujímají v řídícím systému klíčové postavení. Značná část měřených

Více

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Mikrokontroléry. Doplňující text pro POS K. D. 2001 Mikrokontroléry Doplňující text pro POS K. D. 2001 Úvod Mikrokontroléry, jinak též označované jako jednočipové mikropočítače, obsahují v jediném pouzdře všechny podstatné části mikropočítače: Řadič a aritmetickou

Více

Analogově-číslicové převodníky ( A/D )

Analogově-číslicové převodníky ( A/D ) Analogově-číslicové převodníky ( A/D ) Převodníky analogového signálu v číslicový (zkráceně převodník N/ Č nebo A/D jsou povětšině založeny buď na principu transformace napětí na jinou fyzikální veličinu

Více

MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky

MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky Při návrhu elektroakustických soustav, ale i jiných systémů, je vhodné nejprve

Více

Teorie úlohy: Operační zesilovač je elektronický obvod, který se využívá v měřící, výpočetní a regulační technice. Má napěťové zesílení alespoň A u

Teorie úlohy: Operační zesilovač je elektronický obvod, který se využívá v měřící, výpočetní a regulační technice. Má napěťové zesílení alespoň A u Fyzikální praktikum č.: 7 Datum: 7.4.2005 Vypracoval: Tomáš Henych Název: Operační zesilovač, jeho vlastnosti a využití Teorie úlohy: Operační zesilovač je elektronický obvod, který se využívá v měřící,

Více

Direct Digital Synthesis (DDS)

Direct Digital Synthesis (DDS) ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Direct Digital Synthesis (DDS) Přímá číslicová syntéza Tyto materiály vznikly za podpory

Více

Operační zesilovač, jeho vlastnosti a využití:

Operační zesilovač, jeho vlastnosti a využití: Truhlář Michal 6.. 5 Laboratorní práce č.4 Úloha č. VII Operační zesilovač, jeho vlastnosti a využití: Úkol: Zapojte operační zesilovač a nastavte jeho zesílení na hodnotu přibližně. Potvrďte platnost

Více

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi

Více

1. MIKROPROCESOR ATMEGA A/D PŘEVODNÍK MÓDY PŘEVODNÍKU Single Conversion Mode Auto Triggering Start...

1. MIKROPROCESOR ATMEGA A/D PŘEVODNÍK MÓDY PŘEVODNÍKU Single Conversion Mode Auto Triggering Start... 1. MIKROPROCESOR ATMEGA 8535... 2 1.1 A/D PŘEVODNÍK... 2 1.2 MÓDY PŘEVODNÍKU... 3 1.2.1 Single Conversion Mode... 3 1.2.2 Auto Triggering Start... 4 1.2.3 Free Running Mode... 4 1.3 VÝBĚR MĚŘENÉHO KANÁLU...

Více

MSP 430F1611. Jiří Kašpar. Charakteristika

MSP 430F1611. Jiří Kašpar. Charakteristika MSP 430F1611 Charakteristika Mikroprocesor MSP430F1611 je 16 bitový, RISC struktura s von-neumannovou architekturou. Na mikroprocesor má neuvěřitelně velkou RAM paměť 10KB, 48KB + 256B FLASH paměť. Takže

Více

Problematika náhodných a pseudonáhodných sekvencí v kryptografických eskalačních protokolech a implementacích na čipových kartách

Problematika náhodných a pseudonáhodných sekvencí v kryptografických eskalačních protokolech a implementacích na čipových kartách Problematika náhodných a pseudonáhodných sekvencí v kryptografických eskalačních protokolech a implementacích na čipových kartách Masarykova univerzita v Brně Fakulta informatiky Jan Krhovják Kryptografické

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Digitální

Více

5. A/Č převodník s postupnou aproximací

5. A/Č převodník s postupnou aproximací 5. A/Č převodník s postupnou aproximací Otázky k úloze domácí příprava a) Máte sebou USB flash-disc? b) Z jakých obvodů se v principu skládá převodník s postupnou aproximací? c) Proč je v zapojení použit

Více

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student Předmět Ústav Úloha č. 9 BIO - igitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student Cíle Pochopení funkce obvodu pro odstranění zákmitů na

Více

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer Přednáška A3B38MMP Bloky mikropočítače vestavné aplikace, dohlížecí obvody 2015, kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2015, J.Fischer, kat. měření, ČVUT - FEL Praha 1 Hlavní bloky procesoru

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 2/36 Digitální

Více

ASYNCHRONNÍ ČÍTAČE Použité zdroje:

ASYNCHRONNÍ ČÍTAČE Použité zdroje: ASYNCHRONNÍ ČÍTAČE Použité zdroje: Antošová, A., Davídek, V.: Číslicová technika, KOPP, České Budějovice 2007 http://www.edunet.souepl.cz www.sse-lipniknb.cz http://www.dmaster.wz.cz www.spszl.cz http://mikroelektro.utb.cz

Více

3. Optoelektronický generátor náhodných čísel

3. Optoelektronický generátor náhodných čísel 3 Optoelektronický generátor náhodných čísel Fyzikální generátor náhodných čísel může být založen na nejrůznějších fyzikálních procesech Jde přitom o to, aby proces samotný byl náhodný ve smyslu nepředpověditelnosti

Více

Vestavěné diagnostické prostředky 1 (BIST)

Vestavěné diagnostické prostředky 1 (BIST) Vestavěné diagnostické prostředky 1 (BIST) Testování a spolehlivost ZS 2011/2012, 8. přednáška Ing. Petr Fišer, Ph.D. Katedra číslicového návrhu Fakulta informačních technologií ČVUT v Praze Evropský sociální

Více

StatSoft Jak vyzrát na datum

StatSoft Jak vyzrát na datum StatSoft Jak vyzrát na datum Tento článek se věnuje podrobně možnostem práce s proměnnými, které jsou ve formě datumu. A že jich není málo. Pokud potřebujete pracovat s datumem, pak se Vám bude tento článek

Více

Náhodné chyby přímých měření

Náhodné chyby přímých měření Náhodné chyby přímých měření Hodnoty náhodných chyb se nedají stanovit předem, ale na základě počtu pravděpodobnosti lze zjistit, která z možných naměřených hodnot je více a která je méně pravděpodobná.

Více

Středoškolská technika SCI-Lab

Středoškolská technika SCI-Lab Středoškolská technika 2016 Setkání a prezentace prací středoškolských studentů na ČVUT SCI-Lab Kamil Mudruňka Gymnázium Dašická 1083 Dašická 1083, Pardubice O projektu SCI-Lab je program napsaný v jazyce

Více

SČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE

SČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE SČÍTAČKA, LOGICKÉ OBVODY ÚVOD Konzultanti: Peter Žilavý, Jindra Vypracovali: Petr Koupý, Martin Pokorný Datum: 12.7.2006 Naším úkolem bylo sestrojit pomocí logických obvodů (tzv. hradel) jednoduchou 4

Více

Náhodné signály. Honza Černocký, ÚPGM

Náhodné signály. Honza Černocký, ÚPGM Náhodné signály Honza Černocký, ÚPGM Signály ve škole a v reálném světě Deterministické Rovnice Obrázek Algoritmus Kus kódu } Můžeme vypočítat Málo informace! Náhodné Nevíme přesně Pokaždé jiné Především

Více

Praktické úlohy- 2.oblast zaměření

Praktické úlohy- 2.oblast zaměření Praktické úlohy- 2.oblast zaměření Realizace praktických úloh zaměřených na dovednosti v oblastech: Měření specializovanými přístroji, jejich obsluha a parametrizace; Diagnostika a specifikace závad, měření

Více

Pokročilá kryptologie

Pokročilá kryptologie Pokročilá kryptologie Náhodná čísla doc. Ing. Róbert Lórencz, CSc., Ing. Josef Hlaváč, Ph.D. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava

Více

Fyzikální praktikum 3 Operační zesilovač

Fyzikální praktikum 3 Operační zesilovač Ústav fyzikální elekotroniky Přírodovědecká fakulta, Masarykova univerzita, Brno Fyzikální praktikum 3 Úloha 7. Operační zesilovač Úvod Operační zesilovač je elektronický obvod hojně využívaný téměř ve

Více

Chyby měření 210DPSM

Chyby měření 210DPSM Chyby měření 210DPSM Jan Zatloukal Stručný přehled Zdroje a druhy chyb Systematické chyby měření Náhodné chyby měření Spojité a diskrétní náhodné veličiny Normální rozdělení a jeho vlastnosti Odhad parametrů

Více

Signál v čase a jeho spektrum

Signál v čase a jeho spektrum Signál v čase a jeho spektrum Signály v časovém průběhu (tak jak je vidíme na osciloskopu) můžeme dělit na periodické a neperiodické. V obou případech je lze popsat spektrálně určit jaké kmitočty v sobě

Více

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,

Více

Cíle. Teoretický úvod

Cíle. Teoretický úvod Předmět Ú Úloha č. 7 BIO - igitální obvody Ú mikroelektroniky Sekvenční logika návrh asynchronních a synchronních binárních čítačů, výhody a nevýhody, využití Student Cíle Funkce čítačů a použití v digitálních

Více

18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry

18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry 18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry Digitální voltmetry Základním obvodem digitálních voltmetrů je A/D

Více

Způsoby realizace této funkce:

Způsoby realizace této funkce: KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je výstup určen jen výhradně kombinací vstupních veličin. Hodnoty výstupních veličin nezávisejí na předcházejícím stavu logického obvodu, což znamená, že kombinační

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

Návrh frekvenčního filtru

Návrh frekvenčního filtru Návrh frekvenčního filtru Vypracoval: Martin Dlouhý, Petr Salajka 25. 9 2010 1 1 Zadání 1. Navrhněte co nejjednodušší přenosovou funkci frekvenčního pásmového filtru Dolní propusti typu Bessel, která bude

Více

Nastavení parametrů PID a PSD regulátorů

Nastavení parametrů PID a PSD regulátorů Fakulta elektrotechniky a informatiky Univerzita Pardubice Nastavení parametrů PID a PSD regulátorů Semestrální práce z předmětu Teorie řídicích systémů Jméno: Jiří Paar Datum: 9. 1. 2010 Zadání Je dána

Více

Náhodné (statistické) chyby přímých měření

Náhodné (statistické) chyby přímých měření Náhodné (statistické) chyby přímých měření Hodnoty náhodných chyb se nedají stanovit předem, ale na základě počtu pravděpodobnosti lze zjistit, která z možných naměřených hodnot je více a která je méně

Více

- + C 2 A B V 1 V 2 - U cc

- + C 2 A B V 1 V 2 - U cc RIEDL 4.EB 10 1/6 1. ZADÁNÍ a) Změřte frekvenční charakteristiku operačního zesilovače v invertujícím zapojení pro růžné hodnoty zpětné vazby (1, 10, 100, 1000kΩ). Vstupní napětí volte tak, aby nedošlo

Více

SIGNÁLY A LINEÁRNÍ SYSTÉMY

SIGNÁLY A LINEÁRNÍ SYSTÉMY SIGNÁLY A LINEÁRNÍ SYSTÉMY prof. Ing. Jiří Holčík, CSc. holcik@iba.muni.cziba.muni.cz II. SIGNÁLY ZÁKLADNÍ POJMY SIGNÁL - DEFINICE SIGNÁL - DEFINICE Signál je jev fyzikální, chemické, biologické, ekonomické

Více

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Algoritmus pro hledání nejkratší cesty orientovaným grafem 1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval

Více

Jednofaktorová analýza rozptylu

Jednofaktorová analýza rozptylu I I.I Jednofaktorová analýza rozptylu Úvod Jednofaktorová analýza rozptylu (ANOVA) se využívá při porovnání několika středních hodnot. Často se využívá ve vědeckých a lékařských experimentech, při kterých

Více

Nízkofrekvenční (do 1 MHz) Vysokofrekvenční (stovky MHz až jednotky GHz) Generátory cm vln (až desítky GHz)

Nízkofrekvenční (do 1 MHz) Vysokofrekvenční (stovky MHz až jednotky GHz) Generátory cm vln (až desítky GHz) Provazník oscilatory.docx Oscilátory Oscilátory dělíme podle několika hledisek (uvedené třídění není zcela jednotné - bylo použito vžitých názvů, které vznikaly v různém období vývoje a za zcela odlišných

Více

5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}.

5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}. 5. Náhodná veličina Poznámka: Pro popis náhodného pokusu jsme zavedli pojem jevového pole S jako množiny všech možných výsledků a pravděpodobnost náhodných jevů P jako míru výskytů jednotlivých výsledků.

Více

(s výjimkou komparátoru v zapojení č. 5) se vyhněte saturaci výstupního napětí. Volte tedy

(s výjimkou komparátoru v zapojení č. 5) se vyhněte saturaci výstupního napětí. Volte tedy Operační zesilovač Úvod Operační zesilovač je elektronický obvod hojně využívaný téměř ve všech oblastech elektroniky. Jde o diferenciální zesilovač napětí s velkým ziskem. Jinak řečeno, operační zesilovač

Více

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Číselné vyjádření hodnoty. Kolik váží hrouda zlata? Čísla a logika Číselné vyjádření hodnoty Au Kolik váží hrouda zlata? Dekadické vážení Když přidám osmé závaží g, váha se převáží => závaží zase odeberu a začnu přidávat závaží x menší 7 závaží g 2 závaží

Více

Operační zesilovač (dále OZ)

Operační zesilovač (dále OZ) http://www.coptkm.cz/ Operační zesilovač (dále OZ) OZ má složité vnitřní zapojení a byl původně vyvinut pro analogové počítače, kde měl zpracovávat základní matematické operace. V současné době je jeho

Více

FVZ K13138-TACR-V004-G-TRIGGER_BOX

FVZ K13138-TACR-V004-G-TRIGGER_BOX TriggerBox Souhrn hlavních funkcí Synchronizace přes Ethernetový protokol IEEE 1588 v2 PTP Automatické určení možnosti, zda SyncCore zastává roli PTP master nebo PTP slave dle mechanizmů standardu PTP

Více

Návrh konstrukce odchovny 2. dil

Návrh konstrukce odchovny 2. dil 1 Portál pre odborné publikovanie ISSN 1338-0087 Návrh konstrukce odchovny 2. dil Pikner Michal Elektrotechnika 19.01.2011 V minulem dile jsme si popsali návrh konstrukce odchovny. senzamili jsme se s

Více

popsat princip činnosti základních zapojení čidel napětí a proudu samostatně změřit zadanou úlohu

popsat princip činnosti základních zapojení čidel napětí a proudu samostatně změřit zadanou úlohu 9. Čidla napětí a proudu Čas ke studiu: 15 minut Cíl Po prostudování tohoto odstavce budete umět popsat princip činnosti základních zapojení čidel napětí a proudu samostatně změřit zadanou úlohu Výklad

Více

Software pro vzdálenou laboratoř

Software pro vzdálenou laboratoř Software pro vzdálenou laboratoř Autor: Vladimír Hamada, Petr Sadovský Typ: Software Rok: 2012 Samostatnou část vzdálených laboratoří tvoří programové vybavené, které je oživuje HW část vzdáleného experimentu

Více

Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů )

Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů ) Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů ) Führer Ondřej, FUH002 1. AVR procesory obecně

Více

Diskrétní náhodná veličina. November 12, 2008

Diskrétní náhodná veličina. November 12, 2008 Diskrétní náhodná veličina November 12, 2008 (Náhodná veličina (náhodná proměnná)) Náhodná veličina (nebo též náhodná proměnná) je veličina X, jejíž hodnota je jednoznačně určena výsledkem náhodného pokusu.

Více

Testování prvočíselnosti

Testování prvočíselnosti Dokumentace zápočtového programu z Programování II (NPRG031) Testování prvočíselnosti David Pěgřímek http://davpe.net Úvodem V různých oborech (například v kryptografii) je potřeba zjistit, zda je číslo

Více

Mikropočítačová vstupně/výstupní jednotka pro řízení tepelných modelů. Zdeněk Oborný

Mikropočítačová vstupně/výstupní jednotka pro řízení tepelných modelů. Zdeněk Oborný Mikropočítačová vstupně/výstupní jednotka pro řízení tepelných modelů Zdeněk Oborný Freescale 2013 1. Obecné vlastnosti Cílem bylo vytvořit zařízení, které by sloužilo jako modernizovaná náhrada stávající

Více

Ṁikroprocesory v přístroj. technice. Ohm-metr ... Petr Česák

Ṁikroprocesory v přístroj. technice. Ohm-metr ... Petr Česák Ṁikroprocesory v přístroj. technice Ohm-metr.......... Petr Česák Letní semestr 2001/2002 . Ohm-metr 2. úloha ZADÁNÍ Sestavte mikroprocesorem I8031 řízený přístroj pro měření odporu v rozsahu 0 až 40 kohm.

Více

Datové struktury 2: Rozptylovací tabulky

Datové struktury 2: Rozptylovací tabulky Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy

Více

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů Kapitola 1 Signály a systémy 1.1 Klasifikace signálů Signál představuje fyzikální vyjádření informace, obvykle ve formě okamžitých hodnot určité fyzikální veličiny, která je funkcí jedné nebo více nezávisle

Více

Na trh byl uveden v roce 1971 firmou Signetics. Uvádí se, že označení 555 je odvozeno od tří rezistorů s hodnotou 5 kω.

Na trh byl uveden v roce 1971 firmou Signetics. Uvádí se, že označení 555 je odvozeno od tří rezistorů s hodnotou 5 kω. Časovač 555 NE555 je integrovaný obvod používaný nejčastěji jako časovač nebo generátor různých pravoúhlých signálů. Na trh byl uveden v roce 1971 firmou Signetics. Uvádí se, že označení 555 je odvozeno

Více

11. Logické analyzátory. 12. Metodika měření s logickým analyzátorem

11. Logické analyzátory. 12. Metodika měření s logickým analyzátorem +P12 11. Logické analyzátory Základní srovnání logického analyzátoru a číslicového osciloskopu Logický analyzátor blokové schéma, princip funkce Časová analýza, glitch mód a transitional timing, chyba

Více

Typy a použití klopných obvodů

Typy a použití klopných obvodů Typy a použití klopných obvodů Klopné obvody s hodinovým vstupem mění svůj stav, pokud hodinový vstup má hodnotu =. Přidáním invertoru před hodinový vstup je lze upravit tak, že budou měnit svůj stav tehdy,

Více

SIGNÁLY A LINEÁRNÍ SYSTÉMY

SIGNÁLY A LINEÁRNÍ SYSTÉMY SIGNÁLY A LINEÁRNÍ SYSTÉMY prof. Ing. Jiří Holčík, CSc. holcik@iba.muni.cz II. SIGNÁLY ZÁKLADNÍ POJMY SIGNÁL - DEFINICE SIGNÁL - DEFINICE Signál je jev fyzikální, chemické, biologické, ekonomické či jiné

Více

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT Škola Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Název sady Téma Anotace Autor Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram CZ.1.07/1.5.00/34.0556

Více

Jana Vránová, 3. lékařská fakulta UK

Jana Vránová, 3. lékařská fakulta UK Jana Vránová, 3. lékařská fakulta UK Vznikají při zkoumání vztahů kvalitativních resp. diskrétních znaků Jedná se o analogii s korelační analýzou spojitých znaků Přitom předpokládáme, že každý prvek populace

Více

Logické funkce a obvody, zobrazení výstupů

Logické funkce a obvody, zobrazení výstupů Logické funkce a obvody, zobrazení výstupů Digitální obvody (na rozdíl od analogových) využívají jen dvě napěťové úrovně, vyjádřené stavy logické nuly a logické jedničky. Je na nich založeno hodně elektronických

Více

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:

Více

ELT1 - Přednáška č. 6

ELT1 - Přednáška č. 6 ELT1 - Přednáška č. 6 Elektrotechnická terminologie a odborné výrazy, měřicí jednotky a činitelé, které je ovlivňují. Rozdíl potenciálů, elektromotorická síla, napětí, el. napětí, proud, odpor, vodivost,

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

Vstupní signál protne zvolenou úroveň. Na základě získaných údajů se dá spočítat perioda signálu a kmitočet. Obrázek č.2

Vstupní signál protne zvolenou úroveň. Na základě získaných údajů se dá spočítat perioda signálu a kmitočet. Obrázek č.2 2. Vzorkovací metoda Určení kmitočtu z vzorkovaného průběhu. Tato metoda založena na pozorování vstupního signálu pomocí osciloskopu a nastavení určité úrovně, pro zjednodušování považujeme úroveň nastavenou

Více

Přerušovací systém s prioritním řetězem

Přerušovací systém s prioritním řetězem Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním

Více

Kombinatorická minimalizace

Kombinatorická minimalizace Kombinatorická minimalizace Cílem je nalézt globální minimum ve velké diskrétní množině, kde může být mnoho lokálních minim. Úloha obchodního cestujícího Cílem je najít nejkratší cestu, která spojuje všechny

Více

10. cvičení z PST. 5. prosince T = (n 1) S2 X. (n 1) s2 x σ 2 q χ 2 (n 1) (1 α 2 ). q χ 2 (n 1) 2. 2 x. (n 1) s. x = 1 6. x i = 457.

10. cvičení z PST. 5. prosince T = (n 1) S2 X. (n 1) s2 x σ 2 q χ 2 (n 1) (1 α 2 ). q χ 2 (n 1) 2. 2 x. (n 1) s. x = 1 6. x i = 457. 0 cvičení z PST 5 prosince 208 0 (intervalový odhad pro rozptyl) Soubor (70, 84, 89, 70, 74, 70) je náhodným výběrem z normálního rozdělení N(µ, σ 2 ) Určete oboustranný symetrický 95% interval spolehlivosti

Více

STATISTICKÉ CHARAKTERISTIKY

STATISTICKÉ CHARAKTERISTIKY STATISTICKÉ CHARAKTERISTIKY 1 Vytvořeno s podporou projektu Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na discipliny společného základu (reg. č. CZ.1.07/2.2.00/28.0021)

Více

Testy dobré shody Máme dvě veličiny, u kterých bychom chtěli prokázat závislost, TESTY DOBRÉ SHODY (angl. goodness-of-fit tests)

Testy dobré shody Máme dvě veličiny, u kterých bychom chtěli prokázat závislost, TESTY DOBRÉ SHODY (angl. goodness-of-fit tests) Testy dobré shody Máme dvě veličiny, u kterých bychom chtěli prokázat závislost, např. hmotnost a pohlaví narozených dětí. Běžný statistický postup pro ověření závislosti dvou veličin je zamítnutí jejich

Více

Základy popisné statistiky

Základy popisné statistiky Základy popisné statistiky Michal Fusek Ústav matematiky FEKT VUT, fusekmi@feec.vutbr.cz 8. přednáška z ESMAT Michal Fusek (fusekmi@feec.vutbr.cz) 1 / 26 Obsah 1 Základy statistického zpracování dat 2

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně

Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně Lineární a adaptivní zpracování dat 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně Daniel Schwarz Investice do rozvoje vzdělávání Osnova Opakování: signály a systémy Vlastnosti systémů Systémy

Více

Číslicové filtry. Honza Černocký, ÚPGM

Číslicové filtry. Honza Černocký, ÚPGM Číslicové filtry Honza Černocký, ÚPGM Aliasy Digitální filtry Diskrétní systémy Systémy s diskrétním časem atd. 2 Na co? Úprava signálů Zdůraznění Potlačení Detekce 3 Zdůraznění basy 4 Zdůraznění výšky

Více

Analýza dat na PC I.

Analýza dat na PC I. CENTRUM BIOSTATISTIKY A ANALÝZ Lékařská a Přírodovědecká fakulta, Masarykova univerzita Analýza dat na PC I. Popisná analýza v programu Statistica IBA výuka Základní popisná statistika Popisná statistika

Více

II. Úlohy na vložené cykly a podprogramy

II. Úlohy na vložené cykly a podprogramy II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY. MRBT Robotika

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY. MRBT Robotika VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘÍCÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION

Více

1 Analytické metody durace a konvexita aktiva (dluhopisu) $)*

1 Analytické metody durace a konvexita aktiva (dluhopisu) $)* Modely analýzy a syntézy plánů MAF/KIV) Přednáška 10 itlivostní analýza 1 Analytické metody durace a konvexita aktiva dluhopisu) Budeme uvažovat následující tvar cenové rovnice =, 1) kde jsou současná

Více

Novar 314RS. Regulátor jalového výkonu. Vlastnosti. pro kompenzaci rychlých změn účiníku (rozběh motorů atd.)

Novar 314RS. Regulátor jalového výkonu. Vlastnosti. pro kompenzaci rychlých změn účiníku (rozběh motorů atd.) Novar 314RS Regulátor jalového výkonu Vlastnosti pro kompenzaci rychlých změn účiníku (rozběh motorů atd.) 8 reléových stupňů pro standardní kompenzaci + alarmové relé 6 tranzistorových výstupů pro připojení

Více

EXPERIMENTÁLNÍ MECHANIKA 2 Přednáška 5 - Chyby a nejistoty měření. Jan Krystek

EXPERIMENTÁLNÍ MECHANIKA 2 Přednáška 5 - Chyby a nejistoty měření. Jan Krystek EXPERIMENTÁLNÍ MECHANIKA 2 Přednáška 5 - Chyby a nejistoty měření Jan Krystek 9. května 2019 CHYBY A NEJISTOTY MĚŘENÍ Každé měření je zatíženo určitou nepřesností způsobenou nejrůznějšími negativními vlivy,

Více

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Semestrální práce z předmětu Speciální číslicové systémy X31SCS Semestrální práce z předmětu Speciální číslicové systémy X31SCS Katedra obvodů DSP16411 ZPRACOVAL: Roman Holubec Školní rok: 2006/2007 Úvod DSP16411 patří do rodiny DSP16411 rozšiřuje DSP16410 o vyšší

Více

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná

Více

Náhodná veličina a rozdělení pravděpodobnosti

Náhodná veličina a rozdělení pravděpodobnosti 3.2 Náhodná veličina a rozdělení pravděpodobnosti Bůh hraje se světem hru v kostky. Jsou to ale falešné kostky. Naším hlavním úkolem je zjistit, podle jakých pravidel byly označeny, a pak toho využít pro

Více

[1] samoopravné kódy: terminologie, princip

[1] samoopravné kódy: terminologie, princip [1] Úvod do kódování samoopravné kódy: terminologie, princip blokové lineární kódy Hammingův kód Samoopravné kódy, k čemu to je [2] Data jsou uložena (nebo posílána do linky) kodérem podle určitého pravidla

Více

Projekt Operačního programu Praha Adaptabilita. Mezinárodní spolupráce při rozvoji magisterského a doktorského programu na ČVUT-FEL v Praze

Projekt Operačního programu Praha Adaptabilita. Mezinárodní spolupráce při rozvoji magisterského a doktorského programu na ČVUT-FEL v Praze Projekt Operačního programu Praha Adaptabilita Mezinárodní spolupráce při rozvoji magisterského a doktorského programu na ČVUT-FEL v Praze číslo projektu: CZ.2.17/3.1.00/36036 Odborný výstup ze zahraniční

Více