Generování pseudonáhodných dat založené na použití LFSR

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

Download "Generování pseudonáhodných dat založené na použití LFSR"

Transkript

1 Masarykova univerzita Fakulta informatiky Generování pseudonáhodných dat založené na použití LFSR Bakalářská práce Ondřej Málek 2007

2 Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. V Brně

3 Rád bych poděkoval vedoucímu mé práce Mgr. Janu Krhovjákovi za odborné vedení, pomoc a trpělivost, bez čehož by tato práce nemohla vzniknout. Také bych rád poděkoval svým blízkým za psychickou podporu, kterou mi během tvorby práce poskytovali. 2

4 Shrnutí Tato práce se zabývá problematikou generování pseudonáhodných dat pomocí posuvných registrů s lineární zpětnou vazbou. Teoretická část se zabývá jak vlastnostmi LFSR a generátorů na nich založených, tak jejich praktickým použitím. V další části jsou rozebrány kryptoanalytické útoky a techniky pro testování těchto generátorů (se zaměřením na generátory vhodné pro praktické využití). Praktickou částí této práce je implementace vybraných generátorů (v jazyce C i Java) pro budoucí testování jejich rychlostí a vlastností. Klíčová slova Alternating-step generator, Bit-Search generator, Geffeho generátor, GLFSR, LFSR, m-lfsr, PRBG, pseudonáhodná data, Self-shrinking generator. 3

5 Obsah 1 Úvod Generátory pseudonáhodných dat Generátory pseudonáhodných dat LFSR Maximální LFSR Vlastnosti výstupních sekvencí LFSR v praxi Nekryptologické využití LFSR Kryptologické využití LFSR Bezpečnost LFSR PRBG Všeobecné testy Specifické útoky Útoky odhadem Korelační útoky Algebraické útoky BDD útoky Time-memory-data tradeoff Popis vybraných PRBG LFSR Geffeho generátor Alternating step generator Self-shrinking generator Bit-Search generator GLFSR Implementace vybraných PRBG Implementace Výkonnostní test Závěr Reference Příloha A Charakteristické polynomy

6 1. Úvod Dnešní svět je stále více a více závislý na moderních informačních technologiích. Počítače, mobilní telefony, komunikační sítě a množství dalších aplikací hrají stále větší roli v každodenním životě. Rozšiřující se využívání a větší důležitost těchto systémů přináší neustále nové a náročnější požadavky na jejich rychlost, spolehlivost a bezpečnost. Požadavky na bezpečnost nových aplikací a komunikace spolu s nárůstem dostupné výpočetní kapacity vedou k rozsáhlému výzkumu na poli kryptologie. Značná část v současnosti používaných nebo zkoumaných metod využívá v menší či větší míře (pseudo)náhodná data (bity, čísla, sekvence). Z typických aplikací uveďme například generování kryptografických klíčů (nezbytných jak pro symetrické, tak i asymetrické kryptosystémy), náhodných doplňujících hodnot či inicializačních vektorů. Generování skutečně náhodných dat, které se provádí na základě různých fyzikálních dějů a jevů, je v praxi často nahrazováno generováním pseudonáhodných dat. To je většinou prováděno pomocí softwarových nebo hardwarových mechanismů na základě vstupu malého množství skutečně náhodných dat a je řádově rychlejší. Generátory pseudonáhodných dat vhodné pro kryptografické účely v ideálním případě generují výstup nerozlišitelný od skutečně náhodných dat, který však vzniká deterministicky dle příslušného algoritmu. Tato práce se zabývá využitím posuvných registrů s lineární zpětnou vazbou (LFSR Linear Feedback Shift Register), a to hlavně jako generátorů pseudonáhodných dat pro kryptografické účely. LFSR jsou používány z několika důvodů. Díky své jednoduchosti jsou velmi vhodné pro implementaci v hardwaru i softwaru. Jejich výstup je za určitých podmínek velmi dobře statisticky rozložený, výstupní sekvence se opakují ve velkých cyklech, a v neposlední řadě jsou dobře popsatelné pomocí matematických metod, což pomáhá při jejich návrhu i testování. V této práci se nejprve, ve druhé kapitole, seznámíme s pojmem LFSR a s vlastnostmi jeho výstupních sekvencí. V třetí kapitole je rozbor využití generátorů založených na LFSR a to jak v kryptologické, tak nekryptologické rovině. Ve čtvrté kapitole je přehled současných útoků a testů, kterými jsou generátory pseudonáhodných čísel vystavovány. V páté kapitole je potom popsáno několik generátorů založených na LFSR spolu s jejich vlastnostmi. Tyto generátory jsou v praktické části implementovány v jazycích Java a C. Popis implementací a přehled výsledků testů rychlosti tvoří kapitolu šestou. 5

7 2. Generátory pseudonáhodných dat V této kapitole si zavedeme pojmy generátoru pseudonáhodných bitů a posuvného registru s lineární zpětnou vazbou (LFSR), jako jedné z možností vytváření těchto generátorů. Budeme vycházet hlavně z [1, 2]. 2.1 Generátory pseudonáhodných dat Moderní kryptografické mechanismy jsou často závislé na nutnosti existence náhodných dat. Vzhledem k složitosti a poměrně vysoké časové náročnosti generování skutečně náhodných dat (zpravidla díky různým fyzikálním dějům či jevům) se často využívají generátory pseudonáhodných bitů. Definice 1: Generátor pseudonáhodných bitů (PRBG pseudorandom bit generator) je deterministický algoritmus, který na základě semínka (z angl. seed) skládajícího se z n skutečně náhodných bitů vytváří výstup o délce k > n. Tento výstup je náhodný ve smyslu statistické pravděpodobnosti rozložení jednotlivých bitových hodnot. Jednou ze základních vlastností PRBG je determinismus výstupu, tzn. že daný PRBG dává při stejném semínku a stejném množství výpočetních cyklů vždy identickou výstupní sekvenci. Toho lze s úspěchem využít pro zmenšení objemu předávaných dat, kdy stačí předat pouze semínko a samotnou posloupnost z něj vygenerovat. Na druhou stranu musí být délka semínka dostatečně velká, aby se co nejvíce ztížilo prohledávání všech stavů, ve kterých by daný PRBG mohl být inicializován. Výstup PRBG, má-li být použit pro kryptologické účely, musí být nerozlišitelný od skutečně náhodné sekvence bitů a nesmí být pro útočníka výpočetně jednoduché z dané výstupní sekvence odvodit její pokračování (tzn. nepředvídatelnost). 2.2 LFSR Jednou z nejjednodušších možností implementace PRBG jsou posuvné registry s lineární zpětnou vazbou. Definice 2: Posuvný registr s lineární zpětnou vazbou (LFSR linear feedback shift register) délky L je konstrukce obsahující L vnitřních registrů R (označených R 0 až R L-1 ), časovací signál a charakteristický mnohočlen. Za každý takt časového signálu jsou provedeny následující operace: a) Obsah registru R i se přesune do registru R i-1 a obsah registru R 0 se předá na výstup. 6

8 b) Je vypočítán obsah pro registr R L-1, který je nazýván registrem zpětné vazby. Obr. 1: Schématické zobrazení LFSR. Na Obr. 1 je zachyceno schéma LFSR o délce L. Ve spodní řadě jsou registry, přičemž registr R 0 je výstupním a R L-1 je registrem zpětné vazby. Buňky C 1 -C L jsou koeficienty charakteristického mnohočlenu. Horní řada znázorňuje logickou funkci. Znak označuje funkci XOR. Každý z vnitřních registrů je schopný uchovávat jednu jednotku informace a má pouze jeden možný vstup a výstup. Registry jsou číslované od 0 do L-1 a jejich obsah zapsaný jako vektor (S 0, S 1,..., S L-1 ) je označován jako vnitřní stav (inner state) LFSR. Jednotka informace použitá v LFSR je zpravidla jeden bit (0, 1), ale používají se i větší hodnoty. Nejčastěji je to 2 n bitů, kde n je voleno tak, aby výsledek odpovídal velikosti slova zpracovatelného v dané architektuře v jednom taktu. Pro takový LFSR se používá označení obecný LFSR (generalized linear feedback shift register, GLSFR). V dalším textu budeme, až na výslovné výjimky, pracovat s LFSR využívajícím jako jednotku informace jeden bit. Další z komponent LFSR je charakteristický mnohočlen (characteristic polynomial). Koeficienty tohoto mnohočlenu jsou udávány ve tvaru zbytku po dělení dvěma, tedy 1 pro liché a 0 pro sudé koeficienty. Zapisován je buď ve tvaru: C(x) = 1+ c 1 x + c 2 x c L x L, nebo ve tvaru vektoru jako (c 1, c 2,..., c L ). Obsahy registrů, k nimž příslušný koeficient charakteristického mnohočlenu má hodnotu 1, jsou vstupem do logické funkce. Tou je v návrzích LFSR zpravidla funkce XOR (exclusive or ), ale setkáváme se také s funkcí XNOR (exclusive nor). Výstup této funkce je při každém taktu časového signálu zapsán do registru zpětné vazby. Semínko (seed), neboli výchozí stav (inicializační vektor) LFSR, je stav ve kterém se LFSR nachází v okamžiku spuštění taktovacího signálu. S tímto souvisí také zakázaný stav LFSR, což je pro logickou funkci XOR stav (0, 0,..., 0) a pro funkci XNOR (1, 1,..., 1). V zakázaném stavu se LFSR zacyklí nezávisle na charakteristické funkci a není schopen změnit svůj stav na jiný. Výchozí stav LFSR nesmí být zakázaný vzhledem k použité funkci. 2.3 Maximální LFSR LFSR se může obecně nacházet v 2 L vnitřních stavech, z toho jeden stav je zakázaný. Pro praktické využití je výhodné, aby bylo využito všech 2 L-1 vnitřní stavů. LFSR, který tolik stavů využívá, se nazývá maximální nebo také m-lfsr. 7

