}w!"#$%&'()+,-./012345<ya

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

Download "}w!"#$%&'()+,-./012345<ya"

Transkript

1 }w!"#$%&'()+,-./012345<ya Masarykova univerzita Fakulta informatiky Time-memory tradeoff útoky v kryptografii Diplomová práce Martin Sedlář Brno, podzim 2012

2 Prohlášení Prohlašuji, že tato diplomová 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. Martin Sedlář Vedoucí práce: Mgr. et Mgr. Jan Krhovják, Ph.D. ii

3 Poděkování Rád bych poděkoval Mgr. et Mgr. Janu Krhovjákovi, Ph.D. za vedení této práce. iii

4 Shrnutí V první části práce jsou shrnuty poznatky o současném stavu Time-memory tradeoff útoků. Ve druhé části jsou odvozeny vzorce pro určení počtu dosažených různých rozlišitelných bodů v Hellmanově tabulce s rozlišitelnými body. Také jsou tu popsány tabulky vytvořené s různými šifrovacími algoritmy a porovnány skutečné výsledky s odhadnutými hodnotami. V závěru této části je uveden útok pomocí těchto tabulek na šifru RC4 se čtyřicetibitovým klíčem. V poslední části jsou popsány experimenty zkoumající strukturu grafu stavů A5/1 s její přechodovou funkcí. iv

5 Klíčová slova A5/1, Hellmanovy tabulky, proudové šifry, rainbow tabulky, rozlišitelné body, time-memory tradeoff útoky v

6 Obsah 1 Úvod Techniky time-memory tradeoff kryptoanalýzy Blokové šifry Hellmanovy tabulky Rozlišitelné body Rainbow tables Proudové šifry Model proudové šifry Babbageova metoda Biryukova a Shamirova metoda Možnost použití u blokových šifer Rozlišitelné body pro proudové šifry Popis šifry A5/1 a jejího vzorkování Útok na proudové šifry používající inicializační vektory Metody efektivního uložení předpočítaných tabulek Rozlišitelné body a počáteční stavy Proudové šifry s nízkou odolností proti vzorkování Kolize v Hellmanových tabulkách s rozlišitelnými body Pravděpodobnost a očekávaný počet kolizí Metody výpočtu tabulek DES s fixní nešifrovanou zprávou DES s fixním klíčem A5/1 s plnou délkou klíče A5/1 s nulovým prvním registrem A5/1 s nulovým druhým registrem A5/1 s nulovým třetím registrem RC4 s 64 bitovým klíčem RC4 se 40 bitovým klíčem KASUMI s 64 bitovým klíčem Získané výsledky Útok na RC4 se 40 bitovým klíčem Cykly v šifře A5/ Efektivní implementace šifry A5/ Výskyt cyklů v A5/ Počty předchůdců stavů A5/ Rekonstrukce větví vedoucích do cyklů Závěr

7 1 Úvod Pro mnoho obtížných problémů existují metody, kterými je možné snížit čas potřebný k jejich vyřešení za cenu zvýšení paměťových nároků. Příkladem je například problém diskrétního logaritmu nebo batohu. Pro tyto problémy existují algoritmy složitosti N. Naivní řešení hrubou silou by mělo složitost N, kde N je velikost celého prostoru řešení, který je nutné prohledat. Tento princip je možné využít i v kryptoanalýze. Uvažujme kryptosystém využívající N možných různých klíčů. Nechť C = E K (P ) značí, že C je výsledek aplikace šifrovacího algoritmu s klíčem K na zprávu P. Jestliže útočník zná odpovídající si dvojici P a E K (P ), nejpřímočařejší varianta útoku na obecný kryptosystém je postupný průchod přes všechny možné kombinace klíčů. Pro každé K si spočítá E K (P ) a porovná, jestli výsledkem je odpovídající hodnota C. Tato metoda vyžaduje v nejhorším případě N šifrovacích operací. Paměťové nároky tohoto přístupu jsou minimální. Existují metody, kterými je možné kryptosystém prolomit rychleji za cenu vyšších paměťových nároků. Většina těchto metod vyžaduje silnější pozici útočníka, než tomu bylo v předchozím případě. Nejen že útočník potřebuje znát dvojici P a E K (P ), musí být schopný získat hodnotu E K (P ) pro jím zvolené P. V tomto případě si útočník může předpočítat tabulku obsahující hodnoty K a E K (P ) pro nějaké pevně dané P. Tabulka je následně seřazena podle hodnot E K (P ). Toto předpočítání vyžaduje provedení N šifrovacích operací, na následné seřazení je potřeba N log N operací. V okamžiku, kdy má útočník hotovou takovou tabulku, je prolomení kryptosystému redukováno na vyhledání klíče v této tabulce. Pokud je použit nový klíč K, útočník si nechá zašifrovat zprávu P tímto klíčem. Protože tabulka je seřazená podle hodnot E K (P ), má vyhledání klíče složitost log N. Vytvoření tabulky je možné provést předem a následně ji využít pro všechny útoky na tento kryptosystém. Nevýhodou tohoto přístupu je paměťová složitost, kdy útočník musí být schopen uložit N dvojic K, E K (P ). Toto jsou dva extrémní přístupy k řešení problému nalezení klíče, ze kterých ani jeden není příliš výhodný. V současnosti existuje několik pravděpodobnostních metod, jak snížit čas potřebný k nalezení klíče za cenu navýšení potřebné paměti a opačně. Ve druhé kapitole této práce popíšu současný stav poznatků o problematice time-memory tradeoff útoků. V závěru této kapitoly shrnu možnosti, jak efektivněji ukládat tabulky předpočítané v offline fázi útoku. V první části třetí kapitoly se budu zabývat odhadem počtu kolizí v Hellmanových tabul- 2

8 1. Úvod kách s rozlišitelnými body. Vyjdu z Hellmanových vzorců pro odhad počtu bodů pokrytých tabulkami bez rozlišitelných bodů a odvodím vzorec pro případ s rozlišitelnými body. Ve druhé části třetí kapitoly se zabývám tvorbou tabulek pro vybrané blokové a proudové šifrovací algoritmy. Následně provedu útok pomocí těchto tabulek na šifru RC4 se 40 bitovým klíčem. Pro výpočet tabulek s šifrou A5/1 jsem musel tuto šifru implementovat, protože jediná dostupná implementace je příklad demonstrující její fungování a je velmi neefektivní. Výpočet všech tabulek v této kapitole byl velmi časově náročný a celkem trval přibližně 3 měsíce. Ve čtvrté kapitole se podrobněji zabývám fungováním šifry A5/1 a její přechodovou funkcí mezi vnitřními stavy. 3

9 2 Techniky time-memory tradeoff kryptoanalýzy V této kapitole shrnu dosavadní poznatky o time-memory tradeoff kryptoanalýze. Postupně se budu věnovat těmto útokům od prvního představení této myšlenky M. Hellmanem až po novější přístupy pro time-memory-data kryptoanalýzu proudových šifer. Jednotlivé techniky je možné rozdělit do dvou základních kategorií podle typu algoritmů, na které je možné je použít blokové šifry, proudové šifry a hashovací funkce. Obecně je možné tento druh útoků použít na libovolnou jednosměrnou funkci. V této kapitole se budu postupně věnovat útokům na blokové a proudové šifry. 2.1 Blokové šifry V této části představím základní techniky použitelné k útokům na blokové šifry. Mezi ně patří Hellmanovy tabulky, Rivestovo vylepšení za použití rozlišitelných bodů a rainbow tabulky Hellmanovy tabulky První obecnou metodu, jak využít principu Time-memory tradeoff v kryptoanalýze, představil v roce 1980 Martin E. Hellman [10]. Tento postup je výrazně efektivnější než hledání řešení oběma naivními metodami (prohledávání hrubou silou a předpočítání celé tabulky klíčů). Tato metoda vyžaduje před samotným útokem předpočítat pomocnou tabulku. Předpočítání je možné provést předem a potom tato data využívat pro všechny útoky na daný kryptosystém. K provedení tohoto útoku je nutné aby útočník byl schopen získat dvojici nešifrovaný text (P ) odpovídající šifrovaný text (E K (P )) pro jím zvolené P (choosen plaintext attack) stejně jako při naivním přístupu k vytváření tabulky. Hellman popsal svou metodu s využitím blokové šifry DES, ale jeho postup je možné aplikovat na libovolnou jednosměrnou funkci. DES pracuje s bloky o velikosti 64 bitů a 56 bitovým klíčem. Pro libovolný pevně daný blok dat P 0 Hellman definoval funkci f(k) = R[E K (P 0 )] (2.1) kde R je nějaká redukční funkce z 64 bitů na 56 bitů. Na začátku fáze předpočítání útočník vybere hodnoty SP 1, SP 2,..., SP m (startovací body starting points) jako náhodné hodnoty z množiny {1, 2,..., N} s uniformní pravděpodobností. Hodnota m označuje počet řádků pomocné tabulky. Oz- 4

