Komprimace a šifrování

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

Download "Komprimace a šifrování"

Transkript

1 Komprimace a šifrování Mgr. Tomáš Foltýnek, Ph.D., Ing. Jan Přichystal, Ph.D.

2 2 Obsah Obsah Cíl studia 3 Úvod 3 Využití komprimace a šifrování 4 Poučení 5 Návaznost 5 Poděkování 5 Teorie informace 6 Úvod do kompresních algoritmů 11 Komprese multimediálních dat 19 Úvod do kryptologie 30 Historie kryptografie a kryptoanalýzy do konce druhé světové války 34 Substituční šifry 46 Generování náhodných čísel 54 Transpoziční šifry. Superšifrování 56 Symetrická kryptografie 57 Asymetrická kryptografie 64 Digitální podpis 67 Hashování 74 Steganografie 78 Šifrování v mobilní komunikaci 84 Kvantová kryptografie 93 Zájmová kryptografie 95 Slovníček pojmů 101 Test 1

3 Obsah 3 Cíl studia Cíl studia Cíle studia předmětu Komprimace a šifrování je Orientace v oblasti teorie informace a komprimace, seznámení s metodami kryptografie a kryptoanalýzy. Podrobněji jsou cíle specifikovány jako: ovládat základní pojmy z teorie informace a dokázat je aplikovat mít přehled o obecných technikách neztrátové a ztrátové komprese dat vědět, jak lze komprimovat text, obraz, zvuk, video znát základní pojmy z oblasti kryptologie mít přehled o historii kryptologie znát základní způsoby šifrování - metody substituce a transpozice textu vědět, jak fungují moderní symetrické a asymetrické metody a na jakých matematických předpokladech stojí jejich bezepčnost vědět, jak funguje inffrastruktura veřejných klíčů a znát princip digitálního podpisu vědět, co je to steganografie a znát běžně používané steganografické techniky mít povšechný přehled o možnostech kvantové kryptografie dokázat poznatky aplikovat v praxi některou z oblastí komprimace či kryptologie prostudovat do hloubky Prostředky k dosažení těchto cílů jsou při prezenčním studiu účast na přednáškách a cvičeních a samostatná práce na projektu. Při distančním studiu to jsou studium tohoto učebního materiálu, ale i aktivní vyhledávání dalších studijních zdrojů a stejně jako v případě prezenčního studia samostatná práce na projektu. Úvod Úvod Předmět Komprimace a šifrování kombinuje dvě oblasti informatiky, které spoolu zdánlivě nesouvisí. Jak si však ukážeme, a jak nám (snad) dojde v průběhu studia, jejicch souvislost je větší, než se na první pohled zdá. Potřeba komprimovat (snižovat objem) čehokoliv je stará stejně jako potřeba cokoliv uskladňovatt či dopravovat. Pokaždé, když si balíme batoh na výlet, zamýšlíme se nad každou z věcí, zda ji skutečně budeme na výletě potřebovat, či zda bychom se bez ní neobešli. Stejně tak je tomu i v případě dat. Kompresní algoritmus se u každých dat rozhoduje, zda jsou skutečně potřeba všechny, či zda je nelze uložit nějakým jiným způsobem, který by vylučoval zbytečnou nadbytečnost, a který by při nižším objemu dat garantoval, že z nich bude možné později obnovit data původní. Kompirmaci využíváme pro úsporu kapacity záznamových médií a pro úsporu přenosového pásma při datové komunikaci. Jak ukazují zkušenosti, nezáleží na velikosti záznamového média. Čím větší médium máme, tím více dat shromažďujeme, tím později data promazáváme, tím později na disku uklízíme. Nedostatek prostoru tak dříve či později stejně přijde. Kompresní algoritmy byly potřeba v době, kdy každý člověk nosil v tašce sadu disket o kapacitě 1,44MB a vystačil si s nimi. Kompresní algoritmy jsou potřeba i dnes, kdy každý může mít v hodinkách 1000 disket a na disku, který je velký jako malý bloček, může mít uložené filmy pro týden nepřetržitého přehrávání či hudbu na celý rok. Studium kompresních algoritmů nám prozradí, jak je možné, že lze objem dat snižovat při zachování jejich informační hodnoty. Prozradí nám také, jak je možné, že minuta hudby může mít méně než jeden megabyte a jak je možné, žee hodinu filmu uložíme na běžné CD. Poté, co se naučíme základní principy kompresních algoritmů, vrhneme se na studium kryptologie, která zabírá více než 2/3 tohoto předmětu. Jak si ukážeme, byla to právě potřeba dešifrovat, která stála během druhé světové války u zrodu prvních počítačů. Lámání šifer hrubou silou vyžaduje vykonávání velkého množství triviálních matematických operací, což je věc jako stvořená pro elektronická zařízení. Později se ukázalo, že rychlé zpracovávání dat lze využít i jinak a postupem času se z prvních počítačů majících výkon jako lokomitava (jež bylo třeba chladit dvěma leteckými motory) vyvinuly osobní a kapesní počítače. Výpočetní výkon potřebný k rozlomení německé Enigmy tak dnes máme v malé krabičce, kterou stačí napájet energií chůze či slunečními paprsky.

4 4 Obsah Potřeba šifrovat je stará stejně jako lidská civilizace. Odnepaměti spolu lidé soupeří o mmajetek či moc a s tím souvisí potřeba předávání informací tak, aby nikdo nepovolaný nezjistil jejich obsah. Velmi blízko je i potřeba předávání informací tak, aby cestou nebyly změněny, nebo abychom byli přinejmenším schopni tuto změnu detekovat. V době, kdy jsou počítače všude, kdy jejich prostřednictvím nakupujeme, platíme, komunikujeme s bankami či úřady, je požadavek na zabezpečení soukromí oprávněný dvojnásob. Nikdo z nás by patrně nebyl rád, kdyby se každý mohl podívat na náš bankovní účet či s ním dokonce manipulovat. Stejně tak různé instituce, se kterými přijdeme do kontaktu požadují jistotu, že ten, s kým komunikují, jsme skutečně my a ne nikdo jiný. Nejen důvěrnost dat, ale i jejich celistvost, původnost a prokazování totožnosti. To vše jsou úkoly kryptografie. Postupně se seznámíme se všemi. A jak je to se slibovanou souvislostí mezi komprimací a šifrováním? Ukazuje se, že opakování je základ kryptoanalýzy. Jinými slovy všude tam, kde jsou nějaká nadbytečná data, je snadněší zašifrovaná data rozšifrovat. Komprimace nám snižuje nadbytečnost dat a snižuje tak riziko jejich dešifrování. Proto spolu tyto dvě disciplíny souvisí. Kryptografie se bez komprimace neobejde. A bez kryptografie se dnes neobejde nikdo z nás. Patří proto k dobrému vychování každého uživatele informačních a komunikačních technologií, mít o těchto technikách alespoń povšechný přehled. Každý, kdo se chce honosti vysokoškolským titulem spjatým s informatikou by však měl mít více, než jen povšechný přehled. Měl by chápat principy fungování těchto technik, jejich rizika a v neposlední řadě také dokázat posoudit jejich vhodnost pro různé aplikace. Snad k této dovednosti přispěje i kurz Komprimace a šifrování. Využití komprimace a šifrování Využití komprimace a šifrování Komprimace i šifrování mají v době rozvoje techniky využití doslova na každém kroku. Potřeba komprimovat a šifrovat však není nic nového, co by se objevilo až s rozmachem výpočetní techniky. Touha po zmenšování objemu čehokoli je v lidské činnosti patrná odnemapěti, stejně jako potřeba utajování informací. V tomto kurzu poznáme, jak se v historii vyvíjely metody komprese a šifrování. Tuto znalost sice nevyužijeme přímo, ale nepřímo nám poslouží dvěma způsoby: poznáme na ní základní principy fungování technik komprimace a šifrování, které jsou platné dodnes, roztšíříme obzory svého vzdělání do oblasti, která je i mezi laiky velmi populární a kde dokážeme svými znalostmi zaujmout. To, co však využijeme přímo, bude popis v současnosti používaných technik. Dozvíme se, jak pracují kompresní algoritmy typu ZIP, BZIP, GZIP, atd. Dozvíme se, jak jsou uložená data v obrázcích typu GIF a JPG a jak je možné, že jsou tyto souborry tak malé. Dozvíme se, jak funguje MP2, MP3, MP4, čili jak ošálit lidské smysly, aby si nevšimly změny dat, která výrazně uspoří jejich velikost. Dále se dozvíme, co je to DES, AES, IDEA a jak funguje. Řekneme si, jak se vyměňují elektronické klíče přes nezabezpečené médium. Dozvíme se, jak pracuje algoritmus RSA a jak jej každý z nás může použít nejen k zašifrování důvěrných dat, ale i k elektronickému podpisu a tím prokázání autorství. Každý z nás by měl být schopen tyto principy později aplikovat v podniku, vv němž bude pracovat. Ukrývání zpráv do multimediálních dat je oblast, se kterou se v běžném životě setkáváme jen velmi málo. Pracovníkům tajných služeb či jiných bezpečnostních složek z nní však běhá mráz po zádech, neboť nemohou mít žádnou jistotu, že nevinně vypadající obrázek, který právě někdo nahrál na některou z mnoha veřejných galerií, neobsahuje ukrytý pokryn pro provedení teroristického útoku. Kvantová kryptografie je sice hudbou budoucnosti, otázkou však je, jak daleké budoucnosti. Kdo z nás si může být jistý, že se nástupu kvantové kryptografie nedožije? Až přijde, bude to revoluce v informačních technologiích a jen ten, kdo bude na tuto revoluci připravený, obstojí. Zkuste se na dvě minuty zamyslet a podívat se po svém okolí. Kde všude vidíte něco, co používá šifrování? Nebo něco, kde jsou data komprimována? Při pohledu na počítač je to snadné - HTTPS, SSL, PGP, SSH, SCP, SFTP, atd. Ale i v reál-

5 Obsah 5 ném světě. Téměř každý má kreditní kartu, mobil, flashku, MP3 přehrávač., digitální fotoaparát. Svým způsobem i občanský průkaz, klíč, či celá naše osobnost velmi souvisí s šifrováním. Studium kryptologie otevírá poznání nejen informatikům, ale každému, kdo se chce dozvědět více o současném světě a o technologiích, které jím prostupují. Poučení Poučení Chytrý se učí pět let, hlupák to stihne za den. (vietnamské přísloví) Návaznost Návaznost Ačkoliv teorie informace, komprimace i kryptografie jsou disciplíny velmmi úzce spjaté s matematikou, pro úspěšné studium tohoto textu je třeba mít, kromě všeobecného vzdělání nabytého na základní škole, pouze následující znalosti: vědět, co je to bit a byte vědět, co je to prvočíslo vědět, co je to zbytek po dělení dokázat umocnit dvě čísla Je pravda, že jsou to všechno znalosti, které si minimálně každý nadprůměrně inteligentní jedinec již ze základní školy odnese. Přesto však doporučujeme, aby předměty typu Matematika I, nebo Výpočetní technika I (či jiný předmět seznamující se základními principy fungování počítačů), byly absolvovány ještě před studiem tohoto kurrzu. Poděkování Poděkování Tato elearningová opora vznikla za výrazné pomoci studentů PEF MZLU v Brně. Autoři děkují jmenovitě: Martě Vodové za zpracování podkladů pro kapitoly Asymetrická kryptografie a Digitální podpis Petru Sklenářovi za zpracování podkladů pro kapitolu Kvantová kryptografie Mariánu Klangovi za zpracování podkladů pro kapitolu Historie kryptografie a kryptoanalýzy Petru Konečnému za zpracování podkladů pro kapitolu Hashovací funkce Petru Chladilovi za zpracování podkladů pro kapitolu Metody kódování a komprese dat Roman u Kôrovi za vytvoření flashové aplikace pro Huffmannovo kódování Petře Katovské a Martinu Juráňovi za zpracování podkladů pro kapitolu Steganografie Tomáši Hanáčkovi za zpracování podkladů pro rozšíření kapitol o kompresních algoritmech

6 6 Obsah Teorie informace Teorie informace Výměna informací s okolím nám umožňuje udržovat vlastní existenci. Proces zpracování informací je trvalý, nepřetržitý, ale ovlivnitelný. Zabezpečení informací je spojeno s lidským jednáním a je údělem celé společnosti, bez ohledu na vývojový stupeň materiálních podmínek. Problémy se zpracováním informací se prohloubily během 20. století. Svět je zavalen spoustou informací a neexistují lidé, kteří by je všechny byli schopni zpracovat nebo evidovat. Využívání a efektivní práce s informacemi vyžaduje o nich něco vědět. 1. Co jsou to informace? 2. Co jsou relevantní informace? 3. Jak je získáme a jak zhodnotíme jejich využitelnost? 4. Jak se přenášejí a jak jsou uloženy? Základní podmínkou úspěšnosti jednotlivců je permanentní osvojování nových znalostí vytvořených jinými a tvorba znalostí vlastních. Abychom byli připraveni, musíme mít dostatek informací o informacích a možnostech manipulace s nimi. Pojem informace Název informace pochází z latinského informo, což znamená přanášet zprávu, oznámení, poučení. Otec kybernetiky Norbert Wiener označuje informaci jako to, co si vyměňujeme s vnějším světem, když se mu přizpůsobujeme a působíme na něj svým přizpůsobováním. Definic pojmu informace je velmi mnoho. Některé z nich jsou: Informace je obsah jakéhokoli oznámení, údaje o čemkoli, s určením pro přenos v prostoru a čase. V nejširším slova smyslu je to obsah vztahů mezi materiálními objekty, projevující se změnami těchto objektů. (Terminologický slovník informatiky) Informace je obsah zprávy, sdělení, objasnění, vysvětlení, poučení. (Slovník cizích slov) Informace jsou údaje, čísla, znaky, povely, instrukce, příkazy, zprávy apod. Za informace považujeme také podněty a vjemy přijímané a vysílané živými organismy. (Oborová encyklopedie VT) Jak informace chápat? Informace z hlediska kvalitativního (obsah sdělení, význam zprávy) tím se zabývá INFORMATIKA Informace z hlediska kvantitativního (množství a jeho měření) tím se zabývá TEORIE INFORMACE Teorie informace První publikace týkající se infromacem jejího přenosu a měření se objevily krátce po druhé světové válce. Jedním z důležitých vědců, který se touto problematikou zabýval, byl Claude Shannon. Claude Shannon stanovil základy teorie informace, definoval možnosti měření informačního množství zavedením pojmu entropie. Vyšel z předpokladu, že zprávy, které se přenášejí pomocí nějakého zařízení, patří do kategorie náhodných jevů. Formalizace je tedy založena na pravděpodobnostně-statistickém základu. Shannonova definice informace: Informace je míra množství neurčitosti nebo nejistoty o nějakém náhodném ději odstraněná realizací tohoto děje. Informace rozšiřuje okruh znalostí příjemce. Měření informačního množství Entropie název vypůjčený z fyziky, použitý pro měření informačního množství. Jak kvantifikovat rozšíření okruhu znalostí příjemce? Pravděpodobnost jevu spojeno s individuálními vlastnostmi příjemce (Shannon).

7 Obsah 7 Jevy a jejich realizace Jev náhodný proces s n možnými realizacemi (tah sportky, účast na přednášce, semafor na křižovatce apod.) Realizace jevu jeden projev, získání výsledku (vytažení 6 čísel, konkrétní počet osob na přednášce, svítící zelená na křižovatce apod.) Předpokládejme například, že v národě je polovina žen a polovina mužů. Z toho 25% jsou blondýnky. Nyní někdo sdělí o neznámé osobě, že je to žena a má blond vlasy. Dále se dozvíte, že je vědeckou pracovnicí. To je poměrně cenná informace, protože takových blonýnek je asi jen 10%. Jsme schopni vyjádřit, kolik informace jsme v tomto rozhovoru obdrželi? Pravděpodobnost, že jsem potkal ženu je 1:2. Pravděpodobnost, že ta žena je blondýnka je 1:8 a že je zároveň vědec 1:80. P (v) = P (zena) P (blond) P (vedec) = = Výpočet vlastní informace Pro výpočet obdržené vlastní informace je potřeba zabývat se entropií. Ta vyjadřuje míru nejistoty obsažené v nějakém náhodném ději. Přepokládejme tedy, že máme konečný počet vzájemně se vylučujících jevů, jejichž pravděpodobnosti výskytu jsou p i(x),..., p n(x). Entropii pak vyjádříme jako funkci těchto pravděpodobností. Požadované vlastnosti funkce pro výpočet množství informace Jev X má n realizací, množství informace je funkcí n. Je-li n = 1, jedná se o jev jistý, množství informace je rovno nule. Jevy X a Y probíhající současně a nezávisle, p(x,y) = p(x) * p(y): množství informace je dáno součtem množství jednotlivých jevů: f(x,y) = f(x) + f(y) Jev X má n realizací, jev Y má m realizací. Je-li m > n, pak chceme i f(m) > f(n) Funkce, která vyhovuje uvedeným podmínkám, je logaritmus. I(x) = log n Zde předpokládáme, že pravděpodobnost každé realizace je stejná. Má-li jev n realizací, pak můžeme psát p(x) = 1/n, odsud pak n = 1/p(x). Buď X množina výsledků náhodného děje, x výsledek realizace a p(x) pravděpodobnost tohoto výsledku. Každému x z X pak lze přiřadit reálné číslo I(x) nazývané vlastní informace o výsledku x, pro než platí: I(x) = log p(x), (0 p(x) 1) Číslo I(x) představuje množství informace obsažené ve výsledku x. Základ logaritmu principiálně není podstatný. Ale používají se logaritmy o základu 2. Pak dostáváme výsledek v bitech. Entropie Jak spočítat informační množství celého jevu? Pomůžeme si shrnutím všech vlastních informací jednotlivých realizací. Předpokládejme, že jev X má n realizací X = x 1, x 2,..., x n s pravděpodobnostmi p(x 1), p(x 2),..., p(x n). Entropie H(X) je dána určitou střední hodnotou vlastních informací všech realizací jevů: H(X) = P n i=1 p(xi) log p(xi) Entropie zahrnující informační množství celého jevu se nazývá též úplná informace. Kódování informace Základní podmínkou komunikace je vytvoření signálního komunikačního kanálu. Informaci je pro tento účel nutné transformovat, tj. vyjádřit v jiném jazyce s jinou abecedou. Přiřazení znaků jedné abecedy znakům jiné abecedy se nazývá kódování, inverzní postup pak dekódování. Předpis, který toto přiřazování definuje, se nazývá kód. Z hlediska optimalizace přenosu je vhodné aby každý přenášený signál obsahoval co nejmenší množství informace. Proto a také z důvodu omezení šumů používáme kódování informací. Kvalita kódování, redundance Z hlediska optimálního přenosu je efektivní kód, který obsahuje minimální počet informačních prvků, každý znak kódu tedy má maximální entropii. Kvantitativně je hospodárnost kódu vyčíslitelná redundancí (nadbytečností), podle vztahu: R = 1 H/H max.

8 8 Obsah H je zde entropií jazyka a H max je maximální entropie při použití téže abecedy (všechny znaky jsou stejně možné). Způsoby kódování Nejpoužívanější výstupní abecedou kódování je dvojková abeceda, tj. abeceda obsahující prvky 0 a 1. Rovnoměrné kódování každému znaku je přiřazen stejně dlouhý kód. Obvykle je jednodušší, rychlejší na zpracování, ale méně hospodárné. Toto kódování totiž přiřazuje každému znaku abecedy stejně dlouhý kód bez ohledu na četnost jeho výskytu. Typickým představitelem je Baudotovo kódování Nerovnoměrné kódování každému znaku je přiřazen jinak dlouhý kód. Pro konstrukci a zpracování je obtížnější, může však být maximálně hospodárné. Představiteli tohoto typu kódování jsou Shannon-Fanovo nebo Huffmanovo kódování. Příklady kódů Zdroj produkuje 4 znaky A, B, C, D. Předpokládáme pravděpodobnosti znaků: znak p 1(x) kód 1 kód 2 znak p 2(x) kód 1 kód 2 A 0, B 0, C 0, D A 0, B 0, C 0, D Shannon-Fanův algoritmus Je založeno na četnosti výskytu jednotlivých znaků abecedy. 1. Znaky uspořádáme sestupně podle pravděpodobnosti jejich výskytu. 2. Vypočteme kumulativní pravděpodobnosti. 3. Rozdělíme znaky do dvou skupin tak, aby jejich součtové pravděpodobnosti byly blízké, tj. v prvním kroku 0,5. 4. Krok 3 opakujeme tak dlouho, dokud existují vícečlenné skupiny znaků. znak p(x) s skupiny vysledek x 1 0,30 1, x 2 0,24 0, x 3 0,20 0, x 4 0,15 0, x 5 0,11 0, Huffmanovo kódování Stejně jako Shannon-Fanovo kódování využívá četnosti jednotlivých znaků pro optimální zakódování. 1. Seřadíme pravděpodobnosti výskytu jednotlivých znaků sestupně pod sebe. 2. Sečteme poslední dvě pravděpodobnosti a vytvoříme nový sloupec pravděpodobností, kde ty dvě, které jsme sčítali nahradí jejich součet. 3. Všechny pravděpodobnosti v novém sloupci seřadíme sestupně podle velikosti a propojí se spojnicemi s hodnotami v původním sloupci. 4. Spojnice pravděpodobností p(x n 1) a p(x n) se sjednotí, ale předtím přiřadíme p(x n) bit kódového slova s hodnotou 1 a p(x n 1) bit s hodnotou Takto postupujeme, dokud se součet posledních dvou čísel nerovná Závěrečné kódování každého slova pak probíhá po spojnicích jako sbírání zapsaných bitů kódového slova tak, že jdeme po spojnicích a zapisujeme všechny bity, které po cestě potkáme. 7. Nakonec se celý zápis obrátí odzadu dopředu a výsledkem je kódové slovo pro danou událost.

9 Obsah 9 událost p(x i ) kód x x x x x x x x x Výpočet kódu u vlastního textu je možné vyzkoušet pomocí následující aplikace:

10 10 Obsah Aritmetické kódování Dalším statistickým komprimačním algoritmem je aritmetické kódování, které přiřazuje každé zprávě číslo z intervalu <a,b) <0,1). Jedná se o hardwarově velice náročné kódování, které navíc není bezprefixové, díky tomu se také prosazuje velice pomalu. Při kódování si algoritmus opět nejprve zjistí pravděpodobnosti prvků ze vstupní abecedy. Poté rozdělí základní interval <0, 1) na různě dlouhé části podle pravděpodobností prvků. Po přečtení prvního znaku vybere subinterval příslušející přečtenému znaku, tento interval opět rozdělíme, a takto rekurzivně pokračujeme do té doby, než přečteme poslední znak zprávy. Tímto získáme interval <a,b) pravděpodobnosti reprezentující danou zprávu, poté stačí vybrat libovolný prvek z tohoto intervalu (nejlépe prvek, který jsme schopni zaznamenat nejkratším výstupním řetězcem), který společně s počtem výskytů prvků ze vstupní abecedy a velikostí zprávy tvoří její kompresi. Na obrázku je zobrazen příklad aritmetického kódování zprávy ABAC. Z výsledného intervalu <19/64, 5/16), který tvoří kód vstupní zprávy, vybereme libovolné číslo, nejlépe to, které dokážeme reprezentovat nejkratším binárním zápisem. Toto kódování je velice náročné na počítání s reálnými čísly, při delší zprávě bychom totiž již nebyli schopni dosahovat potřebných přesností, a některé subintervaly by nám mohly začít splývat, proto se používá komprimace po blocích, kdy bloky jsou tak velké, aby zajišťovaly při rozdělování dostatečnou přesnost. Zde se pak objevuje problém s prefixovostí tohoto kódování. Dekódování se provádí obdobně, podle přiložených pravděpodobností se prvků rozdělíme základní interval. Ten subinterval, který obsahuje kód zprávy, zvolíme jako základní pro druhý krok a na výstup pošleme jemu příslušející znak. Ve druhém kroku pracujeme stejně s tím rozdílem, že místo základního intervalu uvažujeme interval, který jsme získali v předchozím kroku. Obrázek 1 rovněž ukazuje způsob dekomprese, kdy stále vybíráme ten interval, který obsahuje kód zprávy. Na výstup pak vypisujeme znaky příslušející jednotlivým intervalům. Rovněž lze k tomuto kódování přistupovat adaptivně, tj. pravděpodobnosti prvků jsou relativní vzhledem k zatím zpracované části zprávy. Nemusíme pak přikládat informaci o počtu výskytů prvků v abecedě. Zabezpečení informace při přenosu Pod pojmem zabezpečení informace lze chápat jednak mechanismus umožňující na přijímací strnaně zjistit nebo i opravit chybu vzniklou při přenosu technickou nedokonalostí přenosového kanálu, a jednak mechanismus zabraňující přečetení informace neoprávněnou osobou. V každém připadě se zvětšuje objem dat aniž by se zvětšil objem vlastní užitečné informace, z tohoto hlediska je tedy zabezpečení chápáno jako redundance. Detekce chyby zabezpečení paritou

11 Obsah 11 kontrolní součet (CRC) Hammingův kód Zabezpečení proti neoprávněnému čtení šifrování podepisování Zabezpečení paritou Ke každému úseku dat je připojen další bit, který svou hodnotou doplňuje počet binárních jedniček na počet lichý nebo sudý (sudá/lichá parita) Kontrolní součet Data se rozdělí na úseky požadované délky (8, 16, 32 bitů) a tyto úseky se sečtou po bitech bez přenosu. Vzniklý úsek dat se připojí k datům přenášeným Data CRC Hammingův kód Kód, kterým je možné chybu nejen lokalizovat, ale i opravit se nazývá samoopravný kód. Je možné pomocí něj lokalizovat i několikanásobné chyby. Hammingův kód je založen na principu vhodně vybrané množiny povolených hodnot. Všechny informace jsou kódovány do těchto hodnot a je-li přijata hodnota nepatřící do množiny, je detekována chyba a případně je chyba opravena. Výběr povolených hodnot je proveden na základě velikosti Hammingovy vzdálenosti. Hammingova vzdálenost hodnot h i a h j je celé číslo k, které udává počet změn (z 0 na 1 a opačně), které musí být provedeny, abychom z hodnoty h i dostali hodnotu h j. Všechny povolené hodnoty mají stejnou Hammingovu vzdálenost. Je-li přijata hodnota, která je vzálena od povolené hodnoty méně než k/2, je opravena na nejbližší povolenou hodnotu. Je-li přijata hodnota o vzdálenosti přesně k/2, je označena za chybnou. Úvod do kompresních algoritmů Úvod do kompresních algoritmů S problémem komprese se v reálném světě setkáváme na každém kroku: Potřebujeme nacpat věci do batohu tak, aby se tam všechny vešly. To by samo o sobě řešit šlo, navíc však zpravidla požadujeme, aby po vyndání s batohu měly stále stejnou kvalitu. U ponožek či kovadliny zpravidla problém nemáme, ale nad objekty typu šlehačkový dort či babiččin porcelánový servis je již potřeba přemýšlet. Ukládání věcí do skříně, nakládání věcí na nosič kola, do kufru auta či nákladového prostoru; pro věštšinu lidí na planetě pak běžnější prroblém uložení věcí do nůše či na hlavu - to vše jsou situaci, kdy potřebujeme komprimovat. Někdy se smíříme s drobnými ztrátami, zpravidla však chceme komprimovat neztrátově, tedy tak, abychom byli později (po transportu) schopní původní objekty rekonstruovat. Základní pojmy Komprese a komprimace dat jsou v tomto textu považována za synonyma. Jejich význam je, váhně řečeno, snížení objemu či zhuštění. Formálně přesněji budeme kompresi chápat jako proces aplikace kompresního algoritmu (funkce) na vstupní data. Opačným procesem je dekomprese, tedy aplikace dekompresního algoritmu na data vystoupivší z kompresního algoritmu. Přirozeně požadujeme, aby výstup dekompresního algoritmu byl totožný s původním vstupem kompresního algoritmu, nebo přinejmenším, aby rozdíl v těchto datech či

12 12 Obsah jejich interpretaci nebyl lidskými smysly rozpoznatelný, popřípadě nebyl na újmu významnosti interpretace dat. Kompresní algoritmus budeme chápat jako funkci K : D D, kde D značí obecně data, tedy množinu všech přípustných řetězců nad abecedou {0,1}. V dalším textu přitom budeme předpokládat, že se jedná o textové řetězce, tedy nikoliv nad abecedou {0, 1}, ale řekněme např. nad abecedou tabulky ASCII. Je-li d vstupní řetězec a s výstupní řetězec, tedy K(d) = s, požadujeme, aby s < d, navíc požadujeme, aby I(s) = I(d), kde I značí informační hodnotu daného řetězce. Základem tedy je, vypuštění nadbytečných informací. Často uváděným příkladem je v tomto směru anglický dvojznak qu. Písmeno q nikdy není osamocené, vždy po něm v anglickém textu následuje písmeno u. Je tedy při jakékoliv komunikaci zbytečné písemno u uvádět, neboť pouze zatěžuje komunikační kanál, aniž by mělo jakoukoliv informační hodnotu. Pokud totiž příjemce obdrží písmeno q, ví, že u po něm bude následovat vždy. Kompresní algoritmy samozřejmě stojí na složitějších předpokladech, tento je však natolik snadný na pochopení, že na něm lze princip neztrátové komprese vysvětlit i člověku, který nemá o počítačích žádné znalosti. Vlastnosti kompresních algoritmů Nejdůležitější vlastností kompresního algoritmu je ztrátovost, resp. bezeztrátovost komprese. U bezeztrátového algoritmu jsou data zakódována tak, že z nich je možné při dekompresi zrekonstruovat zpět původní data. U ztrátové komprese zpětná rekonstrukce možná není, dochází pouze k ošálení lidských smyslů, které vnímají nová data stejně, jako data původní a nepoznají tak, že došlo k jejich kompresi. Další důležitou vlastností je kompresní poměr. Při zachování notace uvedené výše je kompresní poměr k dán vztahem k = s d. Zpravidla požadujeme, aby k < 1, při k = 1 nedochází k žádné kompresi, při k > 1 dochází dokonce k expanzi. Kompresní poměr se někdy namísto reálného čísla udává v procentech. Analogickou veličinou je kompresní zisk daný vztahem z = 1 k, který vyjadřuje množství ušetřených dat vzhledem k délce původních dat. Kompresní algoritmy se dělí na statické a adaptivní. Statické metody pracují stejně nad jakýmikoliv daty, zatímco adaptivní metody své chování přizpůsobují podle toho, jak vypadají vstupní data. Pro adaptivní metody je tedy typické, že potřebují dva průchody přes vstupní data: Jeden, při němž data analyzují a druhý, při němž probíhá vlastní komprese. Kompresní metody lze dále rozdělit na proudové a blokové. Proudové metody pracují s daty jako s proudem znaků (bytů) bez ohledu na délku vstupu. Bloové algoritmy umí zpracovat pouze bloky dané délky. Data jsou tedy nejprve rozdělena na bloky stanovené délky a do komprsního algoritmu poté vstupuje každý blok zvlášť. Bezztrátová komprese Bezztrátovou kompresí se rozumí taková, při níž je možno komprimovaná data (text, hudba, grafika) zpětně rekonstruovat tak, že nedojde k žádným změnám vhledem k datům původním. Algoritmy realizující bezeztrátovou kompresi je možné z hlediska počtu průchodů rozdělit na adaptivní a neadaptivní. Adaptivní nebo též dynamické metody prochází zadaná data pouze jednou a již v prvním průchodu je kódují. Naproti tomu metody neadaptivní je prochází poprvé a zjistí četnost výskytu jednotlivých znaků (statické Huffmanovo kódování). Druhým průchodem se data zakódují daným algoritmem.

13 Obsah 13 Jednoduchá komprese slovníku U dat, kde se v každém řetězci shoduje větší počet počátečních znaků s počátkem předchozího řetězce (typicky slovník) lze opakující se sekvenci nahradit jediným číslem, které pak umožní zpětnou rekonstrukci daného podřetězce. Příklad je uveden v následující tabulce: Adam adaptace adekvátní adept admirál afekt aféra agenda agent Adam 3ptace 2ekvátní 3pt 2mirál 1fekt 2éra 1genda 4t Porovnáme-li součet délek řetězců v prvním sloupci se součtem délek řetězců ve druhém sloupci, zjistíme, že kompresní poměr je roven 43/54, tedy bezmála 80%. Metoda potlačení nul Tato metoda je vhodná pro data, ve kterých se často opkauje jeden znak. Tento znak budeme nazývat nulou. Název nula není úplně náhodný. Jedná se totiž o znak kódující nevýznamnou informaci (ticho ve zvuku, bílou plochu ve faxu, apod.). Často tedy mívá číselnou hodnotu skutečně rovnu nule. Při kompresi textu metodou potlačení nul ukládáme do výstupního souboru všechny nenulové znaky tak, jak přicházejí na vstup. Sekvenci nul na výstup posíláme jako dvojici (i,n), kde i je indikátor komprese (je možné použít přímo nulový znak) a n je počet opakování nulového znaku. Je zřejmé, že pro n = 1 je tato metoda neefektivní (dochází k expanzi textu), pro n = 2 nedosáhneme žádné komprese, pro n >= 3 však již k úspoře dochází. Použijeme-li navíc jako indikátor komprese některý z nenulových znaků (který se však nesmí ve vvstupním textu vyskytovat), můžeme na výstup ukládat dvojici (i,n-3), čímž zvýšíme počet opakování nulového znaku, který ještě lze zakódovat do jenoho bytu z 255 na 258. Při jednom nebo dvou výskytech nuly zapisujeme tyto nuly na výstup stejně jako nenulové znaky. Znak - značí nuluvstupní text: AB---CAB----B-A CBVýstupní text: ABI0CABI1B-AI4CBŘetězec 24B zkomprimován na 16B Při dekompresi postupujeme opačně než při kompresi. Nenulové znaky ve vstupním řetězci posíláme na výstup; při načtení indikátoru komprese na čteme číslo n a na výstup zapíšeme n+3 nul. Metoda bitové mapy Tato metoda opět slouží k potlačení výskytu nulových znaků, tentokrát však nepožadujeme, aby nuly tvořily dlouhé sekvence. Efektivní je tato metoda tehdy, je-li ve vstupním řetězci alespoň 1/8 nul. Kódování probíhá po osmicích znaků. Z nich vytvoříme bitovou mapu výskytu nul tak, že na každý byte bude připadat jeden bit, který nastavíme na nulu, je-li na příslušné pozici nulový znak a na jedničku, je-li na příslušné pozici nenulolvý znak. Na výstup potom zapíšeme bitovou mapu a sekvenci nenulových znaků.

14 14 Obsah Při dekódování načteme nejprve bitovou mapu, spočteme počet jedniček a načteme příslušný počet nenulových znaků. Na výstup pak zapisujeme nuly a nenulové znaky podle bitové mapy. Vstupní text: AB-CA C Bitová mapa: Výstupní text: < >ABCAC Řetězec 8B zkomprimován na 6B Run Length Encoding (RLE) Run Length Encoding neboli kódování délkami sekvencí je jednou z nejjednodušších a zároveň nejstarších metod, které jsou používány. Zachovává všechny výhody metody potlačení nul s tím, že dokáže efektivně zkrátit i sekvence jiných, než nulových znaků. Označíme-li symbolem a n sekvenci n po sobě jdoucích znaků a, pak tuto sekvenci na výstup zapíšeme jako Ian, kde I je indikátor komprese znak, který se v textu nesmí vyskytovat. Vstupní text: abbbbcccaaaaaaaabbbb Výstupní text: aib4cccia8ib4 Řetězec 20B zkomprimován na 13B Dekódování je velmi intuitivní při načtení indikátoru komprese načteme znak a a číslo n a na výstup zapíšeme sekvecni a n. Podobně jako u metody potlačení nul, i u RLE můžeme posunout stupnici a místo řetězce Ian zapisovat řetězec Ia(n-3), neboť teprve pro n >= 3 je tato metoda efektivní. Sekvence kratší než 3 znaky ukládáme na výstup bez použití indikátoru komprese. To nám umožňuje do 1 bytu uložit až 258 opakování. Problém této metody je nutnost existence indikátoru komprese, tedy znaku, který se ve vstupním řetězci nikde nevyskytuje. To je poměrně nepříjemný požadavek, který je vhodné řešit. Vzhledem k tomu, že metoda RLE je efektivní až při n 3, nabízí se možnost, že místo indikátoru komprese použijeme sekvenci tří po sobě jdoucích znaků. Za ní pak bude následovat číslo udávající, kolik znaků ještě v sekvenci zbývá. Každou sekvenci an tedy nahradíme sekvencí aaa<n-3>. Vstupní text: abbbbcccaaaaaaaabbbbvýstupní text: abbb1ccc0aaa5bbb1 Jak je vidět, pro n = 4 nedochází k žádné úspoře, pro n = 3 dochází dokonce k expanzi plynoucí z toho, že je třeba uložit na výstup číslo 0. To je daň za to, že nepotřebujeme indikátor komprese a že se tak v textu může vyskytovat jakýkoliv znak. Nejčastější využití této metody je v současné době v počítačové grafice. Využívá se především tam, kde jsou velké plochy stejné barvy. Jako hlavní metoda je použita ve formátu PCX, jako vedlejší může být v JPEG nebo TIFF. [7] Kódování delta Kódování delta nachází využití tam, kde dochází k lineárnímu růstu či poklesu dat. Příkladem mohou být některé zvukové soubory, animace či výsledky určitých typů měření. Kódování delat je založené na tom, že první byte je uložen tak jak je, zatímco kažý další je ukládán jako rozdíl daného bytu a bytu předcházejícího, jak je vidět na následujícím příkladu: Vstupní text: Výstupní text