9 Definice 3: Maximálním LFSR nazýváme takový LFSR, jehož vnitřní stav (S 0, S 1,..., S L-1 ) se opakuje v periodě 2 L-1. Výstupní sekvence maximálního LFSR se nazývá m-sekvence a má délku L-1. Pro vytvoření maximálního LFSR je nutné splnit několik podmínek: a) Charakteristický mnohočlen musí být stupně L. b) Charakteristický mnohočlen musí být primitivní. c) LFSR nesmí být spuštěn v zakázaném stavu vzhledem k použité logické funkci. Primitivní mnohočlen je speciálním případem ireducibilního mnohočlenu. Mnohočlen stupně m je ireducibilní, pokud neexistuje nenulový mnohočlen stupně menšího než m, který ho dělí. Ireducibilní mnohočlen f(x) stupně m je primitivní právě tehdy, když dělí x k -1 a nejmenší kladné číslo k = p m -1, kde p je velikost jednotky informace a v této práci bude vždy 2. Vlastnost primitivnosti pro mnohočlen je algoritmicky dokazatelná, ale není znám algoritmus, který by mnohočleny s touto vlastností generoval jinak než výběrem z vhodných kandidátů. Z tohoto důvodu se pro výběr charakteristického mnohočlenu pro maximální LFSR využívají tabulky vhodných primitivních mnohočlenů. 2.4 Vlastnosti výstupních sekvencí Pro praktické využití v kryptologických aplikacích musí výstupní sekvence PRBG splňovat určitá kritéria. Ta jsou zavedena jako nutné, nikoli však dostačující podmínky pro použitelnost daného PRBG v praxi. Zde si zavedeme základní požadavky pro PRBG založené na LFSR. První z důležitých vlastností výstupní sekvence je velká periodicita výstupu. Pokud má výstup malou periodu, tzn. výstupní sekvence se opakuje v příliš krátkých intervalech, pak je generátor náchylný k útoku hrubou silou. Z tohoto důvodu se pro LFSR generátory používají zpravidla pouze maximální LFSR, které poskytují největší periodicitu výstupu. Výstupní sekvence musí dále splňovat jistá statistická kritéria. Pro m-sekvence platí, že vyhovují Golombovým požadavkům náhodnosti [1]. Ty naplňuje binární periodická sekvence s periodou N právě tehdy, když splňuje následující požadavky: a) V každém výstupním cyklu je počet jedniček rozdílný od počtu nul maximálně o jedna. b) Pokud označíme jedničkami ohraničenou sekvenci nul (1,0...0,1) jako mezeru (gap), nulami ohraničenou sekvenci jedniček (0,1...1,0) jako blok (block) a pro oba typy zavedeme označení běh (run), pak v každém výstupním cyklu má polovina běhů délku 1, čtvrtina délku 2, osmina délku /2 i má délku i. Dále pro běhy stejné délky platí, že počet mezer je stejný jako počet bloků. N 1 c) Autokorelační funkce C t =1/ N 2s i 1. 2s i 1 1 má pouze dvě hodnoty i=0 v závislosti na velikosti posunu t. Pokud je t rovno nule, pak funkce vrací hodnotu N. Pro ostatní t (tedy1 t N-1) platí, že výsledek funkce je K pro všechna taková t. 8

10 Splnění Golombových požadavků náhodnosti je pouze základní nutný požadavek ohledně statistického rozložení výstupu, jaký je na PRBG založené na LFSR kladen. Požadavek velké periodicity výstupní sekvence i Golombovy požadavky náhodnosti jsou u maximálního LFSR dostatečné délky splněny díky samotné konstrukci. V případě použití pouze jedné jednotky LFSR bez dalších úprav se ale problémem stává velká linearita výstupu, tzn. skutečnost, že se informace o vnitřním stavu LFSR dostávají do výstupu. Máme-li výstupní sekvenci o délce k 2. L, kde L je délka LFSR, který ji generuje, pak lze pomocí algoritmu Berlekamp-Massey (například v [3]) vypočítat délku a charakteristický mnohočlen generujícího LFSR. Pokud takto zkonstruovaný LFSR inicializujeme na sekvenci délky L, pak můžeme vygenerovat celý zbytek sekvence původního generátoru. Pro popis této vlastnosti se zavádí pojem lineární složitosti: Definice 4: Lineární složitost (linear complexity) sekvence, značená L(s), je velikost nejmenšího možného LFSR, který generuje danou sekvenci. Výjimkou je sekvence respektive sekvence, která není generovatelná žádným LFSR, tyto výjimky mají lineární složitost 0 respektive ). Pro výstupní sekvenci je důležité, aby měla co největší lineární složitost. Vzhledem k tomu, že lineární složitost maximálního LFSR je pouze L, je nutno do návrhu PRBG nelinearitu vkládat pomocí dalších mechanismů, kterými jsou: a) Využití nelineární funkce k sloučení výstupů několika různých LFSR. b) Využití nelineárního filtrovaní výstupu jednoho LFSR. c) Použití jednoho LFSR k časování jiného. Tyto přístupy k porušení linearity výstupní sekvence jsou nejčastějšími používanými možnostmi, často se ale využívají různé kombinace těchto přístupů. 9

11 3. LFSR v praxi LFSR, hlavně jako generátor pseudonáhodných dat, je používán ve velkém množství různých teoretických i praktických aplikací. Dále si zde blíže popíšeme jeho kryptologické i nekryptologické použití. 3.1 Nekryptologické využití LFSR se uplatňují jako alternativa k tradičním binárním čítačům, tedy zařízením, která zaznamenávají počet nějakých dějů. Důvod pro toto uplatnění je hlavně v nižší režii a vyšší rychlosti LFSR čítačů, a to zvláště při větších hodnotách [4]. Nevýhody oproti binárním čítačům jsou v neintuitivním zobrazení výsledků a absenci jednoduchého dělení dvěma. Obě jsou ale lehce kompenzovatelné, ať již na úrovni hardwaru nebo softwaru. Při použití LFSR jako čítačů je produktem nikoliv normální výstup (tedy jeden výstupní bit), ale vnitřní stav v okamžiku daném časovacím signálem. Velkou oblastí pro uplatnění LFSR jsou vestavěné samočinné testy v integrovaných obvodech, přepisovatelných pamětech a v hardwaru obecně. Pro zajištění kontroly spolehlivosti a funkčnosti je nutno tyto systémy často a důkladně testovat. Za tímto účelem se do těchto zařízení implementují vestavěné samočinné testy [5]. LFSR jsou pro tyto aplikace vhodné hlavně pro schopnost generovat z malého semínka velké množství dat. Samotné jsou ale nedostačující k zachycení všech možných chyb. Proto je využíváno mnoho různých technik pro modifikaci výstupu LFSR například úplná nebo částečná reinicializace, při které je možné měnit počáteční stav. Jinou možností je využití LFSR s více mnohočleny, kde je možno programovat vlastní mnohočlen zpětné vazby. V praxi se využívají i kombinace těchto přístupů. Další oblastí využití LFSR jako PRBG jsou telekomunikace. Například v technologii GPS (Globální polohovací systém Global Positioning System) [6] jsou dlouhé pseudonáhodné sekvence generované LFSR technologií vysílány ze satelitních stanic s tím, že každý satelit generuje jinou sekvenci na základě vlastního unikátního semínka. Následně si pozemní přijímač vypočítá stejnou sekvenci ze známých semínek a zjistí, o kolik a jak jsou vůči sobě posunuté sekvence z různých satelitů. Podle rozdílů je následně možné vypočítat pozici přijímače. V GPS jsou výstupní sekvence LFSR využity nejen pro výpočet pozice, ale na stejném principu i pro synchronizační komunikaci mezi stanicemi. Telekomunikační technikou, při které jsou pseudonáhodné sekvence také využívány, je přenos v rozprostřeném spektru (spread spectrum) [7,8,9]. Je to původně vojenská, dnes již však obecně používaná, technologie pro rozprostření signálů do většího množství frekvencí. Pseudonáhodné sekvence jsou zde užity v přístupu označeném jako přímo rozprostřené spektrum (Direct Sequence Spread Spectrum). V této technologii je kousek (chip) výstupu LFSR použit do funkce XOR s jedním bitem přenášených dat a vysílán je pak výstup této funkce. Takto modulovaný signál je rozprostřen do mnohem širšího pásma než je nutné, a díky tomu je podstatně odolnější proti rušení. Zároveň lze zužitkovat jednu frekvenci pro více přenosů. Z toho těží například CDMA (code division multiple acces) technologie používaná v mobilních telefonech nebo při přenosu dat ze satelitů GPS. Zde se pro rozprostření dat do širšího pásma používá tzv. Goldův kód (Gold code) [11], kdy je výstup dvou maximálních LFSR vstupem do součtové nebo XOR funkce. Generuje se 2 n-1 posloupností postupem, kdy se mění semínko jednoho z m-lfsr. Množina takto získaných kódů má dobré vlastnosti pro jejich vzájemné odlišení, a je tedy možné na jedné frekvenci bezpečně přenášet větší množství signálů. 10