10 načme 2. Techniky time-memory tradeoff kryptoanalýzy SP i = X i,0 1 i m Následně zvolíme hodnotu t určující počet sloupců v předpočítané tabulce. Definujeme X i,j = f(x i,j 1 ) 1 i m 1 j t (2.2) Tento vzorec nám ukazuje postup jak spočítat celou tabulku všech hodnot X i,j 1 i m 1 j t. Označíme si X i,t = EP i hodnoty v posledním sloupci tabulky (koncové body end points). Z této tabulky si musíme zapamatovat pouze dvojice SP i, EP i 1 i m, ostatní hodnoty můžeme zapomenout. V případě potřeby je možné je dopočítat z příslušného SP i. Seznam dvojic SP i, EP i seřadíme podle EP i. Takto seřazený seznam dvojic je konečným výsledkem fáze předpočítání. Předpokládejme, že někdo zvolil klíč K a útočník získal dvojici P 0 a C 0 = E K (P 0 ). Nyní je schopen dopočítat Y 1 = R(E K (P 0 )) = f(k). Může se podívat jestli Y 1 je shodné s některým EP i v tabulce. Pokud Y 1 = EP i potom buď K = X i,t 1 nebo existuje více hodnot, na kterých dá funkce f výsledek EP i. Toto lze detekovat dopočítáním hodnoty X i,t 1 z SP i a ověřením že C 0 = E Xi,t 1 (P 0 ). Pokud tato rovnost platí, byl nalezen hledaný klíč K, v opačném případě se jedná o falešný poplach. Pokud Y 1 není mezi EP i, potom K není v předposledním sloupci tabulky. Je třeba spočítat Y 2 = f(y 1 ) a zkontrolovat, jestli Y 2 je mezi EP i. Pokud se tam vyskytuje, je třeba ověřit, že se nejedná o falešný poplach. Pokud jde o falešný poplach nebo se mezi EP i nevyskytuje, potom K není v t 2 sloupci tabulky. Tento algoritmus se aplikuje až do nalezení klíče nebo projití všech sloupců tabulky. Za předpokladu, že by všech mt položek v tabulce bylo navzájem různých, dostaneme pravděpodobnost úspěchu nalezení klíče P (S) = mt (2.3) N čímž získáváme, že pravděpodobnost úspěchu závisí na čase i použité paměti. Jelikož startovní body jsou voleny náhodně a redukční funkce nemůže být injektivní, mohou se položky v tabulce opakovat. S využitím předpokladu, že hodnoty jsou mezi položky rozdělené s uniformní pravděpodobností, dostaneme dolní odhad pravděpodobnosti [10] P (S) 1 N m t 1 ( ) N it j+1 (2.4) N i=1 j=0 Odtud vyplývá, že nemá velký smysl zvětšovat hodnoty m a t nad hodnoty ( ) j+1 kdy mt 2 N it. = N, protože N = exp ijt. N = exp mt2 N. V případě že 5

11 2. Techniky time-memory tradeoff kryptoanalýzy mt 2 N, většina sčítanců v sumě bude velmi malých. Pokud naopak mt 2 N, většina sčítanců se bude blížit jedné a výsledný odhad pravděpodobnosti bude P (S) mt N (2.5) K omezení, že nemá smysl zvyšovat hodnoty t a m nad hodnotu, kdy mt 2 = N, můžeme dospět také úvahou s narozeninovým paradoxem [3]. Pravděpodobnost, že dvě podmnožiny A, B množiny C mají neprázdný průnik, je velmi vysoká pokud A B C. Pokud budeme předpokládat, že prvních m řádků tabulky je navzájem různých, potom obsahují mt různých klíčů. Další přidaný řádek by obsahoval dalších t klíčů. Dohromady dostaneme omezení mt 2 N. V případě že mt 2 = N, je možné odhad pravděpodobnosti 2.4 numericky vyčíslit a získáme hodnotu 0, 8 mt N. Pokud zvolíme jednoduchý kryptosystém, kde N = 1024 a m = t = 10, získáme odhad pravděpodobnosti P (S) 0, Experiment provedený Martinem E. Hellmanem [10] s kryptosystémem DES omezeným na prostor klíčů velikosti N a dvaceti různými volbami funkce R měl úspěšnost od 6, 8% do 9, 1%. Pravděpodobnost úspěchu tedy bude malá pro takové m a t. K jejímu zlepšení je možné použít více tabulek s různě zvolenými funkcemi R. Při použití dobrého kryptosystému je možné funkci f považovat za náhodnou a tedy i malé rozdíly R zajistí různost řetězců v jednotlivých tabulkách. Pravděpodobnost úspěchu při použití více tabulek je [12] ( P s N m t 1 ( i=1 j=0 1 it N ) j+1 ) l (2.6) Kde l označuje počet použitých tabulek. Zopakování předchozího pokusu s použitím dvaceti tabulek s různými volbami R přineslo úspěšnost 81, 3%. Numerické vyhodnocení výrazu 2.6 nám dává odhad pravděpodobnosti pro tuto volbu parametrů P s 0, Pokud si T označíme čas potřebný k realizaci online fáze, M velikost potřebné paměti a P čas trvání offline fáze, potom tento postup nabízí timememory tradeoff útok s parametry MT 2 = N 2, kde P = N, 1 T N, N M N [3]. Omezení pro M plyne z toho, že pokud by M < N, tak by potom potřebný čas byl větší než samotné zkoušení všech možných klíčů. 6

12 2.1.2 Rozlišitelné body 2. Techniky time-memory tradeoff kryptoanalýzy Velkou nevýhodou Hellmanovy metody je potřeba velkého množství přístupů na disk, protože náhodné čtení z disku je časově mnohem náročnější než výpočet funkce f. V roce 1982 navrhl R. Rivest [5] metodu rozlišitelných bodů (Distinguish point). Rozlišitelný bod je klíč splňující nějakou snadno ověřitelnou podmínku. Například posledních k bitů klíče je nulových. Řetězy klíčů jsou nyní generovány z daného startovního bodu až do dosažení rozlišitelného bodu, což znamená, že jednotlivé řetězy mohou mít různé délky. Také se mohou během výpočtu objevit cykly, které nikdy nedosáhnou rozlišitelného bodu. Toto je nepravděpodobné, pokud střední hodnota délky řetězce je menší než N. Cykly bez rozlišitelného bodu (např. řetězy více než dvakrát delší než je průměrná délka) mohou být vynechány. Dále jsou vynechány řetězy končící ve stejném rozlišitelném bodě [8] z důvodu omezení redundance dat. Z každé skupiny takových řetězů je ponechán pouze jeden. Takto upravené tabulky se nazývají perfektní tabulky. Tato metoda výrazně zrychluje kryptoanalýzu, protože na disku je třeba vyhledávat pouze rozlišitelné body. Z dané zprávy C se spočítá Y 1 = R(C). Odtud se dále vytváří řetěz f(y 1 ), f 2 (Y 1 ), f 3 (Y 1 ),..., f k (Y 1 ) kde f k (Y 1 ) je rozlišitelný bod. Tento bod se nyní vyhledá v tabulce koncových bodů. Pokud t je průměrná délka řetězce, potom tento postup vyžaduje t-krát méně vyhledání mezi koncovými body než původní Hellmanova metoda. Když je bod nalezen, zrekonstruuje se příslušný řetěz a zkontroluje se, jestli obsahuje hledaný klíč K. Ve většině případů řetěz tento klíč neobsahuje. To je způsobeno použitím funkce R a slučováním řetězů. V případě, že řetěz klíč K neobsahuje, je potřeba postup zopakovat s jinou volbou funkce R. Tento postup však stále spotřebuje značné množstvím času na detekci falešných poplachů. Můžeme zavést detekci falešných poplachů [6]. Definujeme množinu pozic α i v řetězci jako kontrolní body. Zvolíme si nějakou funkci G na těchto bodech. Pro každý řetězec j a kontrolní bod α i spočítáme hodnoty G(X j,αi ), které uložíme spolu s příslušným řetězcem. Když počítáme hodnoty řetězce Y 1, Y 2,..., Y s, musíme ukládat odpovídající hodnoty G(Y αi +s t). V případě, že Y s je rozlišitelný bod, který máme uložený v tabulce, provedeme test, zda se jedná o falešný poplach. Porovnáme všechny hodnoty funkce G na kontrolních bodech v řetězci získaném z Y 1 s hodnotami uloženými v tabulce u nalezeného kontrolního bodu. Pokud se tyto hodnoty liší v alespoň jednom případě, víme, že se jedná o falešný poplach. Jestliže jsou shodné, nejsme 7

13 2. Techniky time-memory tradeoff kryptoanalýzy schopní rozlišit, jestli se jedná o falešný poplach, a musíme provést kontrolu stejně jako v případě bez tohoto detekčního mechanismu. Funkce G by měla být snadno vypočitatelná a její výsledek by měl zabrat málo prostoru Rainbow tables Dalším vylepšením Hellmanova přístupu jsou rainbow tables [12]. Tyto tabulky jsou vytvářeny podobnou metodou jako původní varianta, pouze pro každý sloupec je použita unikátní redukční funkce R i. f i (K) = R i [E K (P 0 )] 1 i < t (2.7) X i,j = f j (X i,j 1 ) 1 i m 1 j t (2.8) Vyhledání klíče v tímto způsobem vytvořené tabulce se provádí podobně jako u klasických tabulek. Nejprve spočítáme R t 1 (C) a výsledek hledáme v posledním sloupci tabulky. Pokud jej nalezneme, zrekonstruujeme příslušný řádek a zkusíme v něm najít hledaný klíč. Pokud zjistíme že se jedná o falešný poplach nebo v posledním sloupci hledanou hodnotu nenajdeme, pokračujeme výpočtem (f t 1 R t 2 )(C), (f t 1 f t 2 R t 3 )(C) a tímto způsobem dále dokud nenajdeme příslušný klíč nebo dokud tabulku neprojdeme celou. V původní variantě pokud se ve dvou různých řetězcích objevila stejná hodnota, tyto řetězce se sloučily. V rainbow tabulce se řetězce sloučí pouze v případě že se ve dvou řetězcích objeví stejná hodnota na stejných pozicích. Pokud se objeví na různých pozicích, nedojde ke sloučení protože ve výpočtu řetězce se pokračuje u každé z těchto hodnot jinou funkcí. Pravděpodobnost úspěchu rainbow tabulky o m řádcích a t sloupcích je [12] P s = 1 Π t i=1(1 m i N ) (2.9) m 1 = m m n+1 = N(1 exp mn N ) Můžeme porovnat pravděpodobnost úspěchu rainbow tabulky a původní varianty. Rainbow tabulka o rozměrech mt t má přibližně stejnou pravděpodobnost úspěchu jako t klasických tabulek o rozměrech m t. Obě tabulky pokrývají mt 2 klíčů rovnoměrně vygenerovaných t různými redukčními funkcemi. 8