15 Obsah 15 Jak je vidět, v takto upraveném vstupu se objevují nové sekvence stejných znaků. Je přitom zřejmé, že stávající sekvence stejných znaků jsou zakódovány sekvencemi nul (těch je o jednu méně než bylo znaků v původní sekvenci). Následné kódování RLE má tedy stejný nebo větší efekt. Slovníkové metody Jedná se o adaptivní metody, které si při průchodu vytváří slovník, jenž je poté buď distribuován s kódem, nebo si jej dekompresní algoritmus vytvoří sám, aby bylo možné data převést do původní podoby. Do této skupiny se řadí různé modifikace algoritmu LZ (Lempel-Ziv), které jsou poměrně často využívány v současných formátech. Algoritmus LZ77 LZ77, v některé literatuře označovaný jako LZ1, představila v roce 1977 dvojice Abraham Lempel a Jacob Ziv. Tito nyní izraelští vědci přišli s metodu, která je dodnes modifikována a kombinována s jinými metodami. Podle principu je nazývána metodou posuvného okna. Pro lepší vysvětlení předpokládejme, že budou data reprezentována řetězcem. Posuvné okno (sliding window) je rozděleno na část, kde už jsou zakódovaná data, a na část, kde jsou ta nezakódovaná. Kódování začíná nastavením sliding window na řetězec, který má být zakódován, tak, že část pro již zakódovaná data je prázdná a druhá část je naplněna řetězcem (netřeba celým). Hledá se shoda co nejdelšího řetězce (počínajíce rozmezím) z nezakódované části s řetězcem v zakódované části. V případě shody je nový podřetězec zakódován uspořádanou dvojicí (p, n), kde p je pozice prvního znaku v zakódované části, a n je délka shodného podřetězce. Vstupní text: leze leze po železe Výstupní text: leze l(2,3) po že(5,4) Dekódování probíhá přesně opačným způsobem, než kódování. Protože se při kódování ukládaly odkazy na podřetězce, které byly v komprimovaném textu dříve, jsou tyto podřetězce v době dekomprese již k dispozici a je tedy možné je pomocí odkazu zpětně rekonstruovat. Jak vyplývá z předchozího, algoritmus je málo účinný tam, kde je výskyt opakování řetězců (dat) nepříliš častý, případně žádný, naopak dosahuje dobrých kompresních poměrů v datech, která se skládají ze shodných podřetězců. Je zřejmé, že čím větší je sliding window, tím větší šance, že se v něm najde shoda. I když je tato metoda relativně stará, stále je používána a to především jako hlavní kompresní algoritmus v programech GZip, Zip, PKZip, jako vedlejší v mnoha dalších (WinRAR nebo 7-Zip). Algoritmus LZ78 Druhá verze algoritmu dvojice Lempel a Ziv (proto někdy nazývána LZ2), jež byla představena o rok později, než ta první. Metoda si za běhu vytváří slovník frází stejně jako LZ77. Tento slovník je reprezentován n-árním stromem. Prvním krokem je vytvoření kořene stromu, jenž bude mít pořadové číslo nula. Poté se začne kódovat zadaný řetězec. Přečte se první znak. Vytvoří se nový uzel s nejnižším dalším pořadovým číslem, v tomto případě jedna, který je spojen s uzlem nula ohodnocenou hranou. Ta má hodnotu znaku, který byl přečten jako první. Tím je zakódován první znak, metoda vytvoří odkaz do slovníku ve tvaru (0, a), kde a je první znak. Dále se přečte druhý znak. Pokud je stejný jako první (tzn. už je ve slovníku jednou kódován), není nutné ho kódovat, a tak se k němu přečte další znak. Nyní se hledá, zda je ve slovníku tato dvojice znaků. Pokud by byla, přečetl by se další znak. Tak by se postupovalo, dokud by se nenašla fráze, jež ve slovníku není obsažena. Jinými slovy jde o to najít frázi, která je již ve slovníku, kromě posledního znaku. Tímto posledním znakem se ohodnotí nová hrana, která povede do nového uzlu. Metoda vytvoří odkaz (c,a), kde c je

16 16 Obsah číslo uzlu, ze kterého nová hrana vychází, a a je poslední znak. Poté se posune rozmezí za poslední znak a celý postup se opakuje. Pro zpětnou rekonstrukci je nutné distribuovat jak zakódovaná data, tak i slovník. Podle uspořádané dvojice (c,a) se rozhoduje, jak se pohybovat ve stromu od kořene se prochází strom tak, aby se dosáhlo uzlu c. Podřetězec jedné uspořádané dvojice je složen z hodnot hran, kterými se prochází, a jako poslední znak řetězce je a. Takto se dekóduje každá dvojice (c, a) a z ní se zpět složí celkový řetězec. Tento algoritmus je základem pro LZW, které je využito například v dříve velmi využívaném formátu GIF. Algoritmus LZW84 Tento algoritmus je ze všech zmíněných slovníkových algoritmů nejdůležitější, neboť je používán do současnosti jako základ programu ZIP, v grafice se používá pro kompresi ve formátech GIF a TIFF a důležitou roli hraje i v algoritmu PDF. Metoda byla vyvinutá v roce 1984 trojicí Abraham Lempel, Jacob Ziv a Terry Welch (proto je označovaná jako LZW84). Jedná se o vylepšení algoritmu LZ78. Nevýhodou algoritmu bylo, že byl na dvacet let chráněn patentem. Ten však v současné době již vypršel. Princip kódování je založen na opakování frází, které jsou již uloženy ve slovníku. Na počátku proběhne inicializace, kdy se pro každý znak, který se vyskytuje ve vstupním řetězci, vytvoří položka slovníku (například pro vstupní řetězec abcab se vytvoří položky 1 a, 2 b, 3 c). Poté se prochází vstupní text tak dlouho, dokud je procházený řetězec uložen ve slovníku. Jakmile narazíme na první znak, se kterým již procházený řetězec ve slovníku není, umístíme nový řetězec do slovníku a na výstup zapíšeme kód položky, která ve slovníku ještě byla. Posledně načtený znak (ten, jenž porušil shodu se slovníkem) se pak stává prvním znakem nového řetězce, u nějž se hledá shoda ve slvoníku. Distribuuje se pouze výstupní kód a inicializační nastavení slovníku. Dekodér si dokáže vytvořit slovník ze zadaných dat sám. Pseudokód komprese i dekomrese je patrně názornější než dlouhé vysvětlování: LZW komprese forall c do add c to dictionary w = while read(c) do if wc is in dictionary then w = wc else add wc to dictionary write code(w) w = c endif done

17 Obsah 17 LZW dekomprese read(k) write(k) w = k while read(k) do if k is in dictionary then entry = dictionary entry(k) else entry = w + w[0] endif write(entry) add w+entry[0] to dictionary w = entry done Pro důkladné pochopení algoritmu je vhodné vzít vhodný řetězec a zkusit na něj algoritmus s pomocí tužky a papíru aplikovat. Algoritmy připravující data pro následnou kompresi Burrows-Wheelerova transformace Burrows Wheelerova transformace není přímo kompresní algoritmus, ale za použití jiných statistických algoritmů dosahuje výrazně lepších kompresních poměrů. Jedná se o transformaci, která permutuje zprávy tak, že stejné znaky mají tendenci se seskupovat. Tato tendence vychází z vlastnosti jazyka, ve kterém se objevuje mnoho opakujících se posloupností. Kódování probíhá po blocích pevné délky. Vstupní text si rozložíme na bloky (slova) o délce N, a vytvoříme si v tabulce všechny možné cyklické posuny tohoto slova. Na následujícím obrázku je příklad takové permutace na slově ABRACADABRA. Poté tyto posuny seřadíme lexikograficky, výsledný kód pak tvoří poslední sloupce tabulky spolu s pozicí původního slova v již seřazené tabulce. V našem případě je to tedy dvojice RDARCAAAABB a 2. Na obrázku je rovněž vidět tendence seskupování znaků, kdy např. 4 znaky A z 5 se seskupily k sobě. Toto seskupování vzniká díky tomu, že se ve vstupním slově nachází opakující se posloupnosti, které se při setřízení dostanou k sobě, a tím i jejich poslední písmena. Např. v anglickém textu se často vyskytuje slovo the, pokud by se toto slovo vyskytovalo ve vstupním textu k-krát, znamenalo by to, že se v tabulce vyskytne k-krát i řádek začínající na he a končící na t, a hned je tu k potenciálních výskytů písmene t za sebou.

18 18 Obsah Při dekódování si budeme budovat stejnou tabulku jako při kódování. Na začátku známe pouze poslední sloupec a číslo řádku, kde se nachází původní text. První sloupec dostaneme jednoduchým setříděním posledního (toto vychází z lexikografického uspořádání řádků při kódování). Známe-li pozici slova v tabulce, tak též známe první znak slova, který se nachází na dané pozici slova v prvním sloupci. Druhé písmeno zjistíme tak, že si první znak najdeme v posledním sloupci (n-tý výskyt písmene v prvním sloupci musí odpovídat n-tému výskytu v posledním sloupci), a jemu příslušející znak v prvním sloupci (tj. na stejném řádku) je náš hledaný druhý znak. Ostatní se hledají zcela analogicky. Při dekódování si budeme budovat stejnou tabulku jako při kódování. Na začátku známe pouze poslední sloupec a číslo řádku, kde se nachází původní text. První sloupec dostaneme jednoduchým seřazením posledního (toto vychází z lexikografického uspořádání řádků při kódování). Známe-li pozici slova v tabulce, tak též známe první znak slova, který se nachází na dané pozici slova v prvním sloupci. Druhé písmeno zjistíme tak, že si první znak najdeme v posledním sloupci (n-tý výskyt písmene v prvním sloupci musí odpovídat n-tému výskytu v posledním sloupci), a jemu příslušející znak v prvním sloupci (tj. na stejném řádku) je náš hledaný druhý znak. Ostatní se hledají zcela analogicky. Move to Front transformace Používá se nejčastěji pro výstupy, které mají podobné charakteristiky jako výstup z Burrows Wheelerovy transformace. Opět se nejedná o kompresní algoritmus, ale o jakousi předúpravu pro ostatní kompresní algoritmy. Při kódování budeme využívat pole na počátku naplněné hodnotami (0, 1, 2, 3,..., 255). Znaky ze vstupu se nahrazují na výstupu jejich pozicemi v poli, a přitom se ihned přesouvají na počátek pole. Příklad: Místo bytů budeme kódovat hodnoty v rozmezí a-z. Chceme zakódovat sekvenci bananaaa. Pole na počátku obsahuje abcdefghijklmnopqrstuvwxyz. První písmeno slova je b, které se objevuje na indexu 1. Dáme tudíž 1 na výstup. b se přesouvá na začátek pole, tj. nyní má pole tvar bacdefghijklmnopqrstuvwxyz. Další písmeno slova je a, které se nyní objevuje na indexu 1, takže dáme 1 na výstup. Poté přesuneme písmeno zpátky na začátek pole, stejným způsobem pokračujeme dále, než zakódujeme celé slovo. Výstupem tedy bude sekvence 1, 1, 13, 1, 1, 1, 0, 0, jak je vidět z následující tabulky: Znak Výstup Pole b 1 abcdefghijklmnopqrstuvwxyz a 1,1 bacdefghijklmnopqrstuvwxyz n 1,1,13 abcdefghijklmnopqrstuvwxyz a 1,1,13,1 nabcdefghijklmopqrstuvwxyz n 1,1,13,1,1 anbcdefghijklmopqrstuvwxyz a 1,1,13,1,1,1 nabcdefghijklmopqrstuvwxyz a 1,1,13,1,1,1,0 anbcdefghijklmopqrstuvwxyz a 1,1,13,1,1,1,0,0 anbcdefghijklmopqrstuvwxyz

19 Obsah 19 Při dekódování se postupuje obdobně, při přečtení indexu ze vstupu se na výstup pošle znak, který se v poli nachází na daném místě, a zároveň se opět přesune na počátek pole. Je zřejmé, že tato transformace bude opakující se znaky kódovat znakem 0, nebo znaky blízkými nule. Proto byla tato transformace primárně určena jako mezistupeň k Burrows-Wheelerově transformaci a Huffmanovu kódování. Použitá literatura [1] [2] [3] cs.html [4] [5] [6] k%c3%b3dov%c3%a1n%c3%ad [7] [8] k%c3%b3dov%c3%a1n%c3%ad [9] [10] Komprese multimediálních dat Komprimace multimediálních dat Komprimace umožňuje efektivní digitální reprezentaci zdrojového signálu jako je text, obraz, zvuk nebo video, použitím redukovaného počtu prvků digitální informace, než má originál. Musí však umožňovat, pokud má být efektivní, reprodukci komprimované informace v požadované kvalitě. Pro komprimaci dat v současných informačních a komunikačních systémech hovoří tři základní důvody: rozsáhlé paměťové nároky multimediálních dat, relativně pomalá paměťová zařízení, která neumožňují přehrávání multimediálních dat v reálném čase, nedostatečná šířka pásma současných sítí pro přenos videa a často i zvuku v reálném čase. Předpokládejme barevnou videonahrávku s rámci o rozměru 620 x 560 pixelů srozlišením 24 bitů na pixel. Pro uchování jednoho rámce by bylo potřeba asi 1 MB paměti. Pro plynulé přehrávání videa s frekvencí 30 fps to představuje celkem 30 MB paměti na sekundu videa. I v případě dostatečné paměťové kapacity pro uložení videa, nám rychlost přenosových médií neumožní přehrát video v reálném čase. Současné běžné technologie umožňují přenos přibližně 1,2 MB/s. Proto je zatím jedinou možností použití komprimačních metod. Pro různé typy formátů používáme různé komprimační algoritmy. Komprese rastrového obrazu Rastrové obrazy se vyznačují vysokou paměťovou náročností, která roste kvadraticky s jejich rozlišením. Na rozdíl od komprese obecných souborů lze vycházet z vlastností a charakteristických rysů konkrétního rastrového obrazu. Velký objem dat a zároveň specifický tvar obrazových informací jsou podnětem pro používání různých druhů kompresí. Na rozdíl od bezztrátové komprese běžných datových souborů, při které nesmí být žádná data ztracena či změněna, je u rastrových obrazů mnohdy žádoucí docílit co nejvyššího kompresního poměru i tím, že pozměníme barevné hodnoty pixelů a zhoršíme tak výsledný obraz použitím ztrátové komprese.

20 20 Obsah Používané kompresní metody Kompresní metoda Zkratka Ztrátová Príklad formátu Run length encoding RLE ne PCX Huffmanovo kódování CCITT ne TIFF Lempel-Ziv-Welch LZW ne GIF Diskrétní kosinová transformace DCT ano JPEG Fraktální komprese FIF ano FIF Run length encoding Jednoduchá a pro velkou třídu obrázků i efektivní metoda vycházející z předpokladu, že v rastrovém obrázku, vzniklém jako kresba či skica, se opakují hodnoty sousedících pixelů. 1 citac hodnota hodnota se opakuje 1 + citac 0 hodnota primy zapis jedine 7-bitove neopakujici se hodnoty hodnota zapis neopakujici se hodnoty vetsi nez binarne Ve většině případů je kódování RLE prováděno v rámci jednoho řádku. V případě, že je obrázek tvořen mnoha vodorovnými čarami, je kódování velmi efektivní. Avšak tentýž obraz otočený o 90 stupňů je zapsán téměř beze změny. V případě, že kódovaný obrázek obsahuje neopakující se hodnoty v sousedních pixelech, dochází k záporné kompresi. Lze se setkat i se ztrátovou kompresí RLE, kdy se nejprve testují sousední pixely a pokud se liší jen nevýznamně, nahradí se hodnotou jednou. Metoda RLE je vhodná pro obrázky kreslené od ruky nebo pro ilustrace s většími stejnobarevnými plochami. Huffmanovo kódování Původně navrženo komisí CCITT pro přenos černobílých dokumentů faxem. Metoda je založena na použití různě dlouhých bitových kódů pro symboly s různou frekvencí výskytu. Frekvence se nestanovuje pro konkrétní dokument, ale je brána z tabulek CCITT. G31D 5:1 odolné proti poruchám, zakódováno pomocí RLE, pak Huffmann. G32D 8:1 citlivé na poruchy, G42D 15:1 zápis na disk, kóduje se změna barvy relativně k předchozí. jako G32D, ale bez zbytečných kódů. Lempel Ziv Welch Zcela obecná metoda, se kterou se setkáváme ve většině běžných kompresních programů. Princip spočívá v nahrazení vzorků vstupních dat binárními kódy proměnné délky. Vstupní vzorky se překládají pomocí slovníku, který je postupně doplňován o nové vzorky. Diskrétní kosinová transformace JPEG Pro velmi kvalitní obrazy s mnoha barevnými přechody se metody RLE a LZW nehodí. Metoda je vhodná především pro kódování fotografií, u nichž sousední pixely mají sice odlišné, ale přesto blízké barvy. Snižování kvality se projevuje potlačováním rozdílů v blízkých barvách. U metody DCT je kompresní poměr řízen požadavkem na výši kvality dekomprimovaného obrazu. V praxi se ukazuje, že snížení kvality na 75 % je pro většinu uživatelů nepozorovatelné, přitom kompresní poměr v takovém případě může být až 25:1. DCT je formou diskrétní Fourierovy transformace. Obrazová data jsou považována za barevné vzorky spojitých barevných signálů naměřené v diskrétní síti pixelů. Výsledkem kosinové transformace je pak nalezení sady parametrů kosinových funkcí, jejichž složením lze rekonstruovat původní obraz. Postup při kompresi sestává z 5 kroků. 1. transformace barev barvy je třeba převést do barevného modelu Y C BC R. V další fázi jsou jasové složky Y a barevné složky C B, C R zpracovávány odděleně. 2. redukce barev snižování objemu dat zprůměrováním barevných složek sousedních pixelů. 3. dopředná diskrétní kosinová transformace obrazová data jsou rozdělena do čtverců 8 8. Každý čtverec je podroben diskrétní kosinové transformaci. Výsledkem je řídká matice s dominantním levým horním rohem. 4. kvantování koeficientů zde se stanovuje kvalita (tedy i stupeň komprese) obrazu. 5. kódování používá Huffmanovo kódování s využitím toho, že většina koeficientů

21 Obsah 21 v okolí pravého dolního rohu má nulovou hodnotu. Transformace barev Nejprve je potřeba převést obrázek z RGB do Y C BC R. Tento barevný model má tři složky Y C BC R: Y reprezentuje jas pixelu a C B, C R reprezentují barvu pixelu (modrá a červená složka). Toto barevné schéma umožňuje aplikovat kompresi s lepším výsledkem při stejné kvalitě obrazu. Redukce barev Lidské oko je citlivější na změny jasu obrazu než na změny odstínů barev. Tohoto faktu se využívá ke zvýšení efektivity komprese obrazu. Je tak možné redukovat složky C B, C R. Redukcí barev lze ušetřit % paměťového prostoru. Rozdělení do bloků Po redukci barev následuje rozdělení každého barevného kanálu obrazu na bloky o velikosti 8 8 pixelů. Na ty je následně aplikována diskrétní kosinová transformace (DCT). Diskrétní kosinová transformace F (u, v) = 1/4 C(u)C(v) h P7 x=0 P i 7 (2x+1)uπ y=0 f(x, y) cos cos (2y+1)uπ 16 16

22 22 Obsah Kvantování koeficientů Lidské oko je citlivé na malé změny jasu v relativně velké oblasti. Nedokáže však odlišit přesnou hodnotu rozdílů odstínů vysokých frekvencí. Toho lze využít při redukci nesené informace u vysokofrekvenčních koeficientů. Kvantizace redukuje amplitudu koeficientů, které nepřispívají ke kvalitě obrazu. Účelem je také odstranění informace, která není pozorovatelná. Výsledkem je, že většina vysokofrekvenčních koeficientů je nulová. kvantizační tabulka

23 Obsah 23 kvantované koeficienty Kódování Výsledkem předchozích kroků byly numerické úpravy čtvercové podoblasti vstupního obrazu, které zjednodušily tvar dat do podoby řídké matice s dominantním levým rohem. Tato matice je nyní zapisována do výstupního souboru postupem CIK-CAK. Při kódování je pak využíváno skutečnosti, že většina koeficientů má nulovou hodnotu. Pro zakódování se používá aritmetické nebo Huffmanovo kódování

24 24 Obsah Dekódování Dekódování JPEG obrázku probíhá opačným postupem než kódování.

25 Obsah 25 Srovnání Tyto dva obrázky ukazují rozdíl mezi původním obrazem a obrazem po komprimaci metodou JPEG. výsledný a původní obrázek Fraktální komprese Moderní, teprve se rozvíjející metoda ztrátové komprese. Patří mezi nesymetrické kompresní postupy, čas komprese a dekomprese se významně liší. Je založena na principu vyhledávání podobností (tvarových, barevných) v různě velkých částech obrazu. Algoritmus FIF se nejprve snaží vhodně rozdělit obraz na menší, nestejně velké části (domény), a poté z nich pomocí různých transformací poskládat celý obraz. Celkově je kvalita výsledných obrázků lepší než při použití metody DCT. Jedinou nevýhodou zůstává delší doba komprese nutná pro analýzu obrazu. Komprimace audio signálu Kvalitní digitální stereozáznam používá vzorkovací frekvenci 44,1 khz, což odpovídá datovému toku bytů za sekundu.

26 26 Obsah Komprimace zvuku se uplatňuje v oblasti přenosu lidského hlasu, kde lze použít nižších vzorkovacích frekvencí a predikce chování akustického signálu. Druhou oblastí je hudební signál, kde se naopak využívají vysoké vzorkovací frekvence a uplatňuje se psychoakustický model sluchu. Bezeztrátová komprese audio signálu PCM PCM je nejjednodušší kódování zvukových dat, zvuk ukládán nekomprimovaně. Proto je vhodné jej používat pouze pro nahrávaní v nejvyšší možné kvalitě. Navzorkovaná data jsou uložena bez jakéhokoliv zpracování jako posloupnost celočíselných hodnot. Taková data jsou pak snadno interpretovatelná a zpracovatelná, zabírají však příliš mnoho prostoru. Data v tomto formátu jsou rovněž nejpřesnější a případné kompresní formáty z tohoto formátu vycházejí. PCM záznam se používá 8bitový nebo 16bitový, kdy pro uložení jednoho vzorku slouží 1B, resp. 2B. Některé aplikace také podporují 24bitové nebo 32bitové vzorky. U monofonních nahrávek jsou vzorky uloženy přímo za sebe, u stereofonních nahrávek je na lichých místech levý kanál a na sudých místech pravý kanál. ADPCM (Adaptive Differential PCM) Diferenciální PCM kóduje hodnoty vzorků jako rozdíl mezi současnou a předchozí hodnotou. Takto kódované soubory jsou přibližně o 25% menší než původní PCM. Adaptivní DPCM navíc oproti DPCM dovolují proměnnou velikost kódovacího kroku kvůli možnosti dosažení lepší komprese. FLAC FLAC (Free Lossless Audio Codec) je volně šiřitelný bezztrátový kodek, podporovaný na řadě platforem a je velmi snadno dekódovatelný. Tento kodek využívá fakt, že u zvukových souborů bývá velmi velká podobnost u sousedních vzorků. Ztrátová komprese MP3 MP3 spadá do skupiny kompresních algoritmů MPEG. MPEG (Moving Picture Experts Group) pracuje pod vedením International Standards Organization (ISO) a International Elektro- Technical Commission (IEC) a zabývá se kódováním videa a audia. MPEG standardy se dělí: MPEG 1 kódování videa a audia pro uložení na digitálních mediích, datový tok do 1.5Mbit/s MPEG 2 kódování při nižších datových tocích, poloviční vzorkovací frekvence MPEG 3 původně plánováno pro HDTV, později spojeno s MPEG 2 MPEG 4 kódování audiovizuálních objektů (např. pro media objects, syntézu zvuku) Každý standard obsahuje několik částí, které popisují kódování audia, videa, synchronizačních dat a formáty uložení kódovaných dat. MPEG standard obsahuje několik vrstev Layer I-III, které popisují kódovací schémata. Od Layer I do Layer III roste komplexnost a efektivita komprese zvuků, ale klesá rychlost kódování a dekódování. Zvuková schémata se dělí: Layer I nejjednodušší schéma, původně je určeno pro Digital Compact Cassette (DCC) Layer II kompromis mezi kvalitou, rychlostí a kompresním poměrem Layer III od začátku vytvářeno pro nízké bitové proudy, vylepšené kódování Myšlenka vytvoření ztrátového kompresního algoritmu pro zvuková data se zrodila v roce 1987 ve Fraunhofer Institut Integrierte Schaltungen (IIS). Využívá se ve specifikaci MPEG 1 a 2 a označuje se jako Layer III (MP3). 1. Kódovaný zvuk se rozdělí na 32 frekvenčních pásem. Každé toto pásmo se kóduje zvlášť. Jednotlivá pásma jsou široká 625 Hz. Pásma jsou na nízkých frekvencích užší a na vyšších širší (kvůli citlivosti ucha na různé frekvence). 2. Je použita ztrátová komprese kvantizace. Kvantizační koeficienty se vypočítávají dynamicky podle dosažené akustické hladiny zvuku tak, aby šum vzniklý použitím kvantizace byl pod rozlišovací schopností ucha. Využívá se psychoakustického modelu. 3. Vypočtený signál se kóduje Huffmanovým kódováním.

27 Obsah Výsledná kvalita je určena datovým tokem. GSM kodek (Global System for Mobile communications) GSM je mobilní bezdrátový komunikační systém velmi rozšířený zejména v Evropě. GSM kodek je nenáročný kodek s vysokou kompresí, primárně určený pro záznam lidského hlasu a naprosto nevhodný pro náročnější nahrávky a hudbu. GSM kodeky operují nad vstupním monofonním zvukem s frekvencí 8kHz, jsou však aplikovatelné i na vyšší vzorkovací frekvence. Mp3 Pro Mp3 Pro je vyvinutý z původního kodeku Mp3, jenž byl probírán na přednášce. Kombinací souboru Mp3 o nízkém datovém toku s vysoce komprimovanými vysokými frekvencemi je dosaženo vyšší kvality uchovávaného zvuku. Výsledný soubor zachovává v dobré kvalitě jak basy, tak výšky záznamu. Na tomto kodeku je zajímavé, že původní Mp3 část je stále kompatibilní s přehrávači formátu Mp3. Algoritmus však není volně šiřitelný a proto není příliš rozšířený. Ogg Vorbis Ogg je skupina audio i video kodeků vyvíjených neziskovou organizací Xiph.org. Nejrozšířenějším z těchto kodeků je dosud Vorbis, určený pro kvalitní záznam hudby. Při stejných parametrech jako Mp3, dosahuje lepší kvality záznamu. Jeho vývoj je zcela otevřený s volně šířitelnými zdrojovými kódy a nevyžaduje žádnou licenci. Vorbis je určen pro datové toky kbps a podporuje až 255 nezávislých kanálů. Kodek je ve své podstatě VBR, a proto nemusí nastavení datového toku vždy zcela odpovídat toku výslednému. Jde o dopředný, adaptivní, monolitický kodek, který využívá modifikovanou diskrétní kosinovou transformaci a používající rovněž psychoakustický model. Dekódování je výpočetně méně náročné než u algoritmu Mp3, je však náročnější paměťově. WMA Windows Media Audio společnosti Microsoft byl z počátku vyvíjen jako konkurence Mp3 kodeku, v dnešní době spíše jako konkurence AAC. Kompresní algoritmy jsou stále zdokonalovány a v dnešní době poskytuje znatelně lepší kvalitu než kodek Mp3. WMA komprese je obvykle použita v souborech.asf, pokud soubor obsahuje pouze zvuková data, bývá jeho přípona.wma. Zdrojové kódy nejsou volně k dispozici. MPEG2 AAC (Advanced Audio Coding) AAC je nástupce komprese Mp3, který již z důvodu dosažení lepší kvality není zpětně kompatibilní. V dnešní době představuje nejkvalitnější kompresní algoritmus, není však příliš rozšířený. Podporuje vzorkovací frekvence od 8 do 96 khz, datový tok od 16 do 576 kbps a záznam až 48 zvukových kanálů. Nástroje pro práci s AAC používají modulární přístup a umožňují nastavení různých poměrů výpočetní složitost/výsledná kvalita. Psychoakustický model

28 28 Obsah Umožňuje odstranění dat lidským sluchem nepostižitelných a tedy v signálu redundantních, bez znatelné újmy na kvalitě reprodukovaného signálu. 1. omezení frekvenčního rozsahu využívá omezené citlivosti lidského ucha. Přenosového pásmo se omezuje na šířku 20 Hz až 20 khz. 2. maskování frekvencí využívá nelinearity citlivosti lidského sluchu. V přítomnosti silnějšího signálu nedokážeme vnímat slabší signál, který zaniká a není třeba jej tedy uvažovat. 3. časové maskování využívá setrvačnosti lidského sluchu. I po zániku silnějšího signálu chvíli trvá, než začneme vnímat současně působící slabší signál. Komprimace videa Video je reprezentováno jako posloupnost rámců ve formátech RGB, YUV... Vjem spojitého pohybu vzniká při přehrávání rámců frekvencí 15 fps a vyšších. Pro zobrazování videa v televizních formátech i ve formátech pro PC jsou různé avšak metody pro jejich komprimace jsou v podstatě stejné. Stejně jako při komprimaci audia i při komprimaci videa je potřeba vynucena nedostatečnou kapacitou přenosových médií. Ideální metoda komprimace přehrávání bez nutnosti použití drahých technických zařízení, přizpůsobit se (postupným snižováním kvality) při přetížení přenosové sítě anebo při použití na méně výkonném hardware, komprimace v reálném čase bez nutnosti použití nákladného hardware. Pro bezezrtátovou kompresi videa lze požít kodek HuffYUV, který komprimuje video s použitím Huffmanova kódování. V nejlepším případě komprimuje až na 40 % původní velikosti. Zvládá kompresi obrazu v barevném formátu RGB i YUV, je velmi rychlý a je zdarma. Formát MPEG MPEG je zkratkou pro Moving Picture Experts Group 4. Cílem práce této skupiny bylo standardizovat metody komprese videosignálu a vytvořit otevřenou a efektivní kompresi. Formát MPEG-1 byl dokončen v roce 1991 a jako norma přijat roku ISO/IEC Byl navržen pro práci s videem o rozlišení 352x288 bodů a 25 snímků/s při datovém toku 1500kbit/s. Parametry komprese MPEG-1 jsou srovnávány s analogovým formátem VHS. Formát MPEG-1 se stal součástí tzv. White Book, což je definováno jako norma pro záznam pohyblivého obrazu na CD (74 minut videa). MPEG komprese používá ke kompresi videa I, P a B snímky: I snímky (Intra Pictures) jsou snímky klíčové, jsou komprimovány podobně jako MJ- PEG, ale navíc s možností komprimovat různé části obrazu různým stupněm komprese. P snímky (Predicted Pictures) jsou kódovány s ohledem na nejbližší předchozí I nebo P-snímek. B snímky (Bidirectional Pictures) jsou pak dopočítávané jako rozdílové snímky mezi nejbližším předchozím I nebo P-snímekm a nebližším následujícím I nebo P-snímkem. Celá sekvence snímků (od jednoho I po další I snímek) se pak nazývá GOP (Group of Pictures) a standardní MPEG stream pro VCD, SVCD a DVD používá pořadí IBBPBB- PBBPBBPBBPBB. Přesto MPEG standard neurčuje žádná pravidla a omezení pro vzdálenost I a P snímků. Komprese navíc umožňuje kdykoliv ukončit GOP a předčasně tak použít další sekvenci GOP začínající snímkem I. Toto vede především ke zlepšení kvality videa. Komprimované video obsahující proměnlivé vzdálenosti mezi klíčovými snímky se pak nazývá VKI (Variable Keyframe Interval). Počet I, P a B snímků lze většinou nastavit, záleží na implementaci kompresoru. Komprese MPEG-1 se nehodí pro střih videa z důvodu vzdálených klíčových snímků. Většina střihových programů však umožňuje export do formátu MPEG-1. Tento formát je totiž jeden z nejrozšířenějších a lze jej softwarově přehrát téměř na každém počítači a stejně tak na 95 % všech stolních DVD přehrávačích. Tento formát lze také streamovat. Bohužel v dnešní době je již tento kodek zastaralý, přesto je to nejkompatibilnější formát. Co se týče kvality, je v porovnání s jinými kodeky na tom poněkud hůře, protože abychom dosáhli,

29 Obsah 29 dobré kvality obrazu, potřebuje mnohem více bitů na kompresi než u jiných kodeků (DivX, XviD). Po dokončení MPEG-1 standardu jej začali lidé používat, a snažili se jej používat i na vyšší rozlišení. Narazili ale na několik problémů, kvůli kterému byl MPEG-1 nepoužitelný. Komprese MPEG-1 zvládá komprimovat pouze celé snímky. Nepodporuje však kompresi prokládaných snímků. Formát MPEG-2 byl společností MPEG dokončen v roce 1994 a stal se standardem pro kompresi digitálního videa. Byl navržen tak, aby dosahoval vysílací kvality videa. Oproti MPEG-1 přináší komprese MPEG-2 podporu pro prokládané snímky, tedy půlsnímky. Dále proměnlivý datový tok, což umožňuje v náročnějších scénách videa použít více bitů pro kompresi a naopak v klidnějších scénách se použije méně bitů. Samozřejmě dále podporuje i konstantní datový tok. Při stejném datovém toku a plném rozlišení (720x576) dosahuje MPEG-2 mnohem vyšší kvality obrazu než MPEG-1 komprese. Nevýhodou komprese MPEG-2, je na druhou stranu velmi vysoké zatížení procesoru při přehrávání, a prakticky žádný rozdíl v kvalitě oproti MPEG-1 kompresi při nízkých rozlišeních. Pro streamování v nízké kvalitě je tedy vhodnější komprese MPEG-1, zatímco pro plné rozlišení a vysoké datové toky zase MPEG-2. MPEG-4 byl vyvinut opět společností Moving Picture Experts Group. Není to již přesná definice komprese a komprimačních algoritmů, nýbrž je to množina parametrů a vlastností, které musí kompresor splňovat, aby byl MPEG-4 kompatibilní. Známe tedy různé implementace MPEG-4, které vybírají z definice MPEG-4 vždy to, co je pro daný formát vhodnější. Kodeky využívající způsoby komprese MPEG-4 jsou např. Microsoft MPEG-4 vl, v2 a v3, DivX 4, DivX 5, XviD a další ASF, WMV Firma Microsoft si všimla úspěchů na poli streamovaného videa, kterých dosahovaly společnosti Apple a RealNetworks svými formáty Quicktime, MOV a RM, a vyvinula vlastní formát ASF (Advanced Streaming Format), určený především pro stream videa. ASF je formát i komprese, vychází z formátu AVI a dovoluje použít pouze kompresi Microsoft MPEG4. Firma Microsoft uvedla i formát WMV, který je novější verzí ASF. Komprese ASF částečně implementuje MPEG4, nepodporuje totiž B-snímky. Quicktime Quicktime je formát vyvinutý firmou Apple, který byl v dřívější době, kdy mu nekonkuroval MPEG velmi zajímavý a používaný. Je přenositelný mezi PC a Macintosh platformami, používá kompresi 5:1 až 25:1. Dnes se používá například na prezentačních CD a pro video streaming. Přesto v dnešní době již tento formát má poměrně nízkou kvalitu obrazu při daném datovém toku oproti jiným kodekům. Nutný je také přehrávač firmy Apple. RealVideo Real Video a Real System G2 jsou formáty komprese vyvinuté firmou Real Networks. Má podobné vlastnosti jako Quicktime, ale je primárně zaměřen na kompresi streamovaného videa. Pro kompresi do tohoto formátu se používá program Helix Producer firmy Real Networks. Pro přehrávám je pak určen program Real Player téže firmy. DivX 5 Kodek je kompatibilní s MPEG-4, komprimuje do formátu MPEG-4 Simple Profile a zvládá přehrávání předchozích verzí kodeku DivX a formátů MPEG-4 Simple Profile, MPEG-4 Advanced Simple Profile a H.263 (videokonference). DivX 5 používá pokročilejší techniky při kompresi a oproti DivX verze 4 dosahuje zlepšení kvality až o 25 % při zachování velikosti souboru. DivX 5 má integrované některé nástroje/filtry v sobě a umožňuje tak přímo při kompresi změnit rozměry obrazu, aplikovat filtr rozprokládání, ořezat obraz a jiné. Dále implementuje algoritmy pro zvýšení komprese využitím tzv. psychovizuálního modelu. Při něm se dosahuje lepší komprese bez znatelné ztráty kvality a to díky znalostem o lidském vizuálním systému. Implementuje obousměrnou kompresi, tedy B-snímky. Dále tzv. globální kompenzaci pohybu, což je algoritmus, který optimalizuje kompresi pro panorámování, roztmívání obrazu, přibližování, náhlé změny jasu (exploze), stagnující plochy (voda) a další. Kodek podporuje také export do formátu MPEG-4 a konverzi mezi ním a AVI formátem. DV V současnosti nejpoužívanější formát pro kompresi videa v digitálních kamerách. DV komprimuje každý snímek videa zvlášť za použití diskrétní kosinové transformace. Ještě předtím, než se transformace provede, tak jsou některé informace o barvě odstraněny za použití chromatického subsamplingu, aby se zredukovalo množství dat nutných ke kompresi. Tento kompresní algoritmus je velmi dobrý a lze jej srovnávat s kompresemi bezztrátovými.