12 LFSR se také využívá v samoopravných kódech, přesněji v Reed-Solomonově kódu (Reed- Solomon Code) [11]. Ten patří do kategorie BCH (Bose-Chadhuri-Hocquenghem) kódů, které přidávají do dat tzv. redundantní informace. Ty jsou v případě chyby využity pro vytvoření původních dat a pro jejich generování se využívá LFSR konstrukce. Reed-solomonův kód lze využít například pro ukládání dat na CD a DVD nebo pro zajištění integrity dat při jejich přenosu. Při přenosu dat se také používá pseudonáhodných sekvencí generovaných LFSR jako scrambleru pro randomizaci datového proudu [10]. Tato technika je využívána kvůli dlouhým sekvencím nul a jedniček například pro přenos digitálního (např. televizního) signálu. 3.2 Kryptologické využití LFSR je v kryptologii nejčastěji využíván v proudových šifrách pro generování pseudonáhodných dat pro proud klíčů. Následující definice vycházejí z [1, 2]. Definice 5: Proudovou šifrou označujeme takovou šifru, která kóduje vždy pouze jeden znak (v digitální podobě tedy zpravidla jeden bit) otevřeného textu v jeden okamžik a využívá k tomu transformační funkci, která se v čase mění. Proudové šifry jsou postaveny na principu Vernamovy šifry. Ta je definována jako: c i = m i k i pro i = 1, , kde m 1, m 2, m 3... jsou znaky z otevřeného textu, k 1, k 2, k 3... jsou jsou znaky z proudu klíčů (tedy jednotlivé klíče) a c 1, c 2, c 3 jsou znaky zašifrovaného textu. Pokud je proud klíčů generován náhodně a nezávisle na otevřeném textu a jeho délka je stejná nebo větší než délka otevřeného textu, pak se tato šifra označuje jako jednorázová tabulková šifra (one-time pad). Ta je při jednorázovém použití daného klíče bezpečná. Zpráva takto zašifrovaná je bez správného klíče nerozluštitelná. V praxi je ale tato šifra těžko použitelná kvůli nutnosti využívat klíč o stejné nebo větší velikosti než jakou má otevřený text a nezbytnosti doručit ho bezpečně druhé straně. Pro praktické využití se tedy klíč, respektive proud klíčů, často generuje pomocí generátorů pseudonáhodných dat. Cílem je generovat z malého semínka pseudonáhodná data splňující určitá statistická kritéria (viz kap. 2.4). K tomu se pak často využívají PRBG založené na LFSR. Mezi nejrozšířenější patří šifry A5/1 a její slabší verze A5/2. Tyto šifry jsou použity pro kódování hovorů vedených z mobilních telefonů na sítích GSM (Global System for Mobile Communications). Šifry A5/1 a A5/2 využívají ke generování proudu klíčů tří respektive čtyř vzájemně se časujících maximálních LFSR. Ani jedna z těchto šifer není příliš silná a byla předvedena řada útoků [2, 13, 14]. V současné době se končí s používání slabší verze A5/2 a postupem času by mělo dojít k přechodu na blokovou šifru A5/3, která ale již LFSR nevyužívá. Velmi rozšířenou je také proudová šifra E0 [2, 13, 15] využívaná v bezdrátové síti Bluetooth pro šifrování přenášených dat. Základem E0 jsou čtyři nezávislé m-lfsr propojené s konečným automatem nazývaným sumační kombinátor (summation combiner) o 16 vnitřních stavech. Na tuto šifru bylo také již podniknuto několik útoků [2, 13, 16], ale žádný dosud neohrozil bezpečnost jejího praktického využití. LFSR je využíváno i v technologii HDCP [15] (High-bandwidth Digital-Content Protection) vyvinutou firmou Intel. Ta má za účel kontrolovat digitální video a audio přenášené po DVI nebo HDMI konektorech a využívá k tomu šifrování vzájemné komunikace stejnojmennou proudovou šifrou, jejíž základ tvoří čtyři LFSR a kombinační funkce. 11

13 Další proudová šifra, tentokráte založená na dvou LFSR a kombinační funkci vytvářející z jejích výstupů proud klíčů, je součástí systému CSS (Content Scrambling System), tedy systému pro ochranu obsahu DVD před nelegálním kopírováním. Ačkoliv oficiální standardy CSS nejsou uveřejněny, jeho popis lze nalézt v množství publikací [17]. LFSR je i v celé řadě dalších šifer jako jsou SOBER-t16 a SOBER-t32, shrinking generator, self-shrinking generator nebo SNOW [14]. Několik šifer založených na LFSR je také zastoupeno v projektu estream (ECRYPT Stream Cipher Project). Jsou to například Grain [20] sestávající z dvou LFSR a nelineární filtrovací funkce, která je vhodná pro hardware využití, nebo na software orientovaná šifra Sosemanuk [21] kombinující LFSR s konečným automatem. Existuje samozřejmě více různých PRBG založených na LFSR. Jedním z nich je Editing generator [22], který kombinuje dva ternární (tedy pracující nad množinou hodnot 0, 1, 2) LFSR. Dalším je BSG (The Bit-Search Generator) [24] využívající jednoduchý konečný automat vyhledávající ve výstupní sekvenci LFSR stejné bity jako rozhodovací člen pro generování pseudonáhodných dat. Mimo tyto aplikace je LFSR použito například v návrhu některých hašovacích funkcí pro autentizaci zpráv [19] nebo jako čítače v některých kryptografických a kryptoanalytických aplikacích [25]. Poslední oblastí kryptologického využití LFSR je zpracování skutečně náhodných dat [23]. Tento postup je označován jako digital postprocessing. Pro hardwarové generátory platí, že mohou podléhat ovlivňování a jejich výstup nemusí být statisticky náhodný. Z tohoto důvodu se na výstup generátoru náhodných čísel může implementovat PRBG. Do něj je jako semínko přiváděna náhodná sekvence z hardwarového generátoru. Výsledný výstup je pak tedy náhodný z hlediska nepředvídatelnosti (díky skutečně náhodnému semínku) i statistických vlastností (záleží samozřejmě na statistických vlastnostech daného PRBG). 12

14 4. Bezpečnost LFSR PRBG Bezpečnost je jedním z nejdůležitějších požadavků kladených na jakýkoliv PRBG určený pro kryptografické účely. Proto je nutné jejich návrhy pečlivě analyzovat a testovat. Důležitým poznatkem pro testování je však fakt, že bezpečnost PRBG lze takto pouze vyvrátit, nikoliv potvrdit. V této části je také pojmů útok a test používáno tak, že jsou navzájem zaměnitelné, jedná se o stejnou akci s různým cílem. Prvním krokem pro zajištění jejich bezpečnosti je testování PRBG proti již známým všeobecně použitelným útokům. Zde není vyžadována znalost návrhu daného PRBG testují se pouze statistické vlastnosti výstupních sekvencí. Pokud je generátor úspěšný, následuje návrh specifických útoků využívajících samotné konstrukce daného PRBG. V této kapitole budou představeny některé ze základních principů využívaných pro specifické testy. 4.1 Všeobecné testy Tato část vychází z teoretických informací uvedených v [1,2], další informace o představených testech a jejich použití jsou v [26]. Pro PRBG založené na LFSR by měly minimálně platit požadavky na výstupní sekvence uvedené v kapitole 2.4 tedy hlavně Golombovy požadavky náhodnosti, a co největší lineární složitost výstupní sekvence. Všeobecné testy PRBG jsou zpravidla založeny na statistickém testování výstupních sekvencí. To vychází ze stanovení dvou hypotéz, kdy H 0 je hypotéza, že testovaná sekvence je náhodná, a hypotéza H 1 značí opak, výstupní sekvence není náhodná tzn. je generována použitím nějakého generátoru (pseudo)náhodných čísel. Kvůli možnosti rozhodnout, která z hypotéz platí, je nutné, aby se statistické rozložení náhodné a nenáhodné sekvence lišily. Rozdíl mezi rozložením náhodné a nenáhodné sekvence nazýváme statistická vzdálenost a pro pseudonáhodné generátory by měla být co nejmenší. Výsledkem testu je pak rozhodnutí, zda testovaná sekvence vyhovuje hypotéze H 0 nebo H 1. Jádrem testu je rozhodovací pravidlo testová statistika (test statistic). Ta je vypočítána a výsledné rozložení je porovnáváno s hodnotou, jaké by měla daná statistika dosahovat pro ideálně náhodnou sekvenci. Tyto ideální hodnoty jsou předem známy. Součástí testu je také kritická hodnota (critical value), která udává možnost odchylky od ideálních hodnot. Pokud výsledek testu kritickou hodnotu přesahuje, pak je jako pravdivá přijata hypotéza H 1. Při takovémto rozhodování se mohou vyskytnout dva druhy chyb. První, označovaná termínem chyba I. druhu, nastává tehdy, když je sekvence náhodná a je přijata hypotéza H 1. Pravděpodobnost výskytu této chyby se nazývá hladina významnosti (significance level), je označována symbolem α a zpravidla se pro daný test určuje předem. Druhou možností, tedy chybou II. druhu, se označuje situace, kdy je jako skutečně náhodná zamítnuta, tzn. je přijata hypotéza H 0. Tato chyba má pravděpodobnost výskytu označovanou písmenem β. Při daném rozsahu výběrového souboru pro tyto pravděpodobnosti platí, že čím menší je α, tím větší je β a naopak. V ideálním stavu by samozřejmě měly být tyto dvě hodnoty co nejmenší. 13