14 2.2 Proudové šifry 2. Techniky time-memory tradeoff kryptoanalýzy Time-memory tradeoff analýza proudových šifer má určité odlišnosti od blokových šifer. U blokové šifry potřebujeme jeden blok nešifrovaných dat a odpovídající zašifrovaný blok, ale znalost většího množství dat nám nijak neusnadní analýzu. U proudových šifer nám větší množství zachycených dat analýzu zjednoduší. V této kapitole nejprve uvedu model proudové šifry, se kterým se bude pracovat v následujících útocích. Dále popíšu způsoby time-memory tradeoff útoků na proudové šifry se zdůrazněním odlišností od blokových šifer Model proudové šifry V následujícím textu uvažujme následující model proudové šifry proudová šifra je systém stavů s přechodovou funkcí mezi nimi. V každém stavu tento systém vyprodukuje jeden výstupní pseudonáhodný bit a přejde do následujícího stavu. Pro každou šifru existuje funkce z množiny všech klíčů dané šifry do množiny stavů tohoto systému. Touto funkcí je určen iniciální stav, ze kterého jsou následně generovány pseudonáhodné bity pro samotné šifrování. V dalším textu bude pojem klíč označovat řetězec vygenerovaných pseudonáhodných bitů, nikoli původní klíč šifry použitý k výběru počátečního stavu. Šifrování následně probíhá pomocí operace xor, aplikované na nešifrovaný text a vygenerovaný klíč. Tady vidíme, že požadavky na provedení tohoto útoku jsou mírnější než u blokových šifer, jedná se pouze o known plaintext attack. U blokových šifer potřebujeme mít dvojici (nešifrovaná zpráva, šifrovaná zpráva) pro námi vybraný blok dat (chosen plaintext attack). Naším úkolem při kryptoanalýze je pro daný řetězec bitů klíče určit stav, ze kterého byl tento řetězec vygenerovaný. Není nutné počítat originální klíč, který byl použitý k výběru tohoto stavu. Zároveň není nutné určit přímo počáteční stav, stačí zjistit libovolný stav, přes který se během generování prošlo. Toto zpravidla umožní zjistit i iniciální stav, i když přechod k předchozímu stavu nemusí být deterministický Babbageova metoda Nejjednodušší metoda je opět prohledávání hrubou silou, kdy je potřeba alespoň n bitů klíče. Nechť 2 n je počet stavů našeho systému. Pro každý možný stav můžeme vygenerovat n bitů klíče a porovnat je s naším klíčem. Počet všech stavů je ovšem 2 n, takže tento útok by trval velmi dlouho. Vylepšený útok na proudové šifry popsali Steve Babbage [13] a nezávisle na 9

15 2. Techniky time-memory tradeoff kryptoanalýzy něm J. D. Golic [7]. Tento útok budu v textu dále označovat BG. Původní Hellmanova metoda nenabízí žádné přímočaré vylepšení parametrů útoku, pokud budeme mít k dispozici větší množství dat. Předpokládejme, že získáme 2 m + n 1 vygenerovaných bitů klíče, tedy máme D = 2 m překrývajících se podposloupností délky n. Také vybereme 2 r navzájem různých stavů šifry, kde z každého z nich vygenerujeme n bitovou posloupnost. Pokud najdeme nějakou posloupnost v obou seznamech, potom jsme s vysokou pravděpodobností našli hledaný stav. Aby tato shoda byla pravděpodobná, potřebujeme aby m + r n. Nalezení shody v takovém seznamu je mnohem rychlejší než 2 n kroků. K tomuto útoku je možné přistoupit dvěma různými způsoby. První z nich je vlastně pouze variantou útoku hrubou silou, kde nemusíme hledat jeden konkrétní klíč, ale stačí nalézt alespoň jeden klíč z dané množiny. Nejprve vytvoříme seznam 2 m překrývajících se posloupností ze zachycených dat, který následně seřadíme. Během samotného útoku následně generujeme náhodně stavy, ze kterých vypočítáme n bitovou posloupnost klíče. Tuto posloupnost potom hledáme v našem seznamu. Očekáváme, že uspějeme po 2 n m pokusech. Druhý typ útoku je analogický prvnímu, pouze využívá fázi předpočítání dat. Jedná se tedy o time-memory tradeoff útok. V offline fázi nejprve vygenerujeme 2 r stavů a odpovídajících výstupních n bitových klíčů. Tento seznam následně seřadíme. Tato fáze může být provedena pouze jednou a následně použita při všech útocích na danou šifru. Nyní jsou z našeho zachyceného klíče postupně vybírány n bitové posloupnosti, z nichž každou se pokusíme najít v předpočítaném seznamu. Očekávaný počet podposloupností, které budeme potřebovat k nalezení požadované shody, je 2 n r. Tento útok urychluje prohledání všech možných stavů kryptosystému, nikoli všech možných počátečních stavů. V případě, že počet všech stavů je výrazně větší než počet počátečních stavů (počet všech možných klíčů), potom tento útok nepřinese žádné zlepšení. 2.3 Biryukova a Shamirova metoda Vylepšený útok na proudové šifry popsali Biryukov a Shamir [3]. Tuto variantu budu dále v textu značit BS. Jejich myšlenka byla použít kombinaci Hellmanova útoku na blokové šifry a Babbageova útoku na proudové šifry. Jejich útok je založený na vytvoření tabulek pokrývajících možné výstupy proudové šifry. Předpokládejme, že máme k dispozici D překrývajících se výstupních sekvencí. Našim cílem je najít počáteční stav odpovídající 10

16 2. Techniky time-memory tradeoff kryptoanalýzy alespoň jedné z těchto sekvencí. Je možné redukovat množství pokrytých klíčů v předpočítaných tabulkách z N na N D se zachováním vysoké pravděpodobnosti nalezení alespoň jednoho klíče. Tuto úpravu je možné provést dvěma způsoby zmenšením počtu řádků v jednotlivých tabulkách nebo snížením počtu tabulek. Autoři tohoto postupu vybrali druhou možnost a použili pouze t D tabulek. Protože potřebujeme pokrýt pouze N D různých klíčů, trvání fáze předpočítání se zredukuje na P = N D oproti původní Hellmanově variantě P = N. Každá tabulka potřebuje velikost paměti m, ale celkové množství paměti se zredukuje na M = tm D Během online fáze útoku potřebujeme pro každý z D klíčů vypočítat funkci f i t-krát. Máme t D funkcí f i, takže dostaneme že potřebný čas je T = t 2. Pomocí rovnosti mt 2 = N je možné odvodit výsledné parametry útoku MT 2 D 2 = N 2, kde D 2 T N Možnost použití u blokových šifer Za určitých podmínek je možné tuto myšlenku použít i pro útoky na blokové šifry [2]. Předpokládejme, že máme D různých dvojic P, E K (P ) pro D navzájem různých klíčů a chceme najít klíč odpovídající alespoň jedné takové dvojici. Tento Time-Memory-Key tradeoff je principiálně identický s předchozím Time-Memory-Data tradeoff pro proudové šifry. 2.4 Rozlišitelné body pro proudové šifry Metodu rozlišitelných bodů můžeme aplikovat i na proudové šifry [3]. Uvažujme nejdříve Babbageův útok 2. typu.zatímco v případě Hellmanova útoku se rozlišitelné body s určitou pravděpodobností na počítaném řetězci vždy objeví, v tomto případě pracujeme s řetězci délky jedna. Toto nás nutí generovat stavy, zkoušet jestli výstup bude mít vlastnost rozlišitelného bodu a nevyhovující stavy zahazovat. Označme si R podíl rozlišitelných bodů mezi všemi stavy. Potom fáze předpočítání je prodloužena o pomalé hledání rozlišitelných bodů a tedy je P = M/R. Naopak čas online fáze útoku se zkrátí na T = DR, protože je potřeba vyhledávat pouze rozlišitelné body. Aby byla zachována rozumná pravděpodobnost úspěchu, musí být splněna rovnost MDR = NR, to znamená MD = T P pro všechny možné hodnoty R [3]. Toto umožní nezávislou volbu parametrů útoku tak, že T P = N a MD = N. Tato metoda nemá žádný asymptotický vliv na Biryukovu a Shamirovu metodu útoku. Pouze redukuje počet přístupů na disk z t 2 na t, což ovšem v praxi znamená velké zlepšení, protože přístup na disk je velmi pomalá 11

17 2. Techniky time-memory tradeoff kryptoanalýzy operace. Pro některé proudové šifry je možné určit stavy, produkující výstup začínající k nulovými bity [3, 4]. Označme si číslo R = 1 jako odolnost proti 2 k vzorkování (Sampling resistence), kde k znamená délku prefixu výstupního řetězce, pro kterou je možné určit všechny stavy produkující takový výstup. To je téměř vždy možné pro k = 1, ale pro rostoucí hodnotu k se zvyšuje obtížnost nalezení takových stavů. Například pro šifru A5/1 je možné vyjmenovat všechny stavy začínající až 16 nulovými bity. Tato vlastnost má velký dopad na Babbageův útok, protože je možné zkrátit dobu útoku bez nutnosti prodloužení fáze předpočítání dat. Zároveň umožňuje větší výběr parametrů u vylepšeného útoku BS [3]. Předpokládejme, že máme proudovou šifru mající 2 n = N stavů s odolností proti vzorkování R = 1. Potom můžeme označit plné jméno stavu n 2 k bitový řetězec definující stav, výstupní jméno stavu n bitový řetězec produkovaný tímto stavem. Každému stavu produkujícímu výstup začínající k nulami můžeme přiřadit n k bitové krátké jméno (sloužící k efektivnímu popisu speciálních stavů) a odpovídající krátké výstupní jméno (výstupní jméno bez prvních k nulových bitů). Pro každé krátké jméno můžeme snadno vypočítat krátké výstupní jméno. Nyní můžeme vylepšený útok realizovat na menším prostoru velikosti 2 n k krátkých jmen a krátkých výstupních jmen. Předpokládáme, že DR > 1, aby se v zachycených datech vyskytl alespoň jeden stav s k nulovými bity. V opačném případě musíme změnit hodnotu k. V novém prostoru máme nyní místo N pouze NR stavů a místo D máme k dispozici DR zachycených klíčů. Dostaneme MT 2 (DR) 2 = (NR) 2, což po vykrácení R 2 odpovídá rovnici původního útoku. Upravený útok ale má dvě výhody. První z nich je, že v původním útoku máme omezení D 2 T, což může být pro velké hodnoty D velmi omezující. V tomto případě dostaneme (DR) 2 T, kde (DR) 2 může být volbou k zmenšeno až na 1, pokud je odolnost proti vzorkování dané šifry dostatečně nízká. Druhou výhodou je, že počet přístupů na disk je redukován z t na tr, protože pouze DR rozlišitelných bodů musí být vyhledáno v každé z t D tabulek Popis šifry A5/1 a jejího vzorkování A5/1 [9] je proudová šifra používaná v GSM sítích vyvinutá v roce Tato šifra má ještě slabší variantu A5/2, která je snadno prolomitelná se znalostí jen malého množství vygenerovaných dat během O(2 16 ) kroků [4]. A5/1 používá klíč velikosti 64 bitů, který určuje jeden vnitřní stav šifry 12

