UNICORN COLLEGE BAKALÁŘSKÁ PRÁCE Marek ŠMÍD
|
|
- Aneta Žáková
- před 6 lety
- Počet zobrazení:
Transkript
1 UNICORN COLLEGE BAKALÁŘSKÁ PRÁCE 2017 Marek ŠMÍD
2 UNICORN COLLEGE Katedra informačních technologií BAKALÁŘSKÁ PRÁCE Možnosti prolomení RSA pomocí celočíselného programování: empirická studie Autor BP: Marek Šmíd Vedoucí BP: doc. RNDr. Ing. Michal Černý, Ph.D Praha
3
4
5 Čestné prohlášení Prohlašuji, že jsem svou bakalářskou práci na téma Možnosti prolomení RSA pomocí celočíselného programování: empirická studie vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím výhradně odborné literatury a dalších informačních zdrojů, které jsou v práci citovány a jsou také uvedeny v seznamu literatury a použitých zdrojů. Jako autor této bakalářské práce dále prohlašuji, že v souvislosti s jejím vytvořením jsem neporušil autorská práva třetích osob a jsem si plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb. V Praze dne 3. srpna 2017 (Marek Šmíd)
6 Poděkování Děkuji vedoucímu mé bakalářské práce panu doc. RNDr. Ing. Michalu Černému, Ph.D. za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady, které mi pomohly tuto práci zkompletovat.
7 Možnosti prolomení RSA pomocí celočíselného programování: empirická studie Possibilities for cracking RSA with integer programming: An empirical study 6
8 Abstrakt Tato bakalářská práce se zabývá zejména empirickým studiem možnosti faktorizovat RSA moduly pomocí SAT a ILP solvery. Cílem této bakalářské práce je zjištění, jak efektivní jsou vybrané open source solvery typu ILP a SAT při faktorizování klíčů RSA. Další zjišťování je zaměřeno na to, jestli jsou solvery typu ILP a SAT stejně výkonné, nebo jestli je některý z nich efektivnější. Efektivita jednotlivých solverů byla zjišťováva pomocí empirické studie. Z empirické studie vyšel závěr, že solvery typu SAT jsou řádově efektivnější při faktorizaci klíčů RSA, než solvery typu ILP. Pomocí ILP solverů se podařilo efektivně faktorizovat pouze klíče velikosti 10 bitů respektive 12 bitů, kdežto pomocí SAT solverů bylo možno efektivně faktorizovat klíče velikosti 32 bitů. SAT solvery byly také efektivnější oproti ILP solverům ve spotřebě času na daný problém. Klíčová slova: RSA, celočíselné programování, faktorizační algoritmus, SAT, ILP, booleovský obvod, soukromý klíč, veřejný klíč 7
9 Abstract The empirical study presented in this bachelor thesis addresses the possibility to factorize RSA modules using ILP and SAT solvers. The goal of the bachelor thesis has been to find out how efficient were selected open source solvers ILP and SAT in the factorization of RSA keys. Further investigation focused on whether ILP and SAT solvers have the same efficiency or whether they vary. The efficiency of each solver has been tested empirically. The conclusion drawn from this empirical study is that SAT solvers are more efficient at factorizing RSA keys than ILP solvers. Using ILP solvers, only 10-bit and 12-bit keys could be efficiently factorized, whereas using SAT solvers, I have been able to efficiently factorize 32-bit keys. SAT solvers were also more efficient than ILP solvers with regard to time needed to solve the issue. Keywords: RSA, integer programming, factoring algorithm, SAT, ILP, boolean circuit, private key, public key 8
10 Obsah Úvod Nejdůležitější výsledky Úvod do kryptografie RSA Koncept RSA Tvorba páru soukromého a veřejného klíče Šifrování Dešifrování Podepisování Metody prolamování RSA Útoky na podstatu bezpečnosti RSA Integer Factoring Attack Útoky využívající nevhodnou volbu parametrů klíče Håstad's Broadcast Attack Wiener s Attack Útoky využívající kompromitaci části klíče Partial Key Exposure Attack Útoky na RSA s triviálním paddingem Common Modulus Attack Coppersmith s Short Pad Attack Vybrané open source solvery Způsoby faktorizace Intuitivní postup GNFS (The General Number Field Sieve) Boolean Satisfiability Problem Integer Linear Programming Algoritmy SAT a ILP solverů SAT solvery ILP solvery Problematika faktorizace pomocí SAT a ILP solverů Empirická studie Cíle empirické studie
11 4.2 Faktorizační obvod Sčítačka Násobička Příprava dat Příprava dat pro faktorizační obvod Příprava dat pro solvery Výstupní data Průběh testování Zpracování vstupních dat pomocí scriptů Shromažďování výstupů Informace pro zopakování měření Použitá data Testovací prostředí Dosažené výsledky Faktorizační obvody Závislost počtu proměnných na typu obvodu Závislost počtu klauzulí na typu obvodu SAT solvery MiniSat PicoSAT MiniSat vs. PicoSAT ILP solvery GLPK vs. lp_solve SAT vs. ILP solvery Diskuze nad naměřenými hodnotami Faktorizační obvody SAT solvery Naměřené hodnoty MiniSat vs. PicoSAT ILP solvery Naměřené hodnoty SAT vs. ILP solvery Faktorizační obvod Celková spotřeba času
12 Závěr Conclusion Seznam použitých zdrojů Seznam obrázků Seznam tabulek Seznam grafů Seznam příloh Příloha A Zdrojové kódy Příloha B Použitá data Extended Summary 11
13 Úvod Algoritmus RSA je druh asymetrické šifry. Asymetrické šifry jsou postaveny na využití dvou rozdílných klíčů (veřejný, soukromý), které jsou spolu provázané. S tímto algoritmem se nejčastěji setkáme, pokud chceme šifrovat, dešifrovat nebo podepsat důvěrná data. Podstata bezpečnosti základního algoritmu RSA je založena na předpokladu, že vynásobení dvou čísel je výpočetně snadná až triviální operace. Naproti tomu, zpětné získání dvou původních čísel (faktorizace) je výpočetně velmi obtížná až takřka nerealizovatelná operace. Existuje mnoho nástrojů a postupů, které je možné použít při prolamování algoritmu RSA. V této práci jsem se zaměřil na open source solvery typu integer linear programming, zkráceně ILP, a boolean satisfiability problém, zkráceně SAT. SAT i ILP jsou druhy problémů, které spadají do kategorie NP-úplných problémů. Cílem této práce je získat informace o tom, jestli jsou tyto solvery schopné si poradit s faktorizací modulu N šifrovacího algoritmu RSA. Pokud si vybrané solvery budou schopné poradit s faktorizací modulu N algoritmu RSA, bude nás zajímat jejich efektivita. Další oblast, které se tato práce věnuje, je porovnání SAT a ILP solverů. Z výsledků měření byly získány informace o tom, který z těchto solverů je efektivnější. Dále bylo zajímavé pozorovat, jak se na celkové efektivitě projevil typ rozdílného algoritmu, který tyto solvery využívají. Práce je rozčleněna do tří částí (teoretická, praktická, závěr). V teoretické části je popsán princip, jakým se algoritmus RSA používá k šifrování, dešifrování a podepisování dokumentů a co je zapotřebí, abychom mohli tyto operace provést. Následuje popis některých útoků, které tvoří základ útoků, které se používají v dnešní době. Tyto útoky jsou rozčleněny do skupin podle toho, na co při prolamování cílí, respektive jestli využívají chyb při implementaci, nebo jestli útočí přímo na samotný princip bezpečnosti algoritmu RSA. V závěru teoretické části je popsáno, co jsou to vlastně problémy typu SAT, ILP a jak se od sebe odlišují vybrané solvery. Na úvod praktické části je představeno vše, co je zapotřebí pro vykonání empirické studie. Nejprve je představen faktorizační obvod a jeho komponenty, následně je popsáno, jak byla získána potřebná testovací data a jak se musela tato data upravit, aby se s nimi mohlo dále pracovat. Praktická část je zakončena grafickou prezentací naměřených dat, která mají pro práci zásadní význam a diskusí nad dosaženými výsledky. 12
14 Závěrečná část je věnována shrnutí celé práce a vyhodnocení empirické studie. Vyhodnocení je převážně zaměřeno na to, jestli se podařilo dosáhnout vytyčených cílů, nebo zda byly během empirické studie získány předem neočekávané výstupy. 13
15 Nejdůležitější výsledky Volba typu sčítačky má s rostoucí velikostí klíče velký vliv na počet proměnných o kapitola Volba typu sčítačky má s rostoucí velikostí klíče velký vliv na počet klauzulí o kapitola Volba typu obvodu má velký vliv na to, jak velkou spotřebu zdrojů budou mít solvery o kapitola o kapitola MiniSat (SAT) je výrazně rychlejší při řešení problémů než PicoSAT (SAT) o kapitola lp_solve (ILP) je výrazně rychlejší při řešení problémů než GLPK (ILP) o kapitola SAT solvery jsou výrazně rychlejší při řešení problémů než ILP solvery o kapitola
16 1 Úvod do kryptografie RSA 1.1 Koncept RSA Koncept algoritmu RSA, který je pojmenovaný podle svých tvůrců (Rivest, Shamir, Adleman), byl poprvé publikován v roce 1978 ve článku [13]. Algoritmus RSA je založen na principu asymetrické kryptografie, která byla popsána v roce 1976 ve článku [10], jehož autory jsou Diffie a Hellman. Princip asymetrické kryptografie je založen na využití dvou rozdílných klíčů pro šifrování a dešifrování, které tvoří jedinečný pár. První klíč se označuje jako veřejný a slouží k šifrování dat. Druhý klíč se označuje jako soukromý a používá se k dešifrování dat. Data, která byla zašifrována veřejným klíčem, mohou být dešifrována pouze korespondujícím soukromým klíčem. Podstata bezpečnosti základního algoritmu RSA je založena na zdánlivě jednoduché myšlence. Myšlenka tohoto principu je založena na tom, že vynásobení dvou čísel (v případě algoritmu RSA dvou značně velkých prvočísel) a získání výsledného součinu je výpočetně snadná operace. Pokud však budeme chtít získat zpět ona dvě původní prvočísla, ze kterých se tento součin skládá, jedná se o výpočetně velmi obtížnou operaci. Tato operace se označuje slovem faktorizace. Pokud budeme chtít algoritmus RSA používat, musíme nejprve vygenerovat dvojici veřejného a soukromého klíče. Jak se tato dvojice klíčů generuje, je popsáno v kapitole 1.2. Pokud máme oba dva klíče vygenerované, soukromý klíč si ponecháme a udržujeme ho v tajnosti, naproti tomu veřejný klíč poskytneme druhé straně, se kterou chceme bezpečně komunikovat. Pokud bude druhá strana s námi chtít bezpečně komunikovat, zprávu zašifruje pomocí námi poskytnutého veřejného klíče a zprávu nám odešle. Protože jsme jedinými vlastníky odpovídajícího soukromého klíče, nikdo jiný kromě nás by neměl být schopen tuto zprávu dešifrovat a přečíst si ji. Třetí strana se může teoreticky dostat k obsahu této zprávy a přečíst si její text, pokud se jí podaří tuto zprávu zachytit a dešifrovat. Vybrané přístupy, které lze použít k prolomení algoritmu RSA, jsou popsány v kapitole 2. Další oblast, ve které se algoritmus RSA používá, je podepisování dokumentů. Tato operace se provádí proto, abychom mohli obdrženou zprávu přiřadit ke konkrétní osobě. Pokud by se vyskytl problém s přiřazením zprávy ke konkrétní osobě, víme, že nemůžeme tuto zprávu nadále považovat za důvěryhodnou. 15
17 Pro vyšší bezpečnost se základní algoritmus RSA rozšiřuje o různá šifrovací schémata. Pomocí šifrovacího schématu jsou vstupní data upravena ještě předtím, než jsou zašifrována pomocí samotného algoritmu RSA. Pro šifrování se používá např. schéma Optimal Asymmetric Encryption Padding (RSA-OAEP), pro podepisování se používá např. schéma Probabilistic Signature Scheme (RSA-PSS). 1.2 Tvorba páru soukromého a veřejného klíče Při tvorbě dvojice soukromého a veřejného klíče bychom měli postupovat systematicky a zároveň dodržovat předem daná doporučení. Pokud při tvorbě klíčů nebudeme dodržovat doporučení, zvýšíme tím riziko, že třetí strana bude schopna po odchycení dešifrovat a přečíst si zašifrovanou zprávu jen s vynaložením minimálního úsilí. Při tvorbě klíčů vycházíme z [10]. Tvorba dvojice soukromého a veřejného klíče se skládá z těchto kroků: 1. Nejprve náhodně vygenerujeme dvě dostatečně velká prvočísla Vygenerujeme náhodné číslo odpovídající délky Vygenerované číslo otestujeme na prvočíselnost Pokud vygenerované číslo nesplňuje požadavek na prvočíselnost, musíme k němu přičíst hodnotu 2 a opakujeme bod Bod 1.3. opakujeme do té doby, dokud se nepodaří vytvořit prvočíslo. Při generaci druhého prvočísla postupujeme stejně jako při tvorbě prvního prvočísla. Protože oba dva vstupy pro vygenerování prvočísla jsou náhodné, nemusíme provádět kontrolu na rozdílnost prvočísel. Toto máme s vysokou pravděpodobností zaručeno náhodnými vstupy. 2. Pokud máme vygenerovaná prvočísla, vypočteme jejich součin N = pq, (1) kde N je modul, p a q jsou vygenerovaná prvočísla. 3. Pokračujeme tím, že si spočteme hodnotu Eulerovy funkce φ(n) = (p 1)(q 1). (2) 16
18 4. Zvolíme si hodnotu čísla e (veřejný exponent). Hodnota veřejného exponentu musí splňovat e {2,, φ(n)}. Hodnotu veřejného exponentu volíme dostatečně velikou, jinak se vystavíme nebezpečí, že naše šifra půjde snáze prolomit. Pro veřejný exponent e musí platit, že je nesoudělný s hodnotou φ(n). 5. Nakonec si dopočítáme hodnotu čísla d (soukromý exponent). Hodnotu soukromého exponentu dopočteme z rovnice ed 1(mod φ(n)). (3) Po splnění všech výše uvedených kroků máme vše potřebné, abychom mohli vytvořit odpovídající dvojici soukromého a veřejného klíče. Soukromý klíč se skládá ze soukromého exponentu d a modulu N. Veřejný klíč se skládá z veřejného exponentu e a z modulu N. 1.3 Šifrování Šifrování je proces, který se skládá z několika kroků. Podstatnou podmínkou pro šifrování je mít odpovídající veřejný klíč, který se použije pro zašifrování dané zprávy [13]. Předtím než budeme danou zprávu šifrovat, musíme ji upravit pomocí tzv. paddingu (schéma formátování vstupních dat). Na tom, jaké šifrovací schéma se použije, se musí komunikující strany předem domluvit. Šifrovací schéma je tvořeno dvojicí paddingu (formátování vstupních dat) a samotného zašifrování výstupu z tohoto formátování algoritmem RSA. Pro šifrování se používá následující rovnice c = m e mod N, (4) kde c je výsledný šifrový text, m je číslo, které je výstupem zvoleného šifrovacího schématu, kterému jsme jako vstup dali naši originální zprávu M. Zbývajícími prvky rovnice jsou veřejný exponent e, který určíme dle kroku 4 v 1.2 a modul N, který vypočteme dle (1). Pro zašifrování zprávy budeme postupovat takto: 1. Převedeme zprávu M na číslo m (padding). 2. Vytvoříme šifrovou zprávu c podle (4) se znalostí veřejného klíče. Nyní máme originální zprávu M zašifrovanou do podoby šifrové zprávy c. Zašifrovanou zprávu můžeme odeslat druhé straně. 17
19 Obrázek 1: Proces šifrování Zdroj: Vlastní zpracování Formátování úprava otevřeného textu na vstup do RSA (padding) RSA šifrovací RSA transformace 1.4 Dešifrování Stejně jako šifrování, i dešifrování se skládá z několika kroků. Abychom byli schopni přijatou zašifrovanou zprávu c dešifrovat, musíme vlastnit odpovídající soukromý klíč [13]. Pro dešifrování se používá rovnice m = c d mod N, (5) kde m je číslo, ze kterého získáme původní zprávu M, c je obdržený šifrový text. Soukromý exponent d a modul N tvoří soukromý klíč. Důležitou součástí dešifrování je dešifrovací schéma. Dešifrovacím schématem se rozumí zřetězení procesů dešifrování algoritmem RSA, kontrola správnosti paddingu a dekódování (výpočet zprávy M z čísla m). Pro dešifrování budeme postupovat takto: 1. Vypočítáme číselnou hodnotu m podle (5). 2. Ověříme správnost použitého paddingu. 3. Původní zprávu M získáme tak, že nad číslem m provedeme inverzní operace oproti šifrování, a to v opačném pořadí. Výstupem procesu dešifrování je buď původní zpráva M, nebo informace o chybném paddingu. 18
20 Obrázek 2: Proces dešifrování Zdroj: Vlastní zpracování - neplatný šifrový text; šifrový text odmítnut chybný padding Inv(f) inverze funkce f Inv(Formátování) kromě inverze formátování obsahuje navíc i kontrolu správnosti padding 1.5 Podepisování Další oblast, kde se algoritmus RSA využívá, je podepisování dokumentů a ověření identity toho, kdo přijatou datovou zprávu vytvořil. Podepisování a zpětné ověření totožnosti odesilatele funguje na podobném principu jako šifrování a dešifrování [10]. Pokud chceme odeslat podepsanou zprávu M druhé straně, postupujeme takto: 1. Zvolíme si hashovací funkci. 2. Zvolenou hashovací funkci aplikujeme na zprávu M. Výstupem této operace je číslo m (hash), které reprezentuje zprávu M. 3. Číslo získané v bodě 2 nyní zašifrujeme naším soukromým klíčem a tím vytvoříme digitální podpis. 4. Nyní odešleme zprávu M s odpovídajícím digitálním podpisem. Druhá strana po obdržení zprávy ověří, že odesilatelem této zprávy jsme skutečně my. Toto ověření provede tímto způsobem: 1. Na obdrženou zprávu M aplikuje stejnou hashovací funkci, která byla použita při vytváření digitálního podpisu a získá číslo n (hash) reprezentující zprávu M. 2. Obdržený digitální podpis dešifruje pomocí našeho veřejného klíče. Výsledkem dešifrování je rovněž číslo m (hash). 19
21 3. Nyní porovná obě získaná čísla m a n (hashe). Pokud jsou čísla (hashe) naprosto shodná, tak má jistotu, že odesilatelem zprávy M jsme my. V opačném případě to znamená, že se zprávou bylo nějakým způsobem manipulováno poté, co byla opatřena digitálním podpisem. Obrázek 3: Digitální podpis Zdroj: Vlastní zpracování 20
22 2 Metody prolamování RSA Algoritmus RSA je tady s námi již řadu let a za tu dobu prošel vývojem, aby se stal odolnějším vůči útokům různého druhu. Útoky, které lze použít k prolomení algoritmu RSA, se pohybují od jednoduchých přes více sofistikované až po ty, které cílí na samotnou implementaci algoritmu. Níže popsané typy útoků představují základní přehled, který slouží k uvedení do problematiky prolamování RSA. Popsané útoky lze dnes považovat za již zastaralé, protože cílí na použití algoritmu RSA bez paddingu nebo na algoritmus RSA s triviálním paddingem. 2.1 Útoky na podstatu bezpečnosti RSA V empirické studii jsou využity solvery, které využívají metody, které patří do kategorie útoků na podstatu bezpečnosti RSA Integer Factoring Attack Jedná se o jeden z prvních útoků, kterým se podařilo úspěšně zaútočit na algoritmus RSA. Tento typ útoku se zaměřuje na samotný modul N, který je součástí soukromého i veřejného klíče. Výsledkem úspěšně provedeného útoku jsou prvočísla p a q, ze kterých se skládá modul N. Pomocí těchto dvou prvočísel dopočítáme hodnotu Eulerovy funkce φ(n). Tato hodnota nám umožní získat hodnotu soukromého exponentu d [4]. V tuto chvíli máme již vše potřebné, co potřebujeme k rozšifrování šifrové zprávy c a k získání původní zprávy M. 21
23 2.2 Útoky využívající nevhodnou volbu parametrů klíče Håstad's Broadcast Attack Teorém 1 Mějme moduly N 1,, N i, které jsou tvořeny dvojící prvočísel, a následně přiřaďme N min = min i (N i ). Mějme g i Z Ni [x] představující k polynomů maximálního stupně d. Předpokládejme, že existuje hodnota M < N min pro kterou dále platí pro i {1,.., k}. g i (M) = 0 mod N i (6) Za předpokladu k > d, jsme schopni efektivně najít M, které je dané předpisem N i, g i k i=1. 1 Tento útok můžeme úspěšně použít k získání původní zprávy M, pokud tato zpráva M byla zaslána více koncovým osobám a při šifrování této zprávy došlo k chybnému použití veřejného exponentu e. Tento útok může být úspěšný, pokud vysílající strana odeslala šifrovou zprávu c, kterou vytvořila podle (4) více osobám. Pro šifrovou zprávu c platí postup, který byl popsán v 1.3. Pro jednotlivé šifrové zprávy c ale platí, že pro každou osobu je vygenerován unikátní modul N, ale pro všechny šifrové zprávy c je použit stejný veřejný exponent e. Pro tento veřejný exponent e musí platit, že nabývá malé hodnoty např. e = 5. Předpokládejme, že se nám podařilo zachytit k zpráv. Pokud k e, tak jsem schopni získat původní zprávu M [4]. Jako další krok musíme ověřit gcd(n i, N j ) = 1 pro každé i j. Pokud by výše zmíněná rovnost neplatila, tak bychom byly schopni faktorizovat libovolné N. Tyto zachycené šifrové zprávy zpracujeme podle čínské věty o zbytcích (CRT). Jako výstup obdržíme šifrovou zprávu c,, pro kterou platí c, Z N1 N 2 N 3 N 4 N 5. Pro tuto šifrovou zprávu c, platí c, = m 5 mod N 1 N 2 N 3 N 4 N 5. (7) Pokud platí m < N i pro i {1,, k} tak pro k = 5 dostaneme m 5 < N 1 N 2 N 3 N 4 N 5. Po dopočtení kořenů c,, jsme schopni zrekonstruovat původní zprávu M protože c, = m 5. 1 D. BONEH, Twenty years of attacks on the RSA cryptosystem, 1999, s
24 2.2.2 Wiener s Attack Teorém 2 Mějme N = pq, kde q < p < 2q. Dále mějme hodnotu d, pro kterou platí d < 1 3 N1 4. Se znalostí hodnot N, e veřejného klíče algoritmu RSA a (3) jsme schopni efektivně získat hodnotu d. 2 Tento útok můžeme efektivně použít k získání zprávy M pokud soukromý exponent d nabývá malé hodnoty. Když soukromý exponent d nabývá malé hodnoty tak je proces dešifrování rychlejší, ale pouze za cenu snížené bezpečnosti. Z definice (3) víme, že musí existovat takové číslo k pro které platí ed kφ(n) = 1 (8) a zároveň gcd(k, d) = 1. Podle důkazu 3 víme, že jsme schopni nalézt k mezi zlomky, které d konvergují k e N. Tyto konvergující zlomky se nacházejí v rozmezí od 0,, e N. Koeficienty těchto zlomků jsou velmi podobné koeficientu e. Koeficienty získáme výpočtem řetězového N zlomku, který je založen na Euklidově algoritmu. To, že se nám podařilo nalézt odpovídající hodnoty pro k a d si ověříme dosazením a vyřešením rovnic. Nejprve vypočteme φ(n) = ed 1 k. (9) Pokud se nám podle [4] podařilo najít odpovídající zlomek k zjistíme tak, že po dosazení k a d d do (7) je splněna daná rovnost. Pokud je rovnost splněna, jsem schopni získat původní zprávu M. V opačném případě musíme vyzkoušet jiný konvergující zlomek. 2 D. BONEH, Twenty years of attacks on the RSA cryptosystem, 1999, s D. BONEH, Twenty years of attacks on the RSA cryptosystem, 1999, s
25 2.3 Útoky využívající kompromitaci části klíče Partial Key Exposure Attack Teorém 3 Nechť hodnoty N, d jsou hodnoty soukromého klíče algoritmu RSA, kde modul N má délku n bitů. Za předpokladu, že známe [n 4] nejméně významných bitů hodnoty d, tak jsme schopni zrekonstruovat celou hodnotu d. Rekonstrukce hodnoty d jsme schopni provést v čase e log 2 e. 4 Při tomto útoku jsme schopni získat část bitů soukromého exponentu d ale pouze za předpokladu, že hodnota veřejného exponentu e je malé číslo [15]. Podle teorému 3 je postačující podmínkou k tomu abychom byli schopni faktorizovat modul N získat pouze N 4 nejméně významných bitů. Pro další použití si musíme definovat s = p + q [5]. Z výše uvedeného teorému 3 vyplývá existence čísla k, pro které platí ed k(n s + 1) = 1. (10) Za předpokladu d < φ(n) platí k {1,, e}. Po vyřešení (10) dosadíme hodnotu s do rovnice p 2 sp + N = 0 (mod 2 n 4 ). (11) Po vypočtení (10) dostaneme e log 2 e kandidátů, kteří řeší p mod 2 n 4 [15]. Z předcházející věty vyplývá závěr, že po skončení maximálně e log 2 e kroků budeme schopni faktorizovat modul N. 2.4 Útoky na RSA s triviálním paddingem Common Modulus Attack Tento druh útoku využívá stejného faktu jako dříve zmíněný Håstad's Broadcast Attack a to, že je stejná zašifrovaná zpráva zaslána více osobám. Rozdíl mezi těmito útoky je v tom, že při tomto útoku se pro všechny zprávy použije stejný modul N. 4 D. BONEH, Twenty years of attacks on the RSA cryptosystem, 1999, s
26 Mějme zprávu M ze které vytvoříme dva šifrové texty c 1 a c 2 podle (4). Pro každý šifrový text použijeme rozdílný veřejný exponent e ale modul N je pro obě zprávy stejný. Pro veřejné exponenty e 1 a e 2, které byly použity při šifrování, platí gcd(e 1, e 2 ) = 1 [4]. Pro získání původní zprávy M použijme rovnici m = c a b 1 c 2 mod N. (12) Zbývající hodnoty a a b použité v (11) dopočteme z e 1 a + e 2 b = 1. (13) Coppersmith s Short Pad Attack Teorém 4 Nechť hodnoty N, e jsou hodnoty veřejného klíče algoritmu RSA, kde modul N má délku n bitů. Dále máme hodnotu m = [n e 2 ]. Hodnota M ε Z N je zpráva, pro kterou platí, že dosahuje maximálně délky n-m bitů. Definujme si zprávy M 1 = 2 m M + r 1 a M 2 = 2 m M + r 2. Hodnoty r 1 a r 2 jsou dvě odlišné celočíselné hodnoty, pro které platí 0 r 1, r 2 < 2 m. Pokud známe hodnoty N, e šifrové texty C 1 a C 2, které odpovídají původním zprávám M 1 a M 2, tak jsme schopni efektivně zrekonstruovat původní zprávu M. 5 Tento útok využívá faktu, že veřejnému exponentu e byla přiřazena malá hodnota. Další podmínka, pro úspěšné provedení útoku je ta, že daná zpráva M je rozšířena o malý počet náhodných bitů z jednoho či druhého konce. Komunikující strana chce odeslat zprávu M. Před samotným zašifrováním doplní zprávu M o malý počet bitů z jednoho či druhého konce. My tuto šifrovou zprávu c 1 zachytíme, což znamená, že komunikující strana neobdrží informaci o doručení této šifrové zprávy. Komunikující strana opět zašle stejnou zašifrovanou zprávu M ale s tím rozdílem, že jí doplní o jiný malý počet náhodných bitů. My tuto novu šifrovou zprávu c 2 znovu zachytíme, ale nyní již komunikující strana obdrží informaci o úspěšném doručení [4]. Nyní máme dva šifrové texty c 1 a c 2, které odpovídají zprávám m 1 a m 2. Podle teorému 4 jsme nyní schopni zrekonstruovat původní zprávu M. 5 D. BONEH, Twenty years of attacks on the RSA cryptosystem, 1999, s
27 3 Vybrané open source solvery Při vypracovávání empirické studie byly použity dva druhy open source solverů, kde každý z nich využívá odlišného druhu problému. První skupina solverů využívá problém typu Boolean Satisfiability Problem zkráceně SAT. Druhá skupina solverů využívá odlišného typu problému, a to Integer Linear Programming zkráceně ILP. Oba zmíněné problémy patří do skupiny tzv. NP-úplných problémů. Oba zmíněné typy solverů použijeme k faktorizaci čísla N, které se označuje, jako modul a je součástí veřejného i soukromého klíče RSA. 3.1 Způsoby faktorizace Existuje mnoho způsobů faktorizace, které se od sebe odlišují tím, jak k danému problému přistupují. Náplň této práce sice není přímo zaměřena na představení faktorizace jako takové, ale použité solvery jsou použité k faktorizaci modulu N algoritmu RSA. Použité solvery řeší daný problém pomocí upraveného vstupu, který je reprezentován pomocí množiny CNF klauzulí. Z tohoto důvodu bude dobré, když si zde představíme dva odlišné a asi nejznámější přístupy k problému zvanému faktorizace Intuitivní postup Tento způsob faktorizace je nejvíce intuitivní a jsme schopni s ním do jisté míry efektivně faktorizovat malá čísla. Myšlenka tohoto postupu spočívá v nalezení jednotlivých faktorů m i známého čísla n podle n mod m i = 0, (14) kde n je číslo, které chceme faktorizovat, m i je hodnota, která může reprezentovat faktor čísla n za předpokladu (14). Pro hodnotu m i platí m i {2,.., n} za předpokladu, že n není prvočíslo. Pokud víme, že n je prvočíslo a podařilo se nám najít m i pro které platí (14), tak dopočítání druhého faktoru je již triviální. Tento způsob se dá označit jako brute force (hrubou silou), protože postupně procházíme všechny povolené možnosti, dokud nenajdeme všechny odpovídající GNFS (The General Number Field Sieve) Jedná se nejrychlejší známý algoritmus k faktorizaci velikých čísel. Tento algoritmus je zde zmíněn, protože pomocí něj byl faktorizován klíč RSA velikosti 768 bitů v rámci RSA 26
28 Challange 6. Běžně se s tímto algoritmem můžeme setkat při faktorizaci RSA klíčů velikosti 512 bitů. Podrobný popis, jak GNFS funguje je k nahlédnutí v [6]. 3.2 Boolean Satisfiability Problem Jedná se o typ problému, pomocí kterého jsme schopni rozhodnou, zdali existuje nějaké ohodnocení, pro které by byla daná Booleovská formule splnitelná či nikoliv [9]. SAT pracuje s instancemi, které mají následující CNF tvar (x 1 x 9 x 14 ) ( x 5 x 20 ), (15) kde (14) je Booleovská formule v konjunktivní normální formě (CNF). Instance se skládá z proměnných a klauzulí. Proměnné mohou nabývat hodnotu true (x 1 ) nebo hodnoty false ( x 1 ). Výstupem SAT je rozhodnutí, zdali je daná instance řešitelná nebo není řešitelná. Pokud je instance řešitelná, obdržíme kolekci proměnných, které nabývají hodnot true nebo false. Při vypracování této práce byly použity tyto SAT solvery PicoSAT ver. 960c MiniSat ver Integer Linear Programming Stejně jako u výše zmíněného SAT problému, tak se i zde snažíme zjistit, zda existuje nějaké řešení pro náš problém. V případě tohoto problému zjišťuje, zda existuje nějaký vektor x, který by splňoval Ax b, (16) kde A je matice, b je zadaný vektor. Jednotlivé hodnoty vektoru x mohou nabývat pouze hodnot 0 a 1. Pokud nalezneme takový vektor x, který splňuje (16) vypíšeme kolekci těchto parametrů, jinak oznámíme, že pro daný problém neexistuje řešení [9]. Při vypracování této práce byly použity tyto ILP solvery lp_solve ver GLPK (GNU Linear Programming Kit) ver
29 3.4 Algoritmy SAT a ILP solverů Ať už se jedná o SAT či ILP solver, existuje mnoho různých algoritmů, které tyto solvery využívají. My si zde stručně popíšeme ty, které využívají námi vybrané SAT a ILP solvery SAT solvery Moderní SAT solvery jsou nejčastěji postavené na dvou algoritmech. Prvním z nich je Conflict-Driven Clause Learning (CDCL), druhým je Davis Putnam Logemann Loveland (DPLL). Popis těchto algoritmů je nad rámec této práce. Solver PicoSAT využívá algoritmus DPLL a solver MiniSat využívá algoritmus CDCL. DPLL Jedná se o druh vyhledávacího algoritmu, pomocí kterého jsme schopni rozhodnou, zda je daná formule výrokové logiky řešitelná nebo není. Výroková formule musí být ve tvaru CNF. Tento algoritmus je založen na principu algoritmu, který se označuje jako backtracking. Tento algoritmus používá chronologický backtacking. Princip tohoto algoritmu je založen na tom, že se snažím najít pro všechny proměnné takové ohodnocení, při kterém budou všechny klauzule splnitelné. V případě, že se použije pro proměnou takové ohodnocení, při kterém nebude nějaká klauzule splnitelná, tak se vrátí a proměnné přiřadí opačné ohodnocení. Takto postupuje chronologicky do té doby, dokud nenajde správné ohodnocení pro všechny proměnné. Pokud by nebyl schopen nalézt takové ohodnocení proměnných, při kterém by byly všechny klauzule splnitelné, dané řešení není splnitelné. Detailnější princip tohoto algoritmu je popsán v [3]. CDCL Jedná se o modernější algoritmus, který vychází z algoritmu DPLL. Na rozdíl od DPLL používá algoritmus CDCL nechronologický backtacking. Navíc je schopný se ze vzniklých konfliktů poučit. Toto učení spočívá ve vygenerování dodatečných klauzulí, které by mohli způsobit problémy při dalším vyhodnocování. Protože tento algoritmus má více informací o klauzulích, které způsobují konflikty, tak ví, že je nemusí procházet a tím zvyšuje celkovou efektivitu. Detailnější princip tohoto algoritmu je popsán v [3]. 28
30 3.4.2 ILP solvery Stejně jako SAT tak i vybrané ILP solvery využívají rozdílné algoritmy. Zde si zmíníme dva nejpoužívanější. Prvním je Branch-and-Bound (BB) [7], druhým z nich je Interior Point (IP) [14]. Solver lp_solver je postaven na algoritmu BB a solver GLPK využívá algoritmus IP. BB Jedná se o algoritmus, pomocí kterého se snažíme nalézt optimální řešení našeho problému. Princip tohoto algoritmu je založen na tom, že množinu možných řešení rozdělíme na menší části. Tuto operaci nazýváme větvení. Předtím než se pustíme do řešení každé menší části (větve), ověříme, že jsme schopni v této větvi nalézt lepší řešení, než je doposud nalezené řešení. Pokud bychom nebyli schopni v této větvi nalézt lepší řešení, tuto větev přeskočíme a pokračujeme v řešení další větve. Detailnější princip tohoto algoritmu je popsán v [7]. IP Jedná se o metodu, která využívá simplexových algoritmů. Simplexové algoritmy jsou takové algoritmy, které postupně prohledávají množinu řešení. V každém kroku se snaží pozměnit nalezené řešení, aby bylo co nejoptimálnější. Tato metoda používá konkrétně simplexové algoritmy primal a dual. Detailnější princip tohoto algoritmu je popsán v [14]. 3.5 Problematika faktorizace pomocí SAT a ILP solverů Myšlenka faktorizace modulů N algoritmu RSA pomocí SAT a ILP solverů není moc rozšířená, ale přesto se dá najít několik publikací a článků [1,2,12,16], které se věnují této problematice. Dosažené výsledy v těchto pracích pracují s tím, že efektivnost jednotlivých solverů je možné ovlivnit několika faktory. Mezi tyto faktory patří především volba typu faktorizačního obvodu, který představuje jakýsi předpis, pro zjednodušení řešeného problému do CNF formulí. Další faktor ovlivňující celkovou efektivitu je typ algoritmu, který je v daném solveru použit. Naměřené hodnoty při empirických studiích v uvedených pracích jsou si docela podobné. Bude zajímavé porovnat, jestli výsledky dosažené v naší empirické studii budou korespondovat s výsledky, které byly dosažené v uvedených pracích. 29
31 4 Empirická studie Tato kapitola je věnována představení samotné empirické studie. Popisuje se zde, co vše bylo potřeba pro samotné provedení studie připravit, a to včetně konfigurace testovacího stroje, použitých nástrojů, programů, scriptů atd. Dále zde je stručně popsán samotný postup vypracovávání celé studie včetně přípravy testovacích dat pro jednotlivé fáze. 4.1 Cíle empirické studie Cílem empirické studie je získání dostatečného množství dat, ze kterých je možné vyvodit relevantní závěr ohledně efektivnosti jednotlivých vybraných solverů. V rámci empirické studii bylo zkoumáno, jak efektivní jsou vybrané open source solvery typu SAT a ILP. U vybraných solverů bylo posuzováno, jakou mají spotřebu času a paměti a jak se na celkové spotřebě promítl rozdíl v použitých algoritmech těchto solverů. 4.2 Faktorizační obvod Jeden z nejdůležitějších faktorů, který měl vliv na získané hodnoty v empirické studii, byl faktorizační obvod. Jedná se o typ logického obvodu, který je složen ze sčítačky a násobičky. Sčítačka a násobička jsou druhy logického kombinačního obvodu. Logický kombinační obvod se skládá z logických členů tzv. hradel typu AND, OR a NOT. Hradlo může mít více vstupu x i, kde i {1,, n} a pouze jeden výstup y. Hodnoty na vstupu mohou nabývat pouze hodnot 0 (false) a 1 (true). Hodnota, která je výstupem z daného hradla, je závislá na logické funkci, kterou dané hradlo představuje. Hodnota, která z hradla vystupuje, může rovněž nabývat pouze hodnot 0 (false) a 1 (true) Sčítačka Jak bylo zmíněno výše, sčítačka je logický kombinační obvod. Sčítačka nám umožňuje sčítat dvojici čísel, která musí být reprezentována ve dvojkové soustavě. Použité typy sčítaček v této práci N-bit Fast 30
32 N-bit Jedná se sčítačku označovanou jako Ripple-Carry Adder. Jedná se o obvod, který se skládá z několika úplných sčítaček, které jsou zapojené za sebou do série. Nevýhoda tohoto zapojení je v tom, že signál carry (příznak přenosu) musí projít skrze všechny úplné sčítačky. Teprve potom co signál carry projde všemi sčítačkami, dostaneme finální součet. Fast Tato sčítačka se označovaná jako Carry-Lookahead Adder se skládá ze série zapojených úplných sčítaček ale na rozdíl od sčítačky typu Ripple-Carry Adder je doplněna o další logický obvod. Tento dodatečný logický obvod se označuje jako Carry-Lookahead Logic. Tento dodatečný logický obvod řeší problém s přenosem signálu carry. Všechny přenosy signálu carry jsou v tomto logickém obvodu vypočítány pro všechny úplné sčítačky najednou Násobička Násobička je druhý typ logického kombinačního obvodu, který je použit ve faktorizačním obvodu. Násobička umožňuje vynásobit dvojici čísel, která jsou reprezentovaná ve dvojkové soustavě. Použité typy násobiček v této práci Carry-save Wallace Recursive Carry-save Jedná se o typ násobičky založené na principu násobícího pole, které pracuje na principu sčítačky s uchováním přenosu 7. Wallace Jedná se o typ paralelní násobičky, která zpracovává data pomocí stromové struktury 8. Recursive Jedná se typ násobičky, která je postavena na principu algoritmu Karatsuba
33 V této práci bylo použito šesti rozdílných faktorizačních obvodů. Každý faktorizační obvod se skládá z jedné sčítačky a jedné násobičky. Jednotlivé obvody se od sebe odlišovaly použitou kombinací sčítačky a násobičky. Pro vytvoření jednotlivých faktorizačních obvodů byl použit program 10, který byl vyvinut Paulem Pudromem a Amrim Sabrym. Podstata tohoto programu je v tom, že problém řešený faktorizačním obvodem převede na soustavu CNF klauzulí (14). 4.3 Příprava dat Pro generování a úpravu vstupních dat jsem vytvořil program v jazyce C Sharp. Detaily o tomto programu jsou součástí přílohy A. Pro potřeby zpracování dat jednotlivými solvery jsem vytvořil skripty, které umožňovaly hromadné zpracování vstupních dat vybranými solvery. Popisy jednotlivých scriptů jsou také součástí přílohy A. Pro různé fáze empirické studie se musela připravit odlišná sada dat. V následujících podkapitolách si detailně popíšeme, jak se tato testovací dat připravovala Příprava dat pro faktorizační obvod Vstupem každého faktorizačního obvodu byl modul (číslo) N, který byl vytvořen podle (1). K vygenerování všech modulů N byl použit program napsaný v jazyce C#, který je součástí přílohy A. Prvočísla p a q, ze kterých je složen výsledný modul N byla vygenerována pomocí generátoru 11. Pro účely této práce byla použita prvočísla ve velikosti od 5 do 16 bitů. Pro výslednou velikost modulu N platí bit(p) = bit(q) = x (17) bit(n) = 2x (18) Každý modul N byl vygenerován tak, aby byl unikátní. Pro účel této práce bylo celkem vygenerováno 8249 rozdílných modulů N napříč všemi velikostmi klíčů (18). Protože každý modul N je výsledkem součinu prvočísel p a q, máme zaručeno, že každý náš problém je jednoznačně řešitelný. Z tohoto důvodu by neměla nastat situace, že by kterýkoliv z vybraných solverů prohlásil, že daný problém není řešitelný Příprava dat pro solvery Zde musíme od sebe odlišit, jestli připravujeme vstupní data pro solvery typy SAT nebo pro solvery typu ILP. Každý uvedený typ solveru pracuje s odlišným formátem vstupních dat
34 Jako výstup z faktorizačního obvodu obdržíme soubor typu dimacs, který obsahuje data ve formátu CNF. Tento soubor obsahuje soustavu klauzulí a proměnných, které řeší náš problém (faktorizaci modulu N). Kromě klauzulí a proměnných tento soubor ještě obsahuje doplňující informace, které se k danému problému vážou. Mezi těmito doplňujícími informacemi nalezneme typ použitého faktorizačního obvodu (typ použité sčítačky a násobičky) a proměnné, které zastupují námi hledaná prvočísla p a q. Poslední informativní řádek ukazuje celkový počet proměnných a klauzulí, které řeší náš problém a v jakém formátu jsou data v tomto souboru uložena. Struktura dat souboru dimacs c Problem generated from carry-save[fast] multiplication circuit c by Paul Purdom and Amr Sabry c c Circuit for product = 493 [True,True,True,True,False,True,True,False,True] c Variables for output [msb,...,lsb]:[235,234,233,232,219,218,194,173,134,91,48,24,14] c Variables for first input [msb,...,lsb]: [8,7,6,5,4,3,2,1] c Variables for second input [msb,...,lsb]: [13,12,11,10,9] c c p cnf Řádky začínající písmenem c jsou řádky představující komentáře s doplňujícími informacemi. Řádky, které za znakem c obsahují text Variables for obsahují v hranatých závorkách číselné hodnoty. Tyto číselné hodnoty reprezentují proměnné, které jako celek reprezentují číslo. Toto číslo může být buďto výsledný modul N (output) nebo námi hledaná prvočísla p a q (first/second input). Řádek začínající písmenem p má tři složky. První složka nám říká, že následující řádky obsahují instance ve formátu CNF (14). První číselná hodnota nám říká, kolik daný obvod obsahuje proměnných. Druhá číselná hodnota nám říká, kolik klauzulí obsahuje daný obvod 33
35 řešící náš problém. Další řádky až do konce souboru představují jednotlivé klauzule reprezentující obvod, který řeší námi zadaný problém. Nyní jsme se dostali do bodu, kdy musíme řešit formát vstupních dat pro jednotlivé typy solverů. Pokud chceme pracovat se solvery typu SAT, nemusíme tento soubor nijak upravovat a použijeme přímo tento soubor bez jakékoliv změny. V případě, že použijme ILP solver, se situace komplikuje. ILP solvery pracují s odlišným typem souborů a formátem vstupních dat. Námi vybrané ILP solvery pracují se soubory typu lp respektive mod. Tyto dva soubory se od sebe odlišují rozdílnou strukturou dat, jak bude ukázáno níže. Struktura dat souboru lp max: x1 + x2 + x3 + x4 + x5 + + x236 + x237 + x238 + x239; r1: x1 + x x14 >= 1; r2: x x x14 >= 1;... r916: 1 - x234 >= 1; r917: 1 - x235 >= 1; bin x1,x2,x3,x4,,x237,x238,x239; První řádek začínající max: říká, že hledáme takové parametry, za kterých bude daný problém maximalizován. Následují řádky začínající rn: představují jednotlivé klauzule, kde je hodnota n {1,, m}. Hodnota m reprezentuje celkový počet klauzulí. Hodnoty xi reprezentují jednotlivé proměnné, kde je hodnota i {1,, j}. Hodnota j reprezentuje celkový počet proměnných. Poslední řádek, který začíná slovem bin, nám říká, že všechny proměnné mohou nabývat pouze hodnot 1 (true) nebo 0 (false). 34
36 Struktura dat souboru mod var x1, binary; var x2, binary; var x3, binary; maximize obj: x1 + x2 + x3 + x4 ; s.t. r1: x1 + x x14 >= 1; s.t. r2: x x x14 >= 1; s.t. r3: 1 - x1 + x x14 >= 1; s.t. r4: 1 - x x9 + x14 >= 1; s.t. r5: x2 + x x15 >= 1; solve; display x1, x2, x3, x4, ; end; Řádky ve tvaru var x i, binary; představují definice jednotlivých proměnných. Hodnoty ri reprezentují jednotlivé proměnné, kde je hodnota i {1,, j}. Hodnota j reprezentuje celkový počet proměnných. Klíčovým slovem Binary říkáme, že proměnné mohou nabývat pouze hodnot 1 (true) a 0 (false). Řádkem maximize obj: x1+ říkáme, že hledáme maximalizaci této funkce. Následující řádky začínající s.t. rn: představují jednotlivé klauzule, kde je hodnota n {1,, m}. Hodnota m reprezentuje celkový počet klauzulí. Slovem solve říkáme solveru, že chceme daný problém řešit. Řádek začínající slovem display nám zajistí, že po vyřešení daného problému obdržíme ohodnocení jednotlivých proměnných na standardní výstup. Poslední řádek se slovem end nám ukončuje zadání řešeného problému. Soubor dimacs byl do formátů souborů lp a mod převeden pomocí programu, který byl napsán v jazyce C#. Program je součástí přílohy A. 4.4 Výstupní data Výstupní data ze solverů můžeme rozdělit do dvou částí. První část výstupních dat představuje data, která jsou specifická pro daný druh a typ solveru. Druhá část výstupních dat je shodná jak pro solvery typu SAT, tak i pro solvery typu ILP. Druhá část výstupních dat obsahuje proměnné, které řeší náš problém. V této fázi mají již všechny proměnné přiřazené 35
37 ohodnocením. Pokud byla proměnné přiřazena hodnota true, je zapsána ve formátu např. 1 nebo pokud byla proměnné přiřazena hodnota false, je zapsána ve formátu např. -1. Pokud propojíme tento soubor obsahující proměnné a jejich ohodnocení z výše zmíněným souborem dimacs, už jsme schopni získat hodnoty prvočísel p a q. Hodnoty, na kterých budeme zkoumat efektivnost jednotlivých solverů, jsou součástí první části výstupních dat vybraných solverů. Jedná se o data, která představují spotřebu použitých zdrojů. Mezi tyto data patří čas a paměť, které byli spotřebované pro vyřešení daného problému. Dalším zdrojem informací pro vypracování empirické studie byla data obsažená v souboru dimacs. V těchto souborech nás budou zajímat údaje o celkovém počtu proměnných a klauzulí, které řeší námi zadaný problém. Tyto hodnoty najdeme na řádku, který začíná písmenem p. 4.5 Průběh testování Před samotným testováním bylo potřeba připravit základní testovací data a testovací prostředí. Příprava testovacích dat je popsána v kapitole Tato data posloužila jako vstup do faktorizačních obvodů. Výstupem je již několikrát zmíněný soubor dimacs, který je potřebný jako zdroj vstupních dat do solverů Zpracování vstupních dat pomocí scriptů V testovacím prostředí byl spuštěn pro každý typ solveru odpovídající script. Jednotlivé scripty jsou součástí přílohy A. Vstupem těchto scriptů byly soubory odpovídajícího formátu. Formát byl zvolen podle použitého typu solveru. Příprava a typ odpovídajících souborů je popsána v kapitole 4.3. Výstupy ze všech solverů byly ukládány do jednotlivých souborů, jak bylo popsáno v kapitole 4.4. Pořadí, v jakém byly jednotlivé scripty spouštěny, nemělo žádný vliv na kvalitu výstupních data z těchto solverů Shromažďování výstupů Data získaná jako výstup ze solverů byla dále zpracována programem, který je součástí přílohy A. Výhodou tohoto předzpracování bylo to, že jsem měl stejné sledované hodnoty pro každý typ solveru a faktorizačního obvodu uloženy ve stejném souboru. Tento způsob ukládání naměřených hodnot se projevil jako výhodný při následném zpracování a vynášení hodnot do grafů a tabulek. 36
38 4.6 Informace pro zopakování měření Aby se daly informace považovat za relevantní, musí existovat způsob, jak tato data získat znovu, tím, že zopakujeme postup jejich získávání. V opačném případě by se tyto dosažené informace nedali považovat za věrohodné. V níže uvedených podkapitolách bude uvedeno, co je zapotřebí, aby mohlo být provedené měření zopakováno Použitá data Aby bylo možné měření zopakovat, potřebujeme soubor se stejnými daty, která byla použita při zkoumaném měření. Data použitá při vypracovávání této studie jsou součástí přílohy B Testovací prostředí Pokud chceme zopakovat provedené měření co možná nejpřesněji, potřebujeme k tomu odpovídající prostředí. Toto nové prostředí by se mělo co nejvíce podobat tomu, na kterém bylo provedeno původní měření, které chceme zopakovat. Mezi komponenty, které jsou důležité pro zopakování měření, patří jak SW, tak i použitý HW. Popis testovacího prostředí K testování byla použita nová čistá instalace operačního systému, aby se minimalizovala možnost ovlivnění provedených měření. Jediným dodatečně doinstalovaným softwarem byly solvery, které byly použity pro účely měření v této empirické studii. Testovací prostředí bylo používáno výhradně jen pro účely provedení série měření. Aby bylo testování co nejpřesnější, bylo vypnuto vše, co nebylo nutné pro běh operačního systému a testovacího procesu. Konfigurace testovacího stroje Testovací stroj Toshiba Portege R700-15H Operační systém Ubuntu LTS, 32-bit Procesor Intel 1 x Core i5 CPU 2.40GHz Paměť 1x 4096 MB DDR3, 1066 MHz 37
39 5 Dosažené výsledky Prezentaci výsledků, které byly dosaženy během měření, jsem rozdělil do několika částí Faktorizační obvody SAT solvery ILP solvery Porovnání SAT a ILP solverů Toto rozdělení bylo zvoleno proto, že tímto způsobem bylo možno co nejlépe prezentovat a porovnat naměřené hodnoty jednotlivými solvery. 5.1 Faktorizační obvody V této části je zobrazeno, jak velký vliv má na počet proměnných a klauzulí volba faktorizačního obvodu. Můžeme pozorovat, jak a kdy se projevuje změna typu násobičky a sčítačky, ze kterých se faktorizační obvod skládá. 38
40 Počet proměnných Počet proměnných Závislost počtu proměnných na typu obvodu Graf 1: Závislost počtu proměnných na velikosti klíče (Fast) Fast_CarrySave Fast_Recursive Fast_Wallace Velikost klíče (bit) Zdroj: Vlastní zpracování Graf 2: Závislost počtu proměnných na velikosti klíče (N-bit) N-bit_CarrySave N-bit_Recursive N-bit_Wallace Velikost klíče (bit) Zdroj: Vlastní zpracování 39
41 Počet klauzulí Počet klauzulí Závislost počtu klauzulí na typu obvodu Graf 3: Závislost počtu klauzulí na velikosti klíče (Fast) Fast_CarrySave Fast_Recursive Fast_Wallace Velikost klíče (bit) Zdroj: Vlastní zpracování Graf 4: Závislost počtu klauzulí na velikosti klíče (N-bit) N-bit_CarrySave N-bit_Recursive N-bit_Wallace Velikost klíče (bit) Zdroj: Vlastní zpracování 40
42 Spotřebovaná paměť (MB) Spotřebovaný čas (ms) Spotřebovaná paměť (MB) Spotřebovaný čas (ms) 5.2 SAT solvery V této kapitole je pro vybrané SAT solvery zobrazeno, jak se mění spotřeba času a paměti v závislosti na velikosti klíče řešeného problému. Jednotlivé body, které jsou vynesené v grafech, představují jeden konkrétní řešený problém MiniSat Graf 5: MiniSat Fast CarrySave Velikost klíče (bit) Velikost kíče (bit) Zdroj: Vlastní zpracování Graf 6: MiniSat Fast Recursive Velikost klíče (bit) Velikost klíče (bit) Zdroj: Vlastní zpracování 41
43 Spotřebovaná paměť (MB) Spotřebovaný čas (ms) Spotřebovaná paměť (MB) Spotřebovaný čas (ms) Graf 7: Minista Fast Wallace Velikost klíče (bit) Velikost klíče (bit) Zdroj: Vlastní zpracování Graf 8: MiniSat N-Bit Carry-Save Velikost klíče (bit) Velikost klíče (bit) Zdroj: Vlastní zpracování 42
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ů
Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča
Asymetrická kryptografie a elektronický podpis Ing. Dominik Breitenbacher ibreiten@fit.vutbr.cz Mgr. Radim Janča ijanca@fit.vutbr.cz Obsah cvičení Asymetrická, symetrická a hybridní kryptografie Kryptoanalýza
Pokročilá kryptologie
Pokročilá kryptologie RSA 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ů Informatika pro
RSA. Matematické algoritmy (11MAG) Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. verze: :01
Čínská věta o zbytcích Mocnění Eulerova funkce Šifrování Závěr Čínská věta o zbytcích RSA Matematické algoritmy (11MAG) Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní 4. přednáška 11MAG ponděĺı
Protokol RSA. Tvorba klíčů a provoz protokolu Bezpečnost a korektnost protokolu Jednoduché útoky na provoz RSA Další kryptosystémy
Protokol RSA Jiří Velebil: X01DML 3. prosince 2010: Protokol RSA 1/18 Protokol RSA Autoři: Ronald Rivest, Adi Shamir a Leonard Adleman. a Publikováno: R. L. Rivest, A. Shamir a L. Adleman, A Method for
Čínská věta o zbytcích RSA
Čínská věta o zbytcích RSA Matematické algoritmy (11MAG) Jan Přikryl Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní 5. přednáška 11MAG pondělí 10. listopadu 2014 verze: 2014-11-10 11:20 Obsah
Š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
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
Asymetrická kryptografie
PEF MZLU v Brně 12. listopadu 2007 Problém výměny klíčů Problém výměny klíčů mezi odesílatelem a příjemcem zprávy trápil kryptografy po několik století. Problém spočívá ve výměně tajné informace tak, aby
RSA. Matematické algoritmy (11MA) Miroslav Vlček, Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. čtvrtek 21.
Čínská věta o zbytcích Šifrování Závěr Čínská věta o zbytcích RSA Matematické algoritmy (11MA) Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní 4. přednáška 11MA čtvrtek 21. října 2010 verze:
Asymetrická kryptografie a elektronický podpis. Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz
Asymetrická kryptografie a elektronický podpis Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz Obsah cvičení Asymetrická, symetrická a hybridní kryptografie Matematické problémy, na kterých
MFF UK Praha, 22. duben 2008
MFF UK Praha, 22. duben 2008 Elektronický podpis / CA / PKI část 1. http://crypto-world.info/mff/mff_01.pdf P.Vondruška Slide2 Přednáška pro ty, kteří chtějí vědět PROČ kliknout ANO/NE a co zatím všechno
Digitální podepisování pomocí asymetrické kryptografie
Digitální podepisování pomocí asymetrické kryptografie 11. dubna 2011 Trocha historie Asymetrické metody Historie Historie Vlastnosti Asymetrické šifrování 1976 Whitfield Diffie a Martin Hellman první
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 -
Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Digitální podpisy
VY_32_INOVACE_BEZP_08 Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/34.0304 Digitální podpisy Základní myšlenkou elektronického podpisu je obdoba klasického podpisu, jež má zaručit jednoznačnou identifikaci
Š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;
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í
Diffieho-Hellmanův protokol ustanovení klíče
Diffieho-Hellmanův protokol ustanovení klíče Andrew Kozlík KA MFF UK Diffieho-Hellmanův protokol ustanovení klíče (1976) Před zahájením protokolu se ustanoví veřejně známé parametry: Konečná grupa (G,
Složitost a moderní kryptografie
Složitost a moderní kryptografie Radek Pelánek Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/02.0024 Složitost a moderní kryptografie
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
Kryptografie založená na problému diskrétního logaritmu
Kryptografie založená na problému diskrétního logaritmu Andrew Kozlík KA MFF UK Diffieho-Hellmanův protokol ustanovení klíče (1976) Před zahájením protokolu se ustanoví veřejně známé parametry: Konečná
4EK213 Lineární modely. 10. Celočíselné programování
4EK213 Lineární modely 10. Celočíselné programování 10.1 Matematický model úlohy ILP Nalézt extrém účelové funkce z = c 1 x 1 + c 2 x 2 + + c n x n na soustavě vlastních omezení a 11 x 1 + a 12 x 2 + a
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY Jan Krejčí 31. srpna 2006 jkrejci@physics.ujep.cz http://physics.ujep.cz/~jkrejci Obsah 1 Přímé metody řešení soustav lineárních rovnic 3 1.1 Gaussova eliminace...............................
ElGamal, Diffie-Hellman
Asymetrické šifrování 22. dubna 2010 Prezentace do předmětu UKRY Osnova 1 Diskrétní logaritmus 2 ElGamal 3 Diffie-Hellman Osnova 1 Diskrétní logaritmus 2 ElGamal 3 Diffie-Hellman Osnova 1 Diskrétní logaritmus
Obsah. Protokol RSA. Protokol RSA Bezpečnost protokolu RSA. 5. a 6. přednáška z kryptografie
Obsah RSA šifrování 5. a 6. přednáška z kryptografie 1 RSA šifrování 2 Útoky na protokol RSA Útoky při sdíleném modulu nebo exponentu Útoky při malém soukromém exponentu Implementační útoky 3 Digitální
Třídy složitosti P a NP, NP-úplnost
Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není
5. a 6. přednáška z kryptografie
RSA šifrování 5. a 6. přednáška z kryptografie Alena Gollová RSA širování 1/33 Obsah 1 RSA šifrování 2 Útoky při sdíleném modulu nebo exponentu Útoky při malém soukromém exponentu Implementační útoky 3
Digitální podepisování pomocí asymetrické kryptografie
Digitální podepisování pomocí asymetrické kryptografie Jan Máca, FJFI ČVUT v Praze 26. března 2012 Jan Máca () Digitální podepisování 26. března 2012 1 / 22 Obsah 1 Digitální podpis 2 Metoda RSA 3 Metoda
MPI - 7. přednáška. Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n.
MPI - 7. přednáška vytvořeno: 31. října 2016, 10:18 Co bude v dnešní přednášce Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n. Rovnice a b
Informatika Ochrana dat
Informatika Ochrana dat Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008 Obsah Kryptografické systémy s veřejným klíčem, výměna tajných klíčů veřejným kanálem, systémy s veřejným
Správa přístupu PS3-2
Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Správa přístupu PS3-2 1 Osnova II základní metody pro zajištění oprávněného přístupu; autentizace; autorizace; správa uživatelských účtů; srovnání současných
12. Globální metody MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
Elektronický podpis. Základní princip. Digitální podpis. Podpis vs. šifrování. Hashování. Jednosměrné funkce. Odesílatel. Příjemce
Základní princip Elektronický podpis Odesílatel podepíše otevřený text vznikne digitálně podepsaný text Příjemce ověří zda podpis patří odesílateli uvěří v pravost podpisu ověří zda podpis a text k sobě
Výroková logika - opakování
- opakování ormální zavedení Výroková formule: Máme neprázdnou nejvýše spočetnou množinu A výrokových proměnných. 1. Každá proměnná je výroková formule 2. Když α, β jsou formule, potom ( α), (α β), (α
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ýukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití.
Metodický list hardware Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití. Postupuje od výčtu základních prvků, bez kterých se PC
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
Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie
Obsah Počítání modulo n a jeho časová složitost 3. a 4. přednáška z kryptografie 1 Počítání modulo n - dokončení Umocňování v Zn 2 Časová složitost výpočtů modulo n Asymptotická notace Základní aritmetické
ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094
10 ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 Matematicko-fyzikální fakulta Univerzita Karlova v Praze 1 ROZHODOVÁNÍ TEORIÍ POMOCÍ SAT ŘEŠIČE (SMT)
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
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
4EK213 LINEÁRNÍ MODELY
4EK213 LINEÁRNÍ MODELY Úterý 11:00 12:30 hod. učebna SB 324 3. přednáška SIMPLEXOVÁ METODA I. OSNOVA PŘEDNÁŠKY Standardní tvar MM Základní věta LP Princip simplexové metody Výchozí řešení SM Zlepšení řešení
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íčů,
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)
Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.
Matice přechodu Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např. u příkladu 7 (v ) dostaneme: Nyní bychom mohli postupovat jako u matice homomorfismu
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
Základy kryptografie. Beret CryptoParty 11.02.2013. 11.02.2013 Základy kryptografie 1/17
Základy kryptografie Beret CryptoParty 11.02.2013 11.02.2013 Základy kryptografie 1/17 Obsah prezentace 1. Co je to kryptografie 2. Symetrická kryptografie 3. Asymetrická kryptografie Asymetrické šifrování
C5 Bezpečnost dat v PC
C5 T1 Vybrané kapitoly počíta tačových s sítí Bezpečnost dat v PC 1. Počíta tačová bezpečnost 2. Symetrické šifrování 3. Asymetrické šifrování 4. Velikost klíče 5. Šifrování a dešifrov ifrování 6. Steganografie
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou
Kryptografie, elektronický podpis. Ing. Miloslav Hub, Ph.D. 27. listopadu 2007
Kryptografie, elektronický podpis Ing. Miloslav Hub, Ph.D. 27. listopadu 2007 Kryptologie Kryptologie věda o šifrování, dělí se: Kryptografie nauka o metodách utajování smyslu zpráv převodem do podoby,
NP-úplnost problému SAT
Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x
1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1
1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,
Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty.
Kapitola 4 Tělesa Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty. Všechna čísla byla reálná, vektory měly reálné souřadnice, matice měly reálné prvky. Také řešení soustav
2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013
2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky
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)
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
ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu
ČVUT FEL X36PAA - Problémy a algoritmy 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu Jméno: Marek Handl Datum: 3. 2. 29 Cvičení: Pondělí 9: Zadání Prozkoumejte citlivost metod
V 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í
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
Kódováni dat. Kódy používané pro strojové operace
Kódováni dat Před zpracováním dat například v počítači je třeba znaky převést do tvaru, kterému počítač rozumí, tj. přiřadit jim určité kombinace bitů. Tomuto převodu se říká kódování. Kód je předpis pro
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í
Základy šifrování a kódování
Materiál byl vytvořen v rámci projektu Nové výzvy, nové příležitosti, nová škola Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Základy šifrování a kódování
IB112 Základy matematiky
IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic
LEKCE 6. Operátory. V této lekci najdete:
LEKCE 6 Operátory V této lekci najdete: Aritmetické operátory...94 Porovnávací operátory...96 Operátor řetězení...97 Bitové logické operátory...97 Další operátory...101 92 ČÁST I: Programování v jazyce
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
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) 1 Obecný popis metody Particle Image Velocimetry, nebo-li zkráceně PIV, je měřící
PSK2-16. Šifrování a elektronický podpis I
PSK2-16 Název školy: Autor: Anotace: Vzdělávací oblast: Předmět: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Jak funguje asymetrická šifra a elektronický podpis Informační
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
Integrovaný informační systém Státní pokladny (IISSP) Dokumentace API - integrační dokumentace
Česká republika Vlastník: Logica Czech Republic s.r.o. Page 1 of 10 Česká republika Obsah 1. Úvod...3 2. Východiska a postupy...4 2.1 Způsob dešifrování a ověření sady přístupových údajů...4 2.2 Způsob
Jihomoravske centrum mezina rodnı mobility. T-exkurze. Teorie c ı sel, aneb elektronicky podpis a s ifrova nı
Jihomoravske centrum mezina rodnı mobility T-exkurze Teorie c ı sel, aneb elektronicky podpis a s ifrova nı Brno 2013 Petr Pupı k Obsah Obsah 2 Šifrovací algoritmy RSA a ElGamal 12 2.1 Algoritmus RSA.................................
PA159 - Bezpečnostní aspekty
PA159 - Bezpečnostní aspekty 19. 10. 2007 Formulace oblasti Kryptografie (v moderním slova smyslu) se snaží minimalizovat škodu, kterou může způsobit nečestný účastník Oblast bezpečnosti počítačových sítí
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...
Způsoby realizace této funkce:
KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je výstup určen jen výhradně kombinací vstupních veličin. Hodnoty výstupních veličin nezávisejí na předcházejícím stavu logického obvodu, což znamená, že kombinační
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
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.
4EK201 Matematické modelování. 2. Lineární programování
4EK201 Matematické modelování 2. Lineární programování 2.1 Podstata operačního výzkumu Operační výzkum (výzkum operací) Operational research, operations research, management science Soubor disciplín zaměřených
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
Řetězové zlomky. již čtenář obeznámen. Důraz bude kladen na implementační stránku, protože ta je ve
Faktorizace čísel pomocí řetězových zlomků Tento text se zabývá algoritmem CFRAC (continued fractions algorithm) pro rozkládání velkých čísel (typicky součinů dvou velkých prvočísel). Nebudeme se zde zabývat
KOMBINAČNÍ LOGICKÉ OBVODY
Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je vstup určen jen výhradně kombinací vstupních veličin. Hodnoty
Fz =a z + a z +...+a z +a z =
Polyadické číselné soustavy - převody M-místná skupina prvků se z-stavovou abecedou umožňuje zobrazit z m čísel. Zjistíme, že stačí vhodně zvolit číslo m, abychom mohli zobrazit libovolné číslo menší než
Řešení problému vážené splnitelnosti booleovské formule pokročilou iterativní metodou
Řešení problému vážené splnitelnosti booleovské formule pokročilou iterativní metodou 1 SPECIFIKACE ÚLOHY Cílem této úlohy bylo použít vybranou pokročilou iterativní metodou pro řešení problému vážené
NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
NP-ÚPLNÉ PROBLÉMY Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 13 Evropský sociální fond Praha & EU: Investujeme do
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,
Diferenciální rovnice 1
Diferenciální rovnice 1 Základní pojmy Diferenciální rovnice n-tého řádu v implicitním tvaru je obecně rovnice ve tvaru,,,, = Řád diferenciální rovnice odpovídá nejvyššímu stupni derivace v rovnici použitému.
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
1 Řešení soustav lineárních rovnic
1 Řešení soustav lineárních rovnic 1.1 Lineární rovnice Lineární rovnicí o n neznámých x 1,x 2,..., x n s reálnými koeficienty rozumíme rovnici ve tvaru a 1 x 1 + a 2 x 2 +... + a n x n = b, (1) kde koeficienty
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2013/2014 1 / 20 Základní syntax Jazyk Výroková logika je logikou
Diskrétní logaritmus
13. a 14. přednáška z kryptografie Alena Gollová 1/38 Obsah 1 Protokoly Diffieho-Hellmanův a ElGamalův Diffieho-Hellmanův a ElGamalův protokol Bezpečnost obou protokolů 2 Baby step-giant step algoritmus
Ú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.
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
CO JE KRYPTOGRAFIE Šifrovací algoritmy Kódovací algoritmus Prolomení algoritmu
KRYPTOGRAFIE CO JE KRYPTOGRAFIE Kryptografie je matematický vědní obor, který se zabývá šifrovacími a kódovacími algoritmy. Dělí se na dvě skupiny návrh kryptografických algoritmů a kryptoanalýzu, která
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é
Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.
Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Základní invertor v technologii CMOS dva tranzistory: T1 vodivostní kanál typ N T2 vodivostní kanál typ P při u VST = H nebo L je klidový proud velmi malý
Výroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a
1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD
.. Minimalizace logické funkce a implementace do cílového programovatelného obvodu Zadání. Navrhněte obvod realizující neminimalizovanou funkci (úplný term) pomocí hradel AND, OR a invertorů. Zaznamenejte
Zbytky a nezbytky Vazební věznice Orličky Kondr (Brkos 2010) Zbytky a nezbytky / 22
Zbytky a nezbytky aneb stručný úvod do kongruencí Zbyněk Konečný Vazební věznice Orličky 2009 23. 27.2.2009 Kondr (Brkos 2010) Zbytky a nezbytky 23. 27.2.2009 1 / 22 O čem to dnes bude? 1 Úvod 2 Lineární
Výroková a predikátová logika - V
Výroková a predikátová logika - V Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - V ZS 2015/2016 1 / 21 Dokazovací systémy VL Hilbertovský kalkul Hilbertovský
Pravděpodobnostní algoritmy
Pravděpodobnostní algoritmy 17. a 18. přednáška z kryptografie Alena Gollová 1/31 Obsah 1 Diskrétní rozdělení náhodné veličiny Algoritmus Generate and Test 2 Alena Gollová 2/31 Diskrétní rozdělení náhodné