15 Zde je popis některých statistických testů, které by měl PRBG podstoupit, kdy uvedené testy (případně v jistých modifikacích) odpovídají Golombovým požadavkům náhodnosti (viz kap. 2.4). Výčet samozřejmě není úplný, ale pokrývá nejzákladnější testy. Poker test Tento test vychází z předpokladu, že pro m < s, kde s je délka testované sekvence, se v každém náhodně vybraném podřetězci vyskytují všechny navzájem se nepřekrývající bitové vzory stejně často. Speciálním případem poker testu je takzvaný monobit test (nebo frequency test), kdy je m = 1. Zde se testuje počet nul a jedniček v sekvenci, přičemž by v náhodné sekvenci měl být počet nul a jedniček přibližně stejný. Monobit test odpovídá prvnímu z Golombových požadavků náhodnosti a je tedy pro m-sekvence jednoho LFSR splněn triviálně. Dalším případem poker testu je tzv. serial test (také two-bits test), kdy se počítají pouze výskyty možných dvojic znaků, tedy 00, 01, 10 a 11. Odlišnost od poker testu s m = 2 je v počítání, které zahrnuje překrývající se vzory. Serial test se také používá pro delší překrývající se vzory. Runs test Tímto testem je zjišťováno, zda je rozložení běhů (sekvence jedniček, respektive nul ohraničené z obou stran nulami respektive jedničkami) v sekvenci pravidelné, tedy zda odpovídá druhému Golombovu požadavku náhodnosti. Autocorrelation test Zde je zjišťováno, o kolik se liší sekvence od vlastní posunuté verze. To se zjišťuje na základě Hammingovy vzdálenosti mezi původní a posunutou sekvencí. Generátory, které úspěšně projdou autocorrelation test, splňují třetí Golombův požadavek náhodnosti. 4.2 Specifické útoky Ačkoliv specifické útoky jsou založeny na vlastním návrhu daného LFSR, existuje množství základních přístupů k testování. Ty, ač jsou vlastně všeobecným návodem na testování PRBG, jsou zde uvedeny jako specifické útoky, neboť zpravidla nejsou využitelné u všech možných návrhů, a také je nutno je před použitím na daném PRBG uzpůsobit. Tato část vychází z materiálů publikovaných v [2,14] Útoky jsou porovnávány s útokem hrubou silou. Ten pro LFSR PRBG odpovídá prohledávání všech možných hodnot výchozích stavů a vygenerování odpovídají výstupní sekvence, která se následně porovnává s původní. Úspěchem se v případě specifických útoků rozumí útok s časovou složitostí menší, než je potřebná pro plný útok hrubou silou Útoky odhadem Útoky odhadem jsou založené na zjednodušení útoku hrubou silou tak, aby nebylo nutné hádat hodnoty všech možných stavů všech LFSR v generátoru. Útok Guess and verify V případě tohoto útoku útočník odhaduje část vstupní sekvence a pokouší se vyloučit některé z těchto odhadů. Předpokladem tohoto útoku je možnost z částečného odhadu určit, zda je nebo není možné z něj generovat očekávanou výstupní sekvenci. Pokud je množství takto vyloučených částí dostatečně velké, je možné na zbytku provést útok hrubou silou a ověřovat proti testované sekvenci. 14

16 Útok Guess and determine Guess and determine je útok, který rozšiřuje předchozí Guess and verify. Znovu je zde nutné vyloučit některé z odhadů části vstupních sekvencí. V druhé fázi ale nejdříve útočník pokouší pomocí analýzy výstupu generátoru sestrojit další část vstupních dat a až poté provést útok hrubou silou na chybějící data. Linear consistency test Při tomto útoku se útočník snaží odhadnout takovou část vstupních sekvencí, aby bylo možné zbylé části a jejich souvislost s výstupním proudem vyjádřit pomocí soustavy lineárních rovnic. Útočník si nejdříve ověřuje, zda si rovnice v soustavě neodporují v takovém případě je špatný již odhad vstupní sekvence a musí se zopakovat. V případě korektnosti rovnic se z nich dopočítají zbylé části vstupu. Dynamic linear consistency test Toto rozšíření předchozího testu je založeno na zjištění, že linear consistency test odvozuje svoji složitost od množství odhadů původního klíče. Dynamické rozšíření pracuje tak, že není odhadován kompletní klíč, ale systém lineárních rovnic je budován pro každý jednotlivý bit. Díky tomu je možno neúspěšné odhady zjišťovat dříve a s menším výpočetním úsilím Korelační útoky Korelační útoky se zakládají na faktu, že ve výstupu PRBG vytvořeného na principu nelineární kombinace nebo filtrování několika LFSR se často vyskytuje korelace s některým ze vstupů. To znamená, že pravděpodobnost závislosti výstupu na některém vstupu je větší než 1/2. Pro příklad takovéhoto útoku si vezmeme PRBG založený na nelineární kombinaci n LFSR (L 1... L 2 ), kde hodnoty l 1... l n udávají délky daných LFSR. Pak počet možných klíčů (tedy kombinace všech vstupních sekvencí jednotlivých LFSR) je 2 li 1 1. i=1 Předpokládáme, že je možno vysledovat korelace mezi výstupy jednotlivých LFSR a celkovým výstupem PRBG a pravděpodobost těchto korelací označíme p, kde p>0.5. Pak je možno porovnat výstup PRBG s možnými posuny výstupu L i dokud výsledná pravděpodobnost korelací neodpovídá korelační pravděpodobnosti p. Díky tomu můžeme odhadnout vstupní sekvenci L i v maximálně 2 li 1 1 krocích. Při korelaci u všech LFSR jsme takto schopni zjistit vstupní sekvence všech LFSR L 1... L n v maximálně n i=1 než by bylo potřeba k prohledání prostoru klíčů hrubou silou. 2 l i 1 1 krocích, což je podstatně méně, Korelační útoky jsou velmi efektivní. Z toho důvodu se k nim musí přihlížet při návrhu generátorů a vytvářet nelineární kombinační funkce takovým způsobem, aby nedocházelo ke korelacím. Tato snaha však naráží na fakt, že čím vyšší je korelační imunita dané funkce, tím nižší je lineární složitost. Proto jsou generátory s lineární složitostí vyhovující nárokům na odolnost proti Berlekamp-Massey algoritmu napadnutelné pomocí korelačních útoků. Siegenthalerův útok Siegenthalerův útok je variantou na guess and verify útok prezentovaný výše. Platí zde předpoklad, že výstup je v korelaci s vstupem registru A. Útok je založen na výpočtu Hammingovy vzdálenosti mezi testovanou sekvencí a odhadnutým obsahem registru. Při dostatečné velikosti výstupních dat je možné s určitou pravděpodobností rozhodnout, zda byl odhad obsahu registru A správný. Rozhodnutí je učiněno na základě rozložení Hammingovy vzdálenosti a prahové hodnotě. Pokud je vybráno více kandidátů, je potřeba použít další testy pro nalezení správné hodnoty. n 15

17 Rychlé korelační útoky Tyto útoky znovu využívají korelaci mezi vstupní sekvencí a výstupem, ale k výpočtu inicializačních vektorů využívají poznatky z teorie kódování. Díky vlastnostem LFSR je každý bit ze vstupní sekvence vyjádřitelný pomocí soustavy lineárních rovnic. Pokud je využita teorie kódování a na výstupní sekvenci je nahlíženo jako na vstupní sekvenci maskovanou chybovou sekvencí (kde pravděpodobnost chyby je menší než ½), pak pokud je některý ze vstupních bitů funkcí pozměněn ztrácí příslušná soustava lineárních rovnic řešení. Díky tomu lze rozhodnout který bit byl pozměněn a zpětně zrekonstruovat vstupní sekvenci. Tyto útoky jsou úspěšně proveditelné pouze pro malé množství nenulových koeficientů v charakteristickém polynomu, tedy je-li jeho váha co nejmenší. Z tohoto důvodu je doporučováno využívat pro LFSR charakteristické polynomy s větší váhou. Proto bylo vyvinuto i několik různých přístupů využívajících další algoritmy z teorie kódů, které však nejsou zpravidla uplatnitelné jako obecné principy, ale pouze jako opravdu specifické útoky na dané generátory. Důležitý je i poznatek, že korelační útoky nelze jednoduše aplikovat na generátory postavené na použití jednoho generátoru k časování druhého. U těchto generátorů není útočníkovi k dispozici korelace mezi vstupem a výstupem ve smyslu předchozího textu. Lze zde pouze využít jiných měřítek korelace, kterou je Lavenshteinova vzdálenost udávající minimální množství elementárních operací nutných ke změně jedné sekvence na druhou. Tato korelační technika umožňuje na některých specifických časovaných generátorech korelační útok provést Algebraické útoky Algebraické útoky využívají k zjišťování vstupních sekvencí nelineární rovnice. Ty popisují bity výstupní sekvence jako nelineární kombinace bitů sekvence vstupní. Jejich vyřešením je tak možné zrekonstruovat z výstupu (s pomocí znalostí o konstrukci generátoru) inicializační vektory LFSR. Kompletní řešení soustavy nelineárních rovnic je NP problém, řešitelné jsou pouze části těchto soustav. Pro řešení soustav se využívá několik technik. První z nich je linearizace, kdy se v soustavě nahrazují nelineární jednočleny normálními proměnnými, následně je vypočten výsledek a proměnné znovu nahrazeny jednočleny. Problémem je zde ztráta určitých informací při substituci za proměnnou. Další technikou je rozšiřování soustavy rovnic pomocí redundantních informací. Nové rovnice jsou vytvářeny pomocí násobení původních malým jednočlenem. Výsledek je za určitých podmínek (velikost stupně) přidán k původní soustavě. Ta, po takovémto rozšíření, je zpracována pomocí linearizace, jak je uvedeno výše. Díky redundantním informacím se omezuje dopad linearizace na ztrátu informací. Tento útok lze úspěšně aplikovat například na Geffeho generátor (viz kap. 5.1). Zde je každý bit výstupu reprezentován jednou rovnicí stupně dva. Pro tento útok tedy stačí mít (l 2 + l)/2 výstupních bitů pro vybudování řešitelné soustavy rovnic a tedy pro útok v polynomiálním čase. Za využití technik linearizace a rozšiřování lze dále počet rovnic popisujících výstupní bit zvětšovat a efektivně tak snižovat množství výstupních bitů, které je nutné pro úspěšný útok. 16