18 2. Techniky time-memory tradeoff kryptoanalýzy registr délka posunovací bity obnovovací bity R , 16, 17, 18 R , 21 R , 20, 21, 22 Tabulka 2.1: Přehled registrů, bity jsou číslovány od 0 jako iniciální. Vnitřní stav šifry je určen třemi posuvnými registry (R1, R2 a R3) o velikostech 19, 22 a 23 bitů (v tomto pořadí). Při přechodu do následujícího stavu se posunou jen některé registry. Zda se daný registr posune závisí na hodnotách posunovacích (clocking) bitů. Pozice těchto bitů jsou popsány v tabulce 2.1. Funkce majority(b1, b2, b3) určuje, které registry se při následujícím přechodu posunou. Hodnoty b1, b2 a b3 jsou postupně posunovací bity registrů R1, R2 a R3. { 0 Pokud alespoň 2 z hodnot b1 3 jsou 0 majority(b1, b2, b3) = 1 Pokud alespoň 2 z hodnot b1 3 jsou 1 (2.10) Registr Ri se posune právě když posunovací bit bi = majority(b1, b2, b3). V případě, že se registr posune, bude hodnota nejméně významného bitu rovna výsledku aplikace funkce xor na obnovovací bity posunovaného registru. Výstupní bit je hodnota funkce xor aplikovaná na nejvýznamnější bit každého registru. Pro šifru A5/1 je ovšem snadné najít všechny stavy produkující výstup začínající daným prefixem α délky k. Protože posunovací bity jsou zvolené uprostřed registrů, můžeme volit nezávisle bity produkující výstup a posunovací bity. Stavy produkující výstupní řetězec s prefixem α získáme pomocí tohoto algoritmu [4]: 1. Nastavíme 19 bitů registru R1 a bity 0-10 registrů R2 a R3 libovolně 2. V takovém částečném stavu víme, které bity se v příštích cyklech objeví na pozici ovlivňující jejich posun, a tedy také víme, které bity se objeví na nejlevější pozici produkující výstup, který můžeme ovlivnit 3. Při každém přechodu do dalšího stavu se posunou vždy alespoň dva registry, takže se vždy posune alespoň jeden z registrů R2, R3. Na pozici nejvýznamnějšího bitu se tedy posune jeden dosud nespecifikovaný bit, který můžeme vybrat takovým způsobem abychom dostali požadovaný výstup. V případě, že se posune pouze jeden z registrů 13

19 2. Techniky time-memory tradeoff kryptoanalýzy R2 nebo R3, máme jednoznačně dáno, jakým způsobem tento nový bit vybrat. Přibližně v polovině případů se posunou oba registry a potom můžeme volit ze dvou možností volby těchto bitů. V tomto procesu můžeme pokračovat, dokud máme v registru nějaký nespecifikovaný bit. Protože každý registr se posune průměrně ve 3 4 případů, můžeme tímto procesem najít stav generující požadovaný k-bitový prefix α. Touto metodou vždycky vygenerujeme stav produkující prefix α a jsme schopní vygenerovat všechny takové stavy. Složitost získání jednoho takového stavu s daným prefixem délky k je k posunutí registrů a určením nespecifikovaného bitu při každém posunu. To znamená, že je lineární vůči délce určeného prefixu a počtu generovaných stavů. Díky této vlastnosti můžeme v tabulce obsahující dvojice (stav pseudonáhodný výstup) ušetřit určité množství místa na disku. Celý stav A5/1 má velikost 64 bitů. My však pro uložení stavu potřebujeme pouze 41 bitů částečného stavu vybraného v kroku 1 předchozího algoritmu plus 7 bitů potřebných při volbě hodnoty registru v kroku 3. Dále můžeme zkrátit délku ukládaného prefixu o k bitů, který je pro všechny prefixy stejný. Tímto ušetříme místo na disku, které můžeme využít pro uložení většího množství dvojic (stav, výstup). 2.5 Útok na proudové šifry používající inicializační vektory Dosud zmíněné útoky pracovaly s funkcí přiřazující vnitřnímu stavu šifry její výstup. Kromě třídy útoků na proudové šifry, které se snaží k výstupnímu prefixu šifry najít odpovídající vnitřní stav, také existuje ještě druhá třída TMTO útoků na proudové šifry. To jsou útoky které nepracují s přímo s vnitřními stavy šifry, ale s klíči použitými k inicializaci těchto stavů. Nevýhoda této druhé třídy útoků je, že není možné využít většího množství zachycených dat podobně jako u blokových šifer. V této části budeme hovořit o útocích druhého typu na šifry používající veřejně známý inicializační vektor. O. Dunkelman představil útok na tyto šifry používající inicializační vektory [11]. Snaží se tedy invertovat funkci přiřazující klíči a inicializačnímu vektoru výstup šifry. Jeden typ přístupu k tomuto problému je považovat inicializační vektor za součást tajného klíče. Tento přístup ovšem nevyužívá faktu, že IV není tajný. Dunkelman navrhl pokusit se invertovat jednu z funkcí přiřazující klíči výstup šifry pro pevně zvolený inicializační vektor. Označme si V počet možných inicializačních vektorů a K počet mož- 14

20 2. Techniky time-memory tradeoff kryptoanalýzy ných klíčů a předpokládejme, že D V. V offline fázi nejprve zvolíme V D inicializačních vektorů a pro každý provedeme potřebné výpočty v závislosti na zvolené metodě TMTO útoku (Hellmanovy tabulky nebo rainbow tabulky). V online fázi útoku během odposlechu dat počkáme, dokud nezachytíme přenos používající jeden z námi vybraných inicializačních vektorů. Pro tento zachycený výstup proudové šifry se následně pokusíme pomocí předpočítaných tabulek najít odpovídající klíč. Časová složitost takto upraveného útoku je T = t 2, paměťová složitost M = mtv D. Celkem dostaneme T M 2 D 2 = (KV ) 2. Tento tradeoff je stejný jako varianta považující inicializační vektor za tajný uvedená na začátku této části. Oproti ní má však několik výhod. Protože vyhledávání klíče pro pevně zvolený IV se snaží najít odpovídající klíč k právě jednomu výstupnímu prefixu (nejedná se o vyhledání alespoň jednoho z množiny klíčů), nejsme v tomto případě omezeni nerovností D 2 T a proto můžeme využít mnohem větší množství dostupných dat než v předešlém případě. Zároveň je možné ukázat, že tento útok je rychlejší než prohledávání hrubou silou, pokud délka inicializačního vektoru je nejvýše 1, 5 násobek délky klíče. Další výhodou je menší paměťová náročnost. Pro uložení dvojice (SP, EP) je potřeba 2 log 2 K bitů, zatímco na předchozí případ bylo potřeba 2 log 2 K + log 2 V bitů. Tento přístup má zároveň i jednu nevýhodu a tou je nižší pravděpodobnost úspěchu. Pro úspěch je nutné zachytit zprávu šifrovanou s použitím některého vybraného inicializačního vektoru a zároveň musí být použitý klíč pokrytý předpočítanou tabulkou. Ve většině protokolů nejsou inicializační vektory voleny náhodně. Většinou je náhodně zvolený pouze první vektor a ten je následně inkrementován. Znalost o volbě inicializačních vektorů můžeme využít při volbě inicializačních vektorů v offline fázi. Proto ve většině aplikací pravděpodobnost úspěchu útoku není nižší než v předešlém případě. Tato metoda je použitelná i v případě, že máme k dispozici data vyprodukovaná pomocí několika různých klíčů a chceme určit alespoň jeden z nich. 2.6 Metody efektivního uložení předpočítaných tabulek Ve všech typech time-memory tradeoff útoků je nutné ukládat předpočítané tabulky. Tyto tabulky obsahují velké množství dat. Velikost disků, které jsou k dispozici, klade omezení na volbu parametrů útoku, které mohou znamenat neproveditelnost útoku v praxi. Proto je důležité navrhnout efektivní způsob jejich uložení, který umožní uložení většího množství dat při stejné kapacitě 15

21 2. Techniky time-memory tradeoff kryptoanalýzy disků. Úkolem je co nejefektivnější uložení seznamu dvojic (počáteční bod, koncový bod). Klasické Hellmanovy tabulky vyžadují uložit oba body vždy celé. Pro některé varianty time-memory útoků je ovšem dostatečné ukládat pouze části těchto bodů. V této části přiblížím některé metody, jakým způsobem je možné tabulky ukládat efektivněji Rozlišitelné body a počáteční stavy V případě použití rozlišitelného bodu s nulovými posledními k bity není nutné tyto nuly ukládat. Tímto způsobem je možné ušetřit k bitů pro každou dvojici v tabulce. Vzhledem k velkému množství dvojic v tabulce je i pro malé hodnoty k možné tímto způsobem ušetřit velké množství místa na disku, které je možné využít pro uložení většího počtu dvojic. Stejnou techniku jako u rozlišitelných bodů je v některých případech možné použít i u počátečních bodů. V případě sekvenčního výběru počátečních bodů není vždy nutné ukládat je celé. Pokud vytvoříme tabulku obsahující 2 m dvojic, kde velikost počátečního i koncového bodu je n, můžeme počáteční body ukládat s použitím m bitů paměti. Stačí, když uložíme první vygenerovaný počáteční bod a dále v tabulce ukládáme pouze inkrement daného počátečního bodu vzhledem k tomuto prvnímu bodu. Tímto postupem tedy můžeme ušetřit n m bitů Proudové šifry s nízkou odolností proti vzorkování Také můžeme ušetřit místo na disku při útoku na proudové šifry s nízkou odolností proti vzorkování s použitím BS útoku, jestliže útok realizujeme na zmenšeném prostoru krátkých jmen a krátkých výstupních jmen. Například pro útok A5/1 s R = 1 znamená, že pro uložení jedné dvojice SP, EP potřebujeme 96 bitů místo plných 128 bitů. Díky tomu můžeme uložit o třetinu 2 16 více dvojic při stejné velikosti disku. 16

22 3 Kolize v Hellmanových tabulkách s rozlišitelnými body V této kapitole nejprve odvodím teoretické vzorce pro odhad počtu navzájem různých rozlišitelných bodů v Hellmanově tabulce s rozlišitelnými body. V další části této kapitoly popíšu detaily výpočtů tabulek pro algoritmy, kterým jsem se v této práci věnoval a porovnám vlastnosti získaných tabulek s hodnotami získanými podle odvozených vzorců. Tyto výpočty byly velmi časově náročné, vytvoření všech tabulek trvalo zhruba tři měsíce. Pro výpočet tabulek s šifrou A5/1 jsem musel tuto šifru implementovat. Jediná dostupná implementace je demonstrační příklad, jak tento algoritmus funguje, a je velmi neefektivní. V závěru této kapitoly popíšu útok pomocí těchto tabulek na čtyřicetibitovou šifru RC4 a uvedu dosaženou úspěšnost tohoto útoku. 3.1 Pravděpodobnost a očekávaný počet kolizí V této kapitole se pokusím odhadnout očekávaný počet dosažených navzájem různých rozlišitelných bodů v tabulce. Velkou výhodou použití metody s rozlišitelnými body je možnost jednoduše detekovat kolize. V žádném řetězci končícím rozlišitelným bodem se nemohou vyskytnout dva stejné body. Pokud by se v některém z nich objevily, potom vznikne cyklus, protože tento opakující se bod se bude periodicky objevovat znovu a řetězec nikdy nedosáhne rozlišitelného bodu. Kolize dvou bodů z různých řetězců způsobí, že oba řetězce budou končit stejným rozlišitelným bodem. Protože výslednou tabulku je potřeba před online fází útoku seřadit podle koncových bodů, je snadné nalézt řetězce s duplicitními rozlišitelnými body a ponechat vždy pouze jeden z nich. Proto konečná tabulka po vynechání duplicitních rozlišitelných bodů neobsahuje žádnou kolizi. Zbývá odhadnout, kolik duplicitních řádků se objeví během předpočítávání tabulek, tedy o jakou část předpočítaných dat přijdeme. Předpokládejme, že máme prostor klíčů velikosti N a rozlišitelný bod má posledních M bitů nulových. Množinu všech rozlišitelných bodů označíme DP. Dále označme počet řádků vypočítané tabulky m. Budeme předpokládat, že přechodová funkce f mezi jednotlivými body řetězce je náhodná s uniformním rozložením mezi všechny možné klíče. Při odhadu vyjdu ze vzorce pro klasické Hellmannovy tabulky který upravím pro tabulky s DP, protože potřebujeme spočítat řetězce končící v navzájem různých rozlišitelných bodech. 17

23 3. Kolize v Hellmanových tabulkách s rozlišitelnými body Definujeme náhodnou proměnnou L modelující počet ne rozlišitelných bodů před dosažením rozlišitelného bodu na řádku vzniklém z počátečního bodu SP. Předpokládejme, že žádný počáteční bod nemá vlastnost rozlišitelného bodu. L = k f k (SP ) DP j N, j < k : f j (SP i ) / DP (3.1) Tato proměnná má geometrické rozložení pravděpodobnosti, takže P (L = k) = ( 1 1 ) k 1 1 (3.2) 2 M 2 M Předpokládejme, že počítáme i-tý řetězec. Definujeme náhodnou proměnnou M i. M i = 1 právě když se i-tý řetězec nesloučí s žádným předchozím, 0 jinak. Označme si množinu A i množinu všech klíčů bez vlastnosti rozlišitelného bodu na prvních i řádcích. Dále označme X i,j j-tý klíč na řádku i a NEW (X i,j ) je událost že klíč X i,j / A i 1. Vyjádříme pravděpodobnost, že M i = 1. P (M i = 1) = E(P (NEW (X i,1 ), NEW (X i,2 ),..., NEW (X i,l ))) = E(P (NEW (X i,1 ))P (NEW (X i,2 ) NEW (X i,1 )) P (NEW (X i, L) NEW (X i, L 1)... NEW (X i, 1))) E(P (NEW (X i,1 ))P (NEW (X i,2 ))... P (NEW (X i,l ))) = ( L ) ( L ) N A i 1 E P (NEW (X i,j )) = E = N j=1 j=1 ( ) N Ai k P (L = k) = N k=1 ( 1 1 ) k 1 ( ) 1 N 2 M 2 M Ai 1 k = N k=1 N A i 1 2 M A i 1 + N A i 1 (3.3) Definujeme si náhodnou proměnnou M i + = i j=1 M j, označující počet nesloučených řádků po vygenerování i řádků. Nyní musíme odhadnout velikost množiny A i. Zřejmě A 0 = 0. K odhadu A i pro i > 0 můžeme přistoupit několika způsoby. V nejjednodušší variantě 18

24 3. Kolize v Hellmanových tabulkách s rozlišitelnými body můžeme předpokládat, že na prvních i řádcích nejsou žádné kolize a tedy A i = E(L) i. E(M + 1 ) = 1 ( i ) E(M i + ) = E M j = j=1 i i E(M j ) = j=1 j=1 i j=1 N A j 1 2 M A j 1 + N A j 1. = N je(l) 2 M je(l) + N je(l) = i j=1 N 2 M j 2 M 2 M j + N 2 M j = i j=1 N 2 M j 4 M j 2 M j + N (3.4) Nepřesnost tohoto odhadu bude růst s počtem kolizí které nastanou kvůli předpokladu neexistence kolizí na prvních i řádcích. Druhou variantou je, že místo vygenerovaného počtu řádků budeme počítat s odhadem počtu nesloučených řádků na prvních i řádcích. Počet klíčů na prvních k řádcích můžeme odhadnout jako střední hodnotu počtu nesloučených řádků krát střední hodnotu počtu klíčů v řádku. Jedná se o dolní odhad počtu pokrytých klíčů. Předpokládejme, že řetězce o délkách l 1... l k kolidují do stejného rozlišitelného bodu. Potom ovšem pravděpodobně pokrývají alespoň max(l 1,..., l k ) různých klíčů, což je více než E(L). Vyjádříme si střední 19

25 3. Kolize v Hellmanových tabulkách s rozlišitelnými body hodnotu proměnné M + i E(M + 1 ) = 1 ( i ) E(M i + ) = E M j = j=1 i i N A j 1. E(M j ) = 2 j=1 j=1 M = A j 1 + N A j 1 i N E(L)E(M j 1 + ) 2 M E(L)E(M j 1 + ) + N E(L)E(M j 1 + ) = j=1 i j=1 N 2 M E(M + j 1 ) 2 M 2 M E(M + j 1 ) + N 2M E(M + j 1 ) = i j=1 N 2 M E(M + j 1 ) 4 M E(M + j 1 ) 2M E(M + j 1 ) + N (3.5) V obou případech dostáváme rekurzivní vzorec pro odhad počtu řádků, které se nesloučí před dosažením rozlišitelného bodu. Nyní odhadneme počet nesloučených řádků po dosažení rozlišitelného bodu. Pokud počet všech klíčů je N a M udává počet nulových bitů rozlišitelného bodu, počet rozlišitelných bodů je D = N. Toto je už jenom 2 M speciální případ předchozího modelu, kdy délka řetězce je vždy konstantní a má velikost 1. Definujeme si náhodnou proměnnou N q, která je rovna 1 právě když i-tý rozlišitelný bod se dosud na předchozích řádcích nevyskytl, 0 jinak. Zároveň definujeme náhodnou proměnnou N + q = q j=1 N i, reprezentující počet navzájem různých rozlišitelných bodů na prvních q řádcích. q 1 j=1 q 1 P (N q = 1) = j=1 P (N + q 1 = j)d D 1 D P (N 1 = 1) = 1 P (N + q 1 = j)d j D = q 1 j=1 P (N + q 1 = j)j = 1 E(N + q 1 ) D (3.6) 20

26 3. Kolize v Hellmanových tabulkách s rozlišitelnými body Nyní pomocí tohoto vztahu odvodíme střední hodnotu proměnných N + q. q 1 j=1 E(N 1 + ) = 1 q q E(N q + ) = E( N j ) = E(N j ) = j=1 j=1 E(N j ) + E(N q ) = E(N + q 1 ) + P (N q = 1) = E(N + q 1 ) + 1 E(N + q 1 ) D = D E(N + q 1 ) E(N + q 1 ) D + 1 = E(N q 1 + 1) )(D D + 1 = q 1 ( D ) 1 j = j=0 D ( D D ) 1 q D D (3.7) Za q nyní dosadíme počet nesloučených řádků před dosažením rozlišitelného bodu. Dostaneme konečný vzorec pro odhad U počtu unikátních rozlišitelných bodů v tabulce. U = N ( N 2 M 1 2 M N 2 M ) E(M + m ) N 2 M (3.8) Použití této metody ovšem zcela neodpovídá metodě výpočtu tabulek v praxi. Na začátku jsme použili předpoklad, že délka každého řetězce odpovídá náhodné proměnné s geometrickým rozložením. Při výpočtu ovšem může docházet ke tvorbě cyklů, které způsobí, že není možné dosáhnout rozlišitelného bodu. Používám metodu detekce cyklů [8], kdy jsou řetězce výrazně delší, než je střední hodnota jejich délky, zahazovány. Toto opatření ovšem narušuje předpoklad geometrického rozložení délky řetězců. Uvedené vzorce můžeme modifikovat pro použití s detekcí cyklů definováním náhodné proměnné L s pravděpodobnostní distribucí odpovídající zkráceným délkám řetězců. Tento vzorec je ovšem výrazně složitější než odhad 3.5 a pro výpočet odhadu počtu kolizí je nepraktický. Jeho odvození je uvedeno v příloze A. 21

27 3. Kolize v Hellmanových tabulkách s rozlišitelnými body 3.2 Metody výpočtu tabulek Součástí této práce je výpočet Hellmanových tabulek s rozlišitelnými body pro několik šifrovacích algoritmů a analýza počtu kolizí. Tyto tabulky jsem počítal pro následující šifrovací algoritmy: DES s fixní nešifrovanou zprávou DES s fixním klíčem A5/1 A5/1 s nulovým prvním registrem A5/1 s nulovým druhým registrem A5/1 s nulovým třetím registrem RC4 s 64 bitovým klíčem RC4 se 40 bitovým klíčem KASUMI Nyní popíšu detaily výpočtů pro jednotlivé šifrovací algoritmy DES s fixní nešifrovanou zprávou Při práci s šifrou DES jsem použil implementaci z OpenSSL [1]. Při výpočtu tabulek DES s fixní nešifrovanou zprávou jsem použil rozlišovací bod s nulovými posledními dvaceti bity. Jako nešifrovanou zprávu P jsem zvolil nulový blok. Funkce f (2.1) je definována následovně: f(x) = R(DES X (P ))) (3.9) kde funkce R je funkce použitá v knihovně OpenSSL [1] pro přiřazení klíče do struktury DES_key_schedule. Tato funkce pracuje s 64 bitovým blokem dat a z každého bajtu vezme 7 nejvýznamnějších bitů. Počáteční body jsem generoval sekvenčně každé samostatně počítající vlákno mělo unikátní hodnotu bajtu 0 a sekvenčně inkrementovaly hodnoty ostatních bajtů počínaje bajtem 7 jako nejméně významným. Protože řetězce generované tímto způsobem obsahovaly cykly, zavedl jsem prevenci cyklů [5] zahazováním řetězců delších než čtyřnásobek očekávané délky. 22

