DIPLOMOVÁ PRÁCE. Matematické základy Stevensova algoritmu

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

Download "DIPLOMOVÁ PRÁCE. Matematické základy Stevensova algoritmu"

Transkript

1 Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE Bc. Ivan Štubňa Matematické základy Stevensova algoritmu Katedra algebry Vedoucí diplomové práce: doc. RNDr. Jiří Tůma, DrSc. Studijní program: Matematika Matematické metody informační bezpečnosti 2010

2 2 Na tomto místě bych chtěl poděkovat doc. RNDr. Jiřímu Tůmovi, DrSc. za pomoc, hodiny konzultací a cenné rady, kterými přispěl k dokončení mojí práce. Dále bych chtěl poděkovat svým rodičům za jejich lásku a Janke Divišové za neocenitelnou pomoc a podporu. Prohlašuji, že jsem svou diplomovou práci napsal samostatně a výhradně s použitím citovaných pramenů. Souhlasím se zapůjčováním práce. V Praze dne 11. dubna 2010 Ivan Štubňa

3 Obsah Kapitola 1. Úvod 5 Kapitola 2. Značení 6 Kapitola 3. Hashovací funkce Hashovací funkce MD Popis algoritmu MD Popis kompresní funkce MD5Compress 10 Kapitola 4. Útoky na hashovací funkce Diferenční cesty a bitconditions Stevensův algoritmus Generování dolní půlcesty Generování horní půlcesty Propojování horní a dolní diferenční půlcesty 18 Kapitola 5. Vlastnosti rotace Vlastnosti NAF reprezentace Rotace NAF reprezentace Rotace obecné reprezentace 34 Kapitola 6. Volba parametrů v Stevensově algoritmu Volba bitconditions q t Určení čísel δf t Rotace čísel 58 Kapitola 7. Závěr 61 Literatura. 62 Příloha A. Seznam konstant hashovací funkce MD5 63 Příloha B. Úpravy bitconditions 64 Příloha C. Některé hodnoty µ t 65 Příloha D. Pravděpodobnosti r dělení 66 3

4 Název práce: Matematické základy Stevensova algoritmu Autor: Ivan Štubňa Katedra: Katedra algebry Vedoucí diplomové práce: doc. RNDr. Jiří Tůma, DrSc. vedoucího: OBSAH 4 Abstrakt: V předložené práci se věnujeme tématu hledání kolizí v hashovací funkci MD5. V práci se zaměřujeme na Stevensův algoritmus pro hledání diferenčních cest a řešíme některé problémy spojené s tímto algoritmem. Řešíme zejména problém rotace a voleb parametrů v průběhu jednoho kroku generování diferenční cesty. Cílem této práce je předložit matematická řešení těchto problémů a navrhnout optimalizaci Stevensova algoritmu. Klíčová slova: MD5, diferenční cesta, kolize, Stevensův algoritmus Title: Mathematical foundations of Steven s algorithm Author: Ivan Štubňa Department: The Department of Algebra Supervisor: doc. RNDr. Jiří Tůma, DrSc. Supervisor s address: tuma@karlin.mff.cuni.cz Abstract: In the present work we address the issue of finding collisions in MD5 hash function. In this work we focus on Steven s algorithm for finding the differential paths and solve some problems associated with this algorithm. We solve especially problem of the rotation and selections of parameters within one step of generating differential path. The aim of this work is to present mathematical solutions of these problems and propose an optimization of Steven s algorithm. Keywords: MD5, differential paths, collisions, Steven s algorithm

5 1Úvod Hashovací funkce hrají v dnešní době významnou roli a mají široké spektrum využití. Využívají se například při přenosech dat nebo v některých algoritmech pro práci s databázemi. Nás však budou zajímat hlavně kryptografické hashovací funkce, které mají využití v různých bezpečnostních protokolech, přihlašovacích a autentizačních procedurách, certifikátech a digitálních podpisech, ale také v oblasti zachování integrity dat. Zatímco na obecné hashovací funkce se nekladou větší požadavky na bezpečnost, kryptografické hashovací funkce musí být bezpečné hned z několika pohledů. Jedním z praktických využití kryptografických funkcí je ověření hesla. Hesla v databázích a systémech nebývají uložena v otevřené formě, protože by byla snadno zjistitelná nepovolaným osobám. Je uložen pouze hash hesla, se kterým se pak porovnává hash aktuálně zadaného hesla. Jiným použitím kryptografických hashovacích funkcí je ověření integrity zprávy, t.j. ověření, že zpráva nebyla modifikována. Integrita může být zajištěna tak, že spočteme hash zprávy a kdykoliv chceme ověřit, že se zpráva nezměnila, spočteme nový hash zprávy a porovnáme ho s původním. Z tohoto principu vychází i většina algoritmů pro digitální podpis, které pracují pouze s hashem zprávy a ne s celou zprávou. Použití hashovacích funkcí v digitálních podpisech má však i svoje úskalí. Protože hashovací funkce nejsou už ze své podstaty bezkolizní, je hash jedné zprávy automaticky i hashem nějaké jiné zprávy. Od hashovacích funkcí používaných v digitálních podpisech proto kromě jiného požadujeme, aby pro daný hash nebylo snadné nalézt zprávu se stejným hashem a aby nebylo snadné zkonstruovat dvě zprávy se stejným hashem. V posledních letech způsobili průlom útoky na hashovací funkce publikované Wangovou a později Stevensem, ve kterých se jim podařilo zkonstruovat zprávy se stejným hashem. Tím byla vážně narušena bezpečnost některých dnes běžně používaných hashovacích funkcí. V této práci se budeme zabývat Stevensovým algoritmem. Tento algoritmus slouží pro vytváření tzv. diferenčních cest. Na základě vytvořené diferenční cesty pak dokážeme hledat takové dvojice zpráv, o kterých na základě diferenční cesty víme, že mají stejný hash. V práci rozebereme některé problémy spojené s tímto algoritmem a poskytneme jejich matematické řešení. 5

6 2 Značení Jestliže nebude řečeno jinak, budeme v celém textu uvažovat m bitová čísla pro obecné m. Všechna čísla budeme tedy počítat modulo 2 m a pro vyjádření jejich reprezentace budeme používat m znaků. Jednotlivé bity reprezentace m bitového čísla budeme indexovat 0 až m 1. Bit s indexem 0 je nejméně významný bit a v posloupností bitů bude umístěn nejvíce vpravo (jako poslední bit posloupnosti). Bit s indexem m 1 je nejvíce významný bit a v posloupností bitů bude umístěn nejvíce vlevo (jako první bit posloupnosti). Použijeme běžnou konvenci, že o bitu s indexem i budeme říkat, že je i tým bitem posloupnosti (bit s indexem nula je tedy nultým bitem posloupnosti). Prvních i bitů reprezentace pak budeme rozumět bity s indexy 0 až i 1. Zavedeme následující operace: Čísla v binárním zápisu budeme zapisovat s indexem 2 (např ), čísla v hexadecimální soustavě budeme zapisovat s indexem 16 (např. A12C4 16 ). Není-li řečeno jinak, budeme uvažovat čísla v desítkovém zápisu. Všechny operace + a jsou počítány implicitně modulo 2 m. X[i] bude značit bit reprezentace čísla X s indexem i, symbolem X[i..j] pak bity s indexy i až j (včetně). X r (nebo RL(X, r)) bude značit cyklickou rotaci reprezentace čísla X o r bitů vlevo, přičemž vždy budeme uvádět, jakou reprezentaci čísla rotujeme. X Y značí bitový AND čísel X a Y. X Y značí bitový OR čísel X a Y. X Y značí bitový XOR čísel X a Y. X značí doplněk čísla X. Binární znaménkovou reprezentací čísla x (označ. BSDR 1 ) rozumíme posloupnost (k i ) { 1, 0, 1} t.ž. x = m 1 i=0 2i k i (mod 2 m ). Pro práci s BSDR zavedeme následující konvence: Pro zjednodušení budeme psát x = (k i ) ve smyslu x = (k i ) m 1 i=0. Pro přehlednější zápis BSDR reprezentace (k i ) budeme používat následující značení: místo 1 budeme psát -, místo 0 budeme psát. a místo 1 budeme psát +. Zápis čísla +. - pak budeme interpretovat jako ( 1) z angl.: binary signed digit representation 6

7 2. ZNAČENÍ 7 Zápis úplné BSDR reprezentace budeme psát bez uvozovek, zápis části BSDR reprezentace budeme psát v uvozovkách. Například pro m = 3 a x = 5 jedna z možných BSDR reprezentací čísla x je +. +, první 2 znaky této reprezentace jsou. +. Abychom nemuseli rozlišovat sudou a lichou délku m vypsané BSDR reprezentace čísla (případně části BSDR reprezentace), budeme na konci reprezentace psát nejnižší bit v závorkách. Jestliže m je sudé, pak nejnižší bit reprezentace je ten uvedený před závorkou. V případě, že m je liché, pak nejnižší bit reprezentace je právě bit uvedený v závorce. Například reprezentace (-) je pro m = 4 rovna +..., pro m = 5 je Dále definujeme váhu w(x) BSDR reprezentace (k i ) čísla x jako počet nenulových k i, t.j. w(x) = m 1 i=0 k i, kde x = (k i ). Protože m bitových čísel je 2 m a BSDR reprezentací je 3 m, tak některé čísla mají i víc než jednu BSDR reprezentaci. Každé číslo má však alespoň jednu BSDR reprezentaci a tou je binární reprezentace. Zvláštním tvarem BSDR reprezentace je NAF 2 reprezentace. Tato reprezentace je speciální tím, že v této reprezentaci nejsou žádné dva sousední bity nenulové (t.j. v každé dvojici bitů je aspoň jeden rovný nule). NAF reprezentace má následující vlastnosti, kterých důkaz lze najít v [2]: Při počítání modulo 2 m je jednoznačná až na bit s indexem m 1, protože 2 m 1 = 2 m 1 (mod 2 m ). Proto zavedeme konvenci, že v každé NAF reprezentaci (k i ) platí k m 1 {0, 1}. Pro každé číslo existuje aspoň jedna NAF reprezentace. Mezi všemi BSDR reprezentacemi čísla x má NAF reprezentace nejmenší váhu. Podobně jako u sčítání binárních čísel používáme pojem přenos, zavedeme tento pojem i pro sčítání dvou BSDR reprezentací. Definice. Mějme dvě čísla x = (k i ) a y = (l i ). Položme ω 1 = 0 a dále pro i = 0,..., m 1 položíme ω i = k i + l i + ω i 1 div 2, kde operace div 2 je operace div 2, která ale zachovávává znaménko děleného čísla. Hodnotu ω i { 1, 0, 1} nazveme přenosem z bitů s indexem i. Dále řekneme, že nastal přenos do bitu s indexem i, jestliže ω i 1 0. Je dobré si uvědomit, že i když rozdíl dvou bitů binárních reprezentací dvou čísel je z množiny { 1, 0, 1}, tak rozdíl dvou bitů obecných BSDR reprezentací dvou čísel je z množiny { 2, 1, 0, 1, 2}. 2 z angl.: non-adjacent form