18 4.2.4 BDD útoky BDD útoky využívají binární rozhodovací diagramy (binary decision diagram BDD), přesněji volné BDD označované FBDD (free BDD). FBDD jsou grafovou reprezentací Booleovských funkcí, přičemž splňují podmínku efektivního spojování funkcí. Každý výstupní bit a jeho lineární závislosti definují Booleovskou funkci vracející jedna při splnění podmínky znázorněné pomocí jednoho FBDD. Útoky pomocí FBDD mají za úkol vytvořit z výstupní sekvence vnitřní výstupní proudy jednotlivých LFSR, a to tak, že musí být zachovány veškeré závislosti výstupu LFSR a tyto proudy musí při dané kombinační funkci vytvářet testovanou výstupné sekvenci. Samotný útok je proveden spojením jednotlivých FBDD do jedné funkce mající jako proměnné výstupní proud. Tato funkce vrací jedna pro kandidáty splňující podmínky útoku. S rostoucím množstvím dat použitým pro útok se zmenšuje množství kandidátů Time-memory-data tradeoffs Útoky využívající time-memory-data tradeoff jsou založeny na principu, kdy se snižuje časová složitost útoku pomocí uložených předem vypočítaných dat. To je využíváno například u útoku hrubou silou a dalších útoků. V případě útoku hrubou silou se předem vypočítá určité množství náhodných vstupních sekvencí a k nim příslušných výstupů z PRBG. Následně jsou dvojice těchto hodnot uloženy do tabulky a ta je prohledávána při samotném útoku, což efektivně snižuje náročnost útoku. Je však nutné mít poměrně velkou výstupní sekvenci pro zvýšení pravděpodobnosti kolizí s předpočítanými výstupy. Existuje několik modifikací toho útoku, zpravidla využívající různé metody, jak zjednodušit prohledávání uložené tabulky. Time-memory tradeoff útok byl v několika variantách s úspěchem použit například na šifru A5/1 (viz kap. 3.2). V základní variantě tento útok skladoval tabulku bitových vzorků, díky čemuž bylo množství kroků v samotném online útoku sníženo na Tento útok byl později vylepšován optimalizací ukládaných dat a zvětšováním jejich množství. Time-memory-date tradeoff útoky jsou jedním z důvodů, proč je u LFSR PRBG nutné mít co největší množství vnitřních stavů. 17

19 5. Popis vybraných PRBG V této kapitole jsou popsány generátory pseudonáhodných čísel vybrané k implementaci jejíž detaily jsou popsány v následující kapitole. Zde se zaměříme na teoretické informace o jejich konstrukci a vlastnostech a o jejich případných slabinách. 5.1 LFSR Toto je generátor složený pouze z jednoho LFSR. Jeho výstup plně odpovídá vlastnostem uvedeným v kapitolách 2.2 až Geffeho generátor Geffeho generátor (Geffe generator) [1] je typickým příkladem PRBG založeného na kombinaci výstupu několika LFSR pomocí nelineární kombinační funkce. Zde je využíváno tří m-lfsr, kde A, B jsou datové LFSR a C je kontrolní. Délky LFSR l A, l B, l C jsou navzájem nesoudělné. Výstupní bity jednotlivých LFSR v jednom kroku označíme x A, x B x C. Kombinační funkce je definována takto: f(x A,x B,x C ) = x A.x C x B.x C x B. Výstupem Geffeho generátoru po jednom kroku je tedy x A, pokud je kontrolní bit x C roven 1. V opačném případě je výstupem generátoru x B. Lineární složitost výsledného proudu klíčů odpovídá l A.l C + l B.l C + l B a jeho celková perioda je 2 l A 1. 2 l B 1. 2 l C 1. Nevýhodou Geffeho generátoru je, navzdory velké periodicitě a dobré lineární složitosti výstupu, že vnitřní stavy jednotlivých generátorů procházejí do výstupní sekvence, a tudíž je tento generátor slabý vůči korelačním útokům (viz kap ). 5.3 Alternating step generator Alternating step generator [1] je založen na časování dvou m-lfsr A a B pomocí kontrolního registru C. Délky m-lfsr l A, l B a l C jsou stejně jako v případě Geffeho generátoru navzájem nesoudělné a jednotlivé výstupní bity dílčích LFSR označíme a, b, c. Při běhu tohoto generátoru v každém kroku proběhne nejprve generování bitu c. Dle jeho hodnoty je následně jeden z bitů a, b vygenerován a u druhého je zopakována předchozí hodnota. Výstupem celého generátoru v jednom kroku je pak a b. Formálně řečeno, pokud jsou výstupy LFSR A, B a C značené jako a 1, a 2, a 3..., b 1, b 2, b 3... a c 1, c 2, c 3... a a 1 = b 1 = 0 pak výstupní bit x i = a f(j) b 1-f(j), kde f(j) = c i. j i=1 Výstup tohoto generátoru má dobré statistické vlastnosti, velkou periodicitu a lineární složitost. Navíc tento generátor vykazuje velkou odolnost i proti korelačním útokům. 18

20 5.4 Self-shrinking generator Dalším z vybraných generátorů je Self-shrinking generator [2, 13] (dále SSG), který je jedním z mladších návrhu PRBG. SSG využívá pouze jeden m-lfsr délky l. Pro výstup se u SSG využívá dvojice výstupních bitů z LFSR, kdy první z nich je označen jako rozhodovací bit (selection bit) a druhý jako aktivní (active). Pokud je rozhodovací bit 1, tak je aktivní bit vypuštěn jako do výstupní sekvence, jinak jsou oba bity zahozeny a je vygenerována nová dvojice. Označíme tedy výstupní bit v jednom kroku x, rozhodovací bit b s a aktivní bit jako b a. Pak x = 1 pro (b s, b a ) = (1, 1), x = 0 pro (b s, b a ) = (1, 0). V ostatních případech SSG nevygeneruje v daném kroku žádný bit. Z tohoto plyne nevýhoda SSG nový bit je vygenerován průměrně 1x za čtyři časování LFSR. Velikost výstupní sekvence za daný počet časovacích signálů je proti jednoduchému LFSR čtvrtinová. Na druhou stranu SSG vytváří výstupní sekvenci s vhodnými statistickými vlastnostmi za použití pouze jednoho LFSR. SSG s l > 3 vykazuje periodu i lineární složitost 2 l-1 a zároveň dobré statistické vlastnosti. Na tento generátor byla publikována řada útoků, ať již útoky odhadem, time-memory-data tradeoff nebo BDD útok. Pokud je však využit charakteristický polynom s větší váhou, pak nejsou v současnosti tyto útoky pro l > 120 prakticky využitelné. 5.5 Bit-Search generator Bit-Search generator [24] (dále BSG) je jedním z nejnovějších návrhů generátorů založených na LFSR. Stejně jako Self shrinking generátor se skládá pouze z jednoho m-lfsr a kombinační logiky pracující na jeho výstupu. BSG vytváří výstupní sekvenci prohledáváním výstupu LFSR. První bit v sekvenci je jako vzor a je hledán další stejný bit. Pokud je nalezen v jednom kroku, tzn. následuje po vzoru, je výstupem generátoru 0 a další bit je označen jako vzor. Pokud je odpovídající bit nalezen až po více krocích je do výstupní sekvence vložena 1. Tento generátor stejně jako SSG produkuje na základě jednoho LFSR sekvenci s vhodnými statistickými vlastnostmi. BSG má jeden bit výstupu v průměru jednou za tři časování LFSR, tedy 1/3 rychlost oproti jednoduchému LFSR. Perioda výstupu je nejméně 2 (l-2)/4-1 pro l >3, kde l je délka LFSR. Lineární složitost nebyla zatím popsána, ale dle experimentálních výsledků je dostatečná. Proti BSG bylo předloženo několik útoků, které jsou velmi efektivní proti generátorům s charakteristickým polynomem malé váhy. 5.6 GLFSR Obecný LFSR, obvykle označovaný jako GLSFR, je takový LFSR, kde není jednotkou informace jeden bit ale více bitů. Zpravidla je to 2 n bitů pro vhodné zpracování na dané architektuře. Ostatní vlastnosti normálního LFSR, jako periodicita výstupu nebo lineární složitost jsou zde zachovány ale vztahují se na jednotku informace a ne na jednotlivé bity. Tyto generátory se zpravidla nepoužívají v kryptologii, ale spíše v samočinných testovacích zařízeních, a proto nejsou podrobovány takové kryptoanalýze jako generátory určené pro šifrování. Jsou ceněny pro možnost generování většího množství dat v rámci jednoho časování LFSR. 19