28 3. Kolize v Hellmanových tabulkách s rozlišitelnými body DES s fixním klíčem Při výpočtu tabulek DES s fixním klíčem jsem použil rozlišovací bod s nulovými posledními dvaceti bity. Jako fixní klíč K byl použitý blok osmi bajtů 0x3B. Funkce f (2.1) je definována následovně: f(x) = DES R(K) (X)) (3.10) Kde funkce R je stejná jako v případě DES s fixní nešifrovanou zprávou. Počáteční body jsem opět generoval sekvenčně každé samostatně počítající vlákno mělo unikátní hodnotu bajtu 0 a sekvenčně inkrementovaly hodnoty ostatních bajtů počínaje bajtem 7 jako nejméně významným. Během tohoto výpočtu se neobjevily žádné cykly A5/1 s plnou délkou klíče Tento algoritmus budu nadále v textu označovat jako A5/1 R123. Při výpočtech s šifrou A5/1 jsem použil efektivnější implementaci popsanou ve článku Biryukova, Shamira a Wagnera [4], jejíž podrobnější popis je uvedený v sekci 4.1. Při práci s touto šifrou jsem nepracoval s přiřazováním stavů danému klíči, ale přímo se stavy. Díky tomuto zjednodušení jsem ušetřil výpočetní výkon při předpočítávání, který by zabralo hledání stavů, který se má přiřadit danému klíči. Nalezení stavu generujícího daný výstup je dostatečné nalezení klíče, který iniciuje stav šifry na danou hodnotu, popisuje [4]. Označme A51 64 (S) funkci, jejíž výstup je prvních 64 bitů vyprodukovaných A5/1 z iniciálního stavu S. Potom funkce f (2.1) je definována následovně: f(x) = A51 64 (X) (3.11) Při práci s A5/1 jsem použil rozlišovací bod s nulovými posledními 16 bity, protože i při použití efektivnější implementace než je uvedená v [9], je stále výrazně pomalejší než výpočet DES. Počáteční body jsem u šifry A5/1 generoval náhodně, protože sekvenční generování by mohlo produkovat podobné stavy. Při sekvenčním generování se nově přidaný stav často liší od předchozího pouze v jednom bitu. Vždycky pouze určité bity každého registru mají vliv na výstupní bit a posuny registrů. Pokud by změněný bit nebyl na žádné z těchto pozic, bude výstup stejný jako u předchozího stavu. Tento výstup by se začal lišit až v okamžiku, kdy se změněný bit při posunech registrů objeví na posledním (výstupním) místě v registru nebo na místě posunovacích bitů. Také se tento změněný bit může objevit na místě obnovovacího bitu. Toto 23