8 3 Hashovací funkce Hashovací funkcí rozumíme zobrazení h : {0, 1} {0, 1} k, kde k je délka výstupu hashovací funkce. Výstup hashovací funkce nazýváme hash. Neformálně tedy můžeme říci, že hashovací funkce vrátí pro libovolně dlouhý text hash fixní délky. V praxi se používají některé obvyklé hodnoty délky hashů. Z hlediska bezpečnosti se v současné době doporučuje používat hashovací funkce, které mají výstup 160 a více bitů. Na hashovací funkci běžně klademe následující požadavky. V prvním řadě by hashovací funkce měla být rychle vypočítatelná pro vstupy libovolné délky. Další vlastností požadovanou u hashovacích funkcí je jednosměrnost (z angl. one way). Jednosměrností se u hashovacích funkcí myslí vlastnost, kdy je snadné spočítat hash, ale je obtížné hashovací funkci invertovat, t.j. najít původní vstup k danému hash. Někdy se také používá pojem hashovací funkce s padacími vrátky, kdy se padacími vrátky myslí nějaká nápověda, díky které je snadné hashovací funkci invertovat. V neposlední řadě od hashovací funkce požadujeme, aby malá změna vstupu vedla k velké změně hashe. Pokud bychom tedy ve zprávě změnili byť jen jediné písmeno, tak na výstupu dostaneme úplně jiný hash. Takto definované hashovací funkce mají dobré využití v různých aplikacích (např. detekce chyb v komunikaci nebo některé programátorské techniky). V kryptografii však od hashovacích funkcí požadujeme ještě další vlastnost a to bezkoliznost. I když hashovací funkce provádí dobrou náhodnou distribuci výsledků a rovnoměrné pokrytí hodnot, tak stále platí, že počet možných výstupů hashovací funkce je menší než počet možných vstupů. Z platnosti Dirichletova principu (přihrádkový princip) pak plyne nutnost existence kolizí, t.j. dvojic vstupních zpráv (x, y), že h(x) = h(y). Na hashovací funkce používané v kryptografii proto klademe ještě následující požadavky: odolnost vůči nalezení prvního vzoru (preimage resistance) není snadné pro pevně danou hodnotu H {0, 1} k nalézt takovou zprávu M {0, 1}, že platí H = h(m) odolnost vůči nalezení druhého vzoru (second preimage resistance) není snadné pro pevně danou zprávu M nalézt jinou zprávu M, t.ž. h(m) = h(m ) odolnost vůči nalezení kolize (collision resistance) není snadné nalézt dvě různé zprávy M, M, t.ž. h(m) = h(m ) 8