21 6. Implementace vybraných PRBG 6.1 Implementace Každý z vybraných generátorů (viz kap. 5) byl implementován jak v jazyce Java, tak v jazyce C. Obě verze jsou textově orientované a vstup inicializačních vektorů 1, výstup a jeho množství udávají parametry příkazové řádky. Programy jsou zkompilované pro operační systém Windows, kód v C pomocí Mingw a kód v jazyce Java v Jdk Názvy spustitelných souborů v C respektive Javě jsou pro jednotlivé generátory: LFSR lfsr.exe lfsr.class Geffeho generátor geffe.exe geffe.class Alternating step generator alter.exe alter.class Self-shrinking generator ssg.exe ssg.class Bit-Search generator bsg.exe bsg.class GLFSR glfsr.exe glfsr.class Spouštění generátorů probíhá pomocí příkazové řádky a využívá se následující syntax: název.exe [PARAMETRY], respektive java název [PARAMETRY], kde [PARAMETRY] mohou být následující: -a velikost Velikost výstupu v bytech. Pro implementaci v C je rozsah 1 až 2 31, implementace v Javě má rozsah 1 až Pokud je jako číslo zadána číslice 0, pak je výstup generován v nekonečném cyklu. -ik -if soubor -ost Zadání inicializačního vektoru pro vnitřní registry z klávesnice. Inicializační vektor je vložen pomocí binárních dat ze souboru. Výstupem generátoru bude textová posloupnost nul a jedniček, vypsaná na standardní výstup. Tento parametr není podporován generátorem GLFSR. -oft soubor Výstupem generátoru bude textová posloupnost nul a jedniček, uložená do souboru. Tento parametr není podporován generátorem GLFSR. -ofb soubor Výstup generátoru se zapíše do souboru jako binární data. Jeden z parametrů určujících typ výstupu musí být vždy zadán. Pokud se tak nestane nebo pokud je generátor spuštěn bez parametrů, je na standardní výstup vypsána nápověda. V případě, že není zadán ani jeden z dvojice parametrů -ik nebo -if soubor, jsou vnitřní registry nastaveny na 1. Příklady spuštění generátorů: lfsr.exe -a if input.bin -osb output.bin vytvoří 50MB binární soubor, který je výstupem LFSR inicializovaného binárními daty ze souboru input.bin. java ssg -ost vypíše na standardní výstup sekvenci 100 znaků 0 nebo 1, které jsou výstupem generátoru SSG se všemy registry inicializovanými na 1. 1 Nejedná se zde o inicializační vektor v kryptologickém, respektive kryptografickém smyslu slova. 20

22 Délky jednotlivých LFSR v generátorech, stejně jako charakteristické polynomy, jsou v generátorech zadané v kódu. Pro jejich změnu je nutno je přenastavit ve zdrojových kódech, a to pro implementace v C v souboru option.h a pro implementace v Javě na začátku metody main. 6.2 Výkonnostní test Výkonnostní test implementovaných generátorů byl proveden za účelem porovnání rychlostí implementací v různých jazycích a zároveň pro zjištění, jaký vliv na dobu generování má váha charakteristického polynomu, tedy počet nenulových koeficientů. Testování probíhalo na sestavě Athlon 64 (939 venice), základní deska Asus A8-VM, 512MB DDRAM. Jádrem testu bylo generování 50MB sekvencí. Pro každý generátor byly vygenerovány tři takovéto sekvence a výsledné časy byly zprůměrovány. Pro každou sekvenci byl vstup jiný, ale tyto tři vstupy byly totožné pro testování každého generátoru. Tyto tři testy byly také pro každý generátor provedeny dvakrát, jednou s charakteristickým polynomem malé váhy a jednou s váhou větší. Pro nastavení startovních podmínek bylo zadáno, že délka LFSR byla 54. Pro Alternating-step generator a Geffeho generátor, které se skládají ze tří LFSR, byly provedeny dva testy. Při prvním měly všechny LFSR délky co nejbližší hodnotě 54 2, tedy kontrolní registr měl délku 54, registry A (B) měly délku 49 (55). Při druhém testu byla celková délka všech LFSR v generátoru 54, to znamenalo, že kontrolní registr měl délku 22 a registry A (B) měly délku 15 (17). Stejně tak byly nastaveny podmínky i pro váhu charakteristického polynomu, kdy pro jeden test byly zvoleny polynomy o váze 3 a pro druhý test polynomy o váze 33. V případě druhé sady testů pro Alternating-step generator a Geffeho generátor to znamenalo, že celkový součet vah všech LFSR byl 3 respektive 35 (aby zůstalo zachováno množství koeficientů 1 v polynomu). Výsledky testů jsou přehledně zapsány v následující tabulce. Výsledné časy jsou uvedeny v sekundách. Generátor C Java malá váha velká váha malá váha velká váha lfsr geffe geffe alter alter ssg bsg glfsr Tab. 1: Výkonnostní test generátorů. Charakteristické polynomy, které byly pro testování použity, jsou uvedeny v příloze A. 2 A zároveň aby pro dané polynomy existovaly primitivní polynomy váhy 3. 21

23 Z výsledků vyplývá, že váha charakteristického polynomu má poměrně velký vliv na rychlost generátoru. Pro polynomy o malé váze byly výsledky mezi implementacemi v C a v Javě srovnatelné, pro velkou váhu charakteristického polynomu jsou implementace v Javě podstatně pomalejší. Zajímavých výsledků bylo dosaženo pro Alternating step generator a Geffeho generátor. V prvních testech, kdy byly tři vnitřní LFSR nastaveny na celkovou délku 54, dosáhly tyto generátory proti jednoduchému LFSR o délce 54 v případě Alternating step generator lepšího a v případě Geffeho generátoru přibližně shodného výsledku. V druhých testech, kdy byly všechny vnitřní LFSR nastaveny na délky blízké 54, dosáhly tyto generátory podstatně horších výsledků. Na přiloženém CD jsou uloženy zdrojové kódy a přeložené programy implementovaných generátorů, spolu s vygenerovanou sekvencí o velikosti 50MB pro každý generátor. 22

24 7. Závěr Tato práce měla za cíl analyzovat generátory pseudonáhodných dat založené na posuvných registrech s lineární zpětnou vazbou, a to zejména s ohledem na použití v kryptografii. Popsali jsme si vlastnosti těchto generátorů spolu s náležitostmi, které musí splňovat pro praktické využití. Zároveň jsme si přiblížili možnosti těchto generátorů výčtem jejich současného uplatnění. Velká část práce byla věnována rozboru testovacích technik, které jsou v rámci návrhu jednotlivých generátorů využívány. Tyto testy (respektive kryptoanalytické techniky) jsme si popsali zároveň s vlastnostmi nutnými pro úspěšné splnění těchto testů, a tedy pro základní kryptografickou bezpečnost. Také zde bylo nastíněno, jak tyto pro kryptografii důležité vlastnosti ovlivňují návrh a konstrukci různých generátorů. V praktické části bylo popsáno a v programovacích jazycích Java a C implementováno šest různých pseudonáhodných generátorů založených na LFSR. Tyto generátory bude možné použít pro jejich další testování, ať už rychlosti nebo kryptografických vlastností. V rámci implementace byla provedena jejich výkonnostní analýza. Výsledky potvrdily předpokládné poměry rychlostí. Nejrychlejší byl GLFSR, následovaný LFSR. Nejpomalejší byly podle očekávání Bit-search generator a Self-shrinking generator, jejichž rychlosti zachovávají poměr dle teoretických výpočtů. Zvláštní kategorií jsou výsledky u Alternating step generator a Geffeho generátoru v závislosti na délkách jejich vnitřních LFSR. 23

25 Reference [1] Menezes, A., Van Oorchost, P., Vanstone, S.: Handbook of Applied Cryptography, CRC Press, Dokument dostupný na URL: (duben 2006) [2] Zenner, E.: On cryptographic Properties of LFSR-based Pseudorandom Generators, [PhD thesis], Manheim, Dokument dostupný na URL: (duben 2006) [3] Khan, S. U., Till, S., Trippen, G. a kolektiv: COMP 685A project report Berlekamp-Massey Algorithm, Hong Kong University of Science and Technology, Dokument dostupný na URL: (duben 2006) [4] Balph, T.: LFSR counters implement binary polynomial generators, EDN, 1998 [5] Agrawal,V.D., Kime, Ch. R., Saluja, K., K.: A tutorial on Built-in Self-Test, In IEE Design & test of computers 1993 [6] Global Positioning System standard positioning service signal specification, 2nd ed Dokument dostupný na URL: (duben 2006) [7] Klassen, R.: Spread Spectrum A Brief Tutorial, OMNEX Control System, Dokument dostupný na URL: (duben 2006) [8] Dinah, E. H., Jabbari, B.: Spreading Codes for Direct Sequence CDMA and Wideband CDMA Cellular Networks in IEEE Communications Magazine, September Dokument dostupný na URL: (duben 2006) [9] Staudek, J.: Rozprostřování spektra, [poznámky k přednášce], Masarykova univerzita, Brno, Dokument dostupný na URL: vyuka/commsys/09. (duben 2006) [10] Nova Engineering, Cincinnati: Linear Feedback Shift Register Megafunction, Dokument dostupný na URL: (duben 2006) [11] George, M., Hamid, M., Miller, A. : Gold Code Generators in Virtex Devices. Dokument dostupný na URL: (duben 2006) [12] Shah, S.S., Yaqub, S., Suleman, F.: Self-correcting codes conquer noise, Part 2: Reed- Solomon codes, EDN magazine, Dokument dostupný na URL: (duben 2006) [13] Barkan, E., Biham, E., Keller, N.: Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication, Hifa Dokument dostupný na URL (květen 2006) 24

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

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 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

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

Složitost Filip Hlásek

Složitost Filip Hlásek Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,

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

U Úvod do modelování a simulace systémů

U Úvod do modelování a simulace systémů U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení

Více

Regresní a korelační analýza

Regresní a korelační analýza Regresní a korelační analýza Mějme dvojici proměnných, které spolu nějak souvisí. x je nezávisle (vysvětlující) proměnná y je závisle (vysvětlovaná) proměnná Chceme zjistit funkční závislost y = f(x).

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