29 3. Kolize v Hellmanových tabulkách s rozlišitelnými body vytvoří další změnu v hodnotě bitu v registru, která by generovala další rozdíly v obsahu registru oproti předchozímu stavu. Protože řetězce generované tímto způsobem obsahovaly cykly, zavedl jsem prevenci cyklů [5] zahazováním řetězců delších než čtyřnásobek očekávané délky A5/1 s nulovým prvním registrem Tento algoritmus budu nadále v textu označovat jako A5/1 R23. Počítání tabulek s prvním nulovým registrem je podobné výpočtu A5/1 se všemi stavy popsaným v sekci Liší se v délce produkovaných pseudonáhodných řetězců, který má délku 45 bitů (délka dvou nenulových registrů) a způsobem generování nových stavů, kde první registr je nastaven na nulu a zbylým dvěma registrům R2 a R3 je přiřazena náhodná hodnota. Všechny řetězce delší než čtyřnásobek očekávané hodnoty byly zahazovány A5/1 s nulovým druhým registrem Tento algoritmus budu nadále v textu označovat jako A5/1 R13. Počítání tabulek s druhým nulovým registrem je podobné výpočtu A5/1 se všemi stavy popsaným v sekci Liší se v délce produkovaných pseudonáhodných řetězců, který má délku 42 bitů (délka dvou nenulových registrů) a způsobem generování nových stavů, kde druhý registr je nastaven na nulu a zbylým dvěma registrům R1 a R3 je přiřazena náhodná hodnota. Všechny řetězce delší než čtyřnásobek očekávané hodnoty byly zahazovány A5/1 s nulovým třetím registrem Tento algoritmus budu nadále v textu označovat jako A5/1 R12. Počítání tabulek s třetím nulovým registrem je podobné výpočtu A5/1 se všemi stavy popsaným v sekci Liší se v délce produkovaných pseudonáhodných řetězců, který má délku 41 bitů (délka dvou nenulových registrů) a způsobem generováním nových stavů, kde třetí registr je nastaven na nulu a zbylým dvěma registrům R1 a R2 je přiřazena náhodná hodnota. Všechny řetězce delší než čtyřnásobek očekávané hodnoty byly zahazovány RC4 s 64 bitovým klíčem Při práci s šifrou RC4 jsem použil implementaci z knihovny OpenSSL [1]. V tomto případě jsem zvolil rozlišovací bod s posledními 16 nulovými bity. 24

30 3. Kolize v Hellmanových tabulkách s rozlišitelnými body Protože šifra RC4 má 256! 2 8 různých vnitřních stavů, což je mnohem více než je počet možných klíčů, nemohl jsem použít stejný způsob generování jako v 4.1 u šifry A5/1 a vyhnout se přiřazování stavu danému klíči. Označme RC4 64 (S) prvních 64 bitů vyprodukovaných šifrou RC4 ze stavu S a KSA(K) iniciální stav při použití klíče K. Potom funkce f (2.1) je definována následovně: f(x) = RC4 64 (KSA(X)) (3.12) Počáteční stavy jsem generoval opět jako u šifry DES sekvenčně, algoritmus KSA (Key Scheduling Algorithm) by měl zaručit že i pro podobné klíče dostaneme rozdílné iniciální stavy. Všechny řetězce delší než čtyřnásobek očekávané hodnoty byly zahazovány RC4 se 40 bitovým klíčem Generování probíhalo stejnou metodou jako u RC4 se 64 bitovým klíčem. Více informací je uvedeno v části KASUMI s 64 bitovým klíčem Při počítání tabulek pro blokovou šifru KASUMI jsem použil implementaci z knihovny LibTomCrypt. KASUMI je bloková šifra s velikostí bloku 64 bitů a velikostí klíče 128 bitů. Protože pro výpočet Hellmanovy tabulky s rozlišitelným bodem je třeba, aby velikost bloku byla stejná jako velikost klíče, použil jsem pouze prvních 64 bitů klíče, dalších 64 bitů jsem nechal nulových. Jako fixní nešifrovanou zprávu jsem opět použil nulový blok. Jako rozlišitelný bod jsem vybral blok s posledními 16 nulovými bity, stejně jako u šifer A5/1 a RC4 s 64 bitovým klíčem. 3.3 Získané výsledky V této části uvedu jak vypadaly vypočítané tabulky a porovnám jejich vlastnosti s odhadem popsaným v části 3.1. V tabulce 3.1 jsou shrnuté parametry jednotlivých algoritmů. V tabulce 3.2 jsou uvedeny velikosti tabulek a jejich odhady. V prvním sloupci je použitý algoritmus, poč. řet. udává počet vypočítaných řetězců v rámci této tabulky. Poč. DP udává počet navzájem různých rozlišitelných bodů které se v tabulce objevily. 1. odhad udává odhadovaný počet nesloučených řetězců před dosažením rozlišitelného bodu vypočítaný pomocí vzorců 3.4 a 3.8. Jedná se 25

Š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

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u. Několik řešených příkladů do Matematiky Vektory V tomto textu je spočteno několik ukázkových příkladů které vám snad pomohou při řešení příkladů do cvičení. V textu se objeví i pár detailů které jsem nestihl

Více

Hashovací funkce. Andrew Kozlík KA MFF UK