9 3.1. HASHOVACÍ FUNKCE MD5 9 Můžeme si všimnout, že odolnost vůči nalezení kolize neimplikuje odolnost vůči nalezení vzoru. Ukážeme si to na následujícím příkladu. Nechť g je hashovaci funkce odolná vůči nalezení kolize a nechť převádí řetězec libovolné konečné délky na n bitový řetězec. Definujme funkci h takto: { 1 x, jestliže x má bitovou délku n; h(x) = 0 g(x), jinak. Funkce h má tedy (n + 1) bitový výstup a je odolná vůči nalezení kolize (není snadné nalézt dvě zprávy se stejným hashem). Není však odolná vůči nalezení prvního vzoru, protože pro hodnoty hashe, který má první bit 1, dokážeme nalézt vzor. V posledních letech se objevují postupy, pomocí kterých je možné pro některé běžně používané funkce nalézt kolize. Tyto funkce se pak stávají zneužitelné pro falšování podpisů (např. v e mailech) nebo pro padělání certifikátů. Tím se však nesnižuje použitelnost těchto hashovacích funkcí v některých jiných aplikacích, protože k dané hodnotě hash nejsme schopni nalézt její vzor (např. uložené hashe hesel pro přihlašování k aplikacím) Hashovací funkce MD5 Hashovací funkce MD5 1 byla představena Ronaldem Rivestem v roce 1992 jako zesílená verze hashovací funkce MD4. V současné době však již byly objeveny slabiny i v MD5 a tato hashovací funkce je postupně nahrazována bezpečnějšími hashovacími funkcemi. Podrobný popis hashovací funkce MD5 je možné najít v [1]. V dalším textu uvedeme hlavní princip MD Popis algoritmu MD5 Vstupem hashovací funkce MD5 je text libovolné délky. Jejím výstupem je pak vždy 128 bitový řetězec, který se nazývá hash (někdy se používá pojem otisk). V celém algoritmu je sekvence bitů reprezentována obvyklým způsobem, tedy posloupností bitů 0 a 1, přičemž nejvýznamnější bit je umístěn vlevo (první bit posloupnosti). Číslo 2 tedy bude reprezentováno posloupností bitů Algoritmus MD5 můžeme rozdělit na několik následujících kroků Padding Vstupní zpráva je nejprve doplněna na správnou délku pomocí řetězce znaků, kterému se říká padding. Paddingem je zpráva doplněna na délku kongruentní 448 modulo 512 tak, že na konec zprávy je přidán bit 1 a pak potřebný počet bitů 0. Padding se přidává i ke zprávě, které délka je přímo kongruentní 448 modulo 512, t.j. na konec zprávy je vždy přidán aspoň 1 bit, maximálně však 512 bitů. 1 Message-Digest Algorithm v5

10 3.1. HASHOVACÍ FUNKCE MD5 10 Na konec zprávy je po přidání paddingu přidaná ještě 64 bitová reprezentace délky zprávy bez paddingu (přičemž nejprve je přidáno dolních 32 bitů vyjádření délky zprávy a potom horních 32 bitů). Je-li délka zprávy větší než 2 64 bitů, pak se použije pouze nižších 64 bitů. V této chvíli je délka zprávy rovná 512 N, kde N je nějaké přirozené číslo Rozdělení zprávy do bloků Zpráva je po doplnění na správnou délku rozdělená na N bloků M 1, M 2,..., M N, z nichž každý blok M i, kde i = 1,..., N, má délku 512 bitů Komprese zprávy Algoritmus MD5 pracuje se zásobníkem, který sestává ze čtyř 32 bitových registrů označovaných A, B, C, D. Na počátku jsou registry inicializované na následující předdefinované hodnoty: A = B = ef cd ab C = 98 ba dc fe 16 D = Komprese zprávy spočívá v použití kompresní funkce MD5Compress, která je volaná N krát. Tuto funkci podrobněji popíšeme v Kapitole Vstupem kompresní funkce je aktuální hodnota zásobníku a 512 bitový blok textu M i. Její výstupem je pak nová hodnota zásobníku. Označme hodnotu zásobníku před i tým voláním funkce MD5Compress jako IHV i 2. Hodnota IHV 0 je tedy rovna hodnotě zásobníku inicializovaného na předdefinované hodnoty registrů a pro i = 1,..., N je hodnota IHV i spočítaná ze vztahu Výstup algoritmu IHV i = MD5Compress(M i, IHV i 1 ). Výstupem algoritmu MD5 je poslední hodnota zásobníku, tedy hodnota IHV N, která vznikne zřetězením jednotlivých registrů A, B, C, D v reprezentaci Little Endian (začneme nejnižším bytem registru A a skončíme nejvyšším bytem registru D). Jako příklad uvedeme zásobník IHV 0, který má po zřetězení tvar ab cd ef fe dc ba Popis kompresní funkce MD5Compress Vstupem kompresní funkce MD5Compress(M i, IHV i 1 ) při jejím i-tém voláním je hodnota zásobníku IHV i 1 a 512 bitový řetězec M i. Označme hodnotu registrů zásobníku na vstupu kompresní funkce IHV i 1 = (a, b, c, d). Kompresní funkce 2 z angl. intermediate hash value

11 3.1. HASHOVACÍ FUNKCE MD5 11 sestává ze 64 kroků. Na tyto kroky můžeme nahlédnout jako na 4 po sobě jdoucí rundy, ze kterých každá má 16 kroků (protože v každé rundě se používají stejné sady funkcí a konstant). V každém kroku kompresní funkce se používají operace sčítání modulo 2 32, cyklická rotace vlevo, nelineární funkce, rotační a adiční konstanta. Nejprve popíšeme jednotlivé funkce a konstanty používané v kompresní funkci MD5Compress. Adiční konstanta AC t je v závislosti na daném kroku t definovaná předpisem: AC t = 2 32 sin(t + 1) t = 0,..., 63 Rotační konstanta RC t je definovaná předpisem: (7, 12, 17, 22) t = 0, 4, 8, 12 (5, 9, 14, 20) t = 16, 20, 24, 28 RC t = (4, 11, 16, 23) t = 32, 36, 40, 44 (6, 10, 15, 21) t = 48, 52, 56, 60 Vstupem nelineární funkce f t (X, Y, Z) jsou 32 bitové hodnoty X, Y, Z, výstupem je pak 32 bitová hodnota. V závislosti na kroku t je nelineární funkce definovaná předpisem: F (X, Y, Z) = (X Y ) ( X Z) 0 t < 16 G(X, Y, Z) = (X Z) (Y Z) 16 t < 32 f t = H(X, Y, Z) = X Y Z 32 t < 48 I(X, Y, Z) = Y (X Z) 48 t < 64 Vstupní 512 bitový řetězec M i je rozdělen na 16 řetězců m 0,..., m 15, z nichž každý má 32 bitů. Z těchto řetězců m t je vytvořeno 64 řetězců W t podle předpisu: m t 0 t < 16 m (1+5t) mod t < 32 W t = m (5+3t) mod t < 48 m 7t mod t < 64 Nyní přistoupíme k popisu samotné kompresní funkce. Kompresní funkce pracuje se stavovými registry (každý má 32 bitů), které označíme Q 3, Q 2,..., Q 64. Stavové registry Q 3, Q 2, Q 1, Q 0 jsou inicializovány hodnotou zásobníku IHV i 1 na vstupu na hodnoty (Q 0, Q 1, Q 2, Q 3 ) = (b, c, d, a). Hodnoty ostatních stavových registrů jsou spočítané v 64 krocích (číslovaných od 0 po 63, přičemž v kroku t se počítá hodnota Q t+1 ) a to z následujících vztahů (značení RL(T, RC) znamená cyklickou rotaci řetězce T o RC bitů vlevo): F t = f t (Q t, Q t 1, Q t 2 ) T t = F t + Q t 3 + W t + AC t R t = RL(T t, RC t ) Q t+1 = R t + Q t

12 3.1. HASHOVACÍ FUNKCE MD5 12 Jeden krok kompresní funkce vyjádřuje následující obrázek (zde znamená operaci XOR): W t AC t Q t 3 RCt Q t 2 Q t Q t 1 f Q t+1 Q t 2 t Q t Q t 1 Obrázek 3.1. Krok kompresní funkce MD5. Po vykonání všech kroků kompresní funkce se hodnota registrů zásobníku IHV i (výstup kompresní funkce MD5Compress) spočítá ze vztahu IHV i = MD5Compress(M i, IHV i i ) = (a + Q 61, b + Q 64, c + Q 63, d + Q 62 ).

13 4 Útoky na hashovací funkce V roce 2004 Wang et. al. [3] prezentovala na konferenci Crypto 04 dvojici kolidujících zpráv pro hashovací funkci MD5. Do té doby byly prezentovány pouze pseudo kolidující dvojice zpráv, u kterých byly zjednodušeny některé předpoklady. V roce 2005 pak Wang et. al. [4] prezentovala na konferenci Eurocrypt 2005 základné principy metody, pomocí které byla nalezena dříve prezentovaná dvojice kolidujících zpráv. Metoda spočívala v nalezení tzv. diferenční cesty. Wangová též předvedla manuálně spočítanou diferenční cestu, neprezentovala však způsob, jakým byla diferenční cesta sestrojena. Kolize představená Wangovou spočívala v nalezení dvoublokové kolize, t.j. dvou párů následujících bloků zpráv délky 512 bitů t.ž. {M 1, M 2 } {M 1, M 2}. Pro inicializační vektory IHV 0 = IHV 0 byl pak rozdíl vzniklý při hashování prvního bloku zpráv eliminovaný při hashování druhého bloku zpráv. Tento útok je aplikovatelný pro libovolnou hodnotu IHV 0, t.ž. IHV 0 = IHV 0. Princip útoku Wangové můžeme znázornit následovně (zde M značí hashování bloku M): M IHV 1 M 0 2 IHV1 IHV2 = = IHV 0 M 1 IHV 1 M 2 IHV 2 V roce 2005 Yajima a Shimoyama [5] ukázali, že podmínky spočítané v diferenční cestě Wangové nejsou postačující. Od té doby došlo k mnohým vylepšením hledání kolidujících zpráv, které vycházeli z metody Wangové. Jedno vylepšení publikoval v roce 2006 Klíma [6]. Jednalo se o novou metodu modifikace zpráv, tzv. tunely, která umožnila zrychlení algoritmu pro hledání kolidujících zpráv. V roce 2007 popsal Stevens [7] ve své práci algoritmus, pomocí kterého lze automatizovat generování diferenčních cest. Pomocí tohoto algoritmu bylo možné sestrojit tzv. chosen prefix collisions, t.j. kolize dvou zpráv M a M s volitelným textem P a P na začátku těchto zpráv. Po doplnění těchto zpráv dopočítaným textem S a S (t.j. M = P S a M = P S ) pak platí MD5(M) = MD5(M ). Pro inicializační vektory IHV 0 IHV 0 je tedy možné sestrojit posloupnost diferenčních cest vedoucích ke kolizi. Krátce poté se objevili i praktické aplikace Stevensovy práce, např. generování kolidujících certifikátů popsané v [8]. Pomocí implementací Stevensova algoritmu 13

14 4.1. DIFERENČNÍ CESTY A BITCONDITIONS 14 byly sestrojeny i další diferenční cesty, např. [9]. V roce 2008 prezentoval Stevens et. al. [10] reálnou aplikaci generování kolidujících certifikátů. Povedlo se jim sestrojit podvržený certifikát CA, který byl akceptován běžnými webovými prohlížeči. Podrobný popis útoku byl pak popsán v [11]. V dalším textu si popíšeme metodu hledání diferenční cest a pak stručně rozebereme hlavní principy Stevensova algoritmu Diferenční cesty a bitconditions Diferenční cesta popisuje rozdíly dvou výpočtů kompresní funkce MD5Compress hashovací funkce MD5 při dvou vstupech (M, IHV ) a (M, IHV ). Přesněji řečeno, popisuje rozdíly stavových registrů Q i v průběhu 64 kroků hashovací funkce MD5, a jak se tyto rozdíly promítají do jednotlivých kroků výpočtu. Samotná diferenční cesta však popisuje pouze rozdíly δq i = Q i Q i. Samotné hodnoty Q i a Q i jsou v průběhu její konstrukce neznámé a jsou dopočítány až při konkrétní realizaci této diferenční cesty. Pro popis rozdílů jsou použity dva typy rozdílů stavových registrů: diferenční rozdíl a XOR rozdíl. Hodnotu diferenčního rozdílu dvou čísel X, X budeme označovat δx a je daná vztahem δx = X X. XOR rozdíl popisuje rozdíl dvou čísel podrobněji a to až na úrovni jednotlivých bitů. XOR rozdíl čísel X, X budeme označovat X a je dán vztahem X = (k i ) 31 i=0, kde k i = X [i] X[i]. Můžeme si všimnout, že XOR rozdíl X určuje jednu z možných BSDR reprezentací čísla δx. Můžeme snadno nahlédnout, že oba typy rozdílů určují tu samou hodnotu, tedy že platí δt T, neboť δt = 31 i=0 2i k i. Navíc platí, že XOR rozdíl přímo určuje hodnotu diferenčního rozdílu dvou čísel, avšak neplatí to naopak. Jako příklad můžeme uvést hodnotu diferenčního rozdílu δt = 5. Možné hodnoty XOR rozdílu jsou pak X = , ale i X = Samotné rozdíly v průběhu jednoho výpočtu kompresní funkce MD5Compress můžeme vyjádřit pomocí následujících vztahů: δf t = f t (Q t, Q t 1, Q t 2) f t (Q t, Q t 1, Q t 2 ) δt t = δf t + δq t 3 + δw t δr t = RL(T t, RC t ) RL(T t, RC t ) δq t+1 = δq t + δr t. V dalším textu ukážeme, že hodnota δf t není určena jednoznačně rozdíly Q t, Q t 1 a Q t 2 a stejně tak hodnota δr t není jednoznačně určena hodnotou δt t a RC t. Na problém rotace a určení hodnoty δr t se podíváme v Kapitole 5. Abychom vyřešili nejednoznačnost hodnoty δf t, zavedeme podmínky na bity XOR rozdílu čísel Q t a Q t (pro všechna t), které budeme nazývat bitconditions. Každá bitcondition tedy upřesňuje hodnotu jednotlivých bitů čísel Q t a Q t. Podmínku na i tý bit XOR rozdílu Q t čísel Q t a Q t budeme značit q t [i], všech 32 podmínek na bity tohoto rozdílu budeme značit q t. Platí tedy q t = (q t [i]) 31 i=0.

15 4.1. DIFERENČNÍ CESTY A BITCONDITIONS 15 Každá bitcondition určuje na základě Q t [i] přímo nebo nepřímo původní bity Q t [i] a Q t[i]. Přímým určením bitů (Q t [i], Q t[i]) rozumíme, že hodnota těchto bitů nezávisí na jiných bitech. Nepřímým určením bitů (Q t [i], Q t[i]) pak rozumíme to, že hodnota těchto bitů závisí na jiných bitech, v našem případě to bude konkrétně na bitech Q t 2 [i], Q t 1 [i], Q t+1 [i], Q t+2 [i]. Budeme rozlišovat dva typy bitconditions: differential bitconditions a boolean function bitconditions. Pro jejich značení použijeme konvenci převzatou z [7]. Differential bitconditions popsané v Tabulce 4.1 jsou přímé a určují hodnoty k i = Q t[i] Q t [i]. Můžeme si všimnout, že δq t = 31 i=0 2i k i a Q t = (k i ). q t [i] podmínky na Q t [i] a Q t[i] k i. Q t [i] = Q t[i] 0 + Q t [i] = 0, Q t[i] = Q t [i] = 1, Q t[i] = 0 1 Tabulka 4.1. Differential bitconditions. Z Tabulky 4.1 vidíme, že všechny podmínky až na q t [i] =. určují bity Q t [i] a Q t[i] jednoznačně. Právě tato nejednoznačnost způsobuje v některých případech nejednoznačnost F t [i]. Ukážeme si to na následujícím příkladě. Víme, že platí F t [i] = f t (Q t[i], Q t 1[i], Q t 2[i]) f t (Q t [i], Q t 1 [i], Q t 2 [i]) { 1, 0, 1}. Předpokládejme, že máme bitconditions (q t [i], q t 1 [i], q t 2 [i]) = (., +, -). Pak hodnota F t [i] není určena jednoznačně, protože: je-li Q t [i] = Q t[i] = 0, pak F t [i] = f t (0, 1, 0) f t (0, 0, 1) = 1; je-li Q t [i] = Q t[i] = 1, pak F t [i] = f t (1, 1, 0) f t (1, 0, 1) = +1. Pro odstranění nejednoznačnosti při volbě bitů F t se používají již zmíněné boolean function bitconditions, které blíže specifikují podmínku q t =.. Jejich přehled uvádíme v Tabulce 4.2. q t [i] podmínky na Q t [i] a Q t[i] přímá/nepřímá směr 0 Q t [i] = Q t[i] = 0 přímá 1 Q t [i] = Q t[i] = 1 přímá ^ Q t [i] = Q t[i] = Q t 1 [i] nepřímá dozadu v Q t [i] = Q t[i] = Q t+1 [i] nepřímá dopředu! Q t [i] = Q t[i] = Q t 1 [i] nepřímá dozadu y Q t [i] = Q t[i] = Q t+1 [i] nepřímá dopředu m Q t [i] = Q t[i] = Q t 2 [i] nepřímá dozadu w Q t [i] = Q t[i] = Q t+2 [i] nepřímá dopředu # Q t [i] = Q t[i] = Q t+2 [i] nepřímá dozadu h Q t [i] = Q t[i] = Q t+2 [i] nepřímá dopředu? Q t [i] = Q t[i] (Q t [i] = 1 Q t 2 [i] = 0 nepřímá dozadu q Q t [i] = Q t[i] (Q t+2 [i] = 1 Q t [i] = 0 nepřímá dozadu Tabulka 4.2. Boolean function bitconditions.

16 4.2. STEVENSŮV ALGORITMUS Stevensův algoritmus V této kapitole popíšeme algoritmus pro konstrukci diferenčních cest, který popsal Marc Stevens ve své práci [7]. V popisu algoritmu použijeme značení používané v jeho práci. Algoritmus VSTUP: počáteční hodnota δihv (nebo přímo bitconditions (q i ) 0 i= 3 ); koncová hodnota δihv (nebo přímo bitconditions (q i ) 63 i=60 ); rozdíl zpráv δm = (δm i ) 15 i=0 ; hraniční krok K (většinou K = 12) VÝSTUP: diferenční cesta splňující zadané podmínky 1. Na základě dané hodnoty δihv urči bitconditions (q i ) 0 i= 3. Na základě dané hodnoty δihv urči bitconditions (q i ) 63 i= [Generování dolní diferenční půlcesty] Spočítej nějakou dolní diferenční půlcestu rozšířením (q i ) 0 i= 3 od kroku 0 až do kroku K. 3. [Generování horní diferenční půlcesty] Spočítej nějakou dolní diferenční půlcestu rozšířením (q i ) 63 i=60 od kroku 62 až do kroku K [Propojování horních a dolních diferenčních půlcest] Pokus se propojit horní a dolní půlcestu přes zbývající kroky K + 1, K + 2, K + 3, K IF propojení úspěšné THEN RETURN (q i ) 63 i= 3 ELSE GOTO 1. Dolní diferenční půlcestou tedy budeme rozumět seznam podmínek q 1,..., q K na hodnoty δq 1,..., δq K. Horní diferenční půlcestou pak budeme rozumět seznam podmínek q K+5,..., q 63 na hodnoty δq K+5,..., δq 63. Jeden krok při generování horní (příp. dolní) diferenční půlcesty odpovídá jednomu kroku výpočtu MD5Compress. Podrobněji generování půlcest popíšeme v následujících částech. Propojování vygenerované horní a dolní diferenční půlcesty v kroku 4. Stevensova algoritmu je ve většině případů neúspěšné. Je proto potřebné vygenerovat mnoho párů horních a dolních diferenčních půlcest, než se podaří nějaký pár propojit. Krok K = 12 je často volen jako hraniční krok pro generování diferenčních půlcest hned z několika důvodů. Při propojování půlcest je potřebné ponechat dostatečnou volnost pro propojování ve smyslu volnosti při volbě bitů Q t a Q t, které jsou určeny pomocí bitconditions. Dalším důvodem je možnost využívat některá vylepšení, např. tunely Generování dolní půlcesty Nyní si popíšeme jeden krok generování dolní půlcesty. Předpokládejme krok t. Předpokládejme, že všechny nepřímé bitconditions q t 1, q t 2 používané v tomto výpočtu jsou směrem dopředu a neovlivňují bity δq t.

17 4.2. STEVENSŮV ALGORITMUS 17 Algoritmus (Jeden krok generování dolní půlcesty). VSTUP: hodnoty δq t a δq t 3 ; bitconditions q t 1 a q t 2 VÝSTUP: hodnota δq t+1 ; bitconditions q t 1. Na základě hodnoty δq t urči bitconditions q t. 2. Pro i = 0,..., 31 uprav bitconditions (q t [i], q t 1 [i], q t 2 [i]) tak, aby jednoznačně určovaly hodnotu g i { 1, 0, 1}. 3. Spočítej hodnotu δf t = 31 i=0 2i g i. 4. Spočítej hodnotu δt t = δf t + δq t 3 + δw t. 5. Urči nějakou BSDR reprezentaci F t čísla δf t. 6. Spočítej R t = ( T t ) RCt. Z reprezentace R t spočítej hodnotu δr t. 7. Spočítej δq t+1 = δq t + δr t. 8. RETURN δq t+1, q t. Na některé kroky generování se teď podíváme podrobněji Určení bitconditions q t Chceme určit bitconditions q t na základě hodnoty δq t. Z předchozího textu víme, že differential bitconditions odpovídají BSDR reprezentaci daného čísla. Nejpřímější cestou k určení bitconditions q t je proto určení nějaké BSDR reprezentace čísla δq t, která přímo určuje differential bitconditions podle Tabulky Určení hodnoty δf t V kroku 2. chceme na základě bitconditions určit hodnoty g i { 1, 0, 1}, ze kterých pak v kroku 3. spočítáme hodnotu δf t. Vidíme tedy, že hodnoty g i ve skutečnosti určují nějakou BSDR reprezentaci čísla δt. V předchozím textu jsme ukázali, že hodnoty g i nejsou na základě bitconditions q t, q t 1, q t 2 určeny vždy jednoznačně, můžeme dostat několik různých hodnot δf t. Musíme proto upřesnit bitconditions q t, q t 1, q t 2 pomocí boolean function bitconditions uvedených v Tabulce 4.2. Právě z tohoto důvodu požadujeme, aby všechny nepřímé bitconditions byly směrem dopředu. Všechny úpravy differential bitconditions můžou být předpočítány, tabulku s jejich předpočítanými úpravami uvádíme v Příloze B Určení hodnoty δr t V krocích 5. a 6. potřebujeme rotovat hodnotu δt t a určit hodnotu δr t. Při rotaci však nemůžeme rotovat samotnou hodnotu δt t, rotovat můžeme pouze nějakou její BSDR reprezentaci. Každá BSDR reprezentace čísla δt určuje po rotaci v závislosti na svém tvaru BSDR reprezentaci nějakého čísla. Hodnota čísla po rotaci proto závisí na zvolené BSDR reprezentaci čísla δt t. Podrobněji se tímto problémem budeme zabývat v Kapitole 5.

18 Generování horní půlcesty 4.2. STEVENSŮV ALGORITMUS 18 Generování horní půlcesty je podobné generování dolní půlcesty, liší se pouze v následnosti kroků. Předpokládejme krok t. Předpokládejme, že všechny nepřímé bitconditions q t, q t 1 používané v tomto výpočtu jsou směrem dozadu a neovlivňují bity δq t 2. Algoritmus (Jeden krok generování horní půlcesty). VSTUP: hodnoty δq t+1 a δq t 2 ; bitconditions q t a q t 1 VÝSTUP: hodnota δq t 3 ; bitcondition q t 1. Na základě hodnoty δq t 2 urči bitconditions q t Pro i = 0,..., 31 uprav bitconditions (q t [i], q t 1 [i], q t 2 [i]) tak, aby jednoznačně určovaly hodnotu g i { 1, 0, 1}. 3. Spočítej hodnotu δf t = 31 i=0 2i g i. 4. Spočítej hodnotu δr t = δq t+1 δq t. 5. Urči nějakou BSDR reprezentaci R t čísla δr t. 6. Spočítej T t = ( R t ) 32 RCt. Z reprezentace T t spočítej hodnotu δt t. 7. Spočítej δq t 3 = δt t δf t δw t. 8. RETURN δq t 3, q t Propojování horní a dolní diferenční půlcesty Po vygenerování dolní diferenční půlcesty Algoritmem máme spočítané hodnoty δq 3,..., δq K+1, hodnoty δf 0,..., δf K, hodnoty δr 0,..., δr K a sadu bitconditions q 3,..., q K. Po vygenerování horní diferenční půlcesty Algoritmem máme spočítané hodnoty δq K+2,..., δq 63, hodnoty δf K+5,..., δf 63, hodnoty δr K+5,..., δr 63 a sadu bitconditions q K+3,..., q 63. Zbývá dopočítat zbylé hodnoty δf K+1,..., δf K+4, δr K+1,..., δf K+4. To můžeme udělat podobně jako v Algoritmu Na základě spočítaných hodnot δq i spočítáme pro t = K + 4, K + 3, K + 2, K + 1 hodnotu δr t = δq t+1 δq t, pak spočítáme hodnotu δt t a nakonec spočítáme hodnotu δf t = δt t δw t δq t 3. Pro dokončení diferenční cesty pak potřebujeme dopočítat bitconditions q K+1 a q K+2. Naším cílem je tedy určit bitconditions q K 1, q K, q K+1, q K+2, q K+3, q K+4, které jsou kompatibilní se spočtenými bitconditions q K 1, q K, q K+3, q K+4 a které vedou na spočítané hodnoty δq K+1, δq K+2, δf K+1, δf K+2, δf K+3, δf K+4. Výpočet je prováděn od nejnižších bitů po nejvyšší, přičemž pro každý bit i jsou zvoleny podmínky q K+1 [i], q K+2 [i] na základě hodnot δq K+1, δq K+2 a podmínky jsou upraveny tak, aby platili všechny požadované rovnice. Podrobnosti o tomto algoritmu je možné nalézt v [7] v kapitole 6.5.

19 5 Vlastnosti rotace V této kapitole se podrobněji podíváme na rotaci čísel a odvodíme některé vlastnosti s tím spojené. Nejprve si však řekneme několik poznatků, které jsou pro danou problematiku potřebné. Rotací čísla budeme v celém textu rozumět cyklickou rotaci, přičemž vždy implicitně řekneme, o kolik bitů budeme dané číslo rotovat. Při rotaci čísla rotujeme ve skutečnosti nějakou jeho reprezentaci. Musíme proto vždy uvést, jakou BSDR reprezentaci daného čísla budeme rotovat. Na zvolené BSDR reprezentaci čísla pro rotaci závisí i hodnota, kterou dostaneme po rotaci této BSDR reprezentace. Rotací ve skutečnosti dostaneme opět BSDR reprezentaci, která jednoznačně určuje nějakou hodnotu. Ukážeme si to na následujícím příkladě. Mějme následující dvě různé reprezentace čísla 5: BSDR(5) = (= ) BSDR(5) = (= ) Rotujme obě reprezentace o 1 bit doleva, pak dostáváme: (. +. +) 1 = (= = 10) (+ -. +) 1 = (= = 11 mod 16) Vidíme tedy, že i když jsme před rotací měli BSDR reprezentace toho samého čísla, tak po rotaci jsme dostali v prvním případě BSDR reprezentaci čísla 10, v druhém případě BSDR reprezentaci čísla 11. Stejně tak bychom mohli najít takové BSDR reprezentace dvou různých čísel, kterých rotací bychom dostali BSDR reprezentace toho samého čísla (např. zpětná rotace v předchozím příkladě). Uvedené příklady ukazují, že vlastnosti rotace jsou závislé na volbě BSDR reprezentace čísla před rotací. V dalším textu odvodíme pravidla pro určení hodnoty čísla po rotaci a některé vlastnosti týkající se samotné rotace a s tím spojené volby reprezentace čísla. Nejprve na zaměříme na rotaci NAF reprezentace čísel, potom se podíváme i na rotaci obecné reprezentace Vlastnosti NAF reprezentace V této kapitole odvodíme některé vlastnosti NAF reprezentace čísel. V celé kapitole budeme sledovat přenosy v NAF reprezentacích čísel při přičítání čísla 1. 19

20 5.1. VLASTNOSTI NAF REPREZENTACE 20 Naším cílem bude pro pevně dané číslo s určit ta čísla, u kterých dochází při přičtení čísla 1 k přenosu v jejich NAF reprezentaci z nejnižších s bitů do vyšších bitů. To později využijeme k tomu, abychom dokázali určit hodnoty čísel po rotaci jejich NAF reprezentace, ovšem bez znalosti samotné NAF reprezentace. Všechny úvahy budeme dělat obecně pro m bitová čísla (tedy všechna čísla uvažujeme modulo 2 m ), protože jejich platnost se se změnou m neporuší. Nejprve uvedeme algoritmus, který z NAF reprezentace čísla x určí NAF reprezentaci čísla x + 1. Algoritmus VSTUP: NAF reprezentace čísla x VÝSTUP: NAF reprezentace čísla x SET i := 0, NAF(x + 1) := NAF(x). 2. WHILE i < m DO CASE NAF(x)[i + 1, i] OF 2a... : SET NAF(x + 1)[i + 1, i] :=. + ; BREAK. 2b.. - : SET NAF(x + 1)[i + 1, i] :=.. ; BREAK. 2c.. + : SET NAF(x + 1)[i] :=. ; i := i d. -. : SET NAF(x + 1)[i + 1, i] :=. - ; BREAK. 2e. +. : SET NAF(x + 1)[i + 1, i] :=. - ; i := i RETURN NAF(x + 1). Tvrzení Algoritmus vrátí na výstupu NAF reprezentaci čísla x + 1. Důkaz. Mějme NAF reprezentaci čísla x. Jestliže tuto NAF reprezentaci vyjádříme pomocí příslušných mocnin 2, pak snadno vidíme, že přičítání čísla 1 k NAF reprezentaci čísla x je klasické přičítání, u kterého sledujeme přenosy z nižších do vyšších bitů. Abychom dokázali, že úpravami uvedenými v algoritmu dostaneme NAF reprezentaci čísla x + 1, musíme ukázat, že uvedenými operacemi dostaneme reprezentaci, ve které nejsou žádné dva sousední bity nenulové, a že (m 1) ní bit NAF reprezentace je různý od -. To, že se jedná o NAF reprezentaci, pak plyne z jednoznačnosti NAF reprezentace. V další části důkazu budeme i tým krokem Algoritmu rozumět i tou iteraci kroku 2. tohoto algoritmu. Nejprve ukážeme korektnost úprav. Předpokládejme, že jsme v kroku i Algoritmu a přičítáme přenos z nižších bitů. Úpravy popsané v bodech 2a., 2b. a 2d. jsou zřejmé. Stačí si uvědomit, že hodnota určená bity + - je shodná s hodnotou určenou bity. +, neboť 2 i+1 2 i = 2 i a hodnota určená bity - + je shodná s hodnotou určenou bity. -, neboť 2 i+1 +2 i = 2 i. V bodě 2e. stačí použít, že hodnota určená bity. + + je stejná jako hodnota určená bity +. -, protože 2 i i = 2 i+2 2 i. Dostáváme tedy požadovanou úpravu bitů a přenos +1 do vyšších bitů. V bodě 2c. dostáváme po přičtení přenosu bity +.. Protože ale potřebujeme splnit podmínku, aby žádné dva sousední bity nebyly nenulové (v tomto případě bity s indexy i + 1 a

21 5.1. VLASTNOSTI NAF REPREZENTACE 21 i + 2), musíme znát ještě bit s indexem i + 2, abychom případně vyřešili nově vzniklou dvojici nenulových sousedních bitů. Z právě popsaných úprav vidíme, že v kroku i nevzniká těmito úpravami dvojice nenulových bitů na bitech s indexy i až m 1 (tedy na všech vyšších bitech). Uvedenými úpravami však nevzniká taková dvojice ani na nižších bitech, neboť v kroku i řešíme buď 2 nejnižší bity NAF reprezentace (proto nehrozí, že bychom vytvořili dvojici nenulových bitů na nižších bitech), anebo řešíme přenos vzniklý z nižších bitů, tedy přenos vzniklý v bodech 2c. a 2e. V obou případech je však bit s indexem i 1 po úpravě. a tedy nehrozí, že bychom na nižších bitech vytvořili dvojici nenulových bitů. Z uvedených úprav zároveň vidíme, že (m 1) ní bit NAF reprezentace je po úpravě různý od - (na m tý bit můžeme nahlížet jako na bit. ). Uvedený algoritmus však neplatí v tomto tvaru při zobecnění na přičítání čísla 2 j k NAF reprezentaci čísla x pro obecné j (v algoritmu je použito 2 0 ). Nebylo by totiž zaručeno, že přičtením 2 j nevznikne při úpravách NAF reprezentace čísla x dvojice nenulových bitů na nižších bitech, tedy na pozicích j a j 1. Pro jednodušší představu vyjádříme jeden krok Algoritmu méně formálně v následující tabulce. Budeme uvádět jen potřebný počet bitů pro znázornění úprav a to bez uvozovek. Pro znázornění změn v reprezentaci použijeme následující značení: pro vyjádření přičítání přenosu +1, pro vyjádření připsání dalšího vyššího bitu a pro vyjádření úprav s bity (např. změnu bitů. + na + - ). V tabulce budeme na příslušných místech psát bod Algoritmu 5.1.1, ze kterého tyto úpravy vycházejí. Posloupnost bitů je uváděna vždy od prvního bitu, na který se mají změny uplatnit, a tento bit je umístěn nejvíce vpravo. Bity Operace na bitech při přičtení přenosu (2a)... + (2b). -.. (2c). + podíváme se na předchozí bit (2a) (2d) (2e) a přenos +1 do vyšších bitů, který se vyřeší některou z úprav (2a) až (2e) (2d) (2e) a přenos +1 do vyšších bitů, který se vyřeší některou z úprav (2a) až (2e) Tabulka 5.1. Úprava bitů NAF reprezentace při přičítání přenosu z nižších bitů. Z Algoritmu plynou následující důležitá pozorování: (1) přenos do vyšších bitů nastává pouze v bodech (2c) a (2e), t.j. přenos nastává z bitů. + nebo +. ; (2) přenos vzniklý v bodě (2c) nastává pouze na nejnižších dvou bitech. Tyto poznatky využijeme v následujícím tvrzení.

22 5.1. VLASTNOSTI NAF REPREZENTACE 22 Tvrzení Uvažme číslo x, t.ž. 0 x < 2 m a nějaké číslo s, t.ž. 1 s < m. Pak při přičtení čísla 1 k číslu x nastává v NAF reprezentaci čísla x přenos do s tého bitu právě tehdy, když prvních s bitů (tedy nultý až (s 1) ní bit) NAF reprezentace čísla x je (1) (+), je-li s tý bit NAF reprezentace čísla x. ; (2) (.), je-li s tý bit NAF reprezentace čísla x + nebo -. Důkaz. Tvrzení plyne ze správnosti Algoritmu Přenos při přičtení čísla 1 musí nastat při každé úpravě bitů NAF reprezentace čísla x až po s tý bit. Podle Algoritmu nastává přenos pouze v bodech 2c. a 2e. Důsledek Mějme číslo x, t.ž. 0 x < 2 m a nějaké číslo s, t.ž. 1 s < m. Jestliže při přičtení čísla 1 k číslu x nastal v NAF reprezentaci čísla x přenos do s tého bitu, pak prvních s bitů NAF reprezentace čísla x + 1 je (1) (.), je-li s tý bit NAF reprezentace čísla x. ; (2) (-), je-li s tý bit NAF reprezentace čísla x + nebo -. Důkaz. Plyne aplikací Algoritmu na Tvrzení Tvrzení je důležité z toho pohledu, že víme, ve kterých případech nastává v NAF reprezentaci po přičtení čísla 1 přenos do vyšších bitů, a že v žádných jiných případech tento přenos nenastává. V dalších tvrzeních budeme tento poznatek často využívat. Nejprve definujeme následující čísla. Definice. Pro číslo t 1 definujeme číslo µ t, t.ž. délka jeho NAF reprezentace je t, pro t > 1 má tvar pro t = 0, 1 má tvar NAF(µ t ) = (+) ; NAF(µ 0 ) = NAF(µ 1 ) =.. Nyní vyslovíme pomocné tvrzení, které využijeme pro odvození číselné hodnoty čísla µ t. Tvrzení Pro přirozené číslo t 0 platí vztah 2 t 1 = µ t + µ t 1. Důkaz. Z definice čísel µ t a µ t 1 přes jejich BSDR reprezentace můžeme nahlédnout, že BSDR(µ t + µ t 1 ) = Tato reprezentace je ale jedna z možných BSDR reprezentací čísla 2 t 1 (konkrétně binární reprezentace). Proto platí µ t + µ t 1 = 2 t 1. Tvrzení Hodnota čísla µ t je pro dané t rovna { 2 (2 t 1), je-li t sudé; 3 µ t = 2 (2 t 1)+1, je-li t liché. 3

23 5.1. VLASTNOSTI NAF REPREZENTACE 23 Důkaz. Z Tvrzení víme, že platí µ t + µ t 1 = 2 t 1. Z definice čísel µ t a µ t 1 vidíme, že pro celočíselné dělení platí vztah µ t 1 = µ t /2 (celočíselné dělení znamená zkrácení reprezentace o poslední bit). Pro t = 0 a t = 1 dostáváme platnost vzorce přímým výpočtem. Pro t > 0 rozlišíme dva případy. Je-li t sudé, pak hodnota µ t je sudá, hodnota µ t 1 je lichá a proto µ t = 2 µ t 1. Dostáváme 2 t 1 = µ t + µ t 1 = µ t + (µ t /2) = 3/2 µ t a odsud po úpravách dostáváme µ t = 2 (2t 1) 3. Analogicky, je-li t liché, pak hodnota µ t je lichá, hodnota µ t 1 je sudá a proto µ t = 2 µ t Dostáváme 2 t 1 = µ t + µ t 1 = µ t + ((µ t 1)/2) = (3µ t 1)/2 a odsud po úpravách dostáváme µ t = 2 (2t 1)+1 3. Můžeme si všimnout následující vlastnost čísla µ t. Podle Tvrzení nastává při přičtení čísla 1 v NAF reprezentaci čísla µ t přenos do t tého bitu. To je vlastnost, kvůli které jsme tato čísla definovali. Nyní se podívejme na další vlastnost tohoto čísla. Tvrzení Největší m bitové číslo, které má v NAF reprezentaci nejvyšší nenulový bit rovný +, je číslo µ m. Důkaz. Z definice čísla µ m víme, že NAF(µ m ) = (+). Proto platí µ m = 2 m 1 +2 m a tedy µ m > 2 m 1. Nyní předpokládejme, že existuje číslo x, které splňuje vlastnost uvedenou v tvrzení a pro které platí x > µ m. Proveďme následující úvahu na všech m bitech NAF reprezentací čísel x a µ m. Protože má platit x > µ m > 2 m 1 a platí 2 m m = 2 m 1 1 (největší hodnota určená (m 1) ním bitem je větší než největší hodnota určená nižšími bity), tak nejvyšší nenulový bit NAF reprezentace čísla x musí být na pozici m 1. Dostáváme proto NAF(x)[m 1] = NAF(µ m )[m 1] = +. Z definice NAF reprezentace pak platí i NAF(x)[m 2] = NAF(µ m )[m 2] =.. Opakováním této úvahy na nejnižších m 2 bitů NAF reprezentací čísel x a µ m (a na další nižší bity) dostáváme x = µ m, což je spor s předpokladem x > µ m. Ukázali jsme, že největší m bitové číslo, které má ve své NAF reprezentaci nejvyšší nenulový bit rovný +, je číslo µ m. Nyní se podíváme na nejvyšší nenulový bit NAF reprezentací čísel 1, 2,..., 2 m 1. Nastává otázka, která z čísel 1, 2,..., 2 m 1 mají ve své NAF reprezentaci nejvyšší nenulový bit + a která -. Tvrzení Uvažujme NAF reprezentace čísel 1, 2, 3,..., 2 m 1. Potom čísla 1,..., µ m mají ve své NAF reprezentaci nejvyšší nenulový bit + a ostatní čísla µ m + 1,..., 2 m 1 mají nejvyšší nenulový bit -. Důkaz. Důkaz provedeme indukcí podle n, kde n je číslo, jehož NAF reprezentaci zkoumáme. Nejprve dokážeme první část tvrzení, tedy odvodíme nejvyšší nenulový bit NAF reprezentací čísel 1,..., µ m. Pro n = 1 je platnost tvrzení zřejmá. Nechť n je nějaké číslo menší než µ m, jehož nejvyšší nenulový bit je +. Podíváme se, jak se změní nejvyšší nenulový bit NAF reprezentace čísla n po přičtení čísla 1. Označme i index nejvyššího nenulového bitu NAF reprezentace čísla n a

24 5.1. VLASTNOSTI NAF REPREZENTACE 24 předpokládejme, že je ovlivněn přenosem z nižších bitů (jinak se nejvyšší nenulový bit nezmění). Podle Tvrzení to nastává pouze v případě, že předchozích i bitů čísla n je (+). Protože však n < µ m, tak i < m 1 (jinak by NAF reprezentace čísla n byla shodná s NAF reprezentací čísla µ m a tudíž by platilo n = µ m ) a nejvyšší nenulový bit čísla n + 1 bude podle Algoritmu bit + na pozici i + 1. Číslo µ m + 1 má nejvyšší nenulový bit - podle Důsledku Zbývá ukázat, že nejvyšší nenulový bit NAF reprezentací čísel µ m + 2,..., 2 m 1 je -. To dokážeme indukcí analogicky jako pro čísla 1,..., µ m. Důsledek Mějme čísla 0, 1, 2,..., 2 m 1 (v tomto pořadí). Pak pro NAF reprezentace těchto čísel platí (1) 0 má všechny bity nulové; (2) následujících µ m čísel má nejvyšší nenulový bit + ; (3) zbylých 2 m µ m 1 čísel má nejvyšší nenulový bit -. Důkaz. Plyne z Tvrzení Z Tvrzení víme, že hodnota čísla µ m je 2 3 (2m 1). To nám dává jasnější obraz o počtu čísel z Důsledku Vidíme, že přibližně 2/3 těchto čísel mají nejvyšší nenulový bit + a jen asi třetina čísel má nejvyšší nenulový bit -. Tvrzení můžeme zobecnit a odvodit hodnotu nejvyššího nenulového bitu v prvních s bitech NAF reprezentací čísel 0, 1, 2,..., 2 m 1. Tvrzení Uvažujme NAF reprezentace čísel 0, 1, 2,..., 2 m 1 (v tomto pořadí) a nějaké číslo 1 s m. Pak (1) v intervalech i 2 s, (i + 1) 2 s 1 pro sudá i, t.ž. 0 i < 2 m s platí (a) první číslo má prvních s bitů nulových; (b) následujících µ s čísel má v prvních s bitech NAF reprezentace nejvyšší nenulový bit +, přičemž poslední číslo této skupiny má prvních s bitů (+) ; (c) zbývajících 2 s µ s 1 čísel má v prvních s bitech NAF reprezentace nejvyšší nenulový bit - ; (2) v intervalech i 2 s, (i + 1) 2 s 1 pro lichá i, t.ž. 0 i < 2 m s platí (a) první číslo má prvních s bitů nulových; (b) následujících 2 s µ s 1 čísel má v prvních s bitech NAF reprezentace nejvyšší nenulový bit +, přičemž poslední číslo této skupiny má prvních s bitů (.) ; (c) zbývajících µ s čísel má v prvních s bitech NAF reprezentace nejvyšší nenulový bit -. Důkaz. Budeme vycházet z důkazu Tvrzení s tím rozdílem, že při odvozování vlastností čísel na prvních s bitech nemůžeme uvažovat pouze počítání modulo 2 s. Je to z toho důvodu, že pokud máme číslo x a známe prvních s bitů (nultý až (s 1) ní bit) jeho NAF reprezentace, tak určení prvních s bitů NAF

25 5.1. VLASTNOSTI NAF REPREZENTACE 25 reprezentace čísla x+1 závisí ještě na s tém bitu NAF reprezentace čísla x. Stačí si proto uvědomit, že přenos do s tého bitu (a tedy jeho změna) nastává každých 2 s čísel. Nejprve dokážeme bod (1). Uvažujme intervaly čísel i 2 s, (i+1) 2 s 1 pro sudá i, t.ž. 0 i < 2 m s. V každém z těchto intervalů platí, že první číslo intervalu má prvních s bitů NAF reprezentace nulových a s tý bit jeho NAF reprezentace je.. Bod (1) potom plyne přímo z Důsledku pro m = s (přenos do s tého bitu nastává na konci skupiny čísel popsaných v bodě (1)(b)). Poslední číslo této skupiny čísel je pak číslo, jehož nejnižších s bitů je a jehož s tý bit je + nebo -. Nyní dokážeme bod (2). Uvažujme intervaly čísel i 2 s, (i + 1) 2 s 1 pro lichá i, t.ž. 0 i < 2 m s. Z bodu (1) víme, že první číslo v každém z těchto intervalů má prvních s bitů NAF reprezentace nulových a s tý bit jeho NAF reprezentace je + nebo -. Uvažujme pouze prvních s 1 bitů NAF reprezentace tohoto čísla. Pak prvních (s 1) bitů (nultý až (s 2) hý) je nulových a (s 1) ní bit je.. Body (a) a (b) tedy plynou z Důsledku (stačí si uvědomit rovnost µ s 1 = 2 s µ s 1 z Tvrzení 5.1.5). Posledním číslem skupiny čísel popsané v bodě (2)(b) je číslo, jehož prvních s bitů NAF reprezentace je (.) a s tý bit je + nebo -. Z Důsledku plyne, že prvních s bitů NAF reprezentace čísla většího o 1 je (-) a s tý bit je.. Bod (c) tedy plyne z Důsledku (stačí si uvědomit rovnost 2 s+1 µ s+1 1 = µ s z Tvrzení 5.1.5). Poslední číslo této skupiny čísel je proto číslo, jehož nejnižších s bitů je a jehož s tý bit je.. Důsledek Uvažujme NAF reprezentace čísel 0, 1, 2,..., 2 m 1 (v tomto pořadí) a nějaké číslo 0 s < m. Pak (1) v intervalech (µ s + i 2 s+1, 2 s + µ s 1 + i 2 s+1 pro i, t.ž. 0 i < 2 m s 1 platí, že s tý bit jejich NAF reprezentace je + nebo - ; (2) v intervalech (2 s +µ s 1 +i 2 s+1, µ s +(i+1) 2 s+1 pro i, t.ž. 0 i < 2 m s 1 1 platí, že s tý bit jejich NAF reprezentace je. ; (3) v intervalu 0, µ s 2 m µ s, 2 m ) platí, že s tý bit jejich NAF reprezentace je.. Důkaz. Jde o změnu intervalů z Tvrzení Interval popsaný v bodě (1) je spojením intervalů (1)(c), (2)(a) a (2)(b) Tvrzení , přičemž délka tohoto spojeného intervalu je (2 s µ s 1)+1+µ s 1 = 2µ s 1 +1 (využitím Tvrzení 5.1.5). Intervaly popsané v bodech (2) a (3) jsou spojením intervalů (2)(c), (1)(a) a (1)(b) Tvrzení , přičemž poslední takto spojený interval není souvislý. Délka těchto spojených intervalů je (2 s+1 µ s+1 1) µ s = 2µ s + 1 (opět využitím Tvrzení 5.1.5). Pro určení hodnoty s tého bitu jejich NAF reprezentací si stačí uvědomit, že s tý bit NAF reprezentace se mění pouze při přičítání čísla 1 k posledním číslům skupin čísel (1)(b) a (2)(b) Tvrzení Pro lepší představu znázorníme Tvrzení graficky. Ze zmíněného tvrzení vyplývá, že body (1) a (2) tohoto tvrzení popisují intervaly délky 2 s, které se na-

Karel Kohout 18. května 2010

Karel Kohout 18. května 2010 Karel (karel.kohout@centrum.cz) 18. května 2010 1 2 3 4 Hašovací funkce = Message-Digest algorithm 5, vychází z MD4 (podobně jako SHA-1), autor prof. Ronald Rivest (RSA) Řetězec livobovolné délky na řetězec

Více

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice 9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky

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

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

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

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

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi

Více

Lineární algebra : Polynomy

Lineární algebra : Polynomy Lineární algebra : Polynomy (2. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 15. dubna 2014, 11:21 1 2 2.1 Značení a těleso komplexních čísel Značení N := {1, 2, 3... }... množina

Více

Lineární algebra Kapitola 1 - Základní matematické pojmy

Lineární algebra Kapitola 1 - Základní matematické pojmy Lineární algebra Kapitola 1 - Základní matematické pojmy 1.1 Relace a funkce V celém textu budeme používat následující označení pro číselné množiny: N množina všech přirozených čísel bez nuly, N={1, 2,

Více

PŘEDNÁŠKA 7 Kongruence svazů

PŘEDNÁŠKA 7 Kongruence svazů PŘEDNÁŠKA 7 Kongruence svazů PAVEL RŮŽIČKA Abstrakt. Definujeme svazové kongruence a ukážeme jak pro vhodné binární relace svazu ověřit, že se jedná o svazové kongruence. Popíšeme svaz Con(A) kongruencí

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

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

Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.

Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. (A7B01MCS) I. Matematická indukce a rekurse. Indukční principy patří

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

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

Základy matematické analýzy

Základy matematické analýzy Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních

Více

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe. 4 Afinita Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe. Poznámka. Vzájemně jednoznačným zobrazením rozumíme zobrazení,

Více

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2 6 Skalární součin Skalární součin 1 je operace, která dvěma vektorům (je to tedy binární operace) přiřazuje skalár (v našem případě jde o reálné číslo, obecně se jedná o prvek nějakého tělesa T ). Dovoluje

Více

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, [161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p

Více

6 Lineární geometrie. 6.1 Lineární variety

6 Lineární geometrie. 6.1 Lineární variety 6 Lineární geometrie Motivace. Pojem lineární varieta, který budeme v této kapitole studovat z nejrůznějších úhlů pohledu, není žádnou umělou konstrukcí. Příkladem lineární variety je totiž množina řešení

Více

Naproti tomu gramatika je vlastně soupis pravidel, jak

Naproti tomu gramatika je vlastně soupis pravidel, jak 1 Kapitola 1 Úvod V přednášce se zaměříme hlavně na konečný popis obecně nekonečných množin řetězců symbolů dané množiny A. Prvkům množiny A budeme říkat písmena, řetězcům (konečným posloupnostem) písmen

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

PŘEDNÁŠKA 2 POSLOUPNOSTI

PŘEDNÁŠKA 2 POSLOUPNOSTI PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému

Více

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy, Komplexní čísla Množinu všech uspořádaných dvojic (x, y) reálných čísel x, y nazýváme množinou komplexních čísel C, jestliže pro každé dvě takové dvojice (x, y ), (x 2, y 2 ) je definována rovnost, sčítání

Více

9 Kolmost vektorových podprostorů

9 Kolmost vektorových podprostorů 9 Kolmost vektorových podprostorů Od kolmosti dvou vektorů nyní přejdeme ke kolmosti dvou vektorových podprostorů. Budeme se zabývat otázkou, kdy jsou dva vektorové podprostory na sebe kolmé a jak to poznáme.

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

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

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

Pravděpodobnost a statistika

Pravděpodobnost a statistika Pravděpodobnost a statistika 1 Náhodné pokusy a náhodné jevy Činnostem, jejichž výsledek není jednoznačně určen podmínkami, za kterých probíhají, a které jsou (alespoň teoreticky) neomezeně opakovatelné,

Více

P 1 = P 1 1 = P 1, P 1 2 =

P 1 = P 1 1 = P 1, P 1 2 = 1 Výpočet inverzní matice Věta 1 Necht P U elementární matice vzniklá el úpravou U Pak je P U regulární Důkaz: Protože elementární úprava U je invertovatelná, existuje el úprava U, která vrací změny U

Více

PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy

PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy PAVEL RŮŽIČKA Abstrakt. Ukážeme, že každý prvek distributivního svazu odpovídá termu v konjuktivně-disjunktivním (resp. disjunktivně-konjunktivním)

Více

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace RELACE Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace slouží k vyjádření vztahů mezi prvky nějakých množin. Vztahy mohou být různé povahy. Patří sem vztah býti potomkem,

Více

Pravděpodobnost a její vlastnosti

Pravděpodobnost a její vlastnosti Pravděpodobnost a její vlastnosti 1 Pravděpodobnost a její vlastnosti Náhodné jevy Náhodný jev je výsledek pokusu (tj. realizace určitého systému podmínek) a jeho charakteristickým rysem je, že může, ale

Více

1 Báze a dimenze vektorového prostoru 1

1 Báze a dimenze vektorového prostoru 1 1 Báze a dimenze vektorového prostoru 1 Báze a dimenze vektorového prostoru 1 2 Aritmetické vektorové prostory 7 3 Eukleidovské vektorové prostory 9 Levá vnější operace Definice 5.1 Necht A B. Levou vnější

Více

FREDHOLMOVA ALTERNATIVA

FREDHOLMOVA ALTERNATIVA FREDHOLMOVA ALTERNATIVA Pavel Jirásek 1 Abstrakt. V tomto článku se snažíme shrnout dosavadní výsledky týkající se Fredholmovy alternativy (FA). Postupně zmíníme FA na prostorech konečné dimenze, FA pro

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

ŠIFROVACÍ METODA ZALOŽENÁ NA FRAKTÁLNÍ KOMPRESI. 1. Úvod. V posledních letech se ukázalo, že teorii fraktálů lze využít v mnoha teoretických

ŠIFROVACÍ METODA ZALOŽENÁ NA FRAKTÁLNÍ KOMPRESI. 1. Úvod. V posledních letech se ukázalo, že teorii fraktálů lze využít v mnoha teoretických Kvaternion 2 (2012, 83 89 83 ŠIFROVACÍ METODA ZALOŽENÁ NA FRAKTÁLNÍ KOMPRESI TOMÁŠ GRÍSA Abstrakt Tento článek se zabývá teoretickými principy fraktální komprese a využitím modifikovaného algoritmu fraktální

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

Vybrané útoky proti hašovací funkci MD5

Vybrané útoky proti hašovací funkci MD5 Vybrané útoky proti hašovací funkci MD5 1 Úvod, vymezení V práci popisuji vybrané útoky proti bezpečnosti hašovací funkce MD5. Nejdříve uvádím zjednodušený algoritmus MD5 a následně rozebírám dva praktické

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

Struktura a architektura počítačů (BI-SAP) 5

Struktura a architektura počítačů (BI-SAP) 5 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 5 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku VI Maticový počet VI1 Základní operace s maticemi Definice Tabulku a 11 a 12 a 1n a 21 a 22 a 2n, a m1 a m2 a mn kde a ij R, i = 1,, m, j = 1,, n, nazýváme maticí typu m n Zkráceně zapisujeme (a ij i=1m

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 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce

Více

Lineární algebra : Lineární prostor

Lineární algebra : Lineární prostor Lineární algebra : Lineární prostor (3. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. dubna 2014, 14:43 1 2 3.1 Aximotické zavedení lineárního prostoru Číselné těleso Celou lineární

Více

Věta o dělení polynomů se zbytkem

Věta o dělení polynomů se zbytkem Věta o dělení polynomů se zbytkem Věta. Nechť R je okruh, f, g R[x], přičemž vedoucí koeficient polynomu g 0 je jednotka okruhu R. Pak existuje jediná dvojice polynomů q, r R[x] taková, že st(r) < st(g)

Více

opravdu považovat za lepší aproximaci. Snížení odchylky o necelá dvě procenta

opravdu považovat za lepší aproximaci. Snížení odchylky o necelá dvě procenta Řetězové zlomky a dobré aproximace Motivace Chceme-li znát přibližnou hodnotu nějakého iracionálního čísla, obvykle používáme jeho (nekonečný) desetinný rozvoj Z takového rozvoje, řekněme z rozvoje 345926535897932384626433832795028849769399375

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

Vlastnosti regulárních jazyků

Vlastnosti regulárních jazyků Vlastnosti regulárních jazyků Podobně jako u dalších tříd jazyků budeme nyní zkoumat následující vlastnosti regulárních jazyků: vlastnosti strukturální, vlastnosti uzávěrové a rozhodnutelné problémy pro

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

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

Matematická logika. Miroslav Kolařík

Matematická logika. Miroslav Kolařík Matematická logika přednáška šestá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika

Více

Funkce, elementární funkce.

Funkce, elementární funkce. Kapitola 2 Funkce, elementární funkce. V této kapitole si se budeme věnovat studiu základních vlastností funkcí jako je definiční obor, obor hodnot. Připomeneme si pojmy sudá, lichá, rostoucí, klesající.

Více

Otázku, kterými body prochází větev implicitní funkce řeší následující věta.

Otázku, kterými body prochází větev implicitní funkce řeší následující věta. 1 Implicitní funkce Implicitní funkce nejsou funkce ve smyslu definice, že funkce bodu z definičního oboru D přiřadí právě jednu hodnotu z oboru hodnot H. Přesnější termín je funkce zadaná implicitně.

Více

Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady.

Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady. Číselné řady Definice (Posloupnost částečných součtů číselné řady). Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady. Definice (Součet číselné

Více

Limita a spojitost funkce. 3.1 Úvod. Definice: [MA1-18:P3.1]

Limita a spojitost funkce. 3.1 Úvod. Definice: [MA1-18:P3.1] KAPITOLA 3: Limita a spojitost funkce [MA-8:P3.] 3. Úvod Necht je funkce f definována alespoň na nějakém prstencovém okolí bodu 0 R. Číslo a R je itou funkce f v bodě 0, jestliže pro každé okolí Ua) bodu

Více

Příklad 1. Řešení 1a Máme vyšetřit lichost či sudost funkce ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 3

Příklad 1. Řešení 1a Máme vyšetřit lichost či sudost funkce ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 3 Příklad 1 Zjistěte, zda jsou dané funkce sudé nebo liché, případně ani sudé ani liché: a) =ln b) = c) = d) =4 +1 e) =sin cos f) =sin3+ cos+ Poznámka Všechny tyto úlohy řešíme tak, že argument funkce nahradíme

Více

Operace s maticemi. 19. února 2018

Operace s maticemi. 19. února 2018 Operace s maticemi Přednáška druhá 19. února 2018 Obsah 1 Operace s maticemi 2 Hodnost matice (opakování) 3 Regulární matice 4 Inverzní matice 5 Determinant matice Matice Definice (Matice). Reálná matice

Více

Riemannův určitý integrál

Riemannův určitý integrál Riemannův určitý integrál 1. Motivační příklad Příklad (Motivační příklad pro zavedení Riemannova integrálu). Nechť,. Vypočtěme obsah vybarvené oblasti ohraničené grafem funkce, osou a svislými přímkami

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

METRICKÉ A NORMOVANÉ PROSTORY

METRICKÉ A NORMOVANÉ PROSTORY PŘEDNÁŠKA 1 METRICKÉ A NORMOVANÉ PROSTORY 1.1 Prostor R n a jeho podmnožiny Připomeňme, že prostorem R n rozumíme množinu uspořádaných n tic reálných čísel, tj. R n = R } R {{ R }. n krát Prvky R n budeme

Více

Základy teorie množin

Základy teorie množin 1 Základy teorie množin Z minula: 1. Cantorovu větu (x P(x)) 2. základní vlastnosti disjunktního sjednocení, kartézského součinu a množinové mocniny (z hlediska relací, ) 3. vztah P(a) a 2 4. větu (2 a

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

Lingebraické kapitolky - Počítání s maticemi

Lingebraické kapitolky - Počítání s maticemi Lingebraické kapitolky - Počítání s maticemi Jaroslav Horáček KAM MFF UK 20 Rozehřívačka: Definice sčítání dvou matic a násobení matice skalárem, transpozice Řešení: (A + B ij A ij + B ij (αa ij α(a ij

Více

Řešení soustav diferenčních rovnic pro

Řešení soustav diferenčních rovnic pro Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE Jana Kučerová Řešení soustav diferenčních rovnic pro sčítání a booleovské operace Katedra algebry Vedoucí diplomové práce: Doc.

Více

Kongruence na množině celých čísel

Kongruence na množině celých čísel 121 Kapitola 4 Kongruence na množině celých čísel 4.1 Relace kongruence na množině celých čísel Vraťme se k úvahám o dělení se zbytkem. Na základní škole jsme se naučili, že když podělíme číslo 11 číslem

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

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

Množiny, relace, zobrazení

Množiny, relace, zobrazení Množiny, relace, zobrazení Množiny Množinou rozumíme každý soubor určitých objektů shrnutých v jeden celek. Zmíněné objekty pak nazýváme prvky dané množiny. Pojem množina je tedy synonymem pojmů typu soubor,

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

MATEMATICKÁ STATISTIKA. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

MATEMATICKÁ STATISTIKA.   Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci MATEMATICKÁ STATISTIKA Dana Černá http://www.fp.tul.cz/kmd/ Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci Matematická statistika Matematická statistika se zabývá matematickým

Více

Funkce komplexní proměnné a integrální transformace

Funkce komplexní proměnné a integrální transformace Funkce komplexní proměnné a integrální transformace Fourierovy řady I. Marek Lampart Text byl vytvořen v rámci realizace projektu Matematika pro inženýry 21. století (reg. č. CZ.1.07/2.2.00/07.0332), na

Více

Matematika III. Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská. Ústav matematiky

Matematika III. Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská. Ústav matematiky Matematika III Řady Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská Ústav matematiky Přednášky ZS 202-203 Obsah Číselné řady. Součet nekonečné řady. Kritéria konvergence 2 Funkční řady. Bodová konvergence.

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

Kapitola Základní množinové pojmy Princip rovnosti. Dvě množiny S a T jsou si rovny (píšeme S = T ) prvek T je také prvkem S.

Kapitola Základní množinové pojmy Princip rovnosti. Dvě množiny S a T jsou si rovny (píšeme S = T ) prvek T je také prvkem S. 1 Kapitola 1 Množiny 11 Základní množinové pojmy Pojem množiny nedefinujeme, pouze připomínáme, že množina je souhrn, nebo soubor navzájem rozlišitelných objektů, kterým říkáme prvky 111 Princip rovnosti

Více

3 Lineární kombinace vektorů. Lineární závislost a nezávislost

3 Lineární kombinace vektorů. Lineární závislost a nezávislost 3 Lineární kombinace vektorů. Lineární závislost a nezávislost vektorů. Obrázek 5: Vektor w je lineární kombinací vektorů u a v. Vektory u, v a w jsou lineárně závislé. Obrázek 6: Vektor q je lineární

Více

Náhodný vektor. Náhodný vektor. Hustota náhodného vektoru. Hustota náhodného vektoru. Náhodný vektor je dvojice náhodných veličin (X, Y ) T = ( X

Náhodný vektor. Náhodný vektor. Hustota náhodného vektoru. Hustota náhodného vektoru. Náhodný vektor je dvojice náhodných veličin (X, Y ) T = ( X Náhodný vektor Náhodný vektor zatím jsme sledovali jednu náhodnou veličinu, její rozdělení a charakteristiky často potřebujeme vyšetřovat vzájemný vztah několika náhodných veličin musíme sledovat jejich

Více

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici [1] Determinant je číslo jistým způsobem charakterizující čtvercovou matici det A = 0 pro singulární matici, det A 0 pro regulární matici používá se při řešení lineárních soustav... a v mnoha dalších aplikacích

Více

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá

Více

3. Podmíněná pravděpodobnost a Bayesův vzorec

3. Podmíněná pravděpodobnost a Bayesův vzorec 3. Podmíněná pravděpodobnost a Bayesův vzorec Poznámka: V některých úlohách řešíme situaci, kdy zkoumáme pravděpodobnost náhodného jevu za dalších omezujících podmínek. Nejčastěji má omezující podmínka

Více

[1] Definice 1: Polynom je komplexní funkce p : C C, pro kterou. pro všechna x C. Čísla a 0, a 1,..., a n nazýváme koeficienty polynomu.

[1] Definice 1: Polynom je komplexní funkce p : C C, pro kterou. pro všechna x C. Čísla a 0, a 1,..., a n nazýváme koeficienty polynomu. Polynomy Polynom je možno definovat dvěma způsoby: jako reálnou nebo komplexní funkci, jejichž hodnoty jsou dány jistým vzorcem, jako ten vzorec samotný. [1] První způsob zavedení polynomu BI-LIN, polynomy,

Více

BAKALÁŘSKÁ PRÁCE. Podmíněné hustoty

BAKALÁŘSKÁ PRÁCE. Podmíněné hustoty Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Vladimír Krásný Podmíněné hustoty Katedra pravděpodobnosti a matematické statistiky Vedoucí bakalářské práce: RNDr. Jan Seidler,

Více

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u

Více

1 Co jsou lineární kódy

1 Co jsou lineární kódy 1 Žádný záznam informace a žádný přenos dat není absolutně odolný vůči chybám. Někdy je riziko poškození zanedbatelné, v mnoha případech je však zaznamenaná a přenášená informace jištěna přidáním dat,

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

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n [1] Základní pojmy [2] Matice mezi sebou sčítáme a násobíme konstantou (lineární prostor) měníme je na jiné matice eliminační metodou násobíme je mezi sebou... Matice je tabulka čísel s konečným počtem

Více

Numerická matematika 1

Numerická matematika 1 Numerická matematika 1 Obsah 1 Řešení nelineárních rovnic 3 1.1 Metoda půlení intervalu....................... 3 1.2 Metoda jednoduché iterace..................... 4 1.3 Newtonova metoda..........................

Více

Obyčejnými diferenciálními rovnicemi (ODR) budeme nazývat rovnice, ve kterých

Obyčejnými diferenciálními rovnicemi (ODR) budeme nazývat rovnice, ve kterých Obyčejné diferenciální rovnice Obyčejnými diferenciálními rovnicemi (ODR) budeme nazývat rovnice, ve kterých se vyskytují derivace neznámé funkce jedné reálné proměnné. Příklad. Bud dána funkce f : R R.

Více

Matice. a m1 a m2... a mn

Matice. a m1 a m2... a mn Matice Nechť (R, +, ) je okruh a nechť m, n jsou přirozená čísla Matice typu m/n nad okruhem (R, +, ) vznikne, když libovolných m n prvků z R naskládáme do obdélníkového schematu o m řádcích a n sloupcích

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

Úvod do programování 7. hodina

Úvod do programování 7. hodina Úvod do programování 7. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Syntax Znaky Vlastní implementace

Více

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel Matematická analýza IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel na množině R je definováno: velikost (absolutní hodnota), uspořádání, aritmetické operace; znázornění:

Více

Andrew Kozlík KA MFF UK

Andrew Kozlík KA MFF UK Autentizační kód zprávy Andrew Kozlík KA MFF UK Autentizační kód zprávy Anglicky: message authentication code (MAC). MAC algoritmus je v podstatě hashovací funkce s klíčem: MAC : {0, 1} k {0, 1} {0, 1}

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

Těleso racionálních funkcí

Těleso racionálních funkcí Těleso racionálních funkcí Poznámka. V minulém semestru jsme libovolnému oboru integrity sestrojili podílové těleso. Pro libovolné těleso R je okruh polynomů R[x] oborem integrity, máme tedy podílové těleso

Více

Semestrální z předmětu MM

Semestrální z předmětu MM Semestrální z předmětu MM práce Diferenční rovnice Jméno a příjmení: Osobní číslo: Studijní skupina: Obor: E-mail: Jan Forejt A07026 1. ročník, komb. studium Matematika forejt@cs.mfcr.cz Datum odevzdání:

Více

Úlohy nejmenších čtverců

Úlohy nejmenších čtverců Úlohy nejmenších čtverců Petr Tichý 7. listopadu 2012 1 Problémy nejmenších čtverců Ax b Řešení Ax = b nemusí existovat, a pokud existuje, nemusí být jednoznačné. Často má smysl hledat x tak, že Ax b.

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

Náhodný vektor a jeho charakteristiky

Náhodný vektor a jeho charakteristiky Náhodný vektor a jeho číselné charakteristiky 1 Náhodný vektor a jeho charakteristiky V následující kapitole budeme věnovat pozornost pouze dvourozměřnému náhodnému vektoru, i když uvedené pojmy a jejich

Více

Operace s maticemi

Operace s maticemi Operace s maticemi Seminář druhý 17.10. 2018 Obsah 1 Operace s maticemi 2 Hodnost matice 3 Regulární matice 4 Inverzní matice Matice Definice (Matice). Reálná matice typu m n je obdélníkové schema A =

Více