30 30 Obsah Indeo Video 5.20 Tento kodek 2 byl vyvinut společností Ligos. Má poměrně dobrou kvalitu obrazu. Ke kompresi používá Wavelet kompresi. Lze nastavit, aby každý snímek byl klíčový. Při nastavení kvality na 100 % je výsledný obraz téměř k nerozeznání od nekomprimovaného. Kodek je poměrně pomalý a na danou kvalitu dělá poměrně velké soubory. H.261 a H.263 H.261 je standard pro videokonference a videotelefonu přes ISDN. Umožňuje regulovat tok dat v závislosti na propustnosti sítě. Přenos dat je 64kbit/s nebo 128kbit/s (dva kanály ISDN). Kodek H.263 implementuje vyšší přesnost při pohybu než H.261. Jeho použití je pro monitorovací systémy a pro videokonference s velkou obrazovkou. Microsoft Video 1 Tento kodek je standardní součástí všech operačních systémů firmy Microsoft od verze Windows 95. Kvalitou výsledného obrazu je ovšem velice špatný. I při nastavené 100% kvalitě je pozorovatelné čtverečkování a jiné nepříjemné vady v obraze. Kodek je navíc poměrně pomalý a takto zakódované video je dokonce větší než stejné video zkomprimované bezeztrátovým kodekem HuffYUV! M-JPEG Kompresní kodek M-JPEG (Motion JPEG) je založen na kompresi jednotlivých snímků použitím komprese JPEG. Tento kodek má většinou volitelný kompresní poměr v rozmezí 6:1 do 16:1. Při kompresním poměru 8:1 je kvalita obrazu stále ještě velmi dobrá a datový tok se pohybuje kolem 4 MB/s a osahuje tak dobrého poměru kvalita/datový tok. Velikou předností tohoto kodeku je, že každý snímek je komprimován samostatně a je tedy vždy klíčový. Proto je tento kodek velmi vhodný pro střih videa na počítači. Zároveň je implementován hardwarově v mnoha polo-profesionálních zachytávacích kartách a zachytávání pak funguje bezproblémově i na velmi pomalých počítačích. Softwarový kodek komprimující video kodekem MJPEG je například PlCVideo MJPEG Codec 3. Úvod do kryptologie Úvod do kryptologie V této kapitole se seznámíme se základními pojmy týkajícími se kryptologie. Řekneme si, co rozumíme pojmy otevřený text, šifrový text, klíč či šifrovací algoritmus. Naučíme se rozlišovat kryptologii a kryptografii. Také se seznámíme se základními zvyklostmi pro označování prvků šifrované komunikace. Kryptologie je vědní obor zabývající se šifrováním a dešifrováním zpráv. Zahrnuje v sobě kryptografii a kryptoanalýzu. Kryptografie označuje nauku o šifrování, kraptoanalýza se pak zabývá lámáním šifer (tj. luštěním bez znalosti klíče).

31 Obsah 31 Historie kryptologie je neustálý boj kryptografie a kryptoanalýzy. V některých obdobích dějin měla navrch kryptoanalýza, jindy naopak kryptografie. V současné době vítězí kryptografie, neboť existují šifrovací algoritmy, jež není možné v rozumném čase zlomit. To je poměrně praktické: Kdyby tomu tak nebylo, těžko bychom si mohli představit např. internetové bankovnictví. V historii však byla i taková období, kdy vítězila kryptoanalýza a tedy bylo možné rozlomit jakoukoliv v té době známou šifru. Je zřejmé, že taková období vedou k poměrně značné depresi mezi kryptografy a důležitá komunikace je značně ohrožena. Jak si ukážeme v dalších kapitolách, současné vítězství kryptografie nad kryptoanalýzou je poěrně křehké. Je založeno na doměnkách, které nejsou matematicky dokázané. Jedná se především o problém, zda P = NP z teorie složitosti a neschopnost rozkladu velkcýh čísel na součin prvočinitelů v rozumném čase. Kdyby se podařilo ukázat, že P = NP, nebo kdyby někdo objevil rychlý způsob faktorizace, znamenalo by to konec současné podoby kryptografie. Samotné slovo kryptografie pochází z řečtiny a jedná se o spojení dvou slov: kryptos = skrytý, graphein = psát. Kryptografie je tedy skryté (tajné) psaní. Kryptografie je věda o matematických technikách spojených s hledisky informační bezpečnosti, jako je důvěrnost, integrita dat, autentizace a autorizace. Cíle a metody kryptografie Jak je vidět z předchozí definice, kryptografie má několik cílů. Jsou jimi: důvěrnost (confidentiality) - též bezpečnost - jedná se o udržení obsahu zprávy v tajnosti. Zabezpečení této služby je nejdůležitějším cílem kryptografie. celistvost dat (data integrity) - též integrita - jedná se o zamezení neoprávněné modifikace dat. Tato modifikace může být smazání části dat, vložení nových dat, nebo substituce části stávajících dat jinými daty. Se zamezením neoprávněné modifikace souvisí i schopnost tuto modifikaci detekovat. autentizace (authentication) - též identifikace, neboli ztotožnění - znamená prokazování totožnosti, tj. ověření, že ten, s kým komunikujeme, je skutečně ten, se kterým si myslíme, že komunikujeme. Autentizace může probíhat na základě znalosti (heslo), vlastnictví (klíče od bytu, kreditní karta) nebo charakteristických vlastností (biometrické informace - např. otisky prstů). autorizace (authorization) - je potvrzení původu (původnosti) dat. Tedy prokázání, že data vytvořil (je jejich autorem) skutečně ten, o němž si myslíme, že je autorem. nepopiratelnost (non-repudiation) - souvisí s autorizací - jedná se o jistotu, že autor dat nemůže své autorství popřít (např. bankovní transakci). Uvedené pojmy jsou důležité nejen v kryptografii, ale operuje se s nimi i v oblastech souvisejících s bezpečností a informačními systémy. Znalost jejich významu je tedy (nejen) pro informatika velmi důležitá. Základními metodami kryptografie jsou substituce a transpozice. Substituce znamená nahrazení znaků zprávy jinými znaky, transpozice pak jejich přeskládání. Podrobněji se budeme oběma metodám věnovat v dalších kapitolách, takže nyní jen stručně. Jednoduchou substituční metodou je např. Caesarova šifra, tedy posunutá abeceda o 3 písmena. Zpráva veni, vidi, vici se zašifruje jako YHQL, YLGL, YLFL.

32 32 Obsah Jednoduchou transpoziční šifrou je například text BLODIEEPVIA-YPZNVCRRNMJ VCRIABLAKCS-EENMJYLSYA Ten lze přepsat jako B L O D I E E P V I A Y P Z N V C R R N M J V C R I A B L A K C S E E N M J Y L S Y A Z čehož je již patrné řešení. Další metodou, která se používá v komunikaci, jež má zůstat utajena, je steganografie, která se někdy z kryptografie vyčleňuje a považuje se za samostatnou disciplínu. Úkolem steganografie není ukrytí smyslu zprávy, ale její samotné existence. To znamená, že zpráva putuje komunikačním kanálem nezašifrovaná, ale takovým způsobem, aby byla nenápadná a pokud možno nebyla odhalena ani skutečnost, že je nějaká zpráva vůbec přenášea. Je samozřejmé, že optimální je kombinace obou technik, tj. ukrytí zašifrované zprávy. Obecný šifrovací proces. Rozdělení kryptografie Proces přenosu zašifrované zprávy má obecně tyto kroky (viz následující obrázek): Odesilatel aplikuje šifrovací algoritmus s využitím klíče na otevřený text. Tím vznikne šifrový text, který poté putuje nezabezpečeným komunikačním kanálem k příjemci. Příjemce aplikuje na šifrový text dešifrovací algoritmus, opět s využitím klíče, jehož výstupem je původní otevřený text. Podle toho, zda jsou klíče odesilatele a příjemce stejné či nikoliv, rozlišujeme symetrickou a asymetrickou kryptografii. V případě symetrické kryptografie používají odesilatel i příjemce stejné klíče a dešifrovací algoritmus je prostou inverzí algorritmu šiffrovacího. V případě asymetrické kryptografie používají odesilatel i příjemce různé klíče, které jsou spolu v určitém matemaatickém vztahu. Šifrovací a dešifrovací algorittmus jsou obecně různé, ačkoliv spolu musí souviset. Jinak by nebylo možné získat zpět původní otevřený text. Kerckhoffsův princip Kerckhoffsův princip je základním principem kryptografie. Přišel na něj nizozemský lingivsta Auguste Kerckhoffs von Nieuwenhoff v roce Zní: Bezpečnost šifrovacího systému nesmí záviset na utajení algoritmu, ale pouze na utajení klíče. Pokud by totiž bezpečnost systému byla závislá na utajení algoritmu a nikoliv klíče, dříve nebo později se někomu podaří tento systém zlomit. V případě softwaru pomocí disasemblování, v případě hardwaru pomocí reverse ingeneeringu, v ostatních případech špionáží.

33 Obsah 33 Pouze veřejně známý a všeobecně uznávaný šifrovací algoritmus, jehož bezpečnost je závislá na reálné nemožnosti uhodnutí klíče je schopen zajistit dostatečnou bezpečnost. Terminologická konvence V kryptografii se častoi setkáme s označením komunikujících stran podle tzv. konvence Alice a Bob (viz a Bob). Tento způsob označování je už natolik ustálený, že kdo by se pokusil označit komunikanty jiným způsobem, bude považován za nevzdělance. Účastníky komunikace tedy označujeme Alice (A) a Bob (B). Tento způsob označování je politicky korektní, neboť jsou při něm rovnoměrně zastoupena všechna lidská pohlaví. Dokonce je žena na prvním místě. Útočník bývá označován jako Eva (E), což pochází z anglického termínu eavesdropper - pasivní útočník, odposlouchávač, slídil. Častou legendou používanou pro názorné vysvětlení je, že Alice posílá Bobovi milostný dopis, zatímco Eva, která rovněž o Boba stojí, se jejich komunikaci snaží narušit. Zpráva, tedy otevřený text bývá označován písmenem M (message), šifrový text pak písmenem C (cipher). Proces šifrování, resp. šifrovací algoritmus ozančujeme písmenem E (encryption), dešifrovací algoritmus písmenem D (decryption). Klíč se označuje písmenem K (key). Platí tedy, že C = E(K, M), M = D(K, C) Matematický základ Součástí úvodu do kryptologie je i potřebný matematický aparát, se kterým se budeme v průběhu dalšího studia setkávat. Tento aparát není příliš náročný a lze předpokládat, že pro většinu studujících tohoto kurzu nebude v této kapitole nic nového. Je třeba se seznámit s modulární aritmetikou a operací XOR. Modulární aritmetika Modulární aritmetika je aritmetika na konečné uspořádané množině čísel, která se cyklicky opakují. Operace jsou stejné jako u přirozených čísel s tím rozdílem, že každé číslo nahradíme jeho modulem (tj. zbytkem po celočíselném dělení). Ukažme si zmíněný princip na aritmetice modulo 7: = 5 (mod 7) = 2 (mod 7) - protože 9 : 7 = 1, zbytek = 6 (mod 7) - protože 20 : 7 = 2, zbytek = 1 (mod 7) - protože 99 : 7 = 14, zbytek = 5 (mod7) V praxi se samozřejmě používají řádově větší moduly než 7. Je však důleřité, aby byl modul prvočíselný, neboť jedině to zabezpečuje využití celé množiny přípustných hodnot. Proč je modulární aritmetika tak výhodná? Rozeberme si poslední řádek v uvedeném příkladu. Představme si, že známe základ (3), známe výsledek operace (5) i modul (7). Jak zjistit exponent? V případě klasické aritmetiky bychomm použili logaritmus, jehož výpočet je víceméně triviáln í záležitost. V případě modulárnní aritmetiky však žádný logaritmus neexistuje a nezbývá nám, než vyzkoušet všechny možnosti, na něž lze základ umocnit, a u každé se dívat, zda poskytuje očekávaný výsledek. To je myšlenka, na níž stojí algoritmus pro vvýměnu klíčů Diffie-Hellmann, a svým způsobem i asymetrický šifrovací algoritmus RSA. Operace XOR XOR je logická operace. Název pochází z anglického exclusive OR, tedy výlučné nebo. Jedná se o logickou operaci nebo s tím rozdílem, že pravdivý může být pouze jeden z operandů. Jsou-li pradivé oba, je výsledkem operace XOR nepravda.

34 34 Obsah 0 0 = = = = 0 Při použití této spojky píšeme v češtině před nebo čárku: Půjdu do kina, nebo do divadla (znamená to, že na obě místa nepůjdu, půjdu jen na jedno z nich). Rozdíl mezi klasickým OR a výlučným XOR vnímá tedy i česká gramatika, která rozlišuje nebo ve významu slučovacím (OR) (Obléknu si modré kalhoty a zelené tričko) a ve významu vylučovacím (Obléknu si modr kalhoty, nebo zeleenné tričko), který nepřipouští platnost obou výroků současně (Buď si obléknu modré kalhoty, nebo zelené tričko, ale určitě ne obojí zaráz). Operace XOR je de facto součet modulo 2. Tedy sečteme operandy a vypočteme zbytek po celočíselném dělení dvěma. V kryptografii má operace XOR poměrně široké uplatnění jako součást složitějších šifrovacích systémů. Ale i sama o sobě může posloužit jako jednoduchá šifra: C = M K. Díky symetrii operace je pak M = C K. Historie kryptografie a kryptoanalýzy do konce druhé světové války Historie kryptografie a kryptoanalýzy Nejstarší zmínka o kryptologii se objevuje před téměř 4 tisíci lety. V městě Menet Khufu v severní Africe vytesal písař do skály v hrobce Khnumhotepa II přibližně 1900 let př. n. l. nápis, kde nahradil některé běžně používané hieroglyfy za neobvyklé znaky. Nebyl to ale způsob tajného písma, jak ho známe dnes, protože pisatelovým záměrem nebylo skrýt význam zprávy, ale propůjčit nápisu důstojnost. S rozkvětem Egyptské civilizace a rozvojem písma se tyto záměny stávaly složitějšími, vynalézavějšími a běžnějšími. Šifrování v antice Z šestého století př. n. l. pochází šifra atbaš používaná v Hebrejštině. Název je odvozen od způsobu šifrování, tedy záměna prvního písmena hebrejské abecedy (alef) s posledním (tav), druhého (bet) s předposledním (šin) atd.

35 Obsah 35 V latince by takováto šifra odpovídala následujícímu přiřazení písmen: a b c d e f g h i j k l m n o p q r s t u v w x y z Z Y X W V U T S R Q P O N M L K J I H G F E D C B A Atbaš je použit v Bibli při záměně názvu města Babylon (Babel) za Šešák a Kashdim za Leb Kamai.

36 36 Obsah Př.: Slovní spojení záměna písmen zašifrujeme atbashem jako aznvmz krhnvm. První doložené použití steganografie (tedy ukrytí samotné existence zprávy) pochází z roku 480 př. n. l. od Hérodota, otce historie, kdy se odehrála rozhodující bitva řeckoperských válek bitva u Salamíny. Despotický vůdce Peršanů Xerxés, Král kralů, prohlásil, že rozšíříme perskou říši tak, že její jedinou hranicí bude nebe a slunce nedohlédne země, jež by nepatřila nám. Pět let sbíral potají největší vojenskou sílu v dosavadní historii. Nakonec vedl Xerxés téměř 900 perských lodí, připravených podrobit si řeckou říši. Přípravy Peršanů však sledoval řecký vyhnanec Demaratus, který žil v perském městě Susy. Ačkoliv se do Řecka nemohl vrátit, stále cítil k rodné zemi loajalitu, a tak se rozhodl poslat do Sparty varování. Kvůli perským hlídkám jej ale bylo nutné skrýt. V té době se psalo na dřevěné tabulky pokryté voskem, do kterého se vyryla zpráva. Po zahřátí se vosk na povrchu destičky opět zacelil a bylo možné ji použít znovu. Demaratus seškrábal z těchto tabulek vosk a zprávu vyryl pod něj na samotné dřevo. Poté destičky opět potáhl voskem, aby vypadaly nepoužitě. Zprávu rozluštila až manželka Leonida (vojevůdce Sparťanů v bitvě u Thermopyl) Gorgo, která uhodla, že zpráva je ukryta až pod vrstvou vosku. Tím Peršané ztratili moment překvapení a do té doby bezbranné Řecko začalo se zbrojením. Zisk ze stříbrných dolů, který byl rozdělován mezi občany, byl použit k výstavbě válečných lodí, čímž zvětšili jejich počet ze 70 na 200. Ačkoliv byl poměr lodí stále pro řecké vojsko velmi nepříznivý, pomocí lsti se podařilo Peršany porazit a přestože Peršané ztratili jen 25-33% bojové síly a měli tedy stále početní převahu, už se neodvážili útok opakovat a raději se stáhli z většiny Řecka včetně pozemských vojsk. Ukrytí zprávy v tomto střetu tedy sehrálo klíčovou roli. Sparťané v 5. století př. n. l. používali pro změnu transpozici. Pisatel zprávy nejprve omotal proužek kůže kolem dřevěné tyče. Tyč musí mít přesně dán průměr, ale nemusí být po celé délce stejně široká (může se rozšiřovat), aby se předešlo pravidelnému rozmístění písmen. Zpráva je pak zapsána na kůži podél tyče, pruh kůže se odmotá a vznikne tak na proužek s nečitelnou posloupností písmen. Jako u každé šifry, i zde se nabízí možnost zkombinovat ji se steganografií, jako např. v roce 404 př. n. l., kdy dorazil ke králi Sparty Lysandrovi raněný posel, který jako jediný z pěti přežil cestu z Persie. Podal Lysandrovi svůj opasek. Ten jej ovinul kolem tyče správného průměru a dozvěděl se, že se na něho perský Farnabazus chystá zaútočit. Díky této utajené komunikaci se Lysandros včas připravil na útok a nakonec jej odrazil. Toto historicky první kryptografické zařízení se nazývá skytale

37 Obsah 37 (nebo také scytale, z řeckého slova, jež znamená obušek). Řecký spisovatel Polybius (přibližně př. n. l.) vytvořil šifru, kde abecedu napsal do čtverce o pěti sloupcích a pěti řádcích. Každé písmeno pak bylo možné interpretovat jako kombinaci dvou čísel, přičemž první představovalo číslo řádku, druhé číslo sloupce. Pokud bychom převedli latinku do Polybiova čtverce, jak se šifra nazývá, vypadal by takto: A B C D E 2 F G H IJ K 3 L M N O P 4 Q R S T U 5 V W X Y Z Pro použití při psaní českých zpráv je možné vynechat W (popřípadě Q), aby bylo možné I i J reprezentovat jinými kombinacemi čísel. Polybiův čtverec se v antice používal také k nočnímu vysílání na dálku. K vysílání bylo potřeba deset hořících loučí, pět za každým ze dvou neprůhledných panelů. Počet loučí zdvižených nad levý panel udával číslo sloupce, louče nad pravým panelem pak číslo řádku daného písmene v Polybiově čtverci. Př.: slovní spojení řecký spisovatel zašifrujeme pomocí Polybiova čtverce jako Julius Caesar (asi př. n. l.) byl římským vojevůdcem a politikem a jedním z nejmocnějších mužů antické historie. Sehrál klíčovou roli v procesu zániku Římské republiky a její transformace v monarchii. Julius Caesar se také nesmazatelně zapsal do kryptografie. Caesar používal tajné písmo tak často, že Valerius Probus sepsal celkový přehled jeho šifer. Toto dílo se bohužel nedochovalo. Díky dílům, která se dochovala je zjištěn detailní popis jedné z jeho šifer. Jedná se o jednoduchou substituční šifru, kdy každé písmeno zprávy je nahrazeno písmenem posunutým v abecedě o tři pozice. a b c d e f g h i j k l m n o p q r s t u v w x y z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