Hashovací funkce. Andrew Kozlík KA MFF UK Hashovací funkce Andrew Kozlík KA MFF UK Hashovací funkce Hashovací funkce je zobrazení h : {0, 1} {0, 1} n. Typicky n {128, 160, 192, 224, 256, 384, 512}. Obraz h(x) nazýváme otisk, hash nebo digest prvku

Více

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: 3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...

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

Š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

Vzdálenost jednoznačnosti a absolutně

Vzdálenost jednoznačnosti a absolutně Vzdálenost jednoznačnosti a absolutně bezpečné šifry Andrew Kozlík KA MFF UK Značení Pracujeme s šifrou (P, C, K, E, D), kde P je množina otevřených textů, C je množina šifrových textů, K je množina klíčů,

Více

Asymetrické šifry. Pavla Henzlová 28.3.2011. FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.

Asymetrické šifry. Pavla Henzlová 28.3.2011. FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3. Asymetrické šifry Pavla Henzlová FJFI ČVUT v Praze 28.3.2011 Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.2011 1 / 16 Obsah 1 Asymetrická kryptografie 2 Diskrétní logaritmus 3 Baby step -

Více

Jak funguje asymetrické šifrování?

Jak funguje asymetrické šifrování? Jak funguje asymetrické šifrování? Petr Vodstrčil petr.vodstrcil@vsb.cz Katedra aplikované matematiky, Fakulta elektrotechniky a informatiky, Vysoká škola báňská Technická univerzita Ostrava Petr Vodstrčil

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,

Více

Data Encryption Standard (DES)

Data Encryption Standard (DES) Data Encryption Standard (DES) Andrew Kozlík KA MFF UK Šifra DES DES je bloková šifra, P = C = {0, 1} 64 Klíče mají délku 64 bitů, ale jen 56 bitů je účinných: K = { b {0, 1} 64 8 i=1 b i+8n 1 (mod 2),

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

. 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

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

[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

1 Linearní prostory nad komplexními čísly

1 Linearní prostory nad komplexními čísly 1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)

Více

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí: Řešené příklady z lineární algebry - část 1 Typové příklady s řešením Příklady jsou určeny především k zopakování látky před zkouškou, jsou proto řešeny se znalostmi učiva celého semestru. Tento fakt se

Více

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D. Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických

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

ANALYTICKÁ GEOMETRIE V ROVINĚ

ANALYTICKÁ GEOMETRIE V ROVINĚ ANALYTICKÁ GEOMETRIE V ROVINĚ Analytická geometrie vyšetřuje geometrické objekty (body, přímky, kuželosečky apod.) analytickými metodami. Podle prostoru, ve kterém pracujeme, můžeme analytickou geometrii

Více

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu

Více

12. Lineární programování

12. Lineární programování . Lineární programování. Lineární programování Úloha lineárního programování (lineární optimalizace) je jedním ze základních problémů teorie optimalizace. Našim cílem je nalézt maximum (resp. minimum)

Více

Dijkstrův algoritmus

Dijkstrův algoritmus Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované

Více

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t.

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t. 1 Variace konstanty Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. Příklad 1 Najděte obecné řešení rovnice: y + y = 4 sin t. Co

Více

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je

Více

Interpolace Lagrangeovy polynomy. 29. října 2012

Interpolace Lagrangeovy polynomy. 29. října 2012 Interpolace Lagrangeovy polynomy Michal Čihák 29. října 2012 Problematika interpolace V praxi máme často k dispozici údaje z různých měření tzv. data. Data mohou mít například podobu n uspořádaných dvojic

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

Algoritmy I, složitost

Algoritmy I, složitost A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??

Více

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru 2. Systémy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních rovnic s koeficienty z pole reálných případně komplexních čísel. Uvádíme podmínku pro existenci řešení systému lineárních

Více

5. Lokální, vázané a globální extrémy

5. Lokální, vázané a globální extrémy 5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,

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

8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.

8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc. Bezpečnost 8. RSA, kryptografie s veřejným klíčem doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů

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

8 Kořeny cyklických kódů, BCH-kódy

8 Kořeny cyklických kódů, BCH-kódy 24 8 Kořeny cyklických kódů, BCH-kódy Generující kořeny cyklických kódů Nechť K je cyklický kód délky n nad Z p s generujícím polynomem g(z). Chceme najít rozšíření T tělesa Z p, tedy nějaké těleso GF

Více

Parametrické programování

Parametrické programování Parametrické programování Příklad 1 Parametrické pravé strany Firma vyrábí tři výrobky. K jejich výrobě potřebuje jednak surovinu a jednak stroje, na kterých dochází ke zpracování. Na první výrobek jsou

Více

5.1. Klasická pravděpodobnst

5.1. Klasická pravděpodobnst 5. Pravděpodobnost Uvažujme množinu Ω všech možných výsledků náhodného pokusu, například hodu mincí, hodu kostkou, výběru karty z balíčku a podobně. Tato množina se nazývá základní prostor a její prvky

Více

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice Jan Tomeček Tento stručný text si klade za cíl co nejrychlejší uvedení do teorie Greenových funkcí pro obyčejné diferenciální

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

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání

Více

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.0141 Báze vektorových prostorů, transformace souřadnic Michal Botur Přednáška

Více

Arnoldiho a Lanczosova metoda

Arnoldiho a Lanczosova metoda Arnoldiho a Lanczosova metoda 1 Částečný problém vlastních čísel Ne vždy je potřeba (a někdy to není ani technicky možné) nalézt celé spektrum dané matice (velké řídké matice). Úloze, ve které chceme aproximovat

Více

Stavový model a Kalmanův filtr

Stavový model a Kalmanův filtr Stavový model a Kalmanův filtr 2 prosince 23 Stav je veličina, kterou neznáme, ale chtěli bychom znát Dozvídáme se o ní zprostředkovaně prostřednictvím výstupů Příkladem může býapř nějaký zašuměný signál,

Více

vyhledávací stromové struktury

vyhledávací stromové struktury vyhledávací algoritmy Brute Force Binary Search Interpolation Search indexové soubory Dense index, Sparse index transformační funkce Perfect Hash, Close Hash Table, Open Hash Table vyhledávací stromové

Více

Příklad 1. Řešení 1a. Řešení 1b ŘEŠENÉ PŘÍKLADY Z M1B ČÁST 5

Příklad 1. Řešení 1a. Řešení 1b ŘEŠENÉ PŘÍKLADY Z M1B ČÁST 5 Příklad 1 Najděte totální diferenciál d (h) pro h=(h,h ) v příslušných bodech pro následující funkce: a) (,)= cos, =1; b) (,)=ln( + ), =2; 0 c) (,)=arctg(), =1; 0 1 d) (,)= +, =1; 1 Řešení 1a Máme nalézt

Více

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů? Kapitola 9 Matice a počet koster Graf (orientovaný i neorientovaný) lze popsat maticí, a to hned několika různými způsoby. Tématem této kapitoly jsou incidenční matice orientovaných grafů a souvislosti

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

(4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74,

(4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74, 1. V oboru celých čísel řešte soustavu rovnic (4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74, kde (n) k značí násobek čísla k nejbližší číslu n. (P. Černek) Řešení. Z první rovnice dané soustavy plyne, že číslo

Více

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly. Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?

Více

Báze a dimenze vektorových prostorů

Báze a dimenze vektorových prostorů Báze a dimenze vektorových prostorů Buď (V, +, ) vektorový prostor nad tělesem (T, +, ). Nechť u 1, u 2,..., u n je konečná posloupnost vektorů z V. Existují-li prvky s 1, s 2,..., s n T, z nichž alespoň

Více

Markovské metody pro modelování pravděpodobnosti

Markovské metody pro modelování pravděpodobnosti Markovské metody pro modelování pravděpodobnosti rizikových stavů 1 Markovský řetězec Budeme uvažovat náhodný proces s diskrétním časem (náhodnou posloupnost) X(t), t T {0, 1, 2,... } s konečnou množinou

Více

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte

Více

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde

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

řešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky

řešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky řešeny numericky řešeny numericky Břetislav Fajmon, UMAT FEKT, VUT Brno Na minulé přednášce jsme viděli některé klasické metody a přístupy pro řešení diferenciálních rovnic: stručně řečeno, rovnice obsahující

Více

Časová složitost / Time complexity

Časová složitost / Time complexity Časová složitost / Time complexity Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 24 Složitost algoritmů Algorithm complexity Časová a paměťová složitost Trvání výpočtu v závislosti

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

J.Breier, M.Vančo, J.Ďaďo, M.Klement, J.Michelfeit, Masarykova univerzita Fakulta informatiky

J.Breier, M.Vančo, J.Ďaďo, M.Klement, J.Michelfeit, Masarykova univerzita Fakulta informatiky Analýza postranních kanálů (kryptoanalýza hardvérových zařízení) J.Breier, M.Vančo, J.Ďaďo, M.Klement, J.Michelfeit, M.Moráček, J.Kusák, J.Hreško Masarykova univerzita Fakulta informatiky 6.5.2010 Klasifikace

Více

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT PEF ČZU Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT Okruhy SZB č. 5 Zdroje: Demel, J., Operační výzkum Jablonský J., Operační výzkum Šubrt, T., Langrová, P., Projektové řízení I. a různá internetová

Více

Odhad parametrů N(µ, σ 2 )

Odhad parametrů N(µ, σ 2 ) Odhad parametrů N(µ, σ 2 ) Mějme statistický soubor x 1, x 2,, x n modelovaný jako realizaci náhodného výběru z normálního rozdělení N(µ, σ 2 ) s neznámými parametry µ a σ. Jaký je maximální věrohodný

Více

Bayesovské metody. Mnohorozměrná analýza dat

Bayesovské metody. Mnohorozměrná analýza dat Mnohorozměrná analýza dat Podmíněná pravděpodobnost Definice: Uvažujme náhodné jevy A a B takové, že P(B) > 0. Podmíněnou pravěpodobností jevu A za podmínky, že nastal jev B, nazýváme podíl P(A B) P(A

Více

e-mail: RadkaZahradnikova@seznam.cz 1. července 2010

e-mail: RadkaZahradnikova@seznam.cz 1. července 2010 Optimální výrobní program Radka Zahradníková e-mail: RadkaZahradnikova@seznam.cz 1. července 2010 Obsah 1 Lineární programování 2 Simplexová metoda 3 Grafická metoda 4 Optimální výrobní program Řešení

Více

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry. Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít

Více

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double

Více

ANTAGONISTICKE HRY 172

ANTAGONISTICKE HRY 172 5 ANTAGONISTICKÉ HRY 172 Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku, jejíž výše nezávisí

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

Moderní metody substitučního šifrování

Moderní metody substitučního šifrování PEF MZLU v Brně 11. listopadu 2010 Úvod V současné době se pro bezpečnou komunikaci používají elektronická média. Zprávy se před šifrováním převádí do tvaru zpracovatelného technickým vybavením, do binární

Více

Bakalářská práce Nejslabší! Máte padáka! Strategie ukládání

Bakalářská práce Nejslabší! Máte padáka! Strategie ukládání Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra matematiky Bakalářská práce Nejslabší! Máte padáka! Strategie ukládání Plzeň 2015 Jiří Šebek Prohlášení Prohlašuji, že jsem bakalářskou práci

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

Lingebraické kapitolky - Analytická geometrie

Lingebraické kapitolky - Analytická geometrie Lingebraické kapitolky - Analytická geometrie Jaroslav Horáček KAM MFF UK 2013 Co je to vektor? Šipička na tabuli? Ehm? Množina orientovaných úseček majících stejný směr. Prvek vektorového prostoru. V

Více

Aplikovaná numerická matematika - ANM

Aplikovaná numerická matematika - ANM Aplikovaná numerická matematika - ANM 3 Řešení soustav lineárních rovnic iterační metody doc Ing Róbert Lórencz, CSc České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových

Více

1 Vektorové prostory.

1 Vektorové prostory. 1 Vektorové prostory DefiniceMnožinu V, jejíž prvky budeme označovat a, b, c, z, budeme nazývat vektorovým prostorem právě tehdy, když budou splněny následující podmínky: 1 Je dáno zobrazení V V V, které

Více

asymetrická kryptografie

asymetrická kryptografie asymetrická kryptografie princip šifrování Zavazadlový algoritmus RSA EL GAMAL další asymetrické blokové algoritmy Skipjack a Kea, DSA, ECDSA D H, ECDH asymetrická kryptografie jeden klíč pro šifrování

Více

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6) 1. Lineární diferenciální rovnice řádu n [MA1-18:P1.7] rovnice typu y n) + p n 1 )y n 1) +... + p 1 )y + p 0 )y = q) 6) počáteční podmínky: y 0 ) = y 0 y 0 ) = y 1 y n 1) 0 ) = y n 1. 7) Věta 1.3 : Necht