. Bezpečnost mobilních telefonů. David Machač

. Bezpečnost mobilních telefonů. David Machač . Bezpečnost mobilních telefonů úvod do kryptologie... David Machač.. FJFI ČVUT v Praze David Machač (FJFI ČVUT v Praze) Bezpečnost mobilních telefonů 1 / 14 NMT Nordic Mobile Telephony, 1981 analogová

Více

Matematika IV 10. týden Kódování

Matematika IV 10. týden Kódování Matematika IV 10. týden Kódování Jan Slovák Masarykova univerzita Fakulta informatiky 22. 26. 4. 2013 Obsah přednášky 1 (n, k) kódy 2 Polynomiální kódy 3 Lineární kódy Kde je dobré číst? připravovaná učebnice

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

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

Informace, kódování a redundance

Informace, kódování a redundance Informace, kódování a redundance INFORMACE = fakt nebo poznatek, který snižuje neurčitost našeho poznání (entropii) DATA (jednotné číslo ÚDAJ) = kódovaná zpráva INFORAMCE = DATA + jejich INTERPRETACE (jak

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

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

Regresní a korelační analýza

Regresní a korelační analýza Regresní a korelační analýza Mějme dvojici proměnných, které spolu nějak souvisí. x je nezávisle (vysvětlující) proměnná y je závisle (vysvětlovaná) proměnná Chceme zjistit funkční závislost y = f(x).

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

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův Kódy a kódování dat Kódování je proces, při kterém se každému znaku nebo postupnosti znaků daného souboru znaků jednoznačně přiřadí znak nebo postupnost znaků z jiného souboru znaků. Kódování je tedy transformace

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

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

MÍRY ZÁVISLOSTI (KORELACE A REGRESE)

MÍRY ZÁVISLOSTI (KORELACE A REGRESE) zhanel@fsps.muni.cz MÍRY ZÁVISLOSTI (KORELACE A REGRESE) 2.5 MÍRY ZÁVISLOSTI 2.5.1 ZÁVISLOST PEVNÁ, VOLNÁ, STATISTICKÁ A KORELAČNÍ Jednorozměrné soubory - charakterizovány jednotlivými statistickými znaky

Více

Obsah přednášky Jaká asi bude chyba modelu na nových datech?

Obsah přednášky Jaká asi bude chyba modelu na nových datech? Obsah přednášky Jaká asi bude chyba modelu na nových datech? Chyba modelu Bootstrap Cross Validation Vapnik-Chervonenkisova dimenze 2 Chyba skutečná a trénovací Máme 30 záznamů, rozhodli jsme se na jejich

Více

Šifrová ochrana informací věk počítačů PS5-2

Šifrová ochrana informací věk počítačů PS5-2 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-2 1 Osnova šifrová ochrana využívající výpočetní techniku např. Feistelova šifra; symetrické a asymetrické šifry;

Více

ZÁKLADY DATOVÝCH KOMUNIKACÍ

ZÁKLADY DATOVÝCH KOMUNIKACÍ ZÁKLADY DATOVÝCH KOMUNIKACÍ Komunikační kanál (přenosová cesta) vždy negativně ovlivňuje přenášený signál (elektrický, světelný, rádiový). Nejčastěji způsobuje: útlum zeslabení, tedy zmenšení amplitudy

Více

Šifrová ochrana informací věk počítačů PS5-2

Šifrová ochrana informací věk počítačů PS5-2 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-2 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2 Osnova

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

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

Rozprostřené spektrum. Multiplex a mnohonásobný přístup

Rozprostřené spektrum. Multiplex a mnohonásobný přístup Rozprostřené spektrum Multiplex a mnohonásobný přístup Multiplex Přenos více nezávislých informačních signálů jedním přenosovým prostředím (mezi dvěma body) Multiplexování MPX Vratný proces sdružování

Více

Kódováni dat. Kódy používané pro strojové operace

Kódováni dat. Kódy používané pro strojové operace Kódováni dat Před zpracováním dat například v počítači je třeba znaky převést do tvaru, kterému počítač rozumí, tj. přiřadit jim určité kombinace bitů. Tomuto převodu se říká kódování. Kód je předpis pro

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

Základní definice Aplikace hašování Kontrukce Známé hašovací funkce. Hašovací funkce. Jonáš Chudý. Úvod do kryptologie

Základní definice Aplikace hašování Kontrukce Známé hašovací funkce. Hašovací funkce. Jonáš Chudý. Úvod do kryptologie Úvod do kryptologie Základní definice Kryptografická hašovací funkce Kryptografickou hašovací funkcí nazveme zobrazení h, které vstupu X libovolné délky přiřadí obraz h(x) pevné délky m a navíc splňuje

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

Normální (Gaussovo) rozdělení

Normální (Gaussovo) rozdělení Normální (Gaussovo) rozdělení Normální (Gaussovo) rozdělení popisuje vlastnosti náhodné spojité veličiny, která vzniká složením různých náhodných vlivů, které jsou navzájem nezávislé, kterých je velký

Více

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě

Více

3. Aritmetika nad F p a F 2

3. Aritmetika nad F p a F 2 3. Aritmetika nad F p a F 2 m Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze c Martin Novotný, 2011 MI-BHW Bezpečnost a technické

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

Kvantové algoritmy a bezpečnost. Václav Potoček

Kvantové algoritmy a bezpečnost. Václav Potoček Kvantové algoritmy a bezpečnost Václav Potoček Osnova Úvod: Kvantové zpracování informace Shorův algoritmus Kvantová distribuce klíče Post-kvantové zabezpečení Úvod Kvantové zpracování informace Kvantový

Více

INDUKTIVNÍ STATISTIKA

INDUKTIVNÍ STATISTIKA 10. SEMINÁŘ INDUKTIVNÍ STATISTIKA 3. HODNOCENÍ ZÁVISLOSTÍ HODNOCENÍ ZÁVISLOSTÍ KVALITATIVNÍ VELIČINY - Vychází se z kombinační (kontingenční) tabulky, která je výsledkem třídění druhého stupně KVANTITATIVNÍ

Více

Představíme základy bezdrátových sítí. Popíšeme jednotlivé typy sítí a zabezpečení.

Představíme základy bezdrátových sítí. Popíšeme jednotlivé typy sítí a zabezpečení. 10. Bezdrátové sítě Studijní cíl Představíme základy bezdrátových sítí. Popíšeme jednotlivé typy sítí a zabezpečení. Doba nutná k nastudování 1,5 hodiny Bezdrátové komunikační technologie Uvedená kapitola

Více

Stavební bloky kryptografie. Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií

Stavební bloky kryptografie. Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií Stavební bloky kryptografie Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií 1 Módy blokových šifer Šifrování textu po blocích 64, 80, 128, bitové bloky Jak zašifrovat delší zprávy?

Více

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011 Automatická detekce anomálií při geofyzikálním průzkumu Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011 Cíle doktorandské práce Seminář 10. 11. 2010 Najít, implementovat, ověřit a do praxe

Více

Informatika / bezpečnost

Informatika / bezpečnost Informatika / bezpečnost Bezpečnost, šifry, elektronický podpis ZS 2015 KIT.PEF.CZU Bezpečnost IS pojmy aktiva IS hardware software data citlivá data hlavně ta chceme chránit autorizace subjekt má právo

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více

Disková pole (RAID) 1

Disková pole (RAID) 1 Disková pole (RAID) 1 Architektury RAID Důvod zavedení RAID: reakce na zvyšující se rychlost procesoru. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem.

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

Standard IEEE

Standard IEEE Standard IEEE 802.11 Semestrální práce z předmětu Mobilní komunikace Jméno: Alena Křivská Datum: 15.5.2005 Standard IEEE 802.11 a jeho revize V roce 1997 publikoval mezinárodní standardizační institut

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

2 Zpracování naměřených dat. 2.1 Gaussův zákon chyb. 2.2 Náhodná veličina a její rozdělení

2 Zpracování naměřených dat. 2.1 Gaussův zákon chyb. 2.2 Náhodná veličina a její rozdělení 2 Zpracování naměřených dat Důležitou součástí každé experimentální práce je statistické zpracování naměřených dat. V této krátké kapitole se budeme věnovat určení intervalů spolehlivosti získaných výsledků

Více

Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.

Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Jednoduché cykly Tento oddíl obsahuje úlohy na první procvičení práce s cykly. Při řešení každé ze zde uvedených úloh stačí použít vedle podmíněných příkazů jen jediný cyklus. Nepotřebujeme používat ani

Více

1 Mnohočleny a algebraické rovnice

1 Mnohočleny a algebraické rovnice 1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem

Více

Principy komunikace s adaptéry periferních zařízení (PZ)

Principy komunikace s adaptéry periferních zařízení (PZ) Principy komunikace s adaptéry periferních zařízení (PZ) Několik možností kategorizace principů komunikace s externími adaptéry, např.: 1. Podle způsobu adresace registrů, které jsou součástí adaptérů.

Více

ZÁKLADY DATOVÝCH KOMUNIKACÍ

ZÁKLADY DATOVÝCH KOMUNIKACÍ ZÁKLADY DATOVÝCH KOMUNIKACÍ Komunikační kanál (přenosová cesta) vždy negativně ovlivňuje přenášený signál (elektrický, světelný, rádiový). Nejčastěji způsobuje: útlum zeslabení, tedy zmenšení amplitudy

Více

ALGEBRA. Téma 5: Vektorové prostory

ALGEBRA. Téma 5: Vektorové prostory SLEZSKÁ UNIVERZITA V OPAVĚ Matematický ústav v Opavě Na Rybníčku 1, 746 01 Opava, tel. (553) 684 611 DENNÍ STUDIUM Téma 5: Vektorové prostory Základní pojmy Vektorový prostor nad polem P, reálný (komplexní)

Více

BCH kódy. Alena Gollová, TIK BCH kódy 1/27

BCH kódy. Alena Gollová, TIK BCH kódy 1/27 7. přednáška z algebraického kódování Alena Gollová, TIK 1/27 Obsah 1 Binární Alena Gollová, TIK 2/27 Binární jsou cyklické kódy zadané svými generujícími kořeny. Díky šikovné volbě kořenů opravuje kód

Více

KOMBINAČNÍ LOGICKÉ OBVODY

KOMBINAČNÍ LOGICKÉ OBVODY Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je vstup určen jen výhradně kombinací vstupních veličin. Hodnoty

Více

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení

Více

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA BAKALÁŘSKÁ PRÁCE 2002 SEDLÁK MARIAN - 1 - OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA KATEDRA INFORMATIKY A POČÍTAČŮ Vizualizace principů výpočtu konečného

Více

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30 Generující kořeny cyklických kódů 6. přednáška z algebraického kódování Alena Gollová, TIK Generující kořeny 1/30 Obsah 1 Alena Gollová, TIK Generující kořeny 2/30 Hammingovy kódy Hammingovy kódy jsou

Více

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony. Booleovská algebra. Booleovské binární a unární funkce. Základní zákony. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz

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

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

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb. Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb. 1. Informace o přijímacích zkouškách Studijní program: Informatika navazující magisterský

Více

IMOSI - MODELACE A SIMULACE LEARN 2013 správně možná špatně

IMOSI - MODELACE A SIMULACE LEARN 2013 správně možná špatně IMOSI - MODELACE A SIMULACE LEARN 2013 správně možná špatně Simulátor označujeme jako kredibilní v případě, že: byla úspěšně završena fáze verifikace simulátoru se podařilo přesvědčit zadavatele simulačního

Více

VY_32_INOVACE_E 15 03

VY_32_INOVACE_E 15 03 Název a adresa školy: Střední škola průmyslová a umělecká, Opava, příspěvková organizace, Praskova 399/8, Opava, 746 01 Název operačního programu: OP Vzdělávání pro konkurenceschopnost, oblast podpory

Více

Doplňování chybějících hodnot v kategoriálních datech 2.00

Doplňování chybějících hodnot v kategoriálních datech 2.00 Doplňování chybějících hodnot v kategoriálních datech 2.00 1. Cíle programu Účelem programu je umožnit uživateli doplnění chybějících hodnot v kategoriálních datech. Pro doplnění chybějících hodnot je

Více

Disková pole (RAID) 1

Disková pole (RAID) 1 Disková pole (RAID) 1 Architektury RAID Základní myšlenka: snaha o zpracování dat paralelně. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem. Řešení: data

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

DSY-6. Přenosový kanál kódy pro zabezpečení dat Základy šifrování, autentizace Digitální podpis Základy měření kvality přenosu signálu

DSY-6. Přenosový kanál kódy pro zabezpečení dat Základy šifrování, autentizace Digitální podpis Základy měření kvality přenosu signálu DSY-6 Přenosový kanál kódy pro zabezpečení dat Základy šifrování, autentizace Digitální podpis Základy měření kvality přenosu signálu Kódové zabezpečení přenosu dat Popis přiřazení kódových slov jednotlivým

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

Usuzování za neurčitosti

Usuzování za neurčitosti Usuzování za neurčitosti 25.11.2014 8-1 Usuzování za neurčitosti Hypotetické usuzování a zpětná indukce Míry postačitelnosti a nezbytnosti Kombinace důkazů Šíření pravděpodobnosti v inferenčních sítích

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Petr

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

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

KRY. Projekt č. 2. Kamil Dudka xdudka00

KRY. Projekt č. 2. Kamil Dudka xdudka00 KRY Projekt č. 2 Kamil Dudka xdudka00 1 Úvod Úkolem bylo vytvořit program, který do určeného obrázku umí schovat text a tento text z obrázku později vytáhnout. Schovaný text měl být zabezpečený pomocí

Více

Logické řízení. Náplň výuky

Logické řízení. Náplň výuky Logické řízení Logické řízení Náplň výuky Historie Logické funkce Booleova algebra Vyjádření Booleových funkcí Minimalizace logických funkcí Logické řídicí obvody Blokové schéma Historie Číslicová technika

Více

CO JE KRYPTOGRAFIE Šifrovací algoritmy Kódovací algoritmus Prolomení algoritmu

CO JE KRYPTOGRAFIE Šifrovací algoritmy Kódovací algoritmus Prolomení algoritmu KRYPTOGRAFIE CO JE KRYPTOGRAFIE Kryptografie je matematický vědní obor, který se zabývá šifrovacími a kódovacími algoritmy. Dělí se na dvě skupiny návrh kryptografických algoritmů a kryptoanalýzu, která

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

PROGRAMOVATELNÉ LOGICKÉ OBVODY

PROGRAMOVATELNÉ LOGICKÉ OBVODY PROGRAMOVATELNÉ LOGICKÉ OBVODY (PROGRAMMABLE LOGIC DEVICE PLD) Programovatelné logické obvody jsou číslicové obvody, jejichž logická funkce může být programována uživatelem. Výhody: snížení počtu integrovaných

Více

ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu

ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu ČVUT FEL X36PAA - Problémy a algoritmy 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu Jméno: Marek Handl Datum: 3. 2. 29 Cvičení: Pondělí 9: Zadání Prozkoumejte citlivost metod

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

Kryptografie, elektronický podpis. Ing. Miloslav Hub, Ph.D. 27. listopadu 2007

Kryptografie, elektronický podpis. Ing. Miloslav Hub, Ph.D. 27. listopadu 2007 Kryptografie, elektronický podpis Ing. Miloslav Hub, Ph.D. 27. listopadu 2007 Kryptologie Kryptologie věda o šifrování, dělí se: Kryptografie nauka o metodách utajování smyslu zpráv převodem do podoby,

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

11. Tabu prohledávání

11. Tabu prohledávání Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

Více

Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Digitální podpisy

Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Digitální podpisy VY_32_INOVACE_BEZP_08 Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/34.0304 Digitální podpisy Základní myšlenkou elektronického podpisu je obdoba klasického podpisu, jež má zaručit jednoznačnou identifikaci

Více

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky Pokročilé heuristiky jednoduchá heuristika asymetrické stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy pokročilá heuristika symetrické stavový prostor, který vyžaduje řízení 1 2 Paměť pouze

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

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

Protiopatření eliminující proudovou analýzu

Protiopatření eliminující proudovou analýzu SIX Research Centre Vysoké učení technické v Brně martinasek@feec.vutbr.cz crypto.utko.feec.vutbr.cz Proudová analýza (PA) V dnešní době představuje efektivní a úspěšný způsob útoku cílený na bezpečné

Více

MATURITNÍ TÉMATA Z MATEMATIKY

MATURITNÍ TÉMATA Z MATEMATIKY MATURITNÍ TÉMATA Z MATEMATIKY 1. Základní poznatky z logiky a teorie množin Pojem konstanty a proměnné. Obor proměnné. Pojem výroku a jeho pravdivostní hodnota. Operace s výroky, složené výroky, logické

Více

Matematické modelování dopravního proudu

Matematické modelování dopravního proudu Matematické modelování dopravního proudu Ondřej Lanč, Alena Girglová, Kateřina Papežová, Lucie Obšilová Gymnázium Otokara Březiny a SOŠ Telč lancondrej@centrum.cz Abstrakt: Cílem projektu bylo seznámení

Více

Základy algoritmizace

Základy algoritmizace Algoritmus Toto je sice na první pohled pravdivá, ale při bližším prozkoumání nepřesná definice. Například některé matematické postupy by této definici vyhovovaly, ale nejsou algoritmy. Přesné znění definice

Více

5. Umělé neuronové sítě. Neuronové sítě

5. Umělé neuronové sítě. Neuronové sítě Neuronové sítě Přesný algoritmus práce přírodních neuronových systémů není doposud znám. Přesto experimentální výsledky na modelech těchto systémů dávají dnes velmi slibné výsledky. Tyto systémy, včetně

Více

Třídy složitosti P a NP, NP-úplnost

Třídy složitosti P a NP, NP-úplnost Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není

Více

Digitální modulace. Podpora kvality výuky informačních a telekomunikačních technologií ITTEL CZ.2.17/3.1.00/36206

Digitální modulace. Podpora kvality výuky informačních a telekomunikačních technologií ITTEL CZ.2.17/3.1.00/36206 EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Podpora kvality výuky informačních a telekomunikačních technologií ITTEL CZ.2.17/3.1.00/36206 Modulace analogových modulací modulační i

Více

2000 zveřejnění dobové zprávy General Report on Tunny

2000 zveřejnění dobové zprávy General Report on Tunny Luštění německého šifrovacího stroje Lorenz podle bakalářské práce Petra Veselého, MFF UK 25. února 2010 2000 zveřejnění dobové zprávy General Report on Tunny 2000 zveřejnění dobové zprávy General Report

Více

RNDr. Eva Janoušová doc. RNDr. Ladislav Dušek, Dr.

RNDr. Eva Janoušová doc. RNDr. Ladislav Dušek, Dr. Analýza dat pro Neurovědy RNDr. Eva Janoušová doc. RNDr. Ladislav Dušek, Dr. Jaro 2014 Institut biostatistiky Janoušová, a analýz Dušek: Analýza dat pro neurovědy Blok 7 Jak hodnotit vztah spojitých proměnných

Více