38 38 Obsah Vyzkoušejte si šifrování a dešifrování Caesarovou šifrou pomocí jednoduché webové aplikace a a foltynek/kas/historie/caesar.php Takováto šifra se nazývá Caesarova šifra, název se však používá také obecně pro posunutí šifrové abecedy. Mimo posunutí se může pro šifrování zvolit i klíč (slovo, slovní spojení), který nahrazuje písmena ze začátku abecedy (opakující se písmena v klíči vynecháme), zbytek se poté doplní ostatními písmeny v pořadí tak se zvýší počet možných klíčů z pouhých 25 na více než I přes svou jednoduchost, Caesarova šifra položila základ mnohým dalším, složitějším šifrám (např. ROT13, Vigen rův čtverec). a b c d e f g h i j k l m n o p q r s t u v w x y z J U L I S C A E R T V W X Y Z B D F G H K M N O P Q Caesarova šifra s klíčem julius caesar Př.: Výrok veni, vidi, vici po zašifrování klasickou Caesarovou šifrou vypadá následovně yhql, ylgl, ylfl. O dalším typu substituční šifry se zmiňuje Kámasútra, napsaná indickým filozofem jménem Mallanaga Vatsjajana ve 4. století n. l., který však vyšel z rukopisů o 800 let starších. Mezi šedesáti čtyřmi uměními, které Kámasútra doporučuje ženám studovat, nejsou jen vaření, oblékání, příprava parfémů, ale také žonglování, šachy a umění tajného písma (mlecchitavikalpa, umění číslo 45). Jedním z doporučených typů tajného písma je náhodně spárovat písmena abecedy. Při převedení této myšlenky na latinskou abecedu, mohou dvojice písmen vypadat například takto: A B, E D, F H, G K, I Q, L U, N Y, O S, P M, T V, W R, X J, Z C. Frekvenční analýza a její důsledky Doposud se uvažovalo o nahrazení písmen abecedy za písmena ze stejné abecedy, arabští úředníci však používali šifry, kde nahrazovali písmena abecedy za různé znaky (např. #, +,...), nebo svobodní zednáři používali tzv. šifrovací kříže, kde byla písmena rozdělena do tabulek, zástupné znaky otevřené abecedy pak byly vyjádřením pozice v takové tabulce. I přesto že se může zdát tato substituce složitější, k jejímu rozluštění stačí stejná technika. A byli to právě Arabové, kdo položili základ kryptoanalýze. První popis luštění tajných zpráv pomocí obecné techniky pochází z 9. století od učence jménem Abú Jasúf Jaqúb ibn Isháq ibn as-sabbáh ibn omrán ibn Ismail al-kindí, známý jako filozof Arabů. Věnoval se lékařství, astronomii, jazykovědě, hudbě, matematice, statistice, arabské fonetice a syntaxi, díky čemuž napsal pojednání Rukopis o dešifrování kryptografických zpráv, kde jako první popsal frekvenční analýzu. Jedná se vlastně o procentuální vyjádření výskytu písmen v daném jazyce. Aby bylo možno čísla obecně používat, musí se provést v tomto jazyce analýza velkého množství různých textů. Tak například zjistíme, že nejčastější písmeno v českém jazyce je e, druhé nejčastější a, pak o, i, n,... Pokud bychom dále luštili nějaký text zašifrovaný monoalfabetickou substituční šifrou, budeme postupovat tak, že písmenu (nebo znaku) z šifrového textu s největší četností výskytu přiřadíme písmeno e tedy písmeno s největší četností výskytu v jazyce, o kterém se domníváme, že je použit v původní zprávě, druhému nejčastějšímu písmenu z šifrového textu přiřadíme písmeno a apod. U přidělovaní písmen však nesmíme postupovat pouze mechanicky, musíme pružně reagovat, jelikož zejména u kratších textů je frekvence písmen zkreslena a neodpovídá tedy přesně uvedeným hodnotám. S objevením frekvenční analýzy souvisí samozřejmě pokusy o zdokonalování dosavadních šifer, např. zavedením tzv. klamačů či nul, tedy znaků, jež měla za význam pouze zmást kryptoanalytika při frekvenční analýze, neboť nereprezentovala žádné písmeno původní zprávy, dalším příkladem budiž

39 Obsah 39 špatný pravopis před zašifrováním zprávy, jež vede ke stejnému důsledku, tedy znesnadnit správné přiřazení písmen z abecedy znakům šifrové abecedy na základě frekvenční analýzy. Další pokus, jak zdokonalit monoalfabetické substituční šifry, spočíval v zavedení kódových slov, tedy že symbol šifrové abecedy nereprezentuje pouze znak otevřené abecedy, ale může nahrazovat celé slovo. Může se zdát, že zavedením kódů (tedy substituce na úrovni slov, frází) se zpráva stává bezpečnější, protože analýza se již nevztahuje na pouhých 26 znaků abecedy, ale je potřeba se dobrat významu stovek a více slov, avšak při zavedení kódu se objevují nové problémy. Zatímco při prosté šifře, která nahrazuje jedno písmeno otevřené abecedy jiným z šifrové, se stačí domluvit na pravidle, podle kterého jsou jednotlivé znaky přiřazeny, u kódů se nejprve musí složitě definovat kódová slova pro každé slovo, které se může vyskytnout v otevřeném textu. Takový slovník, který přiřazuje každému slovu slovo kódové, bývá často velmi objemný a je tedy složité jej přepravovat a zdlouhavé jej používat. A navíc padne-li tento kód do rukou nepříteli, je veškerá utajovaná komunikace rázem plně srozumitelná. Kvůli těmto technickým problémům vznikly v 16. století tzv. nomenklátory tedy kódovací systém, který vychází z šifrové abecedy, navíc je ale doplněn o seznam kódových slov. Navzdory tomu není o mnoho bezpečnější než obyčejná šifra, protože většinu textu lze rozluštit frekvenční analýzou, zbylá slova pak odvodit z kontextu. Stejně tak si byli schopni kryptoanalytici poradit i s klamači či pozměněným pravopisem. Jiná reakce na frekvenční analýzu byla homomorfní substituční šifra, tedy šifra, kde každé písmeno otevřené abecedy má více reprezentací v šifrové. Pokud je známa frekvence jednotlivých písmen v jazyce zprávy, přidělí se každému tolik znaků šifrové abecedy, aby byl výskyt jednotlivých takových znaků přibližně stejný (např. dvoucifernými čísly). Takto se sice znemožní frekvenční analýza, ale závislosti mezi písmeny (v anglickém textu např. písmeno q je vždy následováno písmenem u) se nezmění, šifru je tedy obtížnější vyluštit, není to však zdaleka nemožné. V Evropě kryptologové ale také nezaháleli. V roce 1518 benediktýnský opat Johannes Trithemius vydal knihu Polygraphia, kde popsal šifru nahrazující písmena za slova z předem dané tabulky. Italský renesanční učenec Jeroným Cardan vynalezl šifrování známé pod pojmem Cardanova mřížka, což je destička s vyříznutými otvory v předem daných místech. Než odesílatel poslal zprávu, přiložil mřížku na papír a do průřezů vepsal zprávu. Poté doplnil zbývající text, který pouze maskoval význam zprávy. Zpráva je pak rozluštitelná pouze s identickou mřížkou. Dalším krokem v polyalfabetické substituci byla šifr Giovana Battisty Bellasa, v níž se poprvé objevuje použití klíčového slova, pomocí nějž je zpráva šifrována. Bellaso je rovněž autorem konceptu tzv. autoklíče, kdy se klíčem stává samotná zpráva. Bellasovy výsledky tedy znamenaly poměrně výrazný posun v kryptologii, i když největší slávu získala Vigenérova šifra. Vigenérova šifra Stále ještě v 16. století vynalezl francouzský diplomat Blaise de Vigen re ( ) šifru, jež nebyla rozlomena po další tři století. Vycházel z prací Leona Battistuta Albertiho, který navrhl použít více šifrových abeced, které by se při šifrování pravidelně střídaly a zmátly tak potenciální kryptoanalytiky. a b c d e f g h i j k l m n o p q r s t u v w x y z 1 B C D E F G H I J K L M N O P Q R S T U V W X Y Z A 2 C D E F G H I J K L M N O P Q R S T U V W X Y Z A B 3 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C 4 E F G H I J K L M N O P Q R S T U V W X Y Z A B C D 5 F G H I J K L M N O P Q R S T U V W X Y Z A B C D E 6 G H I J K L M N O P Q R S T U V W X Y Z A B C D E F 7 H I J K L M N O P Q R S T U V W X Y Z A B C D E F G 8 I J K L M N O P Q R S T U V W X Y Z A B C D E F G H 9 J K L M N O P Q R S T U V W X Y Z A B C D E F G H I 10 K L M N O P Q R S T U V W X Y Z A B C D E F G H I J 11 L M N O P Q R S T U V W X Y Z A B C D E F G H I J K 12 M N O P Q R S T U V W X Y Z A B C D E F G H I J K L 13 N O P Q R S T U V W X Y Z A B C D E F G H I J K L M 14 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N 15 P Q R S T U V W X Y Z A B C D E F G H I J K L M N O

40 40 Obsah 16 Q R S T U V W X Y Z A B C D E F G H I J K L M N O P 17 R S T U V W X Y Z A B C D E F G H I J K L M N O P Q 18 S T U V W X Y Z A B C D E F G H I J K L M N O P Q R 19 T U V W X Y Z A B C D E F G H I J K L M N O P Q R S 20 U V W X Y Z A B C D E F G H I J K L M N O P Q R S T 21 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 22 W X Y Z A B C D E F G H I J K L M N O P Q R S T U V 23 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W 24 Y Z A B C D E F G H I J K L M N O P Q R S T U V W X 25 Z A B C D E F G H I J K L M N O P Q R S T U V W X Y 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Síla Vigen rovy šifry spočívá v tom, že k jejímu šifrování (dešifrování) se nepoužívá pouze jedna šifrová abeceda, ale všech 26, které vzniknou posunutím původní abecedy. Při šifrování se nejprve sestaví tzv. Vigen rův čtverec, jehož každý řádek je abeceda posunutá oproti předchozímu řádku o jedna. Šifrovat písmeno A se tedy může 26 způsoby, např. pokud se bude šifrovat podle řádku 1, pak bude v šifrovém textu B, zatímco podle řádku 6 bude v šifrovém textu G. Aby příjemce byl schopen určit, podle jakého řádku je které písmeno šifrováno, je nutné se s odesílatelem domluvit na předem daném systému používání Vigen rova čtverce. K tomuto může sloužit klíčové slovo. Nechť je takové slovo např. heslo. Odesílatel si napíše nad text, který chce převést do tajného písma, klíčové slovo tolikrát, kolikrát je třeba, aby ji pokryl celou. Pak šifruje jednotlivé písmeno otevřeného textu vždy podle řádku Vigen rova čtverce, který udává písmeno klíčového slova. S použitím klíčového slova heslo je tedy první písmeno šifrováno podle sedmého řádku (jež odpovídá písmeni H), druhé podle čtvrtého (jenž začíná písmenem E) atp. Příjemce při dešifrování zprávy postupuje opačně. Ví, že k zašifrování prvního písmene byl použit řádek začínající na H, druhého řádek začínající na E, třetího S, atd., nemá tedy problém šifru vyluštit. Vigen rova šifra je odolná proti frekvenční analýze, protože každé písmeno může být reprezentováno ne jedním, ale několika jinými. Další její nespornou výhodou je fakt, že klíč není nijak omezen. Vzniká tak velké množství klíčů, které kryptoanalytik při pokusu o rozlomení není schopen vyzkoušet. Vzhledem k tomu, o jak silný šifrovací prostředek se jednalo, je s podivem, že se nerozšířila po celé Evropě. Pravděpodobně pro její složité použití a velkou náchylnost k chybám (pokud odesílatel např. omylem vynechá jedno písmeno, je pro příjemce zbytek zprávy nečitelný) se neujala po následující dvě století. Př.: nerozluštitelná šifra pomocí klíčového slova vigenere se zašifruje následovně: otevřený text: klíč: šifrový text: n e r o z l u s t i t e l n a s i f r a v i g e n e r e v i g e n e r e v i g e I M X S M P L W O Q Z I Y R R W D N X E Vyzkoušejte si šifrování a dešifrování Vigenérovy šifry pomocí jednoduché webové aplikace. a a foltynek/kas/historie/vigenere.php Vigen rovu šifru zlomil až v 19. století Charles Babbage. Tento výstřední britský génius se narodil 26. prosince 1791, zemřel 18. října Jeho okruh zájmů byl velmi široký, mezi jeho vynálezy patří rychloměr, lapač krav jež se připevňoval na přední část parní lokomotivy, aby odehnal dobytek z kolejí. Jako první poukázal na souvislosti mezi letokruhy stromů a jejich stářím, k jeho nejvýznamnějším vynálezům však patří Differece Engine a Analytical Engine, což byl vůbec první návrh programovatelného počítače. O kryptologii se zajímal již od dětství, k rozlomení Vigen rovy šifry byl inspirován na základě korespondence s bristolským zubařem, který roku 1854 prohlásil, že vytvořil zcela novou šifru, která však byla ekvivalentem právě šifry pana Vigen ra. Po tom, co na tuto skutečnost Charles Babbage poukázal, byl vyzván k pokusu o její rozluštění. Babbage výzvu přijal, začal hledat její slabiny

41 Obsah 41 a nakonec uspěl. Nezávisle na Charlesu Babbageovi vyluštil šifru také major pruské armády Fridrich Kasiski, po němž je metoda luštění pojmenována. Rozluštění spočívá v několika krocích. V prvním kroku kryptoanalytik hledá opakující se sekvence, které mohou vzniknout dvěma způsoby. Protože se v otevřeném textu opakují některá slova a klíč bývá zpravidla kratší, než otevřený text, je velmi pravděpodobné, že opakující se sekvence vznikla zašifrováním stejné sekvence písmen v otevřeném textu stejnou částí klíče. Druhý způsob ukazuje na možnost, že různé sekvence v otevřeném textu byly šifrovány podle různých částí klíčů, poskytly však tentýž výsledek. Tento způsob je však málo pravděpodobný. Pokud budeme brát v potaz jen sekvence délky čtyř písmen a delší, pak je pravděpodobnost druhého způsobu mizivá. Pokud si kryptoanalytik vypíše opakující se sekvence, napíše si jejich vzdálenost od sebe a dělitele jejich vzdálenosti, může se pokusit určit délku klíče (označí si jej např. D) jako společného dělitele takovýchto vzdáleností. Jakmile odhadne délku klíče, může se v dalším kroku pokusit určit jeho znění. Text se rozdělí do částí podle délky klíče, kde každé n-té písmeno přiřadí do (n modulo D) části (každou část si označí např. C i, kde i = 1,... D). Jestliže je délka klíč D správně určena, je každá část textu C i šifrována podle stejného řádku Vigen rova čtverce, jedná se tedy o monoalfabetickou substituční šifru, na kterou lze s úspěchem použít běžnou frekvenční analýzu, přičemž ví, že abeceda je pouze posunuta, ne zpřeházena. Stačí tedy určit, o kolik je která část šifrového textu posunuta. Babbage si s šifrou poradil, svůj objev však nepublikoval, vyšel najevo až ve 20. století při průzkumu jeho poznámek. Podívejte se, jak probíhá kryptoanalýza textu zašifrovaného Vigenérovou šifrou bez znalosti klíče. Ukázku najdete na této stránce a, nebo na stránkách Simona Singa b. a foltynek/kas/historie/vigenere2.php b Black Chamber/cracking tool.html Jinou metodu luštění navrhl na počátku 20. století William Frederick Friedmann. Jeho metoda je založena na statistické metodě, tzv. indexu koincidence, který je definován jako pravděpodobnost, že dva náhodně vybrané znaky z řetězce x budou stejné. Analytik tak může vypočítat indexy koincidence pro různé varianty délky klíče a poté vybrat tu délku, jíž příslušný index koincidence se nejvíce blíží hodnotě, která je pro daný jazyk známa. Kryptografie v 19. století Neopomenutelně se do historie kryptografie v 19. století zapsal také Samuel Morse americký vynálezce, malíř a sochař. Původně pro telegraf vynalezl skupinu symbolů, teček a čárek, jež reprezentují písmena abecedy. Morseova abeceda je navržena tak, aby nejfrekventovanější písmena v anglické abecedě zastupovala nejkratší sekvence teček a čárek (např. E je reprezentováno jedinou tečkou, na podobné optimalizaci, kdy nejčastěji používaným znakům je přiřazen nejkratší kód, je založeno také Huffmanovo kódování užívané při bezeztrátové komprimaci dat). Velkou výhodou je variabilní použití (pomocí těchto symbolů se zpráva nemusí pouze psát, k přenosu je možné použít akustický signál, elektrický signál, ale také libovolný optický signál), snadná zapamatovatelnost (k výuce lze uplatnit mnemotechnická pomůcka slova, jejichž počáteční písmeno a délka slabik pomáhá zapamatovat si kód písmene), další výhodou jsou jen dva použité znaky (tři počítá-li se oddělovací) a rychlost přenosu (rychlost předávání zpráv se pohybuje od 60 do 250 znaků za minutu). Sir Charles Wheatstone a baron Lyon Playfair přispěli do kryptologie svojí bigramovou šifrou. Jedná se o šifru, kde nejsou šifrována samostatná písmena, ale jejich dvojice. Ačkoliv tuto šifru vynalezli roku 1854 společně oba Britové, nese název Playfairova šifra. Abeceda se podobně jako u Polybiovy šifry rozdělí do čtverce 5 5. Rozmístit písmena ve čtverci lze 25! způsoby, což poskytuje značnou variabilitu. Při šifrování se zpráva rozdělí na dvojice písmen, přičemž pokud se ve dvojici vyskytnou dvě stejná písmena, vloží se mezi ně předem domluvené písmeno (např. Z, X). Pokud na konci zprávy po této úpravě zůstane liché písmeno, doplníme jej opět stejným pomocným písmenem. Šifrovací pravidla jsou následující: Písmena ve stejném řádku se nahrazují nejbližším písmenem vpravo od každého z nich. Pokud je jedno na konci řádku, nahradí se písmenem ze začátku řádku. Písmena ve stejném sloupci jsou nahrazena nejbližším písmenem pod každým z nich.

42 42 Obsah Písmeno ve sloupci poslední je nahrazeno písmenem z vrcholu. Pokud se písmena nacházejí na různých řádcích nebo v různých sloupcích, nahradí se první písmeno znakem, který je ve stejné řadě jako první písmeno a ve stejném sloupci jako druhý znak. Druhé písmeno se vymění za znak, jenž leží ve čtvrtém rohu obdélníku, jehož rozměry určují předchozí tři písmen. Dešifrování zpráv probíhá obráceně. Od prolomení Vigen rovy polyalfabetické šifry Charlesem Babbagem měli kryptoanalytici převahu nad kryptografy. Pokusy o nalezení dokonalejší šifry většinou krachovaly na frekvenční analýze. Až Joseph Mauborgne, šéf kryptografického výzkumu v americké armádě, po první světové válce přišel s konceptem uplatnit u Vigen rovy šifry náhodný klíč. Při použití náhodného klíče stejně dlouhého jako otevřený text vznikne šifra, u které lze matematicky dokázat její nerozluštitelnost (1940 Claude Shanon). Každý takový klíč se smí použít jen jednou. Zatímco u klíče, který je sice stejně dlouhý jako zpráva, ale není náhodný, lze vzhledem k jeho pravidelnosti (např. opakující se slova v běžném textu) šifru prolomit, u náhodného klíče může kryptoanalytik vyzkoušet všechny možné kombinace, k původnímu znění zprávy se sice dostane, nebude mu to však platné, protože nezjistí, který z daných výsledků to je, jelikož dostane všechny možné kombinace písmen o dané délce textu. Ačkoli je nerozluštitelná, tato šifra se používá jen zřídka. Hlavní problém je generování náhodných klíčů. Utajená komunikace se používá především v armádě a ta si během dne vymění i stovky zpráv, přičemž každá musí používat jiný klíč. S tím souvisí další nevýhoda distribuce těchto klíčů. Je nutné, aby každý ze stovek operátorů pracoval se stejným klíčem. I kdyby každý měl stejnou kopii klíčů, musel by stále sledovat, které již byly použity. Vytvořit skutečně náhodný klíč je velmi nákladné, zajistit neustálý přísun jednorázových knih s klíči téměř nemožné. Touto šifrou je například zabezpečena linka spojující prezidenty Ruska a USA. Enigma Noční můru kryptoanalytiků sestrojil německý vynálezce Arthur Scherbius. Roku 1918 získal patent na šifrovací zařízení o rozměrech pouhých cm, váze 12 kg a s názvem Enigma. Věřil v její nezdolnost a pokoušel se ji nabízet v několika variantách od obchodníků až po ministerstvo zahraničí. Kvůli její ceně však nebyla možnými zákazníky přijata. Scherbius nebyl sám, kdo přišel s myšlenkou šifrovacího stroje, na jedno takové zařízení získal v Nizozemí roku 1919 patent č Alexander Koch, ve Švédsku Arvid Damm, v Americe Edward Herbern, nikdo z nich však neuspěl. Německo si však na začátku 20. století uvědomovalo svou slabinu v utajování zpráv, proto na štěstí pro Scherbia docenilo hodnotu Enigmy a během dvaceti let koupilo přes těchto strojů. Čím byla Enigma tak výjimečná? Přístroj se skládal z klávesnice, šifrovací jednotky, která bude popsána podrobněji, a signální desky, kde byla jednotlivá písmena podsvícená žárovkami, které signalizovaly převedená písmena. Písmeno otevřeného textu (stejně jako při dešifrování šifrový text, díky reflektoru, jež bude zmíněn níže) se napsalo na klávesnici, v šifrovací jednotce bylo zašifrováno (dešifrováno) a na signální desce se rozsvítilo to písmeno v šifrové (otevřené) abecedě, které se zapsalo. Šifrovací jádro bylo tvořeno v prvé řadě scramblery, gumovými kotouči, jimiž vedly dráty. Impuls z klávesnice vstupuje do scrambleru na dvaceti šesti místech (každé písmeno abecedy má tedy svůj jednoznačný vstup), uvnitř se přehýbá a otáčí a na stejném počtu míst opět vystupuje ven. Jakmile impuls vystoupí ze scrambleru, ten se otočí o jednu z dvaceti šesti pozic. Účel takovéhoto kotouče tedy spočívá v převedení

43 Obsah 43 textu na polyalfabetickou substituční šifru s klíčem o 26 znacích. Enigma však obsahovala tři scramblery, kde vždy následující se otočil jednou za 26 otáček předchozího, délka klíče tak vzrostla na Za scramblery byl reflektor, jež posílal signál zpět do scramblerů, z nich pak putuje na signální desku, kde rozsvítí žárovku pod výsledným písmenem. Protože šifrování a dešifrování je v tomto případě zrcadlový jev, reflektor umožňuje za použití jednoho stroje a jednoho nastavení zprávy převádět z otevřeného textu na šifrový i naopak. Poslední částí Enigmy důležitou pro šifrování byla propojovací deska, umístěna mezi klávesnicí a prvním scramblerem. Pomocí kabelu umožňovala propojit dvě písmena klávesnice mezi sebou tak, že první písmeno pak sledovalo cestu, kterou by sledovalo druhé písmeno s ním spojené. Naopak druhé písmeno sledovalo cestu prvního. Propojovací kabely jsou tedy pouhou monoalfabetickou substituční šifrou. Scherbius vybavil Enigmu šesti spojovacími kabely, počet způsobů prohození šesti párů písmen z 26 je obrovský ( ). Aby dvě strany mohly mezi sebou přijímat a vysílat, bylo nutné stanovit základní nastavení Enigmy, jež je klíčem přenosu. Je třeba nastavit tři různé scramblery, jejich polohu i pořadí, dále pak určit, které páry písmen budou propojeny. Možností nastavení je 26 3 za polohu scramblerů, násobenou počtem možných pořadí (tři scramblery, tedy 3!), nakonec ještě způsoby nastavení šesti párů písmen , což je více než možných klíčů.

44 44 Obsah Přesdtože největší vliv na celkový počet klíčů mají kabely na propojovací desce, tyto by samy o sobě nestačily, neboť otočné scramblery, byť nepřináší markantní zvýšení počtu klíčů, vnášejí do šifrování nelinearitu a dělají z Enigmy velmi komplikovanou polyalfabetickou šifru s periodou Jakým způsobem probíhalo ustavení klíče? Němci rozesílali všem svým jednotkám kódové knihy, v nichž byly uvedeny tzv. denní klíče, tedy klíče prro každý den. Denní klíč se skládal z popisu proipojení písmen na propojovací desce a z rozložení a počátečního nastavení scramblerů. Němci však dobře věděli, že není možné používat po celý den stejný klíč, a tak každá zpráva byla šifrována svým vlastním klíčem, tzv. klíčem zprávy. Ten měl stejnou konfiguraci propojovacích kabelů i stejné rozložení scramblerů. Jediné, čím se lišil, bylo jejich počáteční nastavení. Vůči dennímu klíči se tak dal popsat třemi znaky, které kódovaly právě počáteční nastavení tří scramblerů. Když chtěl radista odeslat zprávu, nastavil Enigmu podle denního klíče. Poté odeslal 2x za sebou klíč zprávy, přenastavil scramblery podle klíče zprávy a pak teprve zprávu šifroval. Němci od začátku předpokládali, že spojenci budou mít k dispozici repliku stroje, přesto si však byli jisti bezpečnosti své komunikace. Vidíme zde praktickké uplatnění Kerckhoffsova principu, kdy byla síla šifry založena na utajení klíče, nikoliv na utajení algoritmu, tedy mechanismu šiffrovacího stroje. A skutečně, netrvalo dlouho, a několik strojů se podařilo ukrást. Mezi nejúspěšnější luštitele pařili zpočátku Poláci, kteří si uvědomovali riziko plynoucí ze sousedního Německa. Na polském Byru szifrow tak vznikll tým kryptoanalytiků pod vedením Mariana Rejevského, který měl kryptoanalýzu na starosti. Protože základem kryptoanalýzy je opakování, založil Rejevski luštění právě na tom, že Němci na začátku každé zprávy 2x opakovali klíč zprávy zašifrovaný denním klíčem. Při zachycení velkého počtu zpráv a ze znalosti Enigmy tak bylo možné vytvořit katalog závislostí (ten vznikal celý rok), na základě něhož bylo možné odhalovat denní klíč. K odhalování denního klíče Poláci používali mechanické dešifrátory, kterým se říkalo bomby kvůli charakteristickému tikotu, který vydávaly. Němci v prosinci 1938 zvýšili počet scramblerů ze 3 na 5, což znamenalo, že pro kryptoanalýzu bylo potřeba 10x více bomb. Když pak v lednu 1939 ještě zvýšili počet propojovacích kabelů z 6 na 10, byli Poláci bez informací. Protože tušili, že se je Němcci chystají přepadnout, svěřili se v červnu 1939 spojencům se svými znalostmi a v srpnu téhož roku byly všechny bomby včetně dokumentace převezeny do Anglie. Byl už nejvyšší čas; v září 1939 Němci napadli Polsko. Od té doby dešifrování Enigmy probbíhalo v britském Bletchley parku a hlavní postavou boje proti Enigmě se stal Alan Turing ( ), absolvent King s College v Cambridgi, který se již ve svých 25 letech proslavil knihou O vyčíslitelnosti, která je dodnes základním dílem teoretické informatiky. Je autorem Univerzálního Turingova stroje,

45 Obsah 45 tedy výpočetního modelu, který je ekvivalentem algoritmizovatelnosti daného problému. Turing odhalil slabiny německé komunikace: časté opakování klíčů zpráv, (např. iniciály milenky), nutnost střídání scramblerů či pravidlo, že kabely na propojovací desce nikdy nespojují sousední písmena. Tím se počet klíčů několikanásobně snížil. Odhalení denního klíče i tak zabralo několik hodin času. Panovala však obava, že Němci přestanou klíč zprávy opakovat, což by kryptoanalýzu Enigmy znemožnilo. Turingův tým dostal tedy za úkol připravit se na tuto evntualitu. Vycházel z velkého množství zachycených zpráv a všiml si, že Němci vysílali velké množství zpráv, které měly přesně danou strukturu. Např. okolo šesté hodiny ranní vysílali zprávy o počasí. Sestrojil tedy nový typ bomby, která odhalovala klíč na základě šifrového textu a předpokládaného obsahu zprávy. Když pak Němci skutečně přestalli klíč zprávy opakovat, byli na tuto eventualitu spojenci připravení. Problémem byla námořní Enigma, která namísto pěti scramblerů používala osm, navíc disponovala otočným reflektorem. Na moři tedy spojnecům nezbylo, než krást kódové knihy z unesených či potápějících se lodí. Kód Navahů Zcela originální postup při šifrování během války v Tichomoří zvolili Američané. Hlavní roli v něm sehrál indiánský kmen Navahů, kteří mají velmi neobvyklý jazyk. Slovesa se časují nejen podle podmětu, ale i podle předmětu a navíc používají zcela odlišné výrazy pro věci, které vypravěč viděl na vlastní oči a pro věci, které zná jen z doslechu. Navíc, Navahové nebyli před válkou infiltrování německými studenty lingvistiky. Přenos zpráv probíhal velmi jednoduše. Každá jednotka měla svého Navaha - radistu. Ten převzal zprávu v angličtině, přeložil ji do navažštiny, nešifrovaněě zatelefonoval svému klolegovi u přijímací jednotky, který zprávu přeložil zpět do angličtiny. Japonci byli zcela bezradní a s touto šifrou si nedokázali poradit. Aby vše fungovalo správně, bylo potřeba jazyk trochu upravit. Běžný indiánský kmen totiž ve svém jazyce nemá výrazy pro ponorku či bombardér. Byla proto zavedená kódová kniha, pomocí níž see různé typy letounů nazývali pomocí různých druhů ptáků, plavidlům byly přiřazeny různé druhy ryb, atd. Používání navažského kódu bylo velmi rychlé, efektivní a bezpečné. I když z hlediska Kerckhoffsova principu se jednalo o nevhodný způsob komunikace, během druhé světové války byl úspěšný. Konec mechanické éry Koncem války se do šifrování začaly prosazovat moderní technologie založené na využití elektronických součástek. V roce 1943 byl v britském Bletchley parku sestrojen první počítač Collosus, který měl sloužit právě pro lámání šifer. Z pochopitelných důvvodů britská vláda jeho existenci tajila, a tak byl po několik desetiletí za první počítač považován americký ENIAC sestrojený na University of Pensylvania. S dalším rozvojem techniky se rozvíjela i kryptologie, která musela reagovat na to, že počítače byly schopné zvládat stále větší množství operací za krátký časový úsek. To si vyžádalo nejen nárůst délky klíčů, ale i zcela nové šifrovací algoritmy.

46 46 Obsah Použitá literatura Kahn, D.: The Codebreakers. 1. vydání London: Sphere Books, stran. ISBN Piper, Fred, Murphy, Sean: Kryptografie. 1. vydání Praha: Dokořán, stran. ISBN Singh, S.: Kniha kódů a šifer: tajná komunikace od starého Egypta po kvantovou kryptografii. 1. Vydání Praha: Argo, stran. ISBN Krypta.cz Historie kryptografie I [online] , poslední revize [cit ]. Dostupné z: < Kryptografie - Wikipedie, otevřená encyklopedie [online]. Poslední revize [cit ]. Dostupné z: < Shaman.cz Polybiův čtverec [online] , poslední revize [cit ]. Dostupné z: < Substituční šifry Substituční šifry Monoalfabetické substituční šifry Jeden z prvních popisů substituční šifry se objevuje v Kámasútře ze 4. stol, vychází však z rukopisů o 800 let starších. Autor této knihy přikládá umění psát tajné texty velký význam a doporučuje žanám, aby si ho osvojily tak, aby mohly psát tajné zprávy svým milencům. Princip substitučních šifer spočívá v nahrazení písmen otevřené abecedy písmeny šifrovací abecedy. Přiřadíme-li písmena naprosto náhodně je počet možných uspořádání Pro efektivní šifrování a dešifrování je však potřeba držet se jednoduchého systému, který nám tuto činnost usnadní a zrychlí. Lze například použít klíčové slovo. Pro svou jednoduchost a vysoký stupeň dominovala tato šifra tajné komunikaci po celé první tisíciletí n.\,l. Caesarova šifra: Posunutá abeceda o 3 písmena Přibližně 2000 let starý a pravděpodobně nejznámější šifrovací systém. Autorství je připisováno Juliu Caesarovi, který ji používal jako jednu z mnoha šifer. Princip spočívá v posunutí šifrovaného písmene o tři místa dále v abecedě. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Příklad: veni vidi vici YHQL YLGL YLFL Šifra ATBAŠ Šifrovací systém, který prokazatelně vynalezli a používali hebrejci. Zachovává princip vzájemné záměny písmen. Princip spočívá v tom, že se vezme písmeno, určí se jeho vzdálenost od začátku abecedy a nahradí se písmenem se stejnou vzdáleností od konce abecedy. Druhá možnost je rozdělení abecedy na dvě části s tím, že každé písmeno z první půlky má svou dvojici v duhé půlce a naopak. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Z Y X W V U T S R Q P O N M L K J I H G F E D C B A nebo A B C D E F G H I J K L M

47 Obsah 47 N O P Q R S T U V W X Y Z Příklad: kain a abel byli bratri XNVA N NORY OLYV OENGEV Obecná substituce Jde o velmi starý, dlouhou dobu a v různých modifikacích používaný šifrovací systém. Princip spočívá v nahrazení každého znaku otevřené abecedy jedním znakem šifrové abecedy. Možných variant je Z důvodu nesnadného zapamatování si celé sekvence přiřazení, je vhodné použít pro ustavení šifrové abecedy klíčové slovo. Písmena z tohoto slova jsou na prvních pozicích šifrové abecedy, ostatní znaky jsou pak doplněny zbývajícími písmeny. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z C G F T K M Q I J A U Y O H P R W S L N V X D B Z E Příklad: mundus vult decipi OVHTVL XVYN TKFJRJ nebo s použitím klíčového slova: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z K R Y P T O A B C D E F G H I J L M N Q S U V W X Z Vylepšení substitučních šifer Běžné substituční šifry však mají mnoho slbých míst, které se kryptografové snažili eliminovat použitím dalších technik znesnadňujících rozlomení. Nejčastěji se používalo: speciální symboly pro nahrazení některých slov nomenklátory znaky s klamajícím významem nulový znak, smaž předchozí znak... zkomolení zprávy na základě zvukomalebnosti frikvence slof Nomenklátor Skotské královny Marie Homofonní šifra Používala se jako vhodný kompromis mezi rychlostí šifrování a dešifrování a poskytovaným bezpečím. Odstraňuje hlavní problém monoalfabetických šifer frekvenční charakter. Každé písmeno se zde nahrazuje řadou reprezentací, přičemž jejich počet je úměrný frekvenci písmene. A B C D E

48 48 Obsah Y Z 02 Příklad: a b e c e d a Polygramová substituce nahrazení n-tic otevřeného textu n-ticemi šifrového textu. Playfairova šifra Autorem je Charles Wheatstone, proslavil ji Lyon Playfair. Používaly ji s úspěchem britské jednotky v búrské válce. Jedná se o poměrně jednoduchou avšak bezpečnou šifru. Tato šifra nahrazuje každou dvojici dvojici písmen v otevřeném textu jinou dvojicí písmen. Šifrovací tabulka o rozměru 5*5 se vytvoří na základě dohodnutého klíče. Text se rozdělí na digramy, které se kódují podle speciálních pravidel. C H A R L E S B D F G IJ K M N O P Q T U V W X Y Z Příklad: me et me at ha mx me rs mi th br id ge to ni gh tx GD DO GD RQ AR KY GD HD NK PR DA MS OG UP GK IC QY Šifra Playfair postup 1. Zpráva se rozdělí na digramy, pokud je poslední písmeno liché, doplní se písmenem x. 2. Ve dvojicích stejných písmen je použito nahrazení písmenem x. 3. Písmena ve stejném řádku se nahrazují nejbližším písmenem vpravo od každého z nich. 4. Pokud je jedno na konci řádku, nahradí se písmenem ze začátku řádku. 5. Písmena ve stejném sloupci jsou nahrazena nejbližším písmenem pod každým z nich. 6. Písmeno ve sloupci poslední je nahrazeno písmenem z vrcholu. 7. Pokud nejsou ani na řádku ani ve sloupci, sestaví se z šifrovaných písmen pomyslný čtverec, jehož vrcholy reprezentují novou dvojici. 8. Při dešifrování se postupuje obráceně. Kryptoanalýza monoalfabetických substitučních šifer: Frekvenční analýza Metody kryptoanalýzy Při luštění šifer se používají nejrůznější techniky z různých oborů lidského vědění (lingvistika, statistika, matematika, informatika...). Velmi důležitá je znalost jazyka otevřeného textu a jeho charakteristik. Významné místo mezi kryptoanalytiky mají arabští učenci, kterým se na přelomu prvního tisíciletí podařilo najít způsob snadného rozlomení monoalfabetických šifer za použití frekvenční analýzy. Základní představu o monoalfabetických šifrách získáme pomocí frekvenční analýzy, neaplikujeme ji však slepě. Pokoušíme se odhalit samohlásky (40% textu) obvykle ve slově alespoň jedna, rozvrstveny relativně pravidelně, zřídka vedle sebe. Hledáme častá slova, typické digramy, trigramy. Zkoušíme delfskou metodu hádat celá slova, odhadnout obsah zprávy. Velmi zajímavý popis kryptoanalýzy podává v povídce Zlatý skarabeus E. A. Poe. Další beletristicko-kryptologickou zajímavostí je povídka La Disparition od Georgese Pereca. Povídka má 20 stran a ani na jednom místě se nevyskytuje písmeno e. Frekvence písmen Pro každý jazyk je specifická frekvence jednotlivých písmen. S touto znalostí jazyka lze rozpoznávat konkrétní znaky na základě jejich četnosti i po zašifrování.

49 Obsah 49 Frekvence písmen v textu s mezerami

50 50 Obsah Frekvence písmen v textu bez mezer Další charakteristiky Nejčastější digramy st, ne, se, na, ni, po, pr, ov, ro, je, te, le, ko, od, ra Nejčastější trigramy pro, ost, sta, pri, pre, ter, eni, ova, kte, pra Nejčastější slova a, v, se, na, je, ze, s, o, z, i, do, to, pro, ve, k Nejčastější zač. slov p, s, v, z, n, o Nejčastější kon. slov e, i, a, o, u, y Začátek Konec Samostatné Vazby na Vazby na slova slova slovo souhlásky samohlásky e el, em, en, ne, se, ta, je, le a ak, al, na, ra, ta, la au o ov, po, to ou i li, ni, ic, il u ku ou, au y by, vy Nepřímé útoky Pro kryptoanalýzu jsou důležité nejen exaktní metody, ale i intuice, štěstí a rafinovanost. Úspěšné prolomení šifry ovlivňuje několik faktorů. Čím delší je zachycený text, tím je i vyšší pravděpodobnost objevení závislostí. Na krátkém textu lze těžko použít frekvenční analýzu. Někdy je třeba používat i jiné metody: Uhodnutí obsahu

51 Obsah 51 vojenská korespondence typická oslovení, tituly, místa, pevná struktura zprávy... obchodní korespondence odhadnutí předmětu dopisování (zboží, města, jména obchodních partnerů) osobní korespondence forma oslovení, jméno odesílatele a příjemce Chyby šifrantů Slabým místem šifrovacích systémů je lidský faktor. Typickým příkladem je zaslání stejného obsahu zašifrovaného pomocí různých klíčů. Intriky Omylem vyzrazené komunikační klíče; Předstírání, že nemumím číst cizí šifru, ale přitom ji už dávno čtu; Použití šifry v šifře; Uloupení klíčů; Polyalfabetické substituční šifry Jak víme z předchozího textu, frekvenční analýza jednotlivých znaků či jejich skupin je mocný nástroj, který umožňoval luštit všechy monoalfabetické substituční šifry včetně jejich polygramových variant. Vznikla proto potřeba plynule měnit šifrovou abecedu v průběhu šifrování. Tím jsou charakterizovány polyalfabetické substituční šifry. Tabula recta Tabula recta znamená, volně přeloženo z latiny, pravoúhlou tabulku, která vypadá takto: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Každý znak otevřeného textu šifrujeme tak, že jej vyhledáme v prvním řádku a do šifrového textu pak zapíšeme znak ležící ve stejném sloupci tabulky, ale v tolikátém řádku, kolikáté písmeno šifrujeme. První písmeno tedy zůstane stejné, druhé písmeno bude posunuté o 1 znak, třetí písmeno o 2 znaky, atd. Jakmile vystřídáme všech 26 možných posunutí, začínáme opět od začátku. Tato šifra je však v principu špatná, neboť algoritmus nepočítá s žádnou možností využití šifrovacího klíče. Jakmile útočníkovi bude algoritmus znám, snadno bude moci číst jakoukkoliv komunikaci. Řešení tohoto prroblému přinesla Vigenérova šifra, v níž se posun abecedy neřídí takto jednoduchým pravidlem, ale je závislý právě na použít šifrovacího klíče.

52 52 Obsah Vigenérova šifra Autorem této šifry je Blaise de Vigenére, který ji poprvé vydal ve svém Traktátu o šifrách v roce Šifrování probíhá pomcí opakujícího se klíče, jehož délka je větší než 1. Příklad Vigenérovy šifry: Klíčové slovo Otevřený text Šifrový text WHITEWHITEWHITEWHITEWHI diverttroopstoeastridge ZPDXVPAZHSLZBHIWZBKMZNM Jako šifrovací pomůcka se používá tzv. Vigenérův čtverec, což je útvar stejný, jako tabula recta. V něm se vyznačí řádky začínající písmeny klíče. Při šifrování písmene otevřeného textu se na průsečíku sloupce, jenž má v prvním řádku dané písmeno a příslušného řádku podle aktuální pozice klíče vybere znak šifrového textu. Díky tomu, že se mění znaky klíče, pomocí nichž se šifruje, jsou stejné znaky otevřeného textu šifrovány obecně různými symboly šifrového textu, stejně tak dva stejné znaky šifrového textu vznikly obecně šifrováním různých znaků otevřeného textu. To je důvod, proč se tomuto šifrování říká polyalfabetické. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Tato šifra zůstala nerozlomena po 300 let. O její kryptoanalýzu se zasloužil až Charles Babbage. Kryptoanalýza probíhá ve dvou částech: 1. Určení délky klíče 2. Odhalení klíče Jak známo, opakování je základ kryptoanalýzy. Nejinak je tomu i v případě Vigenérovy šifry. Díky tomu, že v otevřeném textu se některá slova (či jejich části) opakují, je pravděpodobné, že po čase dojde k jejich zašifrování stejnou částí klíče. Proto začneme tím, že v šifrovém textu vyhledáme opakující se sekvence. Například:

53 Obsah 53 KINGKINGKINGKINGKINGKING thesunandthemaninthemoon DPRYEVNTNBUKWIAOXBUKWWBT Je samozřejmě možné že některá z těchto sekvencí vznikla zašifrováním jiného řetězce pomocí jiné části klíče, ale tato varianta je poměrně nepravděpodobná. Určíme tedy společného dělitele vzdáleností opakujících se sekvencí, což je délka klíče, nebo její násobek. Poté přichází na řadu druhý krok, v němž rozdělíme zprávu na části, které byly zašifrovány stejou částí klíče. V uvedeném příkladu by tak první část tvořily znaky zašifrované písmenem K (D, E, N, W, X, W), druhou část znaky zašifrované písmenem I (P, V, B, I, B, W), atd. V praxi smozřejmě nevíme, jakým písmenem byly tyto znaky zašifrovány. To je však velmi snadné zjistit, neboť se jednalo pouze o posunutou abecedu, tedy nejjednodušší monoalfabetickou substituční šifru, která se snadno luští pomocí frekvenční analýzy. Po provedené frekvenční analýzy již známe klíč a můžeme zprávu rozluštit. Autoklíč Vigenérovy šifry Vigenére sám navrhl jiný způsob šifrování, za použití tzv. autoklíče. Ten se však nepoužíval pro svoji přílišnou složitost. Klíčové slovo (délky n) se pooužije pouze pro zašifrování prvních n znaků otevřeného textu, pak se již neopakuje a na místo něj se používá buďto samotná zpráva, nebo šifrový text. I tento způsob je však možné poměrně snadno zlomit. Nedochází sice k žádnému opakování, ale víme, že jeden znak zprávy (nebo šifry) byl použřit pro šifrování znaku o n pozic dále. Stačí tedy uhodnout n (popřípadě vyzkoušet všechny možnosti) a zprávu lze snadno rozluštit včetně počátečního klíče. Zdokonalování Vigenérovy šifry Koncem 19. století panovala mezi kryptografy značná deprese, neboť neexistoval způsob šifrování, který by nebylo možné prolomit. To se podařilo vyřešit až koncem 1. světové války Gilbertu Vernamovi. Do té doby proběhlo několik pokusů o zdokonalení Vigenérovy šifry v naději, že ji nebude možné rozluštit. Všechny však byly zlomeny. Základním problémem bylo opakování. Za předpokladu, že budeme mít text, který je stejně dlouhý jako zprráva samotná (začátek knihy, noviny, text ústavy, atd.), nebude možné určit délku klíče ani text rozdělit na části, v nichž by útočník potom mohl provádět frekvenční analýzu. Tyto naděje se však rychle rozplynuly, neboť jak zpráva, tak klíč, jsou řetězce přirozeného jazyka, který obsahuje mnoho závislostí. Pokud tedy zkoušíme na různá místa předpokládaného otevčřeného textu dosazovat časté trigramy (v angličtině jsou jimi např. the, ing, apod.), získáváme tím části klíče. Ty nám vyjdou buďto nesmyslné, v tom případě jsme se netrefili, anebo nám vyjdou části smyslupných slov, která je možné domyslet. Poté však lze dopočítat další znaky otevřeného textu a ověřit, zda byly doměnky správné. Tím se nám rozšiřuje část otevřeného textu, která je známá, můžeme domýšlet další slova a dopočítávat znaky klíče, potom opět domýšlet klíč a dopočítávat znaky otevřeného textu, až v jednom okamžiku zjistíme, jaký text byl použit jako klíč a je možné přečíst celou zprávu. Vernamova šifra Řešením všech problémů s opakováním i závislostmi v přirozeném jazyce, je Vernamova šifra, označovaná jako jednorázová tabulka (one time pad), u níž je matematicky dokázáno, že je nerozzluštitelná. Jejím autorem je Gilbert Vernam a spatřila světlo světa v roce Důkaz nerozluštitelnosti podal v roce 1940 Claude Shanon. Je založená na tom, že klíčem je sekvence zcela háhodných znaků. Taková sekvence neobsahuje žádné závislosti a není tedy možné se ničeho při kryptoanalýze chytit. Navíc, jakákoliv sekvence znaků je klíčem se stejnou pravděpodobností, tudíž i jakákoliv sekvence znaků je řřešením (otevřeným textem) se stejnou pravděpodobností. Pokud tedy někdo najde klíč a řešení, nemůže si nikdy být jistý, že to, co našel, je skutečně to, co odesilatel zprávy použil. Knihu náhodných písmen však lze použít pouze jednou. Pokud bychom ji použili vícekrát, vznikly by velmi snadno odhalitelné závislosti, které by umožnily kryptoanalýzu obou

54 54 Obsah zpráv podobným způsobem, jako tomu bylo u vylepšní Vigenérovy šifry. Odtud pochází název jednorátzová tabulka (one time pad) a v historii bychom našli několik případů, kdy se opakované použiití jednorrázové tabulky vymstilo. Vernamova šifra má však mnoho problémů. Jak generovat skutečně náhodnou posloupnost znaků? V roce 1944 dokázala americká NSA luštit německé zprávy, neboť Němci používali strojově generované tabulky. Výstup stroje byl však předvídatelný, takže stačilo sestrojit jiný stroj se stejným výstupem a klíč prro kryptoanalýzu byl na světě. Pokud byly tabulky generovány ručně, tj. psali je písaři, opět vznikali určité závislosti (například střídání symbolů z levé a pravé poloviny klávesnice). Dalším problémem je distribuce klíčů, které musejí být bezpečně dopraveny všem jednotkám, navíc musí být zabezpečeno, že když kterákoliv jednotka použije pro šiffrování stránku kódové knihy, musí všechny ostatní jednotky tuto stránku také zničit. To s sebou přináší obrovské logistické náklady, které činí Vernamovu šifru v praxi nepoužitelnou. Použití Vernamovy šifry si mohou dovolit jen někteří. V Bílém domě a v Kremlu má každý z prezidentů speciální krabičku s unikátním krystalem, který generuje náhodnou posloupnost symbolů, pomocí níž je šifrování telefonní spojení mezi oběma prezidenty. Nikdo jiný na světě takovou krabičku nemá, není tedy schopen předpovědět její výstup. Komunikace obou nejmocnějších mužů planety je tak stoprocentně chráněna proti odposlechu. Více se o problematice generování náhodných čísel dozvíme v následující kapitole. Generování náhodných čísel Generování náhodných čísel Generování náhodných čísel představuje z hlediska kryptografie jeden z velmi podstatných problémů. Jak jsme si již řekli, jediný kryptografický algoritmus, jehož bezpečnost (tj. nerozluštitelnost) je matematicky dokázána, je Vernamova jednorázová tabulka. Předpoklad, že symboly v tabulce, které slouží jako klíč, jsou náhodné, je zde přitom velmi důležitý a stojí na něm celý důkaz bezpečnosti šifry. Jak však vygenerovat náhodné znaky do tabulky? Přopomeňme, že vygenerovat náhodné znaky je stejný problém jako vygenerovat náhodná čísla (která lze na znaky převést např. pomocí ASCII tabulky), a to je stejný problém jako generovat náhodnou posloupnost nul a jedniček. Je tedy lhostejné, jak se na problematiku generování díváme, všechny uvedené problémy jsou ekvivalentní a v praxi mají nejčastěji jednu z následujících podob: vybrat z n-prvkové množiny náhodný prvek vygenerovat náhodnou m-znakovou posloupnost nad n-prvkovou abecedou vybrat z množiny všech m-znakových řetězců nad n-prvkovou abecedou jeden náhodný řetězec Na úvod bychom si měli odpovědět na otázku Co to znamená náhodný? Náhodný výběr je takový výběr, kdy pravděpodobnost výběru všech prvků z určené množiny je stejná. Z matematického hlediska je náhodná posloupnost taková posloupnost, u níž neexistuje její kratší vyjádření, než je posloupnost sama. Nelze ji tedy popsat vzorcem a přímo podle definice ji nelze komprimovat (tím bychom našli kratší vyjádření). Důsledkem tedy je, že nemůže existovat deterministický algoritmus generující náhodná čísla. Proto budeme hovořit pouze o pseudonáhodných číslech, tedy o číslech, která pouze vypadají náhodně, ve skutečnosti však náhodná nejsou, neboť jsou generována deterministickým algoritmem. Existuje samozřejmě i možnost generování skutečně náhodných hodnot. Ty však musí být založeny na nějakém nedeterministickém vstupu. Zde se samozřejmě nabízí otázka, kde vzít nedeterministický vstup ve světě, ve kterém platí (deterministické) fyzikální zákony. Tato otázka je však spíše filozofická a pro nás bude dostatečně deterministický takový vstup, u nějž nezle předem s běžně dostupnými prostředky určit, jaké hodnoty bude poskytovat. Jako vstupní zařízení pro TRNGs (True Random Number Generators) se tak používají zařízení měřící atmosférický šum, rozpad radioaktivních částic, fotografie lávových lamp, apod. Bez použití speciálních hardwarových zařízení lze náhodné hodnoty získat s pomocí systémových hodin, ze stisků kláves (nejen ze samotných kláves, ale i z prodlev mezi jednot-

55 Obsah 55 livými stisky), z obsahu vstup/výstupních bufferů, ze zátěže operačního systému, z analýzy síťového provozu, ze zvuku snímaného mikrofonem, z obrazu webkamery, z pohybů myší či z aktuální barvy některého z bodů na monitoru. Takto získané hodnoty slouží většinou jako semínko, tedy základ, z nějž vyroste delší posloupnost pseudonáhodných čísel. U moderních algoritmů je totiž potřeba získat v krátkém čase poměrně velké množství náhodných čísel. Jejich získávání z perriferií počítače by bylo nejen velmi časově náročné, navíc by hrozilo riziko, že data budou málo variabilní. Podívejme se nyní na nejběžnější typy generátorů psenudonáhodných čísel (PRNGs - PseudoRandom Number Generators). Kongruenční generátory Kongruenční generátory jsou výpočetně velmi jednoduché generátory, které generují posloupnost pseudonáhodných čísel s poměrně dobrými statistickými charakteristaikami. Všechny jsou však zlomeny a pro kryptografické účely se nehodí. Nejjednodušší je lineární kongruenční generátor určený rovnicí x n = (a x n 1 + b) mod m, kde a, b, m jsou parametry generátoru a x 0 je semínko. Složitější je kvadratický kongruenční generátor určený rovnicí x n = (a x 2 n 2 + b x n 1 + c) mod m Dalším generátorem je pak kubický kongruenční generátor, atd. Zobecněním získáváme polynomiální kongruenční generátor. Platí věta, že pro zjištění všech parametrů generátoru včetně semínka potřebujeme znát nejvýše 2m prvků posloupnosti. Proto se tyto generátory používají pouze pro simulace, ne pro kryptografii. Lineární zpětnovazební registry Lineární zpětnovazební registry (Linear Feedback Shift Register - LFSRs) představují obecný mechanismus, kterým lze generovat pseudonáhodná čísla s poměrně solidním stupněm bezpečnosti. Skládají se ze dvou částí: Z posuvného registru a ze zpětnovazební funkce. Princip jejich fungování je vidět na následujícím obrázku (Zdroj: Wikipedia): Na počátku je registr naplněn semínkem. Poté v každém kroku nostáváme na výstup nejpravější bit, přičemž všechny bity se posunou o jeden doprava. Nejlevější bit se dopočítá na základě zpětnovazební funkce, což je nejčastěji XOR určitých bitů. Správně navržený LFSR vystřídá všech 2 n možných stavů, než se znovu dostane zpět do počátečního stavu. Výstupem LFSR je tedy posloupnost pseudonáhodnýcb bitů délky 2 n. Protože kryptoanalýza LFSR je poměrně snadná, máme-li k dispozici šifrový text a část otevřeného textu, v kryptografické praxi se používají složitější funkce: Nelineární kombinace určitých bitů (tedy složitější funkce než XOR) Nelineární kombinace výstup dvou nebo více LFSRs Nepravidelné časování Problematika generování náhodných čísel je z hlediska návrhu kryptografického systému velmi důležitá. Velká část současných útoků na kryptografické systémy totiž nemíří proti samotné šifrovací funkci, ale snaží se najít postranní cestičky, kudy se dostat k hodnotám, které sloužily jako vstup šifrovacího algoritmu. Např. Netscape Communicator začátkem devadesátých let při generování klíčů pro SSL používal pouze systémový čas, své PID a PID svého rodiče. Je tedy zřejmé, že kdo měl přístup k těmto údajům, měl poté kontrolu nad celou komunikací, která vypadala, že je zabezpečená. Samotná šifra tedy mohla být jakkoliv silná, stejně to nepomohlo.

56 56 Obsah Pravá náhodná čísla Pro použití v kryptografii, která vyžaduje skutečně vysoký stupeň zabezpečení se nehodí pseudonáhodné generátory, jejichž výstup je vždy předvídatelný. Používají se proto tzv. generátory skutečně náhodných čísel (True Random Number Generators - TRNGs). Vstupem těchto generátorů je vždy signál z nějakého vnějšího hardwarového zařízení, jehož výstup je nepředvídatelný. Může to být měřič atmosférického šumu, detektor radioaktivního rozpadu částic, snímač turbulencí na větráku procesoru, atd. Z jednodušších zařízení lze použít např. mikrofon či webovou kameru. Na internetu je několik serverů, které poskytují výstupy z takovýchto zařízení. Jedná se například o server který poskytuje náhodná čísla generovaná na základě atmosférického šumu, který poskytuje náhodná čísla získaná z radioaktivního rozpadu. Generování na základě fotografií lávových lamp je možné získat z Transpoziční šifry. Superšifrování Transpoziční šifry Transpozicí rozumíme permutaci (přeskládání) symbolů zprávy jiným způsobem. Permutace se používá jako součást moderních algoritmů (DES, AES). Vstupem permutace musí být vždy blok dané délky t. Dlouhé zprávy tedy musí být nejprve rozděleny na bloky délky t. Šifrování pak probíhá v každém bloku zvlášť. Klíčem pro šifrování je permutace přirozených čísel 1..t. Prostor klíčů má tedy velikost t!. Příklad obecné transpozice: T = 6 K = (6,4,1,3,5,2) M = CAESAR C = RSCEAA Jednoduchou transpoziční šifrou je tzv. sloupcová transpozice. Zprávu nejprve vepíšeme do matice po sloupcích, poté čteme matici po řádcích. Na tomto principu pracovala sparrtská skytála. Jednoduchá transpozice s klíčem Nejprve je třeba ustavit klíč. K tomu nám poslouží klíčové slovo, které může být libovolné. Očíslujeme písmena v klíčovém slově podle abecedy: T A J E M S T V I K = Poté napíšeme zprávu po řádcích do tabulky o n sloupcích (n je délka klíče). Tabulku čteme po sloupcích v pořadí daném permutačním klíčem. Na závěr rozdělíme text na pětice (tento krok je kvůli snadnějšímu přenosu telegrafem). Chceme-li šifru zesílit, aplikujeme tentýž postup dvakrát s různě dlouhými klíči. Kryptoanalýza bez použití výpočetní techniky je pak velmi náročná. Tuto metodu používali čeští partyzáni během odboje za druhé světové války. Takto zašifrované zprávy posílali do Londýna. Němci však byli schopní tyto zprávy luštit.

57 Obsah 57 Vlastnosti transpozice Složení dvou permutací je opět permutace. Lze ji tedy nahradit jedinou (byť složitější) permutací. Transpozice ruší závislosti mezi znaky (digramy, trigramy, atd.) Transpozice zachovává frekvenci výskytu jenotlivých znaků Transpozice je vhodná ke kombinaci s jinými metodami Superšifrování Pod pojmem superšifrování se rozumí skládání více různých šifer. Na výstup jednoho šifrovacího algoritmu aplikujeme jiný šifrovací algorritmus a příjemci pošleme až jeho výsledek. Tedy: C = E 2(K 2, E 1(K 1, M)) Příjemce pak musí aplikovat dešifrovací algoritmy v opačném pořadí: M = D 1(K 1, D 2(K 2, C)) Typické je skládání substituce a transpozice, nebo skládání transpozice a nelineární aritmetické funkce. Moderní šifrovací algoritmy skládají substituci a transpozici v mnoha iteracích. Odvodit z šifrového textu klíč či původní zprávu je tak (s dnešními znalostmi) prakticky nemožné. Nepřítelem superšifrování je tzv. involuce. Involuce je zobrazení, jehož složením se sebou samým získáváme identitu. Platí pro něj tedy, že f(f(x)) = x. Příkladem involuce je šifra ROT13, která řetězec AHOJ šifruje jako NUBW. Opětovným použitím ROT13 na řetězec NUBW získáme opět text AHOJ. Dalšími příklady jsou XOR n či libovolná symetrická permutace. Involuce je důležitý prvek symetrické kryptografie, je však nepřítelem superšifrování. Druhá šifra může místo posílení účinku první šifry, tento účinek naopak zničit. Například v době, kdy se ukázalo, že šifra DES již nepředstavuje dostatečné zabezpečení, uvažovalo se o nasazení 2DES. Jak se ale včas ukázalo, použitím pouze dvou průchodů šifrovacím algoritmem by vznikly nebezpečné závislosti, které by značně usnaddnily kryptoanalýzu. Proto se začal používat 3DES, který tytoo závislosti zase odstraňuje. Symetrická kryptografie Symetrická kryptografie Symetrické šifrování znamená, že zpráva šifrovaná vybraným klíčem je dešifrovatelná týmž klíčem v přeměnu zpět na prostý text. V souvislosti se symetrickým šifrováním bude často zmiňován pojem bloková šifra. Text šifer s tímto označením je před vstupem do šifrovacího procesu rozdělen do stejně dlouhých částí (bloky) pro účely snazší aplikace klíče i celého šifrového algoritmu. Historické souvislosti Za dob světových válek bylo šifrování informací velice hojně praktikováno. Zejména ve Druhé světové válce hrálo šifrování a dešifrování zpráv významnou roli. Dalo vzniknout prvním počítačům, které byly konstruovány ve snaze dešifrovat nejslavnější šifrovací stroj ENIGMA pracující na symetrickém principu. Jakmile ustala vřava zbraní, lidé západního světa neupadli do poválečné deprese, ale s novou vitalitou soustředili veškerou svou sílu do podnikatelských aktivit. Byly budovány nové fabriky, rekonstruovaly se budovy pro účely státního či soukromého podnikání. Zdálo by se, že kryptografie bude zase na nějakou dobou neupotřebitelná. Opak byl pravdou.

58 58 Obsah Tajné válečné informace pulsující mezi armádními jednotkami svádějící urputné boje pomáhaly vyhrávat celé bitvy. Nyní mají informace svou nedocenitelnou hodnotu v podnikatelské sféře, kde svádí podniky boje mezi sebou. Během 60. let rostl počítačový výkon a s ním i počet firem, které si nové cenově dostupnější počítače nakupovali. Firmy je začali mimo jiné využívat i k šifrování důležité komunikace. Firmy sice mohli šifrovat informace různým způsobem, horší ale bylo, když si takto zašifrované informace potřebovali mezi sebou vyměnit. To bylo prakticky nemožné, leda by všechny firmy používaly stejný šifrovací systém. Tak vyvstal problém standardizace. DES (Data Encryption Standard) Jedná se o počítačový šifrovací algoritmus, který byl přijat jako standard pro citlivé informace americkým standardizačním úřadem roku DES splňoval požadavky tehdejší NBS (National Bureau of Standards, od roku 1988 NIST - National Institute of Standards and Technology), což je americký (USA) standard pro hodnocení bezpečnosti kryptografických modulů a byl 15. ledna 1977 publikován jako FIPS PUB 46 pro volné užití. Později (1983) byl znovu potvrzen jako FIPS PUB 46-1, v roce 1988 přijat pod označením FIPS PUB 46-2 a v roce 1999 FIPS PUB (FIPS - Federal Information Processing Standards Publication). Standard DES je celosvětově nejproslulejším algoritmem, který se udržel na výsluní několik dekád a proto stojí za to povědět si o něm co nejvíce. Vlastnosti Prvně bychom si neměli plést pojmy DES a DEA. Název DES jako takový totiž označuje pojmenování standardu, kdežto DEA (Data Encryption Algorithm) je ekvivalentem pro samotný algoritmus, který tento standard určuje. V běžné terminologii kryptologie se však pod pojmem DES rozumí zároveň jak standard, tak i jeho určující algoritmus. DES patří do skupiny blokových šifer. Blokové šifrování na rozdíl od proudového, které šifruje data pomocí klíče bit po bitu, rozdělí tok bitů prostého textu na bloky o stejné velikosti (v případě DES na 64 bitů) a šifruje každý blok pomocí klíče zvlášť. Tato vlastnost a relativně nenáročný algoritmus určují ještě jednu význačnou charakteristiku, a tou je rychlost a implementační nenáročnost. Díky těmto vlastnostem se DES ještě dnes těší stále velké oblibě. Zmíněný algoritmus je na internetu dostupný hned v několika programovacích jazycích a kdokoliv znalý programování si může zdrojový kód prostudovat, popřípadě si jej sám naprogramovat. Jak DES přišel na svět NBS začal problém standardizace řešit a od 15. května 1973 požádal o návrhy pro první šifrovací standard. Koncem 60. let se otázkou počítačové kryptografie zabýval jistý Horst Feistel a začátkem 70. let pod záštitou IBM vyvinul šifru zvanou Lucifer. Lucifer se stal hlavním kandidátem NBS. Jediný problém spočíval v maximální možné délce klíče. NSA (National Security Agency) Národní bezpečnostní agentura USA byla ochotna povolit přijetí šifry za standard pod podmínkou omezení délky klíče na 64 bitů (resp. 56b viz níže). Takto zašifrovaná zpráva by byla sice pro běžného uživatele zcela jistě nerozluštitelná ale pro NSA s nejvýkonnější technikou nesnadno, ale přece jen rozlomitelná. Tak byla šifra Lucifer 23. listopadu 1976 přijata za standard známý pod zkratkou DES. Standard DES vydržel poměrně dlouho. Teprve v roce 2002 byl přijat nový standard zvaný AES (Advanced Encryption Standard), který DES nahradil. V průběhu let se ze standardu DES vytvořil minoritní Triple DES označovaný též TDES (popř. 3DES), který šifruje data pomocí DES trojnásob. Současné postavení DES Nástup nových standardů neznamená definitivní ústup DES do kryptografického podsvětí. Dodnes je nemálo populární a pro utajování méně citlivých zpráv stále využívaný. Je to hlavně z toho důvodu, že je dosti uživatelsky přátelský zejména pro svoji rychlost. Je nutné ale přiznat, že jeho důvěra byla nevratně podlomena. Tato událost je spojena s koncem 90. let, kdy byl sestrojen dešifrovací stroj DES-Cracker (1998) pracující hrubou silou tzn. testování a hledání všech možných klíčů, kterých je zhruba 72 kvadrilionů. Mezi

59 Obsah 59 další akce vedoucí k podlomení důvěry DES se řadí i několik soutěží vyhlášených subjektem RSA Security k rozluštění soutěžní zprávy zašifrované DES algoritmem. V první soutěži v devadesátém sedmém DESCHALL Projekt (sdružení počítačových nadšenců) prolomil DES za 96 dní. Další soutěž nazvaná DES Challenge II-1 proběhla v roce 1998, kdy došlo k rozluštění zprávy prostřednictvím počítačů v síti Internet sdružených organizací d i t s t r i b u t e d. n e t za 41 dní. Další soutěž v pořadí zvítězil právě DES-Cracker sestrojený za necelých $ , který byl s to rozlousknout tajnou zprávu za necelých 56 hodin. V poslední výzvě si ditstributed.net připsal $ odměny, kdy se mu za významné spolupráce s DES-Crackerem, podařilo rozluštit zprávu za méně než 23 hodin. To se stalo v roce 1999, kdy byl DES po čtvrté a naposledy přijat jako federální standard (viz. nahoře), ale s doporučením používat jeho vylepšenou verzi 3DES. DES algoritmus Šifrovací algoritmus je opakující se proces jednoduchých matematických operací v 16 kolech (tzv. rundy). Jsou prováděny především permutace, popřípadě substituce za použití různých pomocných tabulek. To vše se děje v kombinaci vygenerovaných sub-klíčů, které se sčítají s upraveným blokem bitů logickou operací XOR (ve schématu značeno + v kolečku).

60 60 Obsah Celý proces začíná převodem zprávy M z desítkové soustavy do dvojkové na posloupnost bitů P. Poté následuje tvorba sub-klíčů. Nejprve si vygenerujeme netriviální klíč K o délce 64b. Následně projde permutační tabulkou značenou PC-1: To znamená, že 57. bit z původního klíče jde na 1. pozici nového klíče, 49. bit jde na 2. pozici atd., až se 4. bit z klíče usadí na poslední pozici nového klíče. Tímto postupem nám vznikne nový klíč K+ o délce 56b, protože každý 8. bit původního klíče je použit pro kontrolu parity (násobky 8 jsou v tabulce vynechány). Nyní je klíč K+ rozdělen na dvě poloviny (2 28b). Levá se označí C0 a pravá D0. Např.: C0 = D0 = Máme základ pro tvorbu 16 sub-klíčů. Ty se vygenerují jednoduše pomocí posuvné tabulky, kdy se bity z C i D i posunou směrem doleva o 1 až 2 pozice dle tabulky oproti předešlým Ci - 1 a Di - 1. číslo kroku posun do leva o Nyní se jednotlivé C n, D n spojí a projdou finální kompresní permutační tabulkou, která použije pouze 48b z každého řetězce CD. PC-2: Všech 16 sub-klíčů je hotových. Dále jednotlivé bloky zprávy M projdou tzv. IP (Initial Permutation) tabulkou. Nejedná se o nic jiného než nám již známá permutační tabulka, tentokrát již bez kompresních účinků. Tabulka IP má tento tvar: Permutované bloky se dělí na půl bloky po 32b a označí se jako levý L 0 a pravý P 0. Průchod skrz IP permutační tabulku nemá na sílu algoritmu vůbec žádný vliv. Zpráva přes ni prochází v počátku, aby jí prošla nanovo v závěru šifrování v podobě její převrácené hodnoty IP-1. To vše se děje proto, aby bylo zaručeno možné zpětné symetrické dešifrování. Jako další se provádí postupně 16 kroků, ve kterých je prováděna funkce f nad 48b sub-klíčem a 32b blokem dat. Funkce f je definována jako f (Rn-1,Kn). Pro n 1 až 16 pak máme vztah: Ln = Rn-1 Rn = Ln-1 + f (Rn-1,Kn) Kde + značí operaci XOR (bit plus bit modulo 2) V každém následném kroku se tedy pravá strana předešlého kroku chápe jako nová levá strana následného kroku a původní leva strana sečtená s funkcí f se bere jako pravá strana následného kroku.

61 Obsah 61 Abychom mohli provést funkci f, potřebujeme rozšířit každý blok Rn-1 z 32 na 48b (z důvodu délky sub-klíče: 48b). Toho se docílí za pomoci výběrové tabulky která vezme některé bity z Rn-1 vícekrát. Použití výběrové tabulky nazýváme funkcí E. Odsud E(Rn-1) E BIT VÝBĚROVÁ (SELEKTIVNÍ) TABULKA: Takto upravený půlblok se sečte XOR operací s připraveným sub-klíčem a vznikne nový blok o délce 48b. Aby takovýto blok byl použitelný pro další kroky v algoritmu, je potřeba ze 48b opět vyzískat pouze 32b dlouhý blok. Pro tento účel rozdělíme 48b do 8 skupin po 6b a každý takovýto 6b prvek použijeme jako adresu do tabulky zvané S-box. Na 8 skupin 6b prvků máme k dispozici 8 S-boxů. Lokací každé adresy je 4-bitové číslo. Takže z původních 6-ti bitů dostaneme potřebné 4b. Schéma S-boxů ukazuje následující obrázek:

62 62 Obsah Nazveme-li 6b prvek B a funkci S-boxu S, můžeme psát Si(Bi) pro i <1..8> Z 6-ti bitového prvku vezmeme první a poslední bit. Takovéto dva bity reprezentují v desítkové soustavě rozsah čísel <0..3>, binárně <00..11> označíme i. Prostřední 4 bity, které jsou v rozsahu < >, desítkově <0..15> označíme j. Výsledné políčko, které najdeme na adrese [i,j] je naše nové 4 bitové číslo. Ukázka jednoho z osmi S-boxů: S5 Vnitřní 4 bity z 6-ti bitového prvku Vnější bity Nově vzniklá 4b čísla sloučíme a dokončíme funkci f tím, že sloučené bity projdou permutací P. Můžeme psát: f = P(S1(B1)S2(B2)...S8(B8)). P má následující tvar To se děje pro všech 16 rund. Na závěr prohodíme L16 a R16 a jsme téměř u konce. Zbývá už jen aplikovat závěrečnou IP-1. IP-1 má tvar:

63 Obsah Ukázku Java aplikace názorně prezentující šifrování a dešifrování pomocí algoritmu DES naleznete zde a. a foltynek/kas/symetricka/desalg.jar Módy DES DES algoritmus převádí 64-bitové bloky zprávy M na zašifrované 64-bitové bloky C. Jestliže se šifruje každý blok zvlášť (separátně), pak se takovéto šifrování nazývá ECB (Electronic Code Book). FIPS PUB 81 popisuje kromě ECB ještě další tři módy CBC (Chain Block Coding), CFB (Cipher Feedback), které vytváří závislosti mezi předchozím a následným blokem dat M skrz XOR sčítání. Poslední mód je OFB (Output Feedback). [3] Bezpečnost algoritmu Feistlův šifrovací algoritmus, co by standard DES zajišťoval bezpečnost šifrovaných dat přesně čtvrt století. Algoritmus sám o sobě nebyl nikdy prolomen. Vedou se ale dohady, že NSA, která soustředí americkou špičku analytiků, matematiků, lingvistů a jiných vědců, mohla algoritmus nabourat diferenciální, nebo lineární kryptoanalýzou. Ať tak či tak, jisté je, že DES může být rozluštěn hrubou silou a to s dnešními super moderními počítači dokonce do několika desítek minut. Slabinou algoritmu je viditelně délka klíče. Nastal čas potrápit analytiky NSA a délku klíče navýšit. AES (Advanced Encryption Standard) AES, v překladu pokročilý šifrovací standard, nahrazuje DES, který byl jeho předchůdcem od roku Novou šifru schválil americký Národní úřad pro standardizaci (NIST) v publikaci FIPS PUB 197 jako federální standard USA s účinností od [4] Vlastnosti AES je bloková šifra s blokem o délce 128 bitů. Do značné míry vychází z principů užitých v DES, což je jedním z pilířů nastupujícího standardu. Je to z toho důvodu, že algoritmus DES jako takový nebyl dodnes nabourán. S-boxy, které byly stěžejní částí DES algoritmu se stávají důležitou součástí standardu AES. Druhým pilířem je délka klíče, která může nabývat hodnot 128, 192 nebo 256 bitů. Historie Poté, co byl DES rozlomen hrubou silou se vedly diskuse o jeho nástupci. V lednu 1997 NIST vyslovila přání ustanovit jiný algoritmus co by nový standard. Ohlasy veřejnosti na tento podnět byly velké a během následujících tří měsíců obdržel NIST spousty návrhů, jak by měla šifra pro třetí tisíciletí vypadat. Národní úřad pro standardizaci zareagoval vyhlášením soutěže na nový algoritmus ještě v září téhož roku. Ten měl podporovat bloky o velikosti 128b a klíč o velikostech 128, 192 a 256 bitů. Po následujících 9 měsíců se podařilo nashromáždit 15 kandidátů z různých zemí. Algoritmy byly testovány a diskutovány zejména z hlediska jejich bezpečnosti, rychlosti a implementační náročnosti. Proběhly dvě konference zvané AES1 a AES2 aby zvážily všechna pro a proti. V konferenci AES2 probíhající od září 99 bylo vybráno 5 favoritů z původních 15 kandidátů. Členové konference pak volili vítěze, kterým se stal algoritmus zvaný Rijndael (čti [reindal]) s 86 hlasy pro a 10 hlasy proti. Další v pořadí byly Serpent, Twofish, RC6 a poslední MARS. NIST v říjnu roku 2000 označila Rijndael jako nejvhodnější algoritmus pro standard označovaný jako AES a schválil jej v listopadu 2001 v publikaci FIPS PUB 197. [5]

64 64 Obsah Po pětiletém standardizačním procesu jsme se konečně dočkali nového standardu AES zásluhou belgických kryptografů Johana Daemena a Vincenta Rijmena, kteří algoritmus Rijndeal (označení je složeninou jejich jmen) vyvinuli. Odkazy na další zdroje DES (Wikipedia): Encryption Standard AES (Wikipedia): Encryption Standard Animace průběhu AES: ingles2 Komix o AES: Asymetrická kryptografie Asymetrická kryptografie Problém výměny klíčů mezi odesílatelem a příjemcem zprávy trápil kryptografy po několik století. Spočívá ve výměně tajné informace (šifrovacího klíče) tak, aby ji nikdo třetí nebyl schopen odposlechnout. Pro distribuci klíčů se využívaly služby kurýrů. Jejich použití je však na válečném poli problematické. Neřešitelnou situace začínala být v případě elektronické komunikace a elektronického obchodování. V 60. letech, kdy se v USA začala rozvíjet elektronická komunikace, narážel systém symetrického šifrování na obrovské logistické problémy. Každý den se na cestu vydávali kurýři s kufříky, ve kterých měli komunikační klíče pro daný den. Týkalo se to bank, státní institucí i armády. Situaci příliš neřešil ani systém Diffie-Hellman-Merkle. Zdálo se, že probém je neřešitelný. V roce 1975 však načrtl Whitfield Diffie myšlenku asymetrické kryptografie. Jde o skupinu kryptografických metod, ve kterých se pro šifrování a dešifrování používají odlišné klíče. Základem jsou jednosměrné funkce, které umožní původní zprávu zašifrovat pomocí veřejného klíče, ale již nikoliv dešifrovat za pomocí téhož klíče. Pro dešifrování zpráv se použije klíč soukromý, který má uschovaný příjemce zprávy. Každý, kdo chce šifrovat zprávy s použitím asymetrických metod, si vytvoří pár klíčů (soukromý a veřejný). Veřejný klíč distribuuje po mezi všechny osoby, se kterými chce komunikovat a klíč soukromý si uchová u sebe v tajnosti. Dvě komunikující strany se pak vůbec nemusí setkat a přesto mají k dispozici nástroj pro bezpečnou komunikaci. Analogie se zámky Alice navrhne zámek a jeho kopie distribuuje po celém světě, klíč si ponechá. Bob uloží tajnou zprávu do krabice, na které zaklapne Alicin zámek, a pošle ji zpět Alici poštou. Alice si vyzvedne krabici a odemkne ji svým klíčem. Základní principy Šifrovací klíč sestává ze dvou částí: Veřejný klíč používá se pro zašifrování zprávy, je veřejně dostupný. Soukromý klíč používá se pro dešifrování zprávy, je vlastníkem pečlivě uschován. Tím je vyřešen základní problém distribuce klíčů, není třeba sdílet žádné veřejné tajemství a komunikace může probíhat asynchronně. Používá se nejen pro šifrování zpráv, ale i pro jejich podepisování (ověření původu). Asymetrická kryptografie je založena na jednocestných funkcích, které jsou snadno proveditelné jedním směrem, ale obtížně invertovatelné. Například spočítat součin 5*3 je jednoduché, ale z čísla 15 učit původní činitele zabere více času. Pokud pracujeme s mnohem většími čísly, jednocestné funkce v podstatě znemožňují odhalení původních hodnot v požadovaném čase.. Princip spočívá tedy nespočívá v nerozluštitelnosti, nýbž ve velké čásové náročnosti. RSA Rivest, Shamir, Adelman V podstatě první použitelná asymetrická metoda. Založena na myšlence publikované W. Diffiem. Vznik roku 1977, dva roky po uveřejnění základního principu. Tvůrci výzkumníci

65 Obsah 65 laboratoře počítačových věd MIT. Algoritmus byl v USA v roce 1983 patentován jako patent č Patent vypršel Rivest, Shamir, Adelman Tvorba klíčového páru Zvolí se dvě velká náhodná prvočísla p, q. Určí se jejich součin n = p q Spočítá se hodnota Eulerovy funkce ϕ(n) = (p 1)(q 1) Zvolí se číslo e (max{p + 1, q + 1}; ϕ(n)), které je s ϕ(n) nesoudělné. Nalezne se číslo d aby platilo: d e 1 (mod ϕ(n)) Pokud d vyjde příliš malé (tedy menší než asi log 2 (n)), zvolíme jinou dvojici e a d. Veřejným klíčem je pak dvojice (n,e), kde n je modul a e je šifrovací exponent Soukromým klíčem je dvojice (n, d), kde d se označuje jako dešifrovací či soukromý exponent. V praxi se klíče uchovávají v mírně upravené formě, která umožňují rychlejší zpracování. Šifrování zprávy Bob nyní chce Alici zaslat zprávu M. Zpráva je převedena na číslo m. Šifrovým textem odpovídajícím této zprávě pak je číslo c = m e (mod n) Tento šifrový text poté zašle nezabezpečeným kanálem Alici. Dešifrování zprávy Alice od Boba získá šifrový text c. Původní zprávu m získá následujícím výpočtem: m = c d (mod n) Tento šifrový text poté zašle nezabezpečeným kanálem Alici. Důkaz možnosti dešifrování Vycházíme z následujících předpokladů definovaných Eulerem: i φ(n) mod n = 1 M ed mod n = M Čísla i a n jsou nesoudělné, M a n jsou nesoudělné. f 1 : M e mod n = C f 2 : C d mod n = M f 2(f 1(M)) = f 2(M e mod n) = (M e mod n) d mod n = M ed mod n = M k ϕ(n)+1 mod n = M M k ϕ(n) mod n = M 1 mod n = M Příklad p = 61 (první prvočíslo)

66 66 Obsah q = 53 (druhé prvočíslo) n = p q = 3233 (modul, veřejný) e = 17 (veřejný, šifrovací exponent) d = 2753 (soukromý, dešifrovací exponent) Pro zašifrování zprávy 123 probíhá výpočet: šifruj(123) = (mod 3233) = 855 Pro dešifrování pak: dešifruj(855) = (mod 3233) = 123 Bezpečnost RSA Zabezpečení algoritmu RSA závisí na následujících faktorech: Zabezpečení toho, že čísla p a q zůstanou utajena. Pokud tato čísla odhalíme, je odvození dešifrovacího klíče d$ ze šifrovacího klíče e triviální záležitost. Obtížnost rozkladu součinu n na prvočísla. V případě, že bychom mohli rozložit číslo n, můžeme získat čísla p a q a tím i dešifrovací klíč. Na nedostatku jiných algebraických technik pro odvození dešifrovacího klíče d ze šifrovacího klíče e a čísla n. RSA je bezpečný jestliže n je dostatečně velké. Jestliže n je 256 bitů nebo kratší, může být za pár hodin faktorizován na osobním počítači, za použití volně dostupného software. Jestliže n je 512 bitů nebo kratší, může být faktorizován několika sty počítačů. Běžně se používá klíč o délce bitů. V roce 1977 uveřejnil Martin Gardner v časopise Scientific American článek o RSA, který obsahoval zprávu zašifrovanou touto metodou. V roce 1994 byla tato zpráva dešifrována spojeným úsilím více než 1600 stanic z celého světa. RSA-129 byla prolomena. Rychlost Asymetrická kryptografie je o hodně pomalejší než symetrická. V praxi se typicky zašifruje tajná zpráva symetrickým algoritmem, šifrování a následně se přenese symetrický klíč i symetricky šifrovaná zpráva příjemci. Tento způsob šifrování se označuje jako hybridní. Útoky na RSA Narušení bezpečnosti lze realizovat různými technikami: Útok na rozklad pokusit se faktorizovat číslo $n$. Útok na prvočísla pokusit se napodobit chod generátoru prvočísel. Útok matematickou teorií objevit nové principy matematiky, které by odhalily zásadní trhliny v RSA nebo objevit ultrarychlý způsob rozkladu velkých čísel. Alternativní historie AK Podle informací britské vlády byla asymetrická kryptografie objevena v britské tajné instituci GCHQ. Práce na této technologii zahájil v roce 1965 James Ellis, který načrtl základní principy. Roku 1973 nový pracovník,clifford Cocks, navrhl reálný systém AK. Z důvodů utajení nebyl tento objev veřejně publikován a byl odhalen až několik let po uvedení RSA. PGP Pretty Good Privacy V době uvedení RSA na trh nebyl pro běžné uživatele k dispozici výpočetní výkon dostačující k běžnému použití asymetrické kryptografie. Phil Zimmerman (USA) se rozhodl umožnit použití bezpečné kryptografie širokým masám lidí po celém světě. Navrhl jednoduchý systém sestávající z již objevených konceptů. Systém PGP (Pretty Good Privacy) založil na hybridním šifrování pomocí RSA a IDEA. Vlastní zpráva se šifruje symetrickým klíčem, který je pak zašifrován asymetricky a připojen k vlastní zprávě. První verze PGP byla umístěna na veřejnou síť Usenet v roce Umožňuje i laikům velmi jednoduchým způsobem používat silné a bezpečné šifrování a podepisování zpráv. Hybridní šifrování velmi zrychluje proces šifrování a dešifrování. Později bylo PGP standardizováno. V dnešní době existují nekomerční verze (OpenPGP, GnuPG...)

67 Obsah 67 Soukromí pro všechny? Za svou činnost se Phil Zimmerman stal v USA podezřelým z nelegálního vývozu zbraní a byl v souvislosti s tím vyšetřován. Podle amerických zákonů platných v 90. letech nemělo být umožněno okolním státům používat metody silného šifrování. Diskutovala se otázka, zda je přípustné aby k těmto moderním technologiím měl přístup opravdu každý. Vlády všech zemí (USA nevyjímaje) prosazují politiku Velkého bratra pro kontrolu komunikace obyvatel z důvodu zajištění jejich bezpečnosti. Digitální podpis Digitální podpisy Na úvod připomeňme základní princip, kterým se řídí asymetrická kryptografie. Ta používá vždy pár klíčů - veřejný klíč a soukromý klíč. Díky matematickému vztahu těchto klíčů platí, že zprávu zašifrovanou tajným klíčem můžeme rozšifrovat pouze příslušným veřejným klíčem. A naopak, zprávu zašifrovanou veřejným klíčem můžeme rozšifrovat pouze příslušným tajným klíčem. Pokud tedy Alice chce poslat Bobovi tajnou zprávu, použije k šifrování Bobův veřejný klíč. Ten je všeobecně dostupný a každý tak Bobovi může posílat tajné zprávy. Pouze Bob však může tyto zprávy číst, protože pouze on má k dispozici příslušný tajný klíč. Nikdo jiný se k tomuto klíči nedostane a tudíž Bobovy zprávy číst nemůže. Opačný postup se používá, pokud Alice chce zprávu digitáln podepsat a stvrdit tak její pravost. V tom případě použije k šifrování svůj tajný klíč. Ten nikdo jiný nemá a pouze Alice tak může daný kryptogram vytvořit. Dešifrováním zprávy pomocí Alicina veřejného klíče si pak každý může ověřit, že zpráva byla zašfrována skutečně Aliciným tajným klíčem a tudíž že autorem kryptogramu je skutečně Alice. Podepisovací schémata Obvykle požadujeme obojí. Jak utajení obsahu komunikace, tak digitální podpis. V tom případě se nabízí schéma uvedené na následujícím obrázku (zdroj:

68 68 Obsah Chce-li Alice poslat Bobovi šifrovanou a podpsanou zprávu, nejprve ji zašifruje svým privátním klíčem. Výsledkem je tedy podepsaná zpráva, kterou ale může každý dešifrovat. Proto ji poté zašifruje veřejným klíčem Boba, aby ji mohl dešifrovat pouze Bob a nikdo jiný. Takto podepsaná šifrovaná zpráva putuje přes nezabezpečený komunikační kanál k Bobovi, který ji nejprve dešifruje svým tajným klíčem. Výsledkem je Alicí podepsaná zpráva, kterou dešifruje Aliciným veřejným klíčem a získá původní zprávu. Díky dvojímu šifrování si Bob může být jistý jednak tím, že Alice je autorkou zprávy a také tím, že obsah zprávy nemohl nikdo přečíst. Asymetrické šifrovací algoritmy mají však jednu podstatnou nevýhodu - jsou pomalé a tudíž se nehodí pro šifrování dlouhých zpráv. Ukážeme si tedy, jak předejít šifrování celé zprávy při realizaci digitálního podpisu. Ze zprávy se nejprve vypočítá tzv otisk - hash (více viz kapitola Hashovací funkce), což je ve srovnání ze zprávou krátký řetězec, který je závislý na všech bitech zprávy (i nepatrná změna zprávy by výtazně změnila hodnout hashe). Privátním klíčem odesilatele pak zašifrujeme pouze tento krátný hash, čímž ušetříme výpočetní výkon jak na straně odesilatele, tak na straně příjemce, jak ukazuje následující obrázek (zdroj:

69 Obsah 69 Alice vypočítá hash své zprávy, kterou zašifruje svým tajným klíčem. Tím vznikne digitální podpis. Poté zašifruje zprávu samotnou Bobovým veřejným klíčem a digitální podpis k ní připojí. Výsledek je nečitelný pro každého kromě Boba a může tak putovat pouze přes nezabezpečený kanál. Kdokoliv může sice dešifrovat digitální podpis, získá však pouze hash zprávy, nikoliv zprávu samotnou. Bob dešifruje zprávu svým tajným klíčem. Její pravost poté ověří tak, že vypočítá její hash a porovná jej s hodnotou získanou dešifrováním digitálního podpisu Aliciným veřejným klíčem. Pokud se hashe rovnají, je si Bob jistý, že Alice zprávu podepsala. Techniku využívající hashovací algoritmus můžeme použít pro digitální podpis, nikoliv pro šifrování samotné. Bob jako příjemce totiž musí získat celou zprávu, nikoliv jen její hash. Pokud se tedy chceme zbavit šifrování celé zprávy pomocí pomalé asymetrické šifry, je třeba ji nahradit rychlejší šifrou symetrickou a pomocí asymetrické šifry přenést pouze klíč pro symetrické šifrování. Tento postup se v praxi skutečně používá, jak je uvedeno na následujícím obrázku (zdroj:

70 70 Obsah Alice vygeneruje klíč pro symetrickou šifru (např. IDEA). Tento klíč zašifruje Bobovým veřejným klíčem, aby se k němu nikdo jiný nedostal. Zprávu zašifruje pomocí symetrické šifry. Dále zprávu digitálně podepíše, tedy vypočte její hash, který zašifruje svým privátním klíčem. Výsledná zpráva má tedy tři části: Asymetrickou šifrou zašifrovaný klíč pro symetrickou kryptografii, symetrickou šifrou zašifrovanou zprávu a digitální podpis, tj. asymetrickou šifrou zašifrovaný hash zprávy. Tyto tři části putují přes nezabezpečený komunikační kanál. Pokud by zprávu někdo odposlechl, nemůže ji dešifrovat. Pouze Bob se totiž pomocí svého soukromého klíče dostane ke klíči symetrické šifry, kterým byla zašifrovaná samotná zpráva. Pouze Bob ji tedy může dešifrovat. Každý sice může dešifrovat digitální podpis, což však není zpráva samotná, ale pouze její hash.

71 Obsah 71 Příjemce zprávy, Bob, nejprve pomocí svého tajného klíče získá symetrický klíč, pomocí nějž dešifruje zprávu. Následně vypočte její hash a Aliciným veřejným klíčem dešifruje digitální podpis. Poté oba hashe porovná, čímž ověří pravost dokumentu. Jak je vidět, asymetrická kryptografie zde byla použita pouze pro šifrování hashe zprávy, což je krátký řetězec, a klíče pro symetrickou kryptografii, což je rovněž krátký řetězec. Pro šifrování dlouhé zprávy byla využita rychlá symetrické šifra. Tento model je tedy výrazně rychlejší a přitom zachovává všechny bezpečnostní požadavky, které na šifrovanou a digitálně podepsanou zprávu klademe. Vlastnosti digitálního podpisu Komunikace popsaná podle výše uvedeného schématu má následující vlastnosti: Autentičnost: Pouze odesilatel zná tajný klíč, tudíž pouze odesilatel může být autorem zašifrovaného hashe. Příjemce si tak může být jistý, že, za předpokladu nekompromitovanosti odesilatelova tajného klíče, je odesilatel zkutečně autorem dokumentu. Nepopiratelnost ze strany odesilatele: Nepopiratelnost ze strany odesilatele souvisí s autentičností. Pouze on zná (nebo by měl znát) tajný klíč a nikdo jiný tak nemohl vytvořit kryptogram hashe, který slouží jako digitální podpis. Nepopiratelnost ze strany příjemce: Pokud by příjemce změnil zprávu, nemůže vytvořit stejný digitální podpis jako odesilatel, protože nezná jeho tajný klíč. Příjemce tedy zprávu změnit nemůže a tudíž nemůže její obsah popřít. Riziko digitálního podpisu Nic však není ideální a i v kryptografii má všechno své ALE. V případě digitálního podpisu je to důvěra v pravost klíče. Každý si totiž může vytvořit svůj pár klíčů. Představme si nyní situaci, kdy do komunikace Alice a Boba zasahuje zlá Eva, která bude komunikaci narušovat. Alice si vyžádá Bobův veřejný klíč, aby mu mohla poslat zprávu. Stejně tak pošle Bobovi svůj veřejný klíč, aby Bob mohl ověřovat Alicin digitální podpis. Komunikační kanál však sleduje Eva, která Bobův veřejný klíč putující k Alici nahradí svým veřejným klíčem a stejně tak Alicin veřejný klíč putující k Bobovi nahradí svým (jiným) veřejným klíčem. Alice tedy má Evin klíč, o kterém si myslí, že patří Bobovi a Bob má rovněž Evin veřejný klíč, ale v domění, že patří Alici. Když nyní Alice zašifruje a digitálně podepíše zprávu, kterou odešle Bobovi, Eva ji cestou zachytí a dešifruje. Zpráva byla totiž ve skutečnosti zašifrována Eviným veřejným klíčem, i když si Alice myslela, že se jedná o Bobův klíč. Eva si zprávu nejen přečte, ale může ji i změnit. Dešifrovanou zprávu totiž musí znovu zašifrovat (nyní opravdovým Bobovým veřejným klíčem) a digitálně podepsat (svým tajným klíčem, o kterém si Bob myslí, že patří Alici). Takto modifikovanou zprávu pak Eva odešle Bobovi, který si myslí, že dostal zprávu od Alice. Zprávu dešifruje svým tajným klíčem, čímž se ujistí, že si ji nikdo cestou nemohl přečíst. Pak ověří digitální podpis a protože hashe jsou stejné, je si jistý, že autorkou dokumentu je Alice. Ani Alice, ani Bob nemají v danou chvíli žádnou možnost, jak odhalit Evin podvrh. To, co stálo na počátku tohoto podvrhu, bylo podvržení veřejného klíče. Eva poslala Bobovi svůj klíč a vydávala jej za Alicin, stejně jako poslal svůj klíč i Alici, tento však vydávala za Bobův. Kdyby si Alice a Bob mohli ověřit, že klíč, který obdrželi, patří skutečně tomu druhému, Eva by podvrh nemohla uskutečnit. Dalším rizikem je ztráta tajného klíče, případně jeho odcizení. V případě ztráty nejsme schopní číst zprávy určené pro nás, musíme vygenerovat nový pár klíčů a uvědomit všechny naše partnery o změně klíčů. V případě odcizení pak někdo jiný bude moci číst zprávy určené pro nás a díky digitálnímu podpisu se za nás vydávat. Nejhorší možností je pak kombinace obého. Ověření pravosti veřejného klíče Věnujme se však nyní ověření pravosti veřejného klíče, tedy jak to udělat, aby Alice měla skutečně jistotu, že klíč, který dostala, patří Bobovi, a Bob měl jistotu, že klíč, který dostal, je skutečně Alicin. Alice může pochopitelně Bobovi předat klíč při osobním setkání. To však jednak popírá výhodu asymetrické kryptografie, navíc to v mnoha případech není technicky možné. Alice tak potřebuje důvěryhodné potvrzení typu: Tento veřejný klíč skutečně patří

72 72 Obsah Bobovi. Analogickou informaci potřebuje Bob o Alicině klíči. Toto potvrzení však musí vydat někdo jiný. Někdo, komu Alice i Bob věří. V reálném světě funguje důvěra tak, že malé děti věří každému. To je potřeba kvůli tomu, aby věřily svým rodičům. Postupem času si však každý člověk buduje okruh lidí, kterým věří. A okruh lidí, kterým nevěří. Základní (mnohdy spíše filosofická otázka pak zní: Má být důvěra tranzitivní? Tedy: Máme věřit někomu, o kom nám důvěryhodný člověk řekl, že mu věří? V neformálních vztazích důvěra většinou tranzitivní je. Pokud nás kamarád s někým seznámí, pravděpodobně nebudeme vyžadovat občanský průkaz, protože nemáme důvod kamarádovi identitu představovaného člověka nevěřit. Oficiání instituce, jako jsou úřady státní správy či samosprávy, však takovouto důvěru mít nemohou a občanský průkaz vyžadují. Občanský průkaz zde představuje certifikát o totožnosti daného člověka, vydaný autoritou, které daný úřad věří. Na podobných principech funguje důvěra i ve virtuálním světě počítačové komunikace a digitálního podpisu. Certifikát klíče je důvěryhodnou osbou digitálně podepsané sdělení: Tento klíč patří této osobě. Věříme-li digitálnímu podpisu této osoby, věříme i identitě majitele certifikovaného klíče. Síť důvěry (web of trust) Autor myšlenky sítí důvěry je Phil Zimmermann, autor softwaru PGP. V sítích důvěry platí, že důvěra je tranzitivní a každý uživatel má právo certifikovat klíče jiných uživatelů. Pokud chceme komunikovat s někým, koho doposud neznáme, hledáme, zda jej necertifikoval někdo z námi certifikovaných uživatelů, případně z uživatelů certifikovaných některým z námi certifikovaných uživatelů, atd. Zkrátka hledáme cestu v grafu reprezentujícím síť důvěry, která spojí nás a našeho komunikačního partnera. Síť důvěry je znázorněna na následujícím obrázku (zdroj: Pro dostatečnou důvěru v pravost klíče komunikačního partnera je důležitá za prvné co nejkratší cesta a za druhé existence co největšího počtu vzájemně nepropojených cest. Aby tedy Zimmermannův koncept sítě důvěry fungoval, musí být síť co nejhustší. To v minulosti vedlo k organizování tzv. key signing parties, kde se lidé potkávali, aby si vzájemně certifikovali své klíče. Důvěryhodná třetí strana (TTP) Anglická zkratka TTP pochází ze slov Trusted third party, tedy důvěryhodná třetí strana. Tento koncept se využívá zejména pro komunikaci s úřady a v obchodním styku. Roli důvěryhodné třetí strany zajišťuje certifikační autorita (CA), která potvrzuje autentičnost podpisu

73 Obsah 73 (a tím identitu jeho držitele). Uspořádání svazující konkrétní klíče s certifikačními autoritami se nazývá Infrastruktura veřejných klíčů - Public Key Infrastructure (PKI) a je definováno standardem ITU-T X.509 platným od Tento standard zavádí hierarchický systém CA. Certifikační autorita vydává certifikát svazující veřejný klíč buďto se jménem osoby, nebo s alternativním jménem ( ovou adresou), anebo s DNS záznamem (pro certifikaci serveru). Na vrcholu hierarchie certifikátů stojí kořenový certifikát, který není nikým certifikován, resp. je certifikován sám sebou. Kořenovému certifkátu zkrátka musíme věřit. V případě použití protokolu HTTPS je seznam důvěryhodných kořenových certifikátů součástí WWW prohlížeče. Při vlastní komunikaci prohlížeče se serverem si prohlížeč si vyžádá veřejný klíč serveru. Aby mu mohl věřit, potřebuje certifikát. Server mu tedy zašle certifikát, což je veřejný klíč serveru podepsaný CA. Prohlížeč pak buďto věří CA, a tedy věří pravosti klíče, anebo nevěří CA, v tom případě se ptá uživatele, zda přijme certifikát. Digitální podpisy a veřejná správa Veřejná správa nedůvěřuje sítím důvěry. Je tedy vyžadována role CA, která musí mít licenci, což je fakticky certifikát státu. Každý občan a každá firma může mít certifikovaný podpis pro komunikaci s úřady. Mezi úřady poskytující elektronický přístup patří např. finanční úřady, Česká správa sociálního zabezpečení, úřady práce, zdravotní pojišťovny, Česká obchodní inspekce, či ministerstva. Podle zákona č. 227/2000Sb. o elektronickém podpisu se rozlišují následující druhy certifikátů: Kvalifikovaný certifikát má stejnou platnost jako občanský průkaz a podle zákona jej každý musí uznat. Tento certifikát lze použít jen pro podpis, ne pro šifrování. Komerční certifikát nemusí splňovat náležitosti zákona a není tedy obecně platný (každý jej nemusí uznat). Používá se pro šifrování dat mezi subjekty, které se na tom dohodnou. Pravdou však je, že většina výše zmíněných úřadů akceptuje i komerční certifikáty vybraných certifikačních autorit. Trh s certifikáty je ve světě velmi diverzifikovaný a v různých oblastech dominují lokální certifikační autority. Mezi nejznámější certifikační autority v České republice patří První certifikační agentura (kvalifikovaný certifikát na 1 rok stojí 495,-Kč), CA Czechia (kvalifikovaný roční certifikát nabízí za 159,-Kč), Česká pošta / PostSignum (u ní stojí roční kvalifikovaný certifikát 190,-Kč), nebo eidentity (kvalifikovaný roční certifikát má za 702,-Kč). V celosvětovém měřítku dominuje společnost Verisign (58% světového trhu), s velkým odstupem pak následují Comodo (8%) a GoDaddy (6%). Tyto údaje pocházejí z dubna roku 2008 a byly získány na WWW stránkách příslušných společností. Obecná problematika autentičnosti Autentičnost vyjadřuje pravost, původnost. Požadujeme autentičnost uživatele, zprávy či hesla. Autentičnost uživatele může být zajištěna na základě charakteristických vlastností (poznáme člověka podle tváře nebo hlasu) vlastnictví (občanský průkaz, kreditní karta) znalosti (heslo, PIN) Pod pojmem silná autentizace (strong authenticaton) se rozumí prokázání totožnosti alespoň dvěma různými způsoby (např. vlastnictví kreditní karty + znalost PIN) Co se týče autentičnosti zprávy, zde je nejdůležitější otázka: Jak zajistit, že zpráva nebyla během přenosu změněna? A to ať už chybou přenosového média, nebo záměrně. K zodpovězené této otázky slouží tzv. MAC, čili Message Authentication Code, což je jednosměrná funkce potvrzující pravost zprávy. Odesilatel vypočítá MAC a odešle jej společně se zprávou. Příjemce vypočítá MAC došlé zprávy a porovná ji z došlým MAC. Pokud se MAC liší, došlo ke změně zprávy. Pokud ne, zpráva je pravděpodobně stejná. Aby měl MAC dostatečnou vypovídací hodnotu, musí záviset na tajné informaci. Jinak by útočník mohl podvrhnout zprávu i její MAC. MAC by měl dále mít pevnou délku a musí

74 74 Obsah záviset na všech bitech zprávy. Běžně používanou technikou MAC je algoritmus DES v CBC módu. V CBC módu algoritmus pracuje tak, že rozdělí zprávu na bloky, vypočte kryptogram 1. bloku a kryptogram n-tého bloku použije jako klíč prošifrování (n+1)-ho bloku. Samozřejmě lze použít i další šifrovací funkce nebo různé klíčované hashovací funkce. Autentičnost hesla znamená odpověď na otázku, zda: Pochází heslo skutečně od oprávněného uživatele? Z praxe známe autentizační protokoly, např. Kerberos nebo LDAP. Abychom mohli autentičnosti hesel věřit, je třeba je uchovávat bezpečně. Bezpečně v tomto případě neznamená skrytě, ale tak, aby se k nim skutečně nikdo nedostal. Tj. neuchovávat přímo hesla, ale jejich otisk - hash, ze kterého není heslo zjistitelné, ale který nám umožní ověřit jeho autentičnost. O hashovacích funkcích se podrobně zmíníme ve stejnojmenné kapitole. Hashování Hashovací funkce Jedná se o jednosměrné funkce, které musí splňovat přesně definované podmínky. Základní hashovací funkce mapují řetězec libovolné délky (zpráva, datový soubor) na řetězec konstantní délky a vytvářejí tak otisk vstupního řetězce. Výsledný otisk se označuje jako výtah, hash, fingerprint nebo miniatura a je závislý na všech bitech vstupního řetězce. Tyto funkce slouží ke kontrole integrity dat, k porovnání dvojice zpráv, k vyhledávání, indexování a využívají se pro tvorbu digitálních podpisů. Mezi nejznámější hashovací funkce patří MD4, MD5, SHA-1 a SHA-2. Tyto algoritmy jsou založeny na podobných principech jako blokové šifry, např. AES. Každá hashovací funkce v principu není injektivní (čili prostá), existují tedy různé zprávy poskytující stejný hash. To samo o sobě není problém, pokud hashovací funkce splňuje následující požadavky: je to jednosměrná funkce (tj. je snadné spočítat hash zprávy, ale nesmírně obtížné nalézt k danému hashi zprávu). není možné najít dva vstupy, které mají stejný výsledný hash (tj. kolize) je obtížné tyto kolize hledat systematicky neexistuje korelace vstupních a výstupních bitů jakékoliv množství vstupních dat poskytuje stejně dlouhý výstup Formálně jde o funkci h, která převádí vstupní posloupnost bitů na posloupnost pevné délky n bitů. h : D R, kde D >> R. Přímo z této definice vyplývá, že existují kolize, to znamená existenci vstupních dat (x,y) takových, že h(x) = h(y), tj. dvojice různých vstupních dat může mít stejný hash. Lze jen snižovat pravděpodobnost, že nastane kolize pro podobná data, například při náhodné změně v části vstupní posloupnosti. Cílem je tedy dosáhnout co nejvyšší pravděpodobnosti, že dvě zprávy se stejným hashem jsou stejné. Hashovací funkce se nejčastěji využívají v hashovacích tabulkách, k rychlému nalezení dat pomocí vyhledávacího klíče (search key). Hashovací funkce se použijí k mapování vyhledávacího klíče do indexu pozice v hashovací tabulce, kde jsou pravděpodobně hledaná data uložena. Obecně, může hashovací funkce mapovat několik rozdílných klíčů na stejnou hashovací hodnotu. Hashovací funkce pouze ukazuje na místo, kde by se mělo začít hledat. Proto každá pozice hashovací tabulky obsahuje soubor záznamů a ne pouze jeden záznam. Z tohoto důvodu je pozice v hashovací tabulce často nazývána oblast (bucket) a hashovací hodnoty nazývány ukazatele na oblast (bucket indicies). Algoritmus MD5 MD (Message Digest) tvoří skupinu hashovacích algoritmů navržených profesorem Ronaldem R. Rivestem z Massachusettského institutu technologií. Když byl analytiky vyhlášen hashovací algoritmus MD4 za nedostatečně zabezpečený, byl v roce 1991 navržen algoritmus MD5 jako jeho bezpečná náhrada. MD5 (Message-Digest algorithm 5) byl často využíván v softwaru poskytujícím záruku, že přenášený soubor dorazil nedotčený. Některé souborové servery poskytují už vypočtený hash pro soubory, které si chce uživatel stáhnout a ten je může posléze porovnat s hashem už stažených souborů. Některé operační systémy založené na Unixu, také obsahují algoritmus MD5 pro kontrolu integrity dat. MD5 je popsán v in-

75 Obsah 75 ternetovém standardu RFC 1321 a jeho výsledný hash má velikost 128 bitů a je většinou vyjádřen jako 32-znakové šestnáctkové číslo. Výpočet hashe u MD5 probíhá následujícím způsobem: Na vstupu algoritmu MD5 může být zpráva jakékoliv délky. Vstupní zpráva je rozdělena na 512 bitů velké bloky, tedy 16 slov o velikosti 32 bitů. Zpráva je rozdělena, v bloku, do prvních 448 bitů a zbylých 64 bitů je určeno pro délku původní zprávy. Ke zprávě je přidán 1 bit a zbytek je doplněn o 0 bitů, aby byla velikost bloku 448 bitů bez posledních 64 bitů. Výpočet probíhá tak, že každý blok je počítán samostatně. Pro výpočet jsou použity 4 proměnné (A, B, C, D) jejichž inicializační hodnoty jsou předem stanoveny. Velikost těchto konstant je 32 bitů. Dále jsou definovány 4 pomocné funkce. Každá z těchto funkcí má na vstupu tři 32-bitová slova a jako vystup jedno 32-bitové slovo: F (X, Y, Z) = (X Y ) ( X Z) G(X, Y, Z) = (X Z) (Y Z) H(X, Y, Z) = X Y Z I(X, Y, Z) = Y (X Z),,, vyjadřují operace XOR, AND, OR a NOT. Každá z těchto funkcí je vykonávána postupně 16krát ve čtyřech kolech. Výsledný hash tvoří proměnné A, B, C,D, ke kterým je přičtena jejich inicializační hodnota. Vše je znázorněno na následujícím obrázku (zdroj Wikipedia): Legenda: MD5 provádí 64 takovýchto operací. Tyto operace jsou seskupeny do čtyř kol o šestnácti operacích. F je nelineární funkce a v každém kole je použita jedna funkce, která je rozdílná pro všechny kola. Mi označuje 32 bitů velký blok vstupní zprávy a Ki označuje

76 76 Obsah 32 bitů velkou konstantu, která je rozdílná pro každou operaci. Kryptoanalýza MD5 Již v roce 1993 Den Boer a Bosselaers přišli s tím, že našli takzvanou pseudo-kolizi. Dva různé inicializační vektory mají stejný výsledný hash. V roce 1996 oznámil Dobbertin kolizi, ovšem nebyl to útok na celý algoritmus. V březnu roku 2004 vznikl projekt, který chtěl dokázat, že velikost výsledného hashe 128 bitů není dostatečně velká na provedení narozeninového útoku. Tento projekt skončil záhy po 17. srpnu 2004, kdy Wangová a kol. oznámili nalezení kolize pro celý algoritmus MD5. Sdělili, že útok trval pouze hodinu na počítači IBM p března 2005 Wangová, Lenstra a de Weger ukázali vytvoření dvou certifikátů X.509 (certifikát pro veřejné klíče) s různými veřejnými klíči a stejným MD5 hashem. O pár dní později Vlastimil Klíma popsal vylepšený algoritmus, který je schopen nalézt kolize během několika hodin na obyčejném notebooku (Acer TravelMate 450LMi, Intel Pentium 1.6 GHz). Během 8 hodin nalezl 331 kolizí prvního bloku a jednu úplnou kolizi MD5. V porovnaní s Wangovou a kol., které trvalo nalezení kolize na prvním bloku jednu hodinu na 25 50krát rychlejším počítači, je jeho metoda ve výsledku asi krát rychlejší než metoda Wangové. Algoritmus MD5 sice stále lze používat pro kontrolu integrity souborů a pro detekci změny chybou přenosového nebo záznamového média, pro kryptografické účely se však již nehodí. Jeho náhradou jsou algoritmy z rodiny SHA. Algoritmy SHA SHA (Secure Hash Algorithm) je skupina pěti kryptografických hashovacích funkcí navržených NSA (Národní bezpečnostní agentura v USA) a vydaných NIST (Národní institut pro standardy v USA) jako celostátní standard v USA (FIPS). Jak již bylo řečeno existuje pět druhů SHA a to: SHA-1, SHA-224, SHA-256, SHA-384 a SHA-512. Poslední čtyři varianty jsou někdy souhrnně označovány jako SHA-2. SHA-1 má výsledný hash délky 160 bitů u dalších verzí odpovídá jejich číslo délce výsledného hashe. SHA-1 Původní specifikace algoritmu byla vydána v roce 1993 jako Secure hash standard (FIPS PUB 180). Tato verze je označována jako SHA-0 a záhy po vydání byla stažena agenturou NSA, která na ni provedla změnu. Změna se týkala rotace bitů doleva o n pozic a měla přispět k většímu zabezpečení. 17. dubna 1995 byl udělen standard i této verzi označované jako SHA-1 (FIPS PUB 180-1). Algoritmus SHA-1 je založen na principech podobných těm, které použil profesor Ronald R. Rivest z Massachusettského institutu technologií při návrhu algoritmu MD4. Standard SHA-1 počítá zmenšenou reprezentaci zprávy nebo datového souboru (hash) délky 160 bitů. Výsledný hash může být vstupem pro algoritmus digitálního podpisu (Digital Signature Algorithm DSA), který vytváří nebo ověřuje podpisy zpráv. Podepisováním hashe dosáhneme větší efektivity, protože výsledný hash je většinou mnohem menší než zpráva, ze které byl vypočten. Stejný hashovací algoritmus musí být použit i při ověřování digitálního podpisu. SHA-1 se nazývá bezpečný (secure), protože by mělo být početně nemožné najít zprávu, která odpovídá výslednému hashi, nebo najít dvě různé zprávy, které by produkovaly stejný hash. Jakákoliv změna zprávy při přenosu s velkou pravděpodobností způsobí změnu výsledného hashe, ověřování tedy selže. SHA-1 může být použito s algoritmem DSA v elektronické poště, u bankovních transakcí, k uchovaní dat a všude tam, kde je vyžadována záruka integrity dat a jejich autentičnost. SHA-1 se také využívá v protokolech TLS, SSL, SSH, IPsec atd. Tvoří také základ pro blokovací šifry SHACKAL. Výpočet hashe pomocí SHA-1 znázorňuje následující obrázek (zdroj: Wikipedia):

77 Obsah 77 Zpráva nebo datový soubor je považován za řetězec bitů. Délka zprávy je počet bitů, ze kterých se zpráva skládá. Prázdná zpráva má tedy délku 0 bitů. Zpráva je rozdělena na 512 bitů velké bloky, tedy 16 slov po 32 bitech. Dále jsou data doplněna, aby byla násobkem 64 bitů. Posledních 64 bitů posledního 512 bitů velkého bloku je rezervováno pro délku originální zprávy. Rozdělená zpráva obsahuje 16*n slov, pro n > 0. Takto rozdělená zpráva je považována za posloupnost o n blocích M1, M2,, Mn, kde každé Mi obsahuje 16 slov. Posléze je pro každý zpracovávaný blok vytvořena tabulka W a tabulka K, která je pro všechny bloky společná a obsahuje předem dané konstanty. Velikost každé tabulky je 80 řádků. V tabulce W je prvních 16 řádků ekvivalentních datům z bloku (80 slov) a zbytek řádků je dopočítán podle vzorce. Samotný výpočet probíhá tak, že každý datový blok je počítán samostatně. Pro výpočet je použito 5 proměnných (A, B, C, D, E). Inicializační hodnoty těchto proměnných tvoří konstanty H0 až H4. Tyto proměnné jsou 80krát přepočteny, výsledky jednotlivých bloků jsou sečteny a jsou k nim připočteny původní konstanty H0 až H4. Výsledek tvoří 160-ti bitový řetězec reprezentován pěti slovy. Nákres ukazuje jedno opakování kompresní funkce SHA-1. A až E jsou 32 bitové proměnné. F je nelineární funkce, která se mění. <<<n označuje rotaci bitů doleva o n pozic, n je rozdílné pro každou operaci. Wt označuje rozšířené slovo t-ho opakování, Kt je konstanta t-ho opakování. Kryptoanalýza SHA-1 Pro ideální hashovací funkci platí, že nelze najít zprávu, která by byla vzorem k danému hashi. Porušení tohoto pravidla, může být docíleno hrubou silou, vyhledáním 2 L výpočtů, kde L je počet bitů hashe. Tento útok se nazývá vzorový (preimage attack). Druhým kritériem je, že nelze najít stejný hash pro dvě rozdílné zprávy. Na toto pravidlo lze zaútočit pomocí narozeninového útoku (birthday attack), který vyžaduje pouze 2 L /2 výpočtů. Tento útok je založen na narozeninovém paradoxu, který říká, že pravděpodobnost nalezení páru dvou

78 78 Obsah lidí, kteří mají stejné datum narození, je u skupiny 23 lidí, kteří jsou náhodně vybráni, 50%. U skupiny 57 lidí je to již 99% a dále pravděpodobnost roste až ke 100%. Nalezení takového páru se nazývá kolize. Síla hashovacích funkcí je obvykle porovnávána se symetrickými šiframi jako polovina délky hashe. Tedy síla SHA-1 byla původně odhadována na 80 bitů. Poté, co bylo oznámeno úplné prolomení algoritmu SHA června 2004, se objevily pochybnosti odborníků o zavádění SHA-1 do nových kryptografických systémů. Po CRYPTO 2004 (mezinárodní kryptografická konference), kde bylo prolomení SHA-0 zveřejněno, NIST oznámilo, že plánují nahradit SHA-1 algoritmem SHA-2 a jeho variantami do roku V únoru roku 2005 byl zveřejněn útok vedený Xiaoyun Wang, Yiqun Lisa Yin a Honbo Yu. Jejich útok nalezl kolizi v plné verzi SHA-1 a vyžadoval méně než 269 operací. Na setkání CRYPTO 2006, Christian Rechberger a Christophe De Canniere prohlásili, že objevili kolizní útok, který dovolí útočníkovi vybrat alespoň část zprávy. Největším znepokojením u těchto útoků je to, že připravují cestu pro mnohem účinnější útoky. Proto se považuje přechod k silnějším hashovací algoritmům jako rozumný. Některé použití hashovacích algoritmů, jako je uložení hesel, je minimálně ovlivněno kolizními útoky. Konstrukce hesel účtů vyžaduje vzorový útok a přístup k originálnímu hashi, což nemusí být jednoduché. V případě podpisu dokumentů musí útočník vytvořit dvojici dokumentů, jeden neškodný a jeden škodný, a dát neškodný dokument k podepsání držiteli soukromého klíče. Algoritmy SHA-2 a SHA-3 Tento algoritmus je vylepšením SHA-1, pracuje však na podobném principu. Poskytuje výstup délky 224, 256, 384, nebo 512 bitů. Bezpečnost SHA-1 již byla kompromitována kryptografickými útoky na rozdíl od variant SHA-2, u kterých nebyl doposud zveřejněn úspěšný útok. Jelikož jsou varianty SHA-2 založeny na podobném algoritmu jako SHA-1, je vyvíjen nátlak na vytvoření nových alternativ hashovacích algoritmů. 2. listopadu 2007 byla vyhlášena otevřená soutěž na vývoj nového algoritmu SHA-3. Vyhlášení vítězů a publikace nového standardu je plánována na rok Jedná se o podobnou veřejnou soutěž, kterou vyhlásil NIST pro standard AES (Advanced Encryption Standard). Steganografie Steganografie Steganografie je umění či věda o ukrývání samotné existence zprávy. Cílem steganografie je zajistit, aby zůstalo v tajnosti, ŽE se nějaká zpráva vůbec přenáší. Původ slova je z řečtiny (stegos = skrytý, graphein = psát). Ukrytá zpráva totiž nebudí pozornost a nemusí proto být šifrovaná. V případě, že chceme předat opravdu důležitou zprávu, pak ji můžeme nejen ukrýt, ale i zašifrovat. Kombinace steganografie a kryptografie zaručí nenápadnost a bezpečnost. Zaprvé se nikdo nedozví, že nějakou zprávu přenášíme, a i pokud by se to dozvěděl, tak ji nebude schopen rozluštit. Steganografie má velmi široké použití: V zemích, kde je kryptografie ilegální, či tam, kde chceme ukrýt samotnou existenci zprávy. Totiž už to, že někomu pošleme zašifrovanou zprávu, může mít vypovídající hodnotu. Představme si např. vrcholného politika, který si vyměňuje šifrované zprávy z hledaným zločincem či podnikateli. Jde mi jistě nejen o utajení obsahu zprávy, ale i o utajení toho, že vůbec se svým protějškem komunikuje. Dalším argumentem pak je, že zjevně zašifrovaná zpráva budí pozornost. Lidé jsou zvědaví a mají snahu ji rozluštit, i když by jim k ničemu nebyla. Historie steganografie První doložené použití steganografie v antice souvisí s bitvou u Salamíny (480 př.n.l.). Peršané se tehdy připravovali na přepadení Řecka, když Řek Damaratus (vyhnanec, který však stále cítil loajalitu ke své vlasti) ukryl zprávu pod voskem na prázdných psacích destičkách. Řekové díky němu v bitvě zvítězili. Jiný případ popisuje Hérodots: Histiaios chtěl povzbudit Aristagora Milétského ke vzpouře proti Peršanům. Oholil posla, napsal (resp. vytetoval) zprávu poslovi na hlavu a počkal, až mu vlasy opět narostly. Teprve pak se posel vypravil na cestu. Římané používali tajné inkousty na bázi ovocné šťávy nebo mléka, které jsou na papíře neviditelné, při zahřátí však zhnědnou. Staří Číňané psali zprávu na hedvábí, to pak zalili

79 Obsah 79 do voskové kuličky, kterou posel polkl. V místě určení pak šel na záchod a zpráva byla na světě. Ital Giovanni Porta (16. stol.) vynalezl speciální inkoust (roztok kamence a skalice), kterým se zpráva napíše na vejce a vejce se poté uvaří na tvrdo. Zpráva pronikne skořápkou na bílek, kde je pak po oloupání vajíčka čitelná. Během Búrské války Lord Robert Baden-Powell, zakladatel skautského hnutí, potřeboval nakreslit plán rozestavení búrského dělostřelectva. Pro případ chycení nemohl být plán viditelný na první pohled. Namaloval proto louku plnou květin s motýly. Někteří motýli s určitými vlastnostmi kódovali nepřátelská děla. Během dvacátého století steganoggrafické techniky umožňovali předávání zpráv mezi špiony. Během druhé světové války to byly německé mikrotečky (text zmenšený na velikost tečky za větou), nulové zprávy (zprávy např. v rozhlase nemající reálný význam, které nesou pouze ukrytou zprávu). Všeobecná paranoia vedla v USA a GB k zákazu posílání novinových výstřižků, dětských kreseb a květin. Digitální steganografie pak nabízí zcela nové možnosti. Ukažme si jednoduchý příklad použití steganografie: O Z N Á M E N Í Naši muži stojí kolem sčítačky. Dívčí směna sedí zvědavě ve sčítačce. Stráž ovládá kryt vtoku ke skulině. Pro snazší odhalení: O Z N Á M E N Í Naši muži stojí kolem sčítačky. Dívčí směna sedí zvědavě ve sčítačce. Stráž ovládá kryt vtoku ke skulině. Druhá písmena ve slovech představují techniku, která byla během druhé světové války skutečně použita německým špionem. První písmena jsou příliš nápadná, proto poslal do Německa telegram ve znění: Apparently neutral s protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects pretext for embargo on by-products, ejecting suets and vegetable oils. Pokud z něj přečteme jen druhá písmena z každého slova, dostaneme PERSHING SAILS FROM NY JUNE 1 Možností steganografie je nepřeberné množství. Nosičem ukryté zprávy může být cokoliv. Dostaneme od kamaráda mailem skvělou animaci, kterou hned rozešleme svým známým. Můžeme si být jisti tím, že neobsahuje nějakou skrytou zprávu? S možnostmi odhalování je to přitom daleko horší. Kdo nezná způsob ukrývání, může zprávu těžko odhalit. Způsobů ukrytí je nekonečně mnoho. Je potřeba vědět, kde skrytou zprávu hledat, ale nelze ukryté zprávy hledat úplně všude. Základní nevýhoda steganografie však je, že při odhalení dostane útočník do ruky celou zprávu. Nabízí se proto řešení: Kombinace steganografie a kryptografie. Zprávu nejprve zašifrujeme a poté ukryjeme. Zašifrovaná zpráva lépe odolává analýze a navíc není pro útočníka ihned čitelná. Nevýhodou tohoto postupu však je, že musíme být s příjemcem předem domluveni na způsobu ukrytí, jinak zprávu nemá šanci odhalit ani její pravý příjemce. Digitální steganografie Pod pojmem digitální steganografie rozumíme ukrývání zpráv do datových souborů. Rozlišujeme: plaintext zprávu, kterou chceme ukrýt, což může být text nebo soubor zašifrovaný plaintext (ciphertext)

80 80 Obsah covertext nosič zprávy, tedy soubor, do nějž ukrýváme stegotext nosič obsahující zprávu Jako nosiče pro steganografii slouží nejčastějji multimediální data, pro něž platí, že lidské smysly nesmí zprávu odhalit. To neznamená nutně absolutní neviditelnost, ale jen určitý stupeň nenápadnosti. Zpráva by navíc měla přežít určité manipulace (změna velikosti obrázku, filtrování, atd.). Dále se budeme zabývat ukrývání do textu, obrázků, zvuku, videa a do spustitelných souborů. Připomeňme, že je zcela lhostejné, zda ukrýváme text nebo číslo. Vždy se může navíc jednat o vyjádření zprávy pomocí dvojkové soustavy. Budeme se proto povětšinou zabývat tím, jak ukrýt sekvenci nul a jedniček. Ukrývání do holého textu V případě holého textu máme k dispozici pouze jednotlivé znaky bez jakéhokoliv formátování. Jediné, co je v textu nenápadné, jsou bílé znaky. Každý znak zprávy tak můžeme nahradit posloupností mezer a tabulátorů. Tyto posloupnosti umístíme na konec řádků. Jiná metoda spočívá v náhradě podobných písmen, např. O a 0, l a 1. Další způsob je pomocí gramatiky. Například v angličtině před slovem and může a nemusí být čárka. Výskyt čárky pak kóduje 0 nebo 1. Nevýhodou této metody je poměrně málo prostoru pro uložení zprávy. Pomocí sémantiky, čili významu jednotlivých slov lze zprávu kódovat takto: Předem se dohodneme na dvojicích synonym. V každé dvojici jednomu slovu přiřadíme jedničku, druhému nulu. Např. velký = 1, značný = 0. V textu pak hledáme slova z kódové knihy, která podle potřeby nahrazujeme synonymy. Význam zprávy zůstane nezměněn. Více dvojic synonym a delší zpráva poskytuje větší prostor pro zprávu. Ukrývání do formátovaného textu Formátovaný text nabízí oproti holému textu další možnosti. Pomocí různých fontů lze zprávu ukrýt např. pomocí Baconovy šifry. Jejím autorem je Francis Bacon ( ). Platí, že Nosič zprávy musí být 5x delší než zpráva. Bacon vymyslel pětiznakový kód pro každé písmeno (dnes bychom řekli pětibitový). Nosič poté píšeme pomocí dvou různých fontů; jeden připadá na A, druhý na B. A = AAAAA N = ABBAA B = AAAAB O = ABBAB C = AAABA P = ABBBA D = AAABB Q = ABBBB E = AABAA R = BAAAA F = AABAB S = BAAAB G = AABBA T = BAABA H = AABBB U + V = BAABB I + J = ABAAA W = BABAA K = ABAAB X = BABAB L = ABABA Y = BABBA M = ABABB Z = BABBB NĚJAKÝCH DVACET PÍSMEN pak může ukrýt zprávu Ahoj. V digitální steganografii lze této metody samozřejmě použít při ukrývání jedniček a nul. Pomocí posouvání řádků lze ukrýt zprávu např. do PDF. Každý druhý řádek je posunut nahoru nebo dolů vůči své správné pozici. Posun o jeden pixel, tj. o 1/300 palce je pro lidské oko neznatelný. Směr posunutí kóduje 0 nebo 1. Výhodou této metody je její dekódovatelnost i po 10 kopiích. Analogickou metodu předstravuje posouvání slov, čili zvětšování nebo zmenšování horizontální mezislovní mezery. Tato metoda je ještě méně viditelná než posun řádků. Její variantou je pak vkládání nových mezer, což je ale poněkud nápadnější. Další metodu představuje neznatelná změna vlastností písma (výška u písmen jako b, d, h, l, řez, atd.), drobná změna barvy písma či kombinace uvedených metod. Ukrývání do obrázků Ukrývání do obrázků je nejčastěji užívaná metoda, neboť obrázky jsou nejčastěji přenášený typ multimediálních dat a tudí budí nejméně pozornosti. Navíc skýtají nepřeberné množství možností ukrývání. Nejprimitivnější metodou je kódování do nejméně významného bitu, tedy LSB (Least Significant Bit). Klasické barevné schéma R,G,B, kde je pro každou barevnou složku vyhrazen 1

81 Obsah 81 byte, představuje prostor pro cca 16,7 milionu barev, což je více, než dokáže lidské oko rozlišit. Použijeme-li tedy poslední bit každého n-tého bytu pro uchování zprávy, některé body se nepatrně změní, lidské oko však změnu neodhalí. Příjemce z obrázku použije jen stanovené bity. Alternativou tohoto postupu je kódování do dvou posledních bitů. Lidské oko stále není schopno zaznamenat změnu, jak je vidět na následujícím příkladu převzatém z Wikipedie: Odstraníme-li v obrázku stromů vše až na dva LSB, získáme skoro černý obraz. Následné 85x zvýšení jasu odhalí kočku. Ukrývání do LSB má však i svá úskalí: U grafických formátů s barevnou paletou (GIF) může změna posledního bitu znamenat značnou změnu barvy. Je proto třeba provádět změnu na základě podobnosti barev a místo jednoho bitu měnit celý byte (resp. celou trojici bytů). Výsledkem bude barva velmi podobná původní barvě. Případně můžeme použít

82 82 Obsah obrázek v odstínech šedé. Velmi zajímavvou metodou je ukrývání do barevné palety, což je využitelné u obrázků souborového formátu GIF, který má barevný prostor 256 barev. Na začátku každého souboru je definice barevné palety, která představuje přeskládání barev. Samotná obrazová data jsou pak jen indexy do palety. Při změně palety a odpovídající změně indexů zůstane obraz vizuálně identický. Počet různých palet je roven 256! = 8,5* = Každé zprávě přiřadíme uspořádání barev. Do barevné palety lze ukrýt až 1683b = 210B. Máme-li k dispozici nosič ve formátu JPEG, využijeme vlastností ztrátové komprese. Ta je u JPEGu založena na DCT (Discrete Cosine Transform). Lidské oko je citlivější na změnu jasu než na změnu odstínu. V JPEG kompresi obě složky zpracováváme zvlášť. Zprávu ukrýváme do informace o barvě na méně významné pozice v matici 8x8. Vodoznaky, čili přidání špatně viditelné informace do obrázku v reálném světě dokazují pravost dokumentu. Vodoznak není viditelný na první pohled, obsahuje však určité informace. Jeho nevýhodou je, že jej lze většinou odhalit. Výhodou je pak rezistence vůči prakticky jakékoliv manipulaci s obrázkem. Nejedná se však o čistou steganografii Další způsob steganografie denně nevědomky každý z nás použije. Americká tajná služba je totiž dohodnutá s výrobci tiskáren, že každá vytisknutá stránka obsahuje na určitých místech mikroskopické tečky žluté barvy. Rozložení teček odpovídá místu nákupu tiskárny a dalším informacím. CIA je tak z každé stránky schopná určit místo, kde byla stránka vytisknutá, dokonce i sériové číslo tiskárny. Ukrývání do audiosignálu Při ukrývání do audiosignálu můžeme použít tzv. low bit encoding, což je analogie LSB u obrázků. Zprávu kódujeme do nejméně významných bitů v každém bytu. Odvážnější metoda, tedy kódování zprávy do dvou bitů v každém bytu je použitelná jen u málo kvalitních nahrávek, získáme však více prostoru pro ukrývání dat. Nevýhodou změn nízkých bitů je, že přenos přes analogové médium zničí zprávu šumem. Stejně tak převzorkování zničí zprávu. Jinou metodu představuje tzv. parity coding, čili kódování pomocí bitů pro kontrolu parity. V každé části audiosignálu je totiž jeden paritní bit. Je-li příslušný bit zprávy roven paritnímu bitu, zůstane část beze změny. Je-li příslušný bit zprávy různý, změníme jeden z LSB v části audiosignálu a následně změníme i paritní bit. Kontrola parity je v pořádku, audiosignál však ukrývá zprávu. Při dekódování zprávy čteme jen paritní bity. Velmi pěknou metodu kkódování do audiosignálu představuje kódování pomocí fázových posunů. Audiosignál je složen ze sinů, které mají různou frekvenci a různou amplitudu. Mají také různý fázový posun. Lidské ucho vnímá jen frekvenci (výška tónu) a amplitudu (intenzita tónu), nikoliv fázový posun. DFT (Diskrétní Fourierova transformace) rozloží signál na siny (jedná se analogii Talorovy řady pro polynomy). Následně upravíme fázový posun elementárních funkcí tak, aby kódoval zprávu a zrekonstruujeme audiosignál. Pro lidské ucho je změna zcela neznatelná, nový zvukový soubor je však velmi odlišný od původního. Čím složitější zvuk, tím větší prostor pro zprávu. Metdou, která opět vychhází z reálného světa, je ukrývání do šumu. Zprávu namodulujeme na neslyšitelnou frekvenci a vzniklý signál přidáme do zvuku. Příjemce oddělí signál dané frekvence a dekóduje zprávu. De facto se jedná o princip elektromagnetického přenosu v reálném světě (např. do našeho hlasu je na neslyšitelné frekvenci ukryt signál rádia či televize, signál internetového modemu je přidán do kabelové televize, telefonní linky, atd.). Poslední metodou ukrývání do audiosignnálu, o které se zmíníme, je ukrývání do ozvěny. K určité části signálu v audiosouboru přidáme ozvěnu, přičemž intenzita a útlum ozvěny se mění. Zpoždění kóduje 0 nebo 1. Nelze použít pro nekvalitní signál, pro signál již obsahující ozvěny, nebo pro signál s dlouhými pomlkami (ozvěna ticha je totiž opět ticho). Ukrývání do videa Video = obraz + zvuk. Máme tedy možnost použití technik pro ukrývání do obrázků i do zvuku, případně kombinace obou. Obrázků je navíc velké množství, pro zprávu tedy máme hodně prostoru. Video je však nepopulární nosič díky značnému objemu dat a skutečnosti, že se nepříliš často se přenáší po internetu. Ukrývání do spustitelných souborů Spustitelný soubor není nic jiného, než posloupnost instrukcí. Instrukce samozřejmě nelze měnit, tím bychom zcela změnili chod programu. Využijeme však instrukce nepodmíněného

83 Obsah 83 skoku a tím vytvoříme části souboru, které nikdy nebudou provedeny. Do nich pak ukryjeme zprávu. Tento způsob se sice poměrně snadno detekuje, ale kdo z nás běžně hledá ve spustitelných souborech hluchá místa? Jinou metodou je ukrývání do nepoužitých proměnných, pomocí negativni / pozitivní formulace podmínek skoku, atd. Stegoanalýza Stegoanalýza představuje analogii kryptoanalýzy u kryptografie. Je to schopnost, umění, věda... o detekci a dekódování ukryté zprávy. Rozlišme typy stegoanalytických útoků: Prvním je tzv. stego-only attack. Útočník má k dispozici pouze stego-text, není si jistý, zda obsahuje ukrytou zprávu a nezná metodu ukrytí, ani originální nosič a neví nic o ukryté zprávě. V tomto případě je pravděpodobnost úspěšného útoku takřka nulová. Druhou možností je tzv. known-cover attack. Útočník má k dispozici původní cover-text a stego-text. Ví, že jsou různé, tudíž si je jistý, že stego-text obsahuje zprávu a může ji odhalit pomocí srovnávání souborů. Třetím typem je known-message attack. Útočník má k dispozici stego-text a ukrytou zprávu (nebo aspoň její předpoklad). Ačkoliv je to málo pravděpodobná varianta, může odhalit metodu ukrývání pro pozdější stegoanalýzu. Nejčastějším typeem útoku je pravděpodobně chosen-message attack. Útočník předpokládá znění zprávy a má k dispozici stego-text. Snaží se upřesnit svůj předpoklad analýzou stego-textu. Mezi používané stegoanalytické techniky patří zejména statistická analýza. K ní potřebujeme větší množství souborů pocházejících z daného zdroje, např. fotografie z téhož fotoaparátu, nahrávky z téhož studia, atd. V signálu jsou vysledovány různé statistiky (analýza spektra, deformace hran,...). Soubor porušující statistiky je pravděpodobným nosičem zprávy. Další metodou je analýza šumu. I proti těmto technikám je však možné se bránit pomocí různých pokročilých technik steganografie. Jak zabránit detekci zpráv? Například přidáním nesmyslných informací do každého souboru. Statistická analýza pak neodhalí skutečnou zprávu. Jiný způsob představuje už zmiňovaná kombinace šifrování a komprese ukrývané zprávy. Ukrytá data jsou pak náhodná a nepředvídatelná. V neposlední řadě je to používání stále nových algoritmů. Jedná se sice o rozpor s Kerckhoffsovým principem, v případě steganografie to však lze tolerovat. Podprahové signály Ke steganografii svým způsobem patří i podprahové signály, čili signály, které nevnímá lidské vědomí, ale dostávají se do podvědomí. Např. jednotlivé snímky ve filmu obsahují text. Pomocí smyslů jej ani nezaznamenáme, natož mu porozumět, v podvědomí je však uložen. Tato metoda má široké použití v reklamě a propagandě. Podprahové signály v reklamě jsou zákonem zakázány. Podle neověřených informací (Zdroj: Wikipedia) v letech Obchodní dům v New Orleans přidával do hudby v reproduktorech dvě neslyšitelné věty: Jsem čestný a Nebudu krást. Počet krádeží se údajně snížil o 75%. V roce 1988 před prezidentskými volbami ve Francii státní televize vysílala podprahové portréty F. Miteranda. V roce 2000 během prezidentské kampaně v USA byla do televizních projevů G.W. Bushe přidána podprahová slova BOUREAUCRATS a RATS. Steganografický software Ukázky steganografického softwaru najdete na a. Za vyzkoušení rozhodně stojí program StegHide b. a b

84 84 Obsah Šifrování v mobilní komunikaci Šifrování v mobilní komunikaci Síť GSM GSM, neboli Global System for Mobile communication je celosvětová digitální celulární síť určená pro mobilní telefony. Tuto síť v současnosti využívá více než 3 miliardy lidí ve více než 212 zemích světa. Skupina GSM, tedy Groupe Spécial Mobile, byla založena v roce Dnes používaná zkratka vychází z názvu této skupiny. V roce 1987 bylo 13 zeměmi podepsáno memorandum o porozumění, potřebné k vývoji celoevropské celulární telefonní sítě. V roce 1989 byla zodpovědnost za další vývoj GSM převedena na ETSI (Evropský telekomunikační standardizační institut) a o rok později bylo publikována první specifikace GSM phase I, která obsahovala více než 6000 stran textu. V roce 1991 začala finská firma Radiolinja jako první provozovat tuto službu komerčně. Za dva roky se služba rozšířila do dalších 21 zemí s celkem 36 GSM sítěmi. (GSM World, 2009) V roce 1998 vznikl Projekt Partnerství 3. Generace (3GPP), který měl původně za úkol vytvořit specifikaci pro třetí generaci mobilních sítí. 3GPP postupně přebral rovněž údržbu a vývoj specifikace GSM. Generace mobilních sítí 1G 1G je síť první generace bezdrátové mobilní komunikace. Jedná se o analogovou síť, která spustila svůj provoz počátkem 80. let. Jeden ze standardů je NMT (Nordic Mobile Telephone), používaný v severských zemích, východní Evropě a Rusku. Další zahrnují AMPS (Advanced Mobile Phone System) používaný ve Spojených státech, TACS (Total Access Communication System) ve Spojeném království, JTAGS v Japonsku, C-Netz v Západním Německu, Radiocom 2000 ve Francii a RTMI v Itálii. Analogové vysílání bylo ve většině světa plně nahrazeno digitálním. (Javvin Technologies, Inc.) 2G 2G je druhá generace mobilních sítí, která je již plně digitální. Její provoz byl spuštěn v roce 1991 ve Finsku. Pod sítě druhé generace jsou řazeny tyto standardy: GSM založena na TDMA (Time Division Multiple Access), v současnosti zahrnuje zhruba 80% uživatelů na světě IS-95, cdmaone, často označováno jen jako CDMA je založena na CDMA (Code Division Multiple Access). Je využívána hlavně v Americe a Asii. Zahrnuje zhruba 17% uživatelů PDC založena na TDMA, provozována pouze v Japonsku iden založena na TDMA, vyvinuta firmou Motorola, využívána v některých zemích Ameriky, Asie a blízkého východu IS-136, D-AMPS založena na TDMA, byla jednou z nejpoužívanějších v Americe, postupně ale nahrazena standardem GSM (Wikipedia, 2009) Spolu s digitálními sítěmi druhé generace se začaly rozvíjet další služby nabízené operátory než jen hlasová komunikace. Rozvoj začal především na poli krátkých textových zpráv a připojení k internetu. 2.5G, 2.75G Jedná se o standardy, které ještě nespadají plně do sítí 3G, ale oproti 2G nabízejí vyšší rychlosti přenosu dat. Tyto standardy již umožňují přepínání paketů a mohou být použity na stávající infrastruktuře sítí GSM a CDMA. V Evropě velmi populární je standard GPRS, který umožňuje download rychlostí až 144 Kbps. Standard EDGE je zahrnován do sítí 2.75G, i když by měl patřit spíše pod sítě 3G. EDGE umožňuje vysokorychlostní připojení k internetu s rychlostí až 1 Mbps, typicky ale okolo 400 Kbps.

85 Obsah 85 3G 3G je třetí generací mobilních sítí založená na standardu ITU IMT Její hlavní předností je vysoká rychlost připojení umožňující dosahovat rychlostí až 14,4 Mbps. Hlavním využitím této vysoké rychlosti jsou videotelefonie a širokopásmové připojení k internetu. Hlavním podporovaným standardem je W-CDMA označovaná také jako UMTS. Přechod na sítě třetí generace je pro operátory poměrně náročný, protože stávající infrastrukturu je možné využít jen částečně. Je třeba vyměnit celý systém základových stanic (BSS). Sítě třetí generace jsou také výrazně bezpečnější než jejich předchůdci. Komunikace je šifrována blokovou šifrou KASUMI, označovanou někdy jako A5/3. Největšího rozvoje se sítě 3G zatím dočkaly hlavně v Koreji a Japonsku. V Evropě je nástup těchto sítí zbrzděn vysokými investicemi telekomunikačních společností do nákupu licencí pro 3G. (3GPP, 2009) 4G Čtvrtá generace mobilních sítí by měla přinést další navýšení rychlosti mobilního připojení a to až na 100 Mbps. Hlavními poskytovanými službami mají být širokopásmové připojení k internetu, MMS, videotelefonie a mobilní televize ve vysokém rozlišení. Jedním ze základních stavebních kamenů sítí 4G je také podpora IPv6. Všech těchto nových vlastností by mělo být dosaženo s maximálním možným využitím stávající infrastruktury. Architektura sítě GSM Síť GSM si můžeme rozdělit do tří částí. První z nich Mobile Station (MS) se sestává z mobilního telefonu Mobile Terminal (MT) a čipové karty Subscriber Identity Module (SIM). Systém základových stanic Base Station Subsystem (BSS) má za úkol kontrolu rádiového spojení s MS. Síťový a přepínací podsystém Network Switching Subsystem (NSS) přepojuje hovory mezi jednotlivými uživateli mobilní sítě a mezi uživateli pevných linek. Hlavní součástí tohoto subsystému je mobilní přepojovací centrum Mobile Services Switching Center (MSC). Volitelnou součástí je hlavní síť GPRS, umožňující internetové spojení na bázi paketů. (Wikipedia, 2009) Obr. č.: 1 Struktura GSM sítě (Wikipedia, 2009) Mobile station (MS) Mobilní stanice se skládá ze dvou prvků mobilního terminálu (MT) a malé čipové karty označované jako Subscriber Identity Module (SIM). SIM zajišťuje osobní mobilitu, takže uživatel má přístup ke službám nezávisle na použitém terminálu. Vložením SIM karty do

86 86 Obsah jiného GSM terminálu může uživatel na tomto terminálu volat, přijímat hovory a využívat dalších služeb sítě. Mobilní terminál je jednoznačně identifikován pomocí International Mobile Equipment Identity (IMEI). SIM karta obsahuje International Mobile Subscriber Identity (IMSI) používaný pro autentizaci uživatel služby, tajný klíč pro autentizaci a další informace. IMEI a IMSI jsou nezávislé a umožňují tedy osobní mobilitu. SIM karta může být chráněna proti neautorizovanému použití heslem nebo číselným kódem (PIN). (Scourias, 1997) Systém základových stanic (BSS) Systém základových stanic (BSS) se skládá ze základových převodních stanic Base Transceiver Station (BTS) a kontroly základových stanic Base Station Controller (BSC). Základové převodní stanice (BTS) sdružují zařízení pro příjem a vysílání rádiových signálů, antény a zařízení pro šifrování a dešifrování komunikace s kontrolou základových stanic (BSC). Díky použití směrových antén je možné základovou stanici sektorizovat. Tím je dosaženo toho, že je několik buněk celulární sítě obsluhováno z jednoho místa. Tento aspekt zvyšuje provozní kapacitu BTS a zároveň nezpůsobuje téměř žádné rušení sousedních buněk. Buňky GSM sítě je možné rozdělit na makrobuňky Makrocell, mikrobuňky Mikrocell a deštníkové buňky Umbrella cell. Makrocell je typická základová stanice, obvykle obsahuje tři vysílače s vysílacím úhlem 120 a má dosah plných 35 km. Mikrocell je menší vysílač s jednou anténou a pokrytím 360 a dosahem 27 km. Používá se pro pokrytí například v budovách nebo metru. Umbrella cell je kombinací obou předchozích, jedná se o vysílač s dosahem 35 km a úhlem 360. Síťový a přepínací podsystém (NSS) NSS zajišťuje přepínání, řídí komunikaci mezi mobilními telefony, umožňuje spojení se sítí pevných linek Public Switched Telephone Network (PSTN) a řídí autentizaci MS v síti. Základní součástí NSS je Mobile Switching Center (MSC), které zajišťuje hlasové hovory, SMS a další služby sítě. Chová se jako běžný uzel sítě PSTN nebo ISDN. Nejdůležitějším úkolem MSC je zajištění konektivity s pevnými sítěmi. MSC se dále skládá ze dvou databází Home Location Register (HLR) a Visitor Location Register (VLR). V HLR jsou uložena veškerá data o každém mobilním telefonu autorizovaném pro přístup do sítě. Primárním klíčem každého záznamu databáze je IMSI, tedy identifikátor každé SIM karty. V každém záznamu je také aktuální poloha každé MS v síti. (Scourias, 1997) Zatímco HLR je stálou databází, ve VLR jsou dočasně uložena data o MS patřících do jiných sítí, které v dané síti využívají roamingu. Primárním klíčem je opět IMSI a v záznamu je kromě informací shodných s HLR uložena i domovská HLR adresa dané MS. Autentizační centrum (AuC) je chráněnou databází, ve které je uložen tajný klíč Ki příslušející každé SIM kartě. Jen v případě úspěšné autentizace u AuC může s příslušnou MS dále komunikovat HLR. Ke každému záznamu v AuC je kromě tajného klíče Ki přiřazen ještě autentizací algoritmus s jakým daná MS spolupracuje. Výsledkem autentizačního procesu je klíč Kc, který je předán kontrole základových stanic BSC pro šifrování a dešifrování komunikace s MS. Proces autentizace majitele GSM stanice Standard GSM předpokládá implementaci těchto šifrovacích algoritmů v MT (Mobile Terminal): A3 autentizací algoritmus A5 komunikační algoritmus, buď v silnější verzi A5/1 nebo slabší verzi A5/2, případně verzi A5/0 neobsahující žádné šifrování A8 - algoritmus generující klíče pro hlasovou komunikaci Vložením karty SIM se z MT stává mobilní zařízení telefon nazývaný dále MS (Mobile Station). Při každém vstupu do sítě je prověřována identita uživatele SIM karty z důvodu zabránění přístupu neověřených osob k účtu. V autentizačním centru (AUC) a v modulu SIM karty je uložen tajný klíč Ki, jedinečný pro každého uživatele sítě. Na modulu SIM karty je Ki zabezpečen tak, že je možné s ním provádět pouze předem definované operace pomocí algoritmů A3 a A8.

87 Obsah 87 Obr. č.: 2 - Schéma šifrované mobilní komunikace (Vondruška, 2008) Uživatel stanice MS žádá o přihlášení do sítě po zapnutí MS. Po zadání PINu je spuštěn následující proces síť od AUC zašle náhodné číslo RAND do MS. Zde je číslo RAND předáno modulu SIM, který na základě znalosti Ki a v SIM kartě uložených algoritmů A3 a A8 připraví trojici (RAND, K3, K). Hodnoty K3, resp. K8 spočte jako výstup z algoritmů A3 resp. A8 se vstupními parametry RAND, Ki, tedy K3 = A3 (RAND, Ki), K8 = A8 (RAND, Ki). Tato data jsou předána MS, který část K3, označovanou jako SRES (Signed Response), odešle do sítě a klíč K8 uloží zpět do SIM karty. Při požadavku na zahájení šifrovaného spojení je K8 použit jako klíč pro generování hesla algoritmem A5/1 resp. A5/2. Po obdržení K3 od MS provede síť test podmínky K3 (SRES ) = K3 (SRES) (K3 si spočte AUC na základě znalosti Ki a jím odeslaného čísla RAND). Pokud tato podmínka je splněna, prohlásí síť provedenou autentizaci za úspěšnou a povolí přihlášení MS do sítě. V opačném případě je vstup MS do sítě odmítnut. (Vondruška, 2008) Algoritmy A3 a A8 jsou obvykle implementovány prostřednictvím jediného algoritmu nazývaného A38. Tento je obvykle realizován prostřednictvím algoritmu Comp128, respektive jeho vyššími verzemi Comp128v2 a Comp128v3. Proudová šifra A5 Historie Verze šifry A5/1 byla vyvinuta v roce 1987 v době, kdy se nepočítalo s nasazením služby GSM mimo Evropu a Spojené státy. Proto byla v roce 1989 vyvinuta oslabená verze algoritmu označovaná jako A5/2 určená pro nasazení v mimoevropských státech. V současnosti se algoritmus verze A5/2 používá jen výjimečně, například v Srbsku nebo Keni. V některých regionech světa byla zavedena dokonce verze bez šifrování, označovaná jako A5/0, která je zde dodnes využívaná. Jedná se především o některé země Afriky a Asie, například Indii. Obě šifrované verze, tedy A5/1 i A5/2 byly původně drženy v tajnosti. V roce 1994 unikly informace o obecné struktuře návrhu. Ve stejném roce upozornil Ross Anderson, že návrh může mít závažné bezpečnostní slabiny. V témže roce také uvedl že v polovině 80. let byla velká hádka mezi informačními službami jednotlivých zemí NATO, zda má být šifrování GSM silné nebo ne. Německo, mající dlouhou hranici se zeměmi Varšavské smlouvy, zastávalo názor, že ano; ostatní země ale tento postoj nesdílely. Současný algoritmus šifry A5 je francouzského návrhu. (Anderson, 1994) Oba algoritmy byly pomocí reverzního inženýrství zrekonstruovány v roce 1999 Marcem Bricenem z GSM telefonu. V roce 2000 používalo šifru A5/1 přibližně 130 miliónů uživatelů systému GSM. Popis šifry A5 GSM přenos je realizován pomocí sekvencí bursts, neboli shluků. Typicky se odešle jeden shluk obsahující informaci 114 bitů každých 4,615 milisekund jedním kanálem a v jednom směru. A5/1 vyprodukuje pro každý shluk 114 bitovou sekvenci, pro 2 kanály tedy musí vyprodukovat 228 bitů klíče každých 4,615 milisekund. Každý shluk je pomocí funkce XOR sečten se shlukem 114 bitů části otevřené zprávy. Algoritmus A5/1 je inicializován 64-bitovým klíčem a veřejným 22-bitovým číslem rámce TDMA. Do roku 2001 byla v GSM komunikaci používána implementace, která měla prvních 10 bitů klíče pevně nastavených na 0. Efektivní délka klíče tedy byla pouze 54 bitů. V současnosti se používají pro tvorbu klíče A8 algoritmy Comp128v2 a Comp128v3, díky nimž má klíč A8 efektivní délku 64 bitů.

88 88 Obsah Základem šifry A5/1 jsou tři lineární posuvné zpětnovazebné registry (LFSR) s nepravidelným krokováním. Tyto registry lze popsat takto: Posuvný registr - LFSR Délka v bitech Charakteristický polynom Pulsní (clock) bit Výstupní bity 1 19 x18+x17+x16+x , 16, 17, X21+x , X22+x21+x20+x , 20, 21, 22 (Vondruška, 2008) Bity jsou číslovány od nejnižšího bitu označeného jako 0. Na začátku jsou všechny bity registrů nastaveny na 0. Následně jsou v 64 krocích přidány bity tajného klíče Ki a to tak, že je vždy jeden bit přičten pomocí funkce XOR do nejnižšího bitu všech registrů. Tyto jsou následně krokovány bez použití funkce pro většinový stav (viz níže). Poté je přidáno 22 bitů čísla rámce a následuje 100 kroků již se zapnutou většinovou funkcí, jejichž výsledek je zahozen. Obr. č.: 3 Schéma registrů (LFSR) proudové šifry A5/1 (Wikipedia, 2009) Krokování Krokování probíhá systémem start/stop na základě pravidla většiny. Každý registr má označen krokovací (clock) bit. Tento bit je na obrázku označen oranžově. V každém kroku je z těchto tří bitů vypočten většinový stav. Registr je posunut, pouze pokud hodnota krokovacího bitu je shodná s většinovým stavem. V každém kroku jsou tedy posouvány 2 nebo všechny 3 registry a každý registr je posouván s pravděpodobností 75%. (Wikipedia, 2009) Šifrování Po ukončení procesu krokování jsou z každého registru vyčteny nejvyšší bity. Tyto jsou pomocí funkce XOR sečteny a vytváří tak hodnotu klíče v daném kroku. Hodnota klíče je následně funkcí XOR sečtena s odpovídajícím bitem otevřeného textu, čímž vzniká text šifrový. Takto je vždy vyprodukována dvojice 114 bitů pro každý shluk, prvních 114 je použito pro downlink druhých 114 pro uplink. Algoritmus Comp128 Jak již bylo zmíněno výše, algoritmy A3 a A8 jsou obvykle implementovány prostřednictvím jediného algoritmu, kterým je právě Comp128. V GSM specifikaci je však algoritmus Comp128 zmíněn pouze jako příklad. Kód tohoto algoritmu nebyl, podobně jako v případě A5, zatím

89 Obsah 89 zveřejněn. V roce 1998 byl však za pomoci reverzního inženýrství sestaven Marcem Bricenem, Ianem Goldbergem a Davidem Wagnerem. Jak Comp128 funguje Vstupy: 16 Bytů náhodných hodnot (RAND) + 16 Bytů tajného klíče Výstup: 12 Bytů, z nichž 32 bitů je použito pro autentizaci a bitů je určeno pro inicializaci A5 Nejprve jsou náhodné číslo RAND a tajný klíč zřetězeny na vstupu. Tento vstup je následně 8 krát zahashován, čímž je jeho délka snížena z 32 bitů na 16 bitů. Výstup každého z hashování je následně ještě permutován a výsledek této permutace je použit jako nová náhodná hodnota RAND. Po osmém průchodu je výsledek hashovaní funkce výstupem celého algoritmu a není již permutován. (Südemeyer, 2006) Obr. č.: 4 Schéma algoritmu Comp128 (Südemeyer, 2006) Hashovací funkce sestává z 5 průchodů, v nichž je vždy 16 párů bytů nahrazeno viz Obr. č.: 5. Při každém průchodu je použit jiný S-box. První nahradí každé dva oktety dvěma oktety, druhý redukuje 2 oktety na dvojici sedmibitových hodnot. Třetí redukuje 16 párů sedmibitových hodnot na 16 párů šestibitových hodnot, a tak dále. Z toho vyplývá, že základním principem uvedené hashovaní funkce je tzv. butterfly structure, což znamená, že pozice dvou hodnot pole se vymění v průběhu redukce. Redukce se provádí pomocí pomocné hodnoty: y = (x[m] + 2 x[n]) (mod 29-j) z = (2 x[m] + x[n]) (mod 29-j) Následná komprese je vytvořena takto: x[m] = tablej[y] x[n] = tablej[z] Obr. č.: 5 Dvojice proměnných hashovací funkce (Südemeyer, 2006) V tomto okamžiku sestávají hodnoty x[ ] ze 4 bitů, nikoliv 8. Permutace probíhá po každém průchodu kromě posledního takto: 1. Spodní čtveřice bitů v každém poli x[ ] musí být interpretovány jako pole bitů. Po redukci jsou totiž 4 nejnižší bity nastaveny na Nová pozice každého bitu se pak najde takto:

90 90 Obsah bit[i] = bit [(17 i)(mod 128)] 3. Následně je pole bitů použito pro reinicializaci 4 nejvyšších bitů vstupu x[ ]. Byte x[i] je potom tvořen bity bit[i] až bit[i + 7], ale v opačném pořadí, takže nejvyšším bitem bytu[i] je bit[i]. (Südemeyer, 2006) Výstupem algoritmu Comp128 je tedy řetězec 128 bitů. Z těchto 128 bitů je prvních 32 bitů použito jako odpověď pro autentizaci a posledních 54 bitů je použito pro naplnění LFSR algoritmu A5. Z toho vyplývá, že zbývajících 10 bitů potřebných pro inicializaci A5 je nastaveno na 0. Útoky na šifru A5 Přibližně od poloviny devadesátých let je bezpečnost komunikace šifrované pomocí šifry A5 napadána. Postupem času byla prezentována řada možných útoků na tuto šifru. Většina prezentovaných útoků využívá především techniky time-memory-data tradeoff. Pro prolomení šifry ve velmi krátkém čase je použita extrémně rozsáhlá tabulka předvypočítaných stavů, jejíž tvorba je časově velmi náročná. Je však opakovaně použitelná. Pasivní útok pomocí předvypočítaných stavů Poprvé tento útok prezentoval Golič v roce Je založen na řešení velké matice lineárních rovnic a jeho složitost byla 240,16. Jednalo se o první předzvěst reálně proveditelných útoků. Jako pasivní je tento útok označován proto, že pouze dešifrují zachycenou komunikaci a nijak do procesu komunikace MS a BTS nezasahují. (Golič, 1997) V roce 2000 prezentovali Alex Biryukov, Adi Shamir a David Wagner útoky, pomocí nichž je možné šifru A5/1 prolomit v reálném čase na PC. Tyto útoky využívá metodu time-memorydata tradeoff. Útoky využívají drobné chyby ve struktuře registrů, jejich neinvertovatelném krokovacím mechanismu a častých resetech. Po 248 paralelizovatelných přípravných výpočtech, které musí být provedeny pouze jednou, mohou být skutečné útoky provedeny v reálném čase na jednom PC. První útok potřebuje výstup algoritmu A5/1 během prvních dvou minut konverzace a vypočítá klíč během přibližně jedné vteřiny. Druhý útok vyžaduje výstup A5/1 v délce přibližně dvou vteřin konverzace a vypočítá klíč během několika minut. Oba útoky jsou podobné, ale používají různé typy time-memory-data tradeoff. (Biryukov, a další, 2000) Tento typ útoku vyžaduje poměrně náročnou přípravnou fázi, ve které je vytvořena tabulka 235 stavů automatu A5/1. Autoři vymysleli techniku, díky níž je možné stavy kódovat za pomocí 40bitových řetězců. Pro uložení celé tabulky je tedy zapotřebí řádově stovek gigabytů v literatuře se uvádí GB. Tato fáze je velmi náročná i na čas, kvůli nutnosti provést 248 výpočetních operací pro naplnění tabulky. Jakmile je ale tento výpočet jednou proveden, lze celou tabulku opakovaně používat kdekoliv na světě nezávisle na operátorovi. O několik měsíců později prezentovali izraelští vědci Eli Biham a Orr Dunkelman vylepšení předchozího útoku. Útok je proveditelný tehdy dostupnou technologií. Pro útok je potřeba 239,91 kroků A5/1 a 220,8 bitů dat, což odpovídá přibližně 2,36 minutám hovoru. (Biham, a další, 2000) Různé typy útoků pomocí předvypočítaných stavů se liší především čtyřmi faktory: potřebná velikost zachycených šifrovaných dat, kapacita disku potřebná pro uložení předvypočítaných dat, výpočetní náročnost pro předvypočítaná data udávaná v počtu PC pro výpočet do 1 roku, doba výpočtu prolomení A5/1 na jednom PC. Všechny tyto údaje shrnuje následující tabulka: Obr. č.: 12 Výpočetní náročnost prolomení A5/1 (Crypto-World, 2008)

91 Obsah 91 Základní principy pasivních útoků Všechny zde prezentované pasivní typy útoků mají řadu společných myšlenek, z nichž ty klíčové zde uvedu. Goličův time-memory-data tradeoff Základním bodem nově vzniklých útoků je Goličův time-memory-data tradeoff prezentovaný v roce Tento útok je použitelný na jakýkoliv kryptologický systém s relativně malým množstvím vnitřních stavů, což perfekně odpovídá šifře A5/1 která má n = 264 stavů. Základem Goličovy myšlenky je mít velkou skupinu předvypočítaných stavů A na pevném disku a porovnávat jej se skupinou vnitřních stavů B, jimiž algoritmus prochází v průběhu tvorby výstupu. Jakýkoliv průnik mezi stavy A a B umožní identifikovat skutečný stav algoritmu. (Golič, 1997) Identifikace stavů na základě prefixů jejich výstupních sekvencí Každý stav definuje nekonečnou sekvenci výstupních bitů vytvořenou v okamžiku, kdy začneme algoritmus krokovat od tohoto stavu dále. V opačném směru jsou stavy obvykle unikátně identifikovatelné pomocí prvních log(n) bitů svých výstupních sekvencí. Díky tomu je možné hledat rovnosti mezi neznámými stavy pomocí porovnávání prefixů výstupních sekvencí. V přípravné fázi jsou pro skupinu stavů A vypočteny jejich prefixy výstupů a dvojice prefix, hodnota je uložena. Z výstupu skutečné A5/1 jsou následně extrahovány všechny prefixy, byť částečně se překrývající a jako B se označí jejich neznámé odpovídající stavy. Vyhledávání společných stavů pro A a B je efektivní, jestliže se prochází uspořádaná data A na pevném disku a hledají se shody s B. (Biryukov, a další, 2000) A5 je možné efektivně invertovat Golič zjistil, že přechodová funkce stavů v A5/1 není plně inertovatelná. Kontrola krokování podle pravidla většiny zajišťuje, že až 4 stavy mohou konvergovat do jednoho během jednoho kroku a některé stavy nemají předchůdce. Běh A5/1 je možné obrátit pomocí prohledávání stromu možných předchozích stavů a ze slepých konců se vracet pomocí backtrackingu. Průměrný počet předchůdců každého uzlu je 1, takže očekávané množství vrcholů v prvních k úrovních stromu roste lineárně vzhledem ke k. (Babbage, 1995) Jestliže tedy najdeme společný stav na disku a v datech, je možné získat malé množství možných počátečních stavů. Problémem je, že kvůli častým znovuinicializacím, existuje pouze velmi krátká cesta mezi středními a počátečními stavy. Klíč je možné získat z počátečního stavu každého TDMA rámce Jedná se o slabinu procesu ustavení klíče v A5/1. Předpokládejme, že známe stav A5/1 ihned potom, co byly použity klíč a číslo rámce, tedy před počátečními 100 kroky. Pomocí zpětného chodu je možné eliminovat známé číslo rámce a získat 64 lineárních kombinací 64 bitů klíče. Jelikož procházení stromu může vyústit v několik možných klíčů, je možné zvolit ten správný chodem A5/1 vpřed o více než 100 kroků a porovnat získané a vypočtené výsledky. (Biryukov, a další, 2000) Goličův útok na A5 je jen mírně nepraktický Díky narozeninovému paradoxu budou A a B mít společný stav jestliže jejich velikosti a b» n. Chceme, aby a odpovídalo velikosti dostupného pevného disku a aby b odpovídalo počtu přerývajících se prefixů v běžné telefonní konverzaci. Rozumné hodnoty jsou přibližně a» 235 a b» 222. Výsledkem je tedy n» 257 což je asi stokrát menší než potřebné 264. (Golič, 1997)Abychom dostali pravděpodobnost výskytu průniku na odpovídající úroveň, je zapotřebí buď navýšit velikost paměti ze 150 GB na 15 TB, nebo prodloužit konverzaci z 2 minut na 3 hodiny. Ani jeden z přístupů se nezdá být vhodný, ale vzhledem k růstu kapacity dostupných datových úložišť se jedná o drobný problém, který nebude problém odstranit.

92 92 Obsah Využití speciálních stavů Jelikož je přístup na pevný disk asi milionkrát pomalejší než jeden krok výpočtu je v případě time-memory-data tradeoff útoků zapotřebí minimalizovat počet přístupů na disk. Řešením je ponechat na disku pouze speciální stavy, které vytvářejí určitý vzorec a délky k a číst z disku pouze tehdy pokud narazíme na odpovídající prefix. Tímto je možné zredukovat počet přístupů na disk b přibližně 2k-krát. Hodnota a zůstává nezměněna, jelikož hodnoty n i b jsme vydělili 2k. Problémem ale zůstává, že je zapotřebí počítat 2k vícekrát v přípravné fázi. Jestliže bychom chtěli zmenšit počet přístupů na disk z 222 na 26, znamenalo by to, že by bylo potřeba zvýšit čas pro výpočet předvypočítaných stavů přibližně 64000krát. Tím by se ale stal jen těžko časově použitelným. (Biryukov, a další, 2000) Speciální stavy A5/1 je možné jednoduše vzorkovat Jedna z hlavních slabin šifry A5/1 je, že je jednoduché vytvořit všechny stavy, které vytvoří výstupní sekvence začínající určitým k-bitovým vzorcem a, kde k = 16, bez nutnosti použití metody pokus omyl. Je tomu tak kvůli špatnému výběru krokovacích bitů. Bity registru, které ovlivňují krokování a bity které ovlivňují výstup, jsou nezávislé po zhruba 16 krokovacích cyklů. Je tedy možné brát je nezávisle. Tento snadný přístup ke speciálním stavům se obvykle neděje v dobře navržených blokových šifrách, ale může nastat v proudových šifrách, které mají jednodušší přechodové funkce. Velikost k se podle pánů Alexe Biryuokova, Adi Shamira a Davida Wagnera nazývá vzorkovací odolnost. Vyšší k může mít poměrně podstatný dopad na efektivitu time-memory-data tradeoff útoků. Aktivní útoky Základní myšlenkou těchto typů útoku je, že všechny telefony umožňují komunikaci pomocí velmi slabé šifry A5/2. Tuto šifru je možné v současné době luštit v reálném čase. Telefony musejí umožnit i toto oslabené šifrování, aby je bylo možné použít i tam, kde není silnější varianta A5/2 k dispozici. Tyto man-in-the-middle útoky jsou postaveny na zařízení, které se tváří jako BTS a s MS se dohodne na šifrování pomocí slabší šifry A5/2. Dál do sítě ale šíří data šifrovaná podle typu dané sítě tedy buď A5/1 nebo i A5/3, případně i GPRS. Zjištění klíče Kc zabere přibližně jednu vteřinu a tento klíč je následně využit útočníkem k šifrování komunikace s legitimní sítí. Odehrávají se tedy celkem dvě spojení. Jedno mezi volajícím a útočníkem, šifrované slabou A5/2 a druhé mezi útočníkem a sítí šifrované silnou šifrou, ale s využitím klíče odcizeného z MS. Zpoždění komunikace o 1 vteřinu na jejím začátku, potřebné pro dešifrování klíče Kc nijak nevybočuje z normálu, protože podle specifikace má síť GSM až 12 vteřin na ustavení šifrované komunikace. První krok vývoje tohoto útoku je efektivní útok se znalostí otevřeného textu na A5/2, který získá klíč Kc pomocí řešení systému kvadratických funkcí. Druhým krokem je využití toho, že FEC je uskutečňována před šifrováním. Útok se známým textem je možné modifikovat na útok, který rozluští neznámý text právě díky znalosti systémů FEC. Třetím krokem je využití klíče pro A5/2 na dešifrování komunikace pomocí A5/1, A5/3 či GPRS. To je možné díky návrhu GSM, kdy je pro všechny typy uvedených typů komunikace použit stejný klíč. (Barkan, a další, 2006) Pomocí tohoto útoku je možné uskutečnit celou řadu scénářů. Mezi hlavní patří odposlouchávání hovorů, je ovšem možné hovory také unášet, tedy přijmout hovor místo volaného bez toho aby bylo poznat, že byl hovor přesměrován. Je rovněž možné měnit obsah zasílaných zpráv a dokonce i takzvané dynamické klonování, tedy možnost jak volat z čísla někoho jiného a na jeho účet. Útoky s využitím specifického hardwaru V srpnu 2008 uveřejnili pánové Timo Gendrullis, Martin Novotný a Andy Rupp způsob, jak reálně zaútočit na šifru A5. Veškeré předchozí útoky byly poměrně komplikované z důvodu potřeby značně rozsáhlých předvýpočtů případně komplikovaného provedení. Pro svůj systém se rozhodli použít útok typu guess and determine na speciálním paralelním dešifrovacím zařízení známém jako COPACOBANA (Cost-Optimized Parallel COde Breaker). Se znalostí pouze 64bitů výstupních dat je tento stroj schopen vypočítat odpovídajících 64 bitů vnitřního nastavení během průměrně 7 hodin, tento výkon se ještě podařilo

93 Obsah 93 vylepšit zhruba o 16%. (Gedrullis, a další, 2008) Využití zařízení COPACOBANA je velmi vhodné pro tento typ útoku, protože výpočet je možné paralelizovat a zároveň cena tohoto zařízení je přibližně $ Odkazy na použité zdroje a výukovou aplikaci Názornou aplikaci prezentující průběh šifry A5 (spustitelný soubor pro MS- Windows) lze stáhnout zde a. a foltynek/kas/mobily/sifra A5.exe Tato kapitola vznikla na základě diplomové práce Jakuba Kmínka 1. Kvantová kryptografie Kvantová kryptografie V dnešní době se používá pro bezpečnou komunikaci asymetrická kryptografie. Jde o silnou šifrovací metodu, která je v dnešní době s použitím současných technologií prakticky nerozlomitelná. Co když se ale objeví metody, které celou asymetrickou kryptografii učiní bezcennou? Kryptografové a kryptoanalytici spolu neustále svádí boj o to, kdo bude mít navrch. Hledají se nové metody jak pro šifrování tak pro lámání šifer. Nyní je pohled upřen na kvantovou mechaniku. Kvantová mechanika Počátek kvantové teorie je kladen do přelomu 19. a 20. století. Zakladatelem je Max Planck. Kvantová mechanika nahradila klasickou mechaniku na atomové a subatomární úrovni. Společně s teorií relativity tvoří pilíř moderní fyziky. Jméno pochází z myšlenky autora teorie, podle níž energie elektromagnetického záření je přenášena po nepatrných, ale konečně velkých, kvantech. Kvantová teorie má vliv na konstrukci mnoha zařízení. Bez ní by nevznikly polovodiče, jaderná energetika, uhlíková vlákna, CD přehrávače, diagnostické a léčebné metody využívající radiofarmak a zářičů. Kvantové počítače Jsou jednou z aplikací kvantové teorie. Průkopníkem kvantového počítání je David Deutsch, který v roce 1985 jako první popsal vizi kvantového počítače. Řeší klasické problémy nepoměrně rychleji než počítače klasické. Pracují s hodnotami ve vstupním registru paralelně. Problém je pak řešen s polynomiální a nikoliv exponenciální složitostí. Pracuje na principu superpozice (Schroedinger). V současné době jsou kvantové počítače teprve v plenkách. Jsou schopny pracovat s 10 qubity. Omezující jsou hranice současné techniky. Prozatím neexistují reálně použitelné aplikace. Firma IBM sestrojila jeden z prvních funkčních kvantových počítačů. Podařilo se faktorizovat číslo 15. Kvantová kryptografie Na počátku 80. let Charles Bennett a Gilles Brassard naznačili možnosti použití kvantové kryptografie. Definovali komunikační protokol využívající polarizace fotonů, označovaný jako BB84. Teorii se podařilo ověřit roku 1989, kdy Bennett a Brassard poslali první kvantovou zprávu pomocí vlastního zařízení na vzdálenost 32 centimetrů. Využívá Vernamovu šifru (zcela náhodný klíč stejné délky jako zpráva). Základem je přenos sekvence pomocí stavu částic fotonů. Používá se pro přenos (ustavení) šifrovacího klíče. Umožňuje z principu bezpečný přenos zprávy a odhalení případného odposlechu. 1 prace=1

94 94 Obsah Základní podstata světla Světlo má, podle současného stavu poznání, dvojí podstatu vlnovou a kvantovou. Některé projevy světla lze vysvětlit vlnovou teorií a jiné kvantovou teorií. Světlo je, mimo jiné, charakterizováno polarizací rovinou, ve které se šíří světelná vlna. [scale=0.5]{linear.pdf} Lineární polarizace světla Měření systému dává pouze pravděpodobnostní výsledky, obecně měření vede pokaždé k různým výsledkům. Měření mění stav systému. Princip kvantové kryptografie 1. Alice pošle Bobovi sérii fotonů a Bob je změří. 2. Alice sdělí Bobovi, které z nich změřil správně. Bob oznamuje pouze báze, nikoliv výsledky. 3. Měření, ve kterých se neshodli, jsou ignorována. 4. Následně Alice a Bob náhodně vyberou některé bity. Porovnají je a případně tak odhalí odposlouchávání. Tyto bity pak zahodí. 5. V případě odhalení odposlechu je celá sekvence zahozena a přejde se na jiný komunikační kanál. V případě úspěchu je ustaven komunikační klíč. Průběh ustavení klíče Jak lze odposlouchávat? Klasické rozdělení signálu není možné foton je ve své podstatě nedělitelný. Eva může použít stejné zařízení jako Alice a Bob, není však schopna správně určovat polarizační bázi (v průměru 50% chyb). Bezpečnost kvantové kryptografie Kvantová kryptografie je systém, který zaručuje bezpečnost zpráv tím, že maximálně ztěžuje Evě správné čtení komunikace mezi Alicí a Bobem. Navíc, v případě že se Eva pokouší naslouchat, mohou Alice a Bob zjistit její přítomnost. Eva se v 50% trefí do bází a v 50% se netrefí. Tj. asi 25% chyb v nepřetržitém odposlechu. Pokud se odposlouchává je pravděpodobnost

95 Obsah 95 neodhalení P = (1 0, 25) 100 při 100 přenesených bitech. RSA spoléhá na jednosměrné funkce a problém rychlé faktorizace. Bezpečnost tedy není fundamentální. Kvantová kryptografie však nemá toto omezení. Bezpečnost nezáleží na síle útočníka ani na technologické síle je absolutně bezpečná. Problémy kvantové kryptografie Je otázka, kdy budou k dispozici opravdu použitelné kvantové počítače. Za 50 nebo 100 let? Problém je vytvořit jeden foton s konstantní polarizací, spíše se pracuje s aproximací. Je problém i jeden foton detekovat. Lze určit, že na detektoru něco je nebo ne. Obtížně se však určuje množství. Při přenosu dochází k velkým ztrátám. Podaří se přenést tak osminu informace (počítáme-li i zahazování bitů). Funkční realizace Roku 1995 se podařilo vědcům z ženevské univerzity poslat zprávu kvantovým kanálem za použití optického vlákna na vzdálenost 20 km. Nedávno výzkumníci z Los Alamos ustavili nový rekord v komunikaci kvantovým kanálem zasláním zprávy na 48 km dlouhou vzdálenost. V současné době výzkumný tým Richarda Hughse pracuje na kvantové komunikaci vzduchem. Cílem je využít pro posílání zpráv satelity na oběžné dráze a propojit tak libovolná dvě místa na Zemi. Zájmová kryptografie Zájmová kryptografie V předcházejících kapitolách jsme se věnovali technologiím a algoritmům, které nacházely využití v minulostí, nachází jej v současnosti, anebo jej (možná) budou nacházet v budoucnosti. Vždy se však jednalo o praktické, řekněme komerční využití. V této kapitole se budeme věnovat aplikaci kryptologických poznatků při přípravě her pro dětii dospělé. Ukážeme si širší souvislosti kryptografie a steganografie, povíme si o rekreační matematice, o šifrovacích výzvých E.A. Poea a ukážeme si přehled šifrovacích her pro dospělé. Rekreančí matematika Rekreační matematika je část matematiky věnující se především její popularizaci prostřednictvím různých matematických hříček, hádanek a hlavolamů. Uveďme si několik slavných matematických hříček, které donutí luštitele zamyslet se nad předloženým problémem a pokud možno si i něco zapamatovat.

96 96 Obsah Paradox chybějící plochy Podívejte se na níže uvedený obrázek. Jak je možné, že ve spodním trojúhelníku, který je složen ze stejných částí a má stejné rozměry, jako horní trojúhelník, jeden čtvereček chybí? Alternativní úloha, v níž je použit stejný princip, je na vedlejším obrázku. Jak je možné, že ve čtverci skládajícím se ze stejných částí, je uprostřed díra?

97 Obsah 97 Obě úlohy využívají drobného optického klamu. Pokud se řešitel pozorně zadívá na zdánlivě rovné čáry, zjistí, že nejsou tak rovné, jak se na první pohled zdá. Problém sedmi mostů města Královce Z jiné kategorie je problém sedmi mostů města Královce, slavný problém, který vedl ke vzniku teorie grafů. Jedná se o kategorii neřešitelných úloh. Neřešitelnost je zde dokázaná, průměrný řešitel matematických hříček však s touto skutečností nemusí být seznámen. Ve městě Královci mají 7 mostů podle níže uvedeného obrázku. Jak naplánovat procházku tak, abychom se po každém mostě prošli právě jednou a skončili tam, odkud jsme vyšli? Různých matematických hříček je samozřejmě nepřeberné množství, výše uvedené jsou jen těmi nejtypičtějšími příklady. Šifrovací výzvy Zvláštní kategorií matematických hříček jsou tzv. šifrovací výzvy, které bychom také mohli nazvat kryptografickými hříčkami. Většinou se jedná o zašifrovaný text zveřejněný v nějakém časopise. Za vyluštění jee vypsána symbolická odměna. O tu zde však nejde, hlavním důvodem snažení je pro většinu luštitelů dobrý pocit z vyluštění, zvědavost a výzva. Autorem prvních šifrovacích výzev byl americký básník a spisovatel Edgar Alan Poe. Kromě literatury se zajímal také o šifrování. Vyval lidi, ať mu posílají šifry. Ty pak řešil a všechny je zveřejnil v knize společně s návodem na jejich luštění. Dvě, keré nevyluštil, pak zveřejnil bez návodu a vypsal na jejich vyluštění odměnu. Tyto šifry byly vyluštěny až po 150 letech - první v roce 1992 a druhá v roce Dodnes však zůstává tajemství, zda autorem těchto šifer nebyl sám Poe. Co je na šifrách tak lákavé? Především je to prvek tajemství, zvědavost. Každého zajímá, co je ve zprávě ukryto, a to i tehdy, pokud by mu výsledek nebyl k ničemu užitečný. Šifry jsou také vyzývavá překážka, v níž jde o to, dokázat sám sobě, že mám na rozluštění. Šifry jsou také logické hříčky, které jsou zábavné.

Úvod do teorie informace

Úvod do teorie informace PEF MZLU v Brně 24. září 2007 Úvod Výměna informací s okolím nám umožňuje udržovat vlastní existenci. Proces zpracování informací je trvalý, nepřetržitý, ale ovlivnitelný. Zabezpečení informací je spojeno

Více

Informace v počítači. Výpočetní technika I. Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně haluza@mendelu.cz

Informace v počítači. Výpočetní technika I. Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně haluza@mendelu.cz .. Informace v počítači Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně haluza@mendelu.cz Osnova přednášky Úvod do teorie informace základní pojmy měření množství informace ve zprávě přenos a kódování

Více

Osnova přednášky. Informace v počítači. Interpretace dat. Údaje, data. Úvod do teorie informace. Výpočetní technika I. Ochrana dat

Osnova přednášky. Informace v počítači. Interpretace dat. Údaje, data. Úvod do teorie informace. Výpočetní technika I. Ochrana dat Osnova přednášky 2/44 Informace v počítači Ing Pavel Haluza ústav informatiky PEF MENDELU v Brně haluza@mendelucz základní pojmy měření množství informace ve zprávě přenos a kódování dat parita kontrolní

Více

Kompresní algoritmy grafiky. Jan Janoušek F11125

Kompresní algoritmy grafiky. Jan Janoušek F11125 Kompresní algoritmy grafiky Jan Janoušek F11125 K čemu je komprese dobrá? Pokud je třeba skladovat datově náročné soubory. Např. pro záznam obrazu, hudby a hlavně videa je třeba skladovat překvapivě mnoho

Více

Komprese dat (Komprimace dat)

Komprese dat (Komprimace dat) Komprese dat (Komprimace dat) Př.: zakódovat slovo ARARAUNA K K 2 četnost absolutní relativní A 4,5 N,25 R 2,25 U,25 kód K : kód K 2 :... 6 bitů... 4 bitů prefixový kód: žádné kódové slovo není prefixem

Více

KOMPRESE OBRAZŮ. Václav Hlaváč, Jan Kybic. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání.

KOMPRESE OBRAZŮ. Václav Hlaváč, Jan Kybic. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání. 1/25 KOMPRESE OBRAZŮ Václav Hlaváč, Jan Kybic Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání hlavac@fel.cvut.cz http://cmp.felk.cvut.cz/ hlavac KOMPRESE OBRAZŮ, ÚVOD

Více

KOMPRESE OBRAZŮ. Václav Hlaváč. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání. hlavac@fel.cvut.

KOMPRESE OBRAZŮ. Václav Hlaváč. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání. hlavac@fel.cvut. 1/24 KOMPRESE OBRAZŮ Václav Hlaváč Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání hlavac@fel.cvut.cz http://cmp.felk.cvut.cz/ hlavac KOMPRESE OBRAZŮ, ÚVOD 2/24 Cíl:

Více

Komprese dat Obsah. Komprese videa. Radim Farana. Podklady pro výuku. Komprese videa a zvuku. Komprese MPEG. Komprese MP3.

Komprese dat Obsah. Komprese videa. Radim Farana. Podklady pro výuku. Komprese videa a zvuku. Komprese MPEG. Komprese MP3. Komprese dat Radim Farana Podklady pro výuku Obsah Komprese videa a zvuku. Komprese MPEG. Komprese MP3. Komprese videa Velký objem přenášených dat Typický televizní signál - běžná evropská norma pracuje

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

[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

aneb jak se to tam všechno vejde?

aneb jak se to tam všechno vejde? 768 576 KOMPRIMACE aneb jak se to tam všechno vejde? Položme si hned na začátku zdánlivě nepodstatnou otázku: Kolik místa zabere dvouhodinový film na CD nebo DVD? Uvažujme následující příklad: rozlišení

Více

Informační systémy ve zdravotnictví

Informační systémy ve zdravotnictví Informační systémy ve zdravotnictví ZS 2008/2009 Zoltán Szabó Tel.: (+420) 312 608 207 E-mail: szabo@fbmi.cvut.cz č.dv.: 504, 5.p Dnešní přednáška Kódování, komprese 2 1 Komprese dat Cíl komprese: redukovat

Více

KOMPRIMACE. aneb Aby to zabralo méně místa

KOMPRIMACE. aneb Aby to zabralo méně místa KOMPRIMACE aneb Aby to zabralo méně místa Komprimace nebo také komprese je jednoduše řečeno sbalení či spakování dat na mnohem menší velikost. Ve skutečnosti se jedná o vypuštění nadbytečné informace takovým

Více

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

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

Více

III/ 2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/ 2 Inovace a zkvalitnění výuky prostřednictvím ICT Metodický list k didaktickému materiálu Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět

Více

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky Komprese dat Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI přednášky Slovníkové metody Jan Outrata (Univerzita Palackého v Olomouci) Komprese dat Olomouc, únor březen 2016 1 / 23 Slovníkové

Více

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

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

Více

STRUKTURA RASTROVÝCH DAT

STRUKTURA RASTROVÝCH DAT STRUKTURA RASTROVÝCH DAT dva typy rastrové vrstvy v GIS 1) Digitální obraz TV, počítač, mobil - obrazovka obraz z bodů mapa - mřížka s barevnými plochami 2) Rastrová data data pro analýzu a) binární -

Více

TECHNICKÁ UNIVERZITA V LIBERCI

TECHNICKÁ UNIVERZITA V LIBERCI TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky a mezioborových inženýrských studií Komprese měřených dat v 0.1 Liberec 2007 Viktor Bubla Obsah 1 Proč komprimace? 2 2 Filosofie základních komprimačních

Více

1. Základy teorie přenosu informací

1. Základy teorie přenosu informací 1. Základy teorie přenosu informací Úvodem citát o pojmu informace Informace je název pro obsah toho, co se vymění s vnějším světem, když se mu přizpůsobujeme a působíme na něj svým přizpůsobováním. N.

Více

Matematické základy šifrování a kódování

Matematické základy šifrování a kódování Matematické základy šifrování a kódování Permutace Pojem permutace patří mezi základní pojmy a nachází uplatnění v mnoha oblastech, např. kombinatorice, algebře apod. Definice Nechť je n-prvková množina.

Více

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky Komprese dat Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI přednášky Statistické metody Jan Outrata (Univerzita Palackého v Olomouci) Komprese dat Olomouc, únor březen 2016 1 / 23 Tunstallův

Více

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

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

Více

ZÁPADOČESKÁ UNIVERZITA V PLZNI

ZÁPADOČESKÁ UNIVERZITA V PLZNI ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA PEDAGOGICKÁ KATEDRA VÝPOČETNÍ A DIDAKTICKÉ TECHNIKY KOMPONENTY PRO VÝUKOVÝ ELEKTRONICKÝ MATERIÁL - KOMPRESE V OBLASTI POČÍTAČŮ BAKALÁŘSKÁ PRÁCE Lukáš Smutný Přírodovědná

Více

Identifikátor materiálu: ICT-1-19

Identifikátor materiálu: ICT-1-19 Identifikátor materiálu: ICT-1-19 Předmět Informační a komunikační technologie Téma materiálu Komprimace, archivace dat Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí komprimaci, archivaci

Více

Kompresní techniky. David Bařina. 15. února David Bařina Kompresní techniky 15. února / 37

Kompresní techniky. David Bařina. 15. února David Bařina Kompresní techniky 15. února / 37 Kompresní techniky David Bařina 15. února 2013 David Bařina Kompresní techniky 15. února 2013 1 / 37 Obsah 1 Pojmy 2 Jednoduché techniky 3 Entropická kódování 4 Slovníkové metody 5 Závěr David Bařina Kompresní

Více

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

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

Více

Datové formáty videa a jejich využití. Tomáš Kvapil, Filip Le Manažerská informatika Multimédia

Datové formáty videa a jejich využití. Tomáš Kvapil, Filip Le Manažerská informatika Multimédia Datové formáty videa a jejich využití Tomáš Kvapil, Filip Le Manažerská informatika Multimédia 8.12.2016 Obsah Vlastnosti videa Kontejnery Kodeky Vlastnosti videa Snímková frekvence Datový tok Prokládání

Více

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

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

Více

25. DIGITÁLNÍ TELEVIZNÍ SIGNÁL A KABELOVÁ TELEVIZE

25. DIGITÁLNÍ TELEVIZNÍ SIGNÁL A KABELOVÁ TELEVIZE 25. DIGITÁLNÍ TELEVIZNÍ SIGNÁL A KABELOVÁ TELEVIZE Digitalizace obrazu a komprese dat. Uveďte bitovou rychlost nekomprimovaného číslicového TV signálu a jakou šířku vysílacího pásma by s dolním částečně

Více

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

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

Více

Kosinová transformace 36ACS

Kosinová transformace 36ACS Kosinová transformace 36ACS 10. listopadu 2006 Martin BruXy Bruchanov bruxy@regnet.cz Uplatnění diskrétní kosinové transformace Úkolem transformačního kódování je převést hodnoty vzájemně závislých vzorků

Více

Technická kybernetika. Obsah. Principy zobrazení, sběru a uchování dat. Měřicí řetězec. Principy zobrazení, sběru a uchování dat

Technická kybernetika. Obsah. Principy zobrazení, sběru a uchování dat. Měřicí řetězec. Principy zobrazení, sběru a uchování dat Akademický rok 2016/2017 Připravil: Radim Farana Technická kybernetika Principy zobrazení, sběru a uchování dat 2 Obsah Principy zobrazení, sběru a uchování dat strana 3 Snímač Měřicí řetězec Měřicí obvod

Více

Teorie informace 21.9.2014. Obsah. Kybernetika. Radim Farana Podklady pro výuku

Teorie informace 21.9.2014. Obsah. Kybernetika. Radim Farana Podklady pro výuku Teorie Radim Farana Podklady pro výuku Obsah Seznámení s problematikou a obsahem studovaného předmětu. Základní pojmy z Teorie, jednotka, informační obsah zprávy, střední délka zprávy, redundance. Kód.

Více

Formáty uložení dat Výpočetní technika I

Formáty uložení dat Výpočetní technika I .. Výpočetní technika I Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně pavel.haluza@mendelu.cz Osnova přednášky otevřený a uzavřený formát rozpoznávání formátu asociace a konverze komprimační metody

Více

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP Kódy pro odstranění redundance, pro zabezpečení proti chybám Demonstrační cvičení 5 INP Princip kódování, pojmy Tady potřebujeme informaci zabezpečit, utajit apod. zpráva 000 111 000 0 1 0... kodér dekodér

Více

Základní komunikační řetězec

Základní komunikační řetězec STŘEDNÍ PRŮMYSLOVÁ ŠKOLA NA PROSEKU EVROPSKÝ SOCIÁLNÍ FOND Základní komunikační řetězec PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Podpora kvality výuky informačních a telekomunikačních technologií ITTEL

Více

Osnova přednášky. Formáty uložení dat. Vyjádření hodnot datového typu. Vyjádření hodnot datového typu. Datové formáty. Výpočetní technika I

Osnova přednášky. Formáty uložení dat. Vyjádření hodnot datového typu. Vyjádření hodnot datového typu. Datové formáty. Výpočetní technika I Osnova přednášky 2/36 Formáty uložení dat Ing Pavel Haluza ústav informatiky PEF MENDELU v Brně haluza@mendelucz vyjádření hodnot datového typu formátová specifikace textový a binární formát otevřený a

Více

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

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

Více

Samoopravné kódy. Katedra matematiky a Institut teoretické informatiky Západočeská univerzita

Samoopravné kódy. Katedra matematiky a Institut teoretické informatiky Západočeská univerzita Katedra matematiky a Institut teoretické informatiky Západočeská univerzita Seminář pro učitele středních a vysokých škol, Plzeň, 30. března 2012 jsou všude Některé oblasti využití: CD přehrávače mobilní

Více

Webové stránky. 16. Obrázky na webových stránkách, optimalizace GIF. Datum vytvoření: 12. 1. 2013. str ánk y. Vytvořil: Petr Lerch. www.isspolygr.

Webové stránky. 16. Obrázky na webových stránkách, optimalizace GIF. Datum vytvoření: 12. 1. 2013. str ánk y. Vytvořil: Petr Lerch. www.isspolygr. Webové stránky 16. Vytvořil: Petr Lerch www.isspolygr.cz Datum vytvoření: 12. 1. 2013 Webové Strana: 1/6 Škola Ročník Název projektu Číslo projektu Číslo a název šablony Autor Tématická oblast Název DUM

Více

Informace, kódování, data. Dušan Saiko, FD ČVUT, K620 pro předmět Telematika

Informace, kódování, data. Dušan Saiko, FD ČVUT, K620 pro předmět Telematika Informace, kódování, data Dušan Saiko, FD ČVUT, K620 pro předmět Telematika 16.03.2010 saiko@lss.fd.cvut.cz Představení Subjeku základ práce každého informatika zajímavé technické i filozofické poznatky

Více

13 Barvy a úpravy rastrového

13 Barvy a úpravy rastrového 13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody

Více

Teorie informace Obsah. Kybernetika. Radim Farana Podklady pro výuku

Teorie informace Obsah. Kybernetika. Radim Farana Podklady pro výuku Teorie Radim Farana Podklady pro výuku Obsah Seznámení s problematikou a obsahem studovaného předmětu. Základní pojmy z Teorie, jednotka, informační obsah zprávy, střední délka zprávy, redundance. Kód.

Více

Algoritmy komprese dat

Algoritmy komprese dat Algoritmy komprese dat Slovníkové metody Phillip Walter Katz (1962-2000) 2.12.2015 NSWI072-10 Slovníkové metody komprese dat Idea opakující se fráze uloženy do slovníku výskyty fráze v textu ukazatel do

Více

Základní pojmy. Multimédia. Multimédia a interaktivita

Základní pojmy. Multimédia. Multimédia a interaktivita Základní pojmy Multimédia Jedná se o sloučení pohyblivého obrazu, přinejmenším v televizní kvalitě, s vysokou kvalitou zvuku a počítačem, jako řídícím systémem. Jako multimediální systém se označuje souhrn

Více

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

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

Více

Ukázkyaplikacímatematiky

Ukázkyaplikacímatematiky Ukázkyaplikacímatematiky Jiří Tůma 2015 http://www.karlin.mff.cuni.cz/ tuma/aplikace15.htm tuma@karlin.mff.cuni.cz 0-1 Kapitola1 Úvod do šifrování 1-1 Základní pojmy- obsah Základnípojmy Ceasarova šifra

Více

Ukázky aplikací matematiky. Kapitola 1. Jiří Tůma. Úvod do šifrování. Základní pojmy- obsah. Historie šifrování

Ukázky aplikací matematiky. Kapitola 1. Jiří Tůma. Úvod do šifrování. Základní pojmy- obsah. Historie šifrování Ukázky aplikací matematiky Jiří Tůma 2015 http://www.karlin.mff.cuni.cz/ tuma/aplikace15.htm tuma@karlin.mff.cuni.cz Kapitola 1 0-1 1-1 Základní pojmy- obsah Historie šifrování Základnípojmy Ceasarova

Více

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

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

Více

Základy algoritmizace. Pattern matching

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

Více

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

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

Projekt z předmětu Kryptografie a počítačová bezpečnost

Projekt z předmětu Kryptografie a počítačová bezpečnost Projekt z předmětu Téma: Prefixové kódy VŠB-TU Ostrava:Fakulta Elektrotechniky a informatiky březen 2 Martin Dočkal doc68 dockal.martin@gmail.com Obsah Obsah... 2 2 Abstrakt... 2 3 Klíčová slova... 2 4

Více

13. cvičení z PSI ledna 2017

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

Více

12 Metody snižování barevného prostoru

12 Metody snižování barevného prostoru 12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů

Více

kryptosystémy obecně další zajímavé substituční šifry klíčové hospodářství kryptografická pravidla Hillova šifra Vernamova šifra Knižní šifra

kryptosystémy obecně další zajímavé substituční šifry klíčové hospodářství kryptografická pravidla Hillova šifra Vernamova šifra Knižní šifra kryptosystémy obecně klíčové hospodářství klíč K, prostor klíčů T K kryptografická pravidla další zajímavé substituční šifry Hillova šifra Vernamova šifra Knižní šifra klíč K různě dlouhá posloupnost znaků

Více

a se nazývá aritmetická právě tehdy, když existuje takové číslo d R

a se nazývá aritmetická právě tehdy, když existuje takové číslo d R Předmět: Ročník: Vytvořil: Datum: MATEMATIKA TŘETÍ Mgr. Tomáš MAŇÁK. březen 014 Název zpracovaného celku: ARITMETICKÁ POSLOUPNOST A JEJÍ UŽITÍ ARITMETICKÁ POSLOUPNOST Teorie: Posloupnost každé ( ) n n1

Více

Statistická teorie učení

Statistická teorie učení Statistická teorie učení Petr Havel Marek Myslivec přednáška z 9. týdne 1 Úvod Představme si situaci výrobce a zákazníka, který si u výrobce objednal algoritmus rozpoznávání. Zákazník dodal experimentální

Více

VIDEO DATOVÉ FORMÁTY, JEJICH SPECIFIKACE A MOŽNOSTI VYUŽITÍ SMOLOVÁ BÁRA

VIDEO DATOVÉ FORMÁTY, JEJICH SPECIFIKACE A MOŽNOSTI VYUŽITÍ SMOLOVÁ BÁRA VIDEO DATOVÉ FORMÁTY, JEJICH SPECIFIKACE A MOŽNOSTI VYUŽITÍ SMOLOVÁ BÁRA 18.12.2017 OBSAH VLASTNOSTI VIDEA Snímková frekvence Rozlišení Prokládání Poměr stran Komprese Datový tok ANALOGOVÉ FORMÁTY KONTEJNERY

Více

63. ročník Matematické olympiády 2013/2014

63. ročník Matematické olympiády 2013/2014 63. ročník Matematické olympiády 2013/2014 Úlohy ústředního kola kategorie P 2. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Při soutěži je zakázáno používat jakékoliv pomůcky kromě psacích

Více

Webové stránky. 6. Grafické formáty pro web. Datum vytvoření: 11. 10. 2012. str ánk y. Vytvořil: Petr Lerch. www.isspolygr.cz

Webové stránky. 6. Grafické formáty pro web. Datum vytvoření: 11. 10. 2012. str ánk y. Vytvořil: Petr Lerch. www.isspolygr.cz Webové stránky 6. Vytvořil: Petr Lerch www.isspolygr.cz Datum vytvoření: 11. 10. 2012 Webové Strana: 1/6 Škola Ročník Název projektu Číslo projektu Číslo a název šablony Autor Tématická oblast Název DUM

Více

Komprese videa Praha 2010 Účel komprese Snížení zátěže přenosového média Zmenšení objemu dat pro uložení Metody komprese obrazu Redundance Irelevance Redundantní složka část informace, po jejíž odstranění

Více

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová Základy informatiky Teorie grafů Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová Obsah přednášky Barvení mapy Teorie grafů Definice Uzly a hrany Typy grafů Cesty, cykly, souvislost grafů Barvení mapy

Více

Konverze grafických rastrových formátů

Konverze grafických rastrových formátů ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ OBOR GEODÉZIE A KARTOGRAFIE KATEDRA MAPOVÁNÍ A KARTOGRAFIE Konverze grafických rastrových formátů semestrální práce Jakub Hořejší Ondřej Šalanda V

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

BPC2E_C09 Model komunikačního systému v Matlabu

BPC2E_C09 Model komunikačního systému v Matlabu BPCE_C9 Model komunikačního systému v Matlabu Cílem cvičení je vyzkoušet si sestavit skripty v Matlabu pro model jednoduchého komunikačního systému pro přenos obrázků. Úloha A. Sestavte model komunikačního

Více

CVIČNÝ TEST 37. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 5 III. Klíč 13 IV. Záznamový list 15

CVIČNÝ TEST 37. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 5 III. Klíč 13 IV. Záznamový list 15 CVIČNÝ TEST 37 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 5 III. Klíč 13 IV. Záznamový list 15 I. CVIČNÝ TEST VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 Na staré hliněné desce je namalován čtverec

Více

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Kybernetika

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Kybernetika 2 Podklady předmětu pro akademický rok 2013/2014 Radim Farana Obsah Základní pojmy z Teorie informace, jednotka informace, informační obsah zprávy, střední délka zprávy, redundance. Přenosový řetězec.

Více

7. Rozdělení pravděpodobnosti ve statistice

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

Více

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

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

Více

Fz =a z + a z +...+a z +a z =

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ž

Více

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

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

Více

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

12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ

12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ 56 12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ Těžiště I. impulsová věta - věta o pohybu těžiště II. impulsová věta Zákony zachování v izolované soustavě hmotných bodů Náhrada pohybu skutečných objektů pohybem

Více

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

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

Více

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

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

Více

7. Funkce jedné reálné proměnné, základní pojmy

7. Funkce jedné reálné proměnné, základní pojmy , základní pojmy POJEM FUNKCE JEDNÉ PROMĚNNÉ Reálná funkce f jedné reálné proměnné je funkce (zobrazení) f: X Y, kde X, Y R. Jde o zvláštní případ obecného pojmu funkce definovaného v přednášce. Poznámka:

Více

Multimediální systémy. 03 Počítačová 2d grafika

Multimediální systémy. 03 Počítačová 2d grafika Multimediální systémy 03 Počítačová 2d grafika Michal Kačmařík Institut geoinformatiky, VŠB-TUO Osnova přednášky Rastrová počítačová grafika Metody komprese obrazu Rastrové formáty Vektorová grafika Křivky

Více

Informatika Kódování. Obsah. Kód. Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008

Informatika Kódování. Obsah. Kód. Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008 Informatika Kódování Radim Farana Podklady předmětu Informatika pro akademický rok 27/28 Obsah Základy pojmy diskrétních kódů. Druhy kódů. Nejkratší kódy. Detekce chyb, Hammingova vdálenost. Kontrolní

Více

Základy šifrování a kódová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í

Více

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

Zadání druhého zápočtového projektu Základy algoritmizace, 2005 Zadání druhého zápočtového projektu Základy algoritmizace, 2005 Jiří Dvorský 2 května 2006 Obecné pokyny Celkem je k dispozici 8 zadání příkladů Každý student obdrží jedno zadání Vzhledem k tomu, že odpadly

Více

PSK2-5. Kanálové kódování. Chyby

PSK2-5. Kanálové kódování. Chyby PSK2-5 Název školy: Autor: Anotace: Vzdělávací oblast: Předmět: Tematická oblast: Výsledky vzdělávání: Klíčová slova: Druh učebního materiálu: Typ vzdělávání: Ověřeno: Zdroj: Vyšší odborná škola a Střední

Více

Algoritmus pro generování normálních magických čtverců

Algoritmus pro generování normálních magických čtverců 1.1 Úvod Algoritmus pro generování normálních magických čtverců Naprogramoval jsem v Matlabu funkci, která dokáže vypočítat magický čtverec libovolného přípustného rozměru. Za pomocí tří algoritmů, které

Více

Informace, kódování a redundance

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

Více

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 15 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Je dána čtvercová mřížka, v níž každý čtverec má délku

Více

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004. Prostá regresní a korelační analýza 1 1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004. Problematika závislosti V podstatě lze rozlišovat mezi závislostí nepodstatnou, čili náhodnou

Více

Kódování a Šifrování. Iveta Nastoupilová

Kódování a Šifrování. Iveta Nastoupilová Kódování a Šifrování Iveta Nastoupilová 12.11.2007 Kódování Přeměna, transformace, šifrování signálů Převádění informace z jednoho systému do jiného systému znaků Kódování Úzce souvisí s procesem komunikace

Více

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

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

Více

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

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

Více

Zpracování náhodného výběru. Ing. Michal Dorda, Ph.D.

Zpracování náhodného výběru. Ing. Michal Dorda, Ph.D. Zpracování náhodného výběru popisná statistika Ing. Michal Dorda, Ph.D. Základní pojmy Úkolem statistiky je na základě vlastností výběrového souboru usuzovat o vlastnostech celé populace. Populace(základní

Více

EU-OPVK: VY_32_INOVACE_FIL12 Vojtěch Filip, 2014

EU-OPVK: VY_32_INOVACE_FIL12 Vojtěch Filip, 2014 Číslo projektu CZ.1.07/1.5.00/34.0036 Tématický celek Inovace výuky ICT na BPA Název projektu Inovace a individualizace výuky Název materiálu Komprese a archivace dat Číslo materiálu VY_32_INOVACE_FIL12

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

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_01_RAR_P1 Číslo projektu: CZ 1.07/1.5.00/34.1077

Více

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

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

Více

Základní jednotky používané ve výpočetní technice

Základní jednotky používané ve výpočetní technice Základní jednotky používané ve výpočetní technice Nejmenší jednotkou informace je bit [b], který může nabývat pouze dvou hodnot 1/0 (ano/ne, true/false). Tato jednotka není dostatečná pro praktické použití,

Více

Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča

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

Více

CVIČNÝ TEST 48. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 48. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 48 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 Je dán konvexní čtyřúhelník, jehož vnitřní

Více

Čas potřebný k prostudování učiva kapitoly: 1,25 hodiny

Čas potřebný k prostudování učiva kapitoly: 1,25 hodiny Fyzikální praktikum III 15 3. PROTOKOL O MĚŘENÍ V této kapitole se dozvíte: jak má vypadat a jaké náležitosti má splňovat protokol o měření; jak stanovit chybu měřené veličiny; jak vyhodnotit úspěšnost

Více