Více

Elegantní algoritmus pro konstrukci sufixových polí

Elegantní algoritmus pro konstrukci sufixových polí Elegantní algoritmus pro konstrukci sufixových polí 22.10.2014 Zadání Obsah Zadání... 3 Definice... 3 Analýza problému... 4 Jednotlivé algoritmy... 4 Algoritmus SA1... 4 Algoritmus SA2... 5 Algoritmus

Více

Matematika I 2a Konečná pravděpodobnost

Matematika I 2a Konečná pravděpodobnost Matematika I 2a Konečná pravděpodobnost Jan Slovák Masarykova univerzita Fakulta informatiky 24. 9. 2012 Obsah přednášky 1 Pravděpodobnost 2 Nezávislé jevy 3 Geometrická pravděpodobnost Viděli jsme už

Více

13. cvičení z PSI ledna 2017

13. cvičení z PSI ledna 2017 cvičení z PSI - 7 ledna 07 Asymptotické pravděpodobnosti stavů Najděte asymptotické pravděpodobnosti stavů Markovova řetězce s maticí přechodu / / / 0 P / / 0 / 0 0 0 0 0 0 jestliže počáteční stav je Řešení:

Více

4. Kombinatorika a matice

4. Kombinatorika a matice 4 Kombinatorika a matice 4 Princip inkluze a exkluze Předpokládejme, že chceme znát počet přirozených čísel menších než sto, která jsou dělitelná dvěma nebo třemi Označme N k množinu přirozených čísel

Více

6 Ordinální informace o kritériích

6 Ordinální informace o kritériích 6 Ordinální informace o kritériích Ordinální informací o kritériích se rozumí jejich uspořádání podle důležitosti. Předpokládejme dále standardní značení jako v předchozích cvičeních. Existují tři základní

Více

Lineární algebra : Metrická geometrie

Lineární algebra : Metrická geometrie Lineární algebra : Metrická geometrie (16. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 6. května 2014, 10:42 1 2 Úvod Zatím jsme se lineární geometrii věnovali v kapitole o lineárních

Více

vnější profesionál vnitřní profesionál organizace opakuje podsouvá

vnější profesionál vnitřní profesionál organizace opakuje podsouvá Útoky proti metodám kryptografické ochrany Co je cílem útoku: utajení autenticita integrita vzájemnost Kdo je potenciální útočník: laik venkovní laik domácí hacker Jak se útočník chová: zachycuje pozměňuje

Více

Základy algoritmizace. Pattern matching

Základy algoritmizace. Pattern matching Základy algoritmizace Pattern matching 1 Pattern matching Úloha nalézt v nějakém textu výskyty zadaných textových vzorků patří v počítačové praxi k nejfrekventovanějším. Algoritmy, které ji řeší se používají

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

Intuitivní pojem pravděpodobnosti

Intuitivní pojem pravděpodobnosti Pravděpodobnost Intuitivní pojem pravděpodobnosti Intuitivní pojem pravděpodobnosti Pravděpodobnost zkoumaného jevu vyjadřuje míru naděje, že tento jev nastane. Řekneme-li, že má nějaký jev pravděpodobnost

Více

Aplikace. vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin

Aplikace. vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin Aplikace Aplikace se liší tím, k jakému účelu jsou tvořeny. To má vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin s podobnou

Více

Binární vyhledávací stromy pokročilé partie

Binární vyhledávací stromy pokročilé partie Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald

Více

3 Bodové odhady a jejich vlastnosti

3 Bodové odhady a jejich vlastnosti 3 Bodové odhady a jejich vlastnosti 3.1 Statistika (Skripta str. 77) Výběr pořizujeme proto, abychom se (více) dověděli o souboru, ze kterého jsme výběr pořídili. Zde se soustředíme na situaci, kdy známe

Více

South Bohemia Mathematical Letters Volume 23, (2015), No. 1, DĚLENÍ KRUHU NA OBLASTI ÚVOD

South Bohemia Mathematical Letters Volume 23, (2015), No. 1, DĚLENÍ KRUHU NA OBLASTI ÚVOD South Bohemia Mathematical Letters Volume 23, (2015), No. 1, 113-122. DĚLENÍ KRUHU NA OBLASTI MAREK VEJSADA ABSTRAKT. V textu se zabývám řešením následujícího problému: Zvolíme na kružnici určitý počet

Více

Kryptoanalýza šifry PRESENT pomocí rekonfigurovatelného hardware COPACOBANA

Kryptoanalýza šifry PRESENT pomocí rekonfigurovatelného hardware COPACOBANA Kryptoanalýza šifry PRESENT pomocí rekonfigurovatelného hardware COPACOBANA Jan Pospíšil, pospij17@fit.cvut.cz, Martin Novotný, novotnym@fit.cvut.cz Katedra číslicového návrhu Fakulta informačních technologíı

Více

(Cramerovo pravidlo, determinanty, inverzní matice)

(Cramerovo pravidlo, determinanty, inverzní matice) KMA/MAT1 Přednáška a cvičení, Lineární algebra 2 Řešení soustav lineárních rovnic se čtvercovou maticí soustavy (Cramerovo pravidlo, determinanty, inverzní matice) 16 a 21 října 2014 V dnešní přednášce

Více

2. Určete jádro KerL zobrazení L, tj. nalezněte alespoň jednu jeho bázi a určete jeho dimenzi.

2. Určete jádro KerL zobrazení L, tj. nalezněte alespoň jednu jeho bázi a určete jeho dimenzi. Řešené příklady z lineární algebry - část 3 Typové příklady s řešením Příklad 3.1: Zobrazení L: P 3 R 23 je zobrazení z prostoru P 3 všech polynomů do stupně 3 (včetně nulového polynomu) do prostoru R

Více

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),

Více

Prohledávání do šířky = algoritmus vlny

Prohledávání do šířky = algoritmus vlny Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé

Více

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}.

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}. VIII. Náhodný vektor. Náhodný vektor (X, Y má diskrétní rozdělení s pravděpodobnostní funkcí p, kde p(x, y a(x + y +, x, y {,, }. a Určete číslo a a napište tabulku pravděpodobnostní funkce p. Řešení:

Více

1 0 0 u 22 u 23 l 31. l u11

1 0 0 u 22 u 23 l 31. l u11 LU dekompozice Jedná se o rozklad matice A na dvě trojúhelníkové matice L a U, A=LU. Matice L je dolní trojúhelníková s jedničkami na diagonále a matice U je horní trojúhelníková. a a2 a3 a 2 a 22 a 23

Více

Markov Chain Monte Carlo. Jan Kracík.

Markov Chain Monte Carlo. Jan Kracík. Markov Chain Monte Carlo Jan Kracík jan.kracik@vsb.cz Princip Monte Carlo integrace Cílem je (přibližný) výpočet integrálu I(g) = E f [g(x)] = g(x)f (x)dx. (1) Umíme-li generovat nezávislé vzorky x (1),

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

Cvičení 5 - Inverzní matice

Cvičení 5 - Inverzní matice Cvičení 5 - Inverzní matice Pojem Inverzní matice Buď A R n n. A je inverzní maticí k A, pokud platí, AA = A A = I n. Matice A, pokud existuje, je jednoznačná. A stačí nám jen jedna rovnost, aby platilo,

Více

Dynamické programování

Dynamické programování Dynamické programování 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 (BI-EFA)

Více

5 Orientované grafy, Toky v sítích

5 Orientované grafy, Toky v sítích Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost

Více