Výuková demonstrace digitální steganografie

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

Download "Výuková demonstrace digitální steganografie"

Transkript

1 Výuková demonstrace digitální steganografie Prostudujte problematiku digitální steganografie. Porovnejte vybrané programy pro steganografické vkládání informace do obrazových nosičů. Rozšiřte program Steghide o grafické uživatelské prostředí takovým způsobem, aby názorně prezentoval postup vkládání. Dále implementujte odhad steganografické kapacity obrazového nosiče.

2

3 České vysoké učení technické v Praze Fakulta informačních technologií Katedra Počítačových systémů Bakalářská práce Výuková demonstrace digitální steganografie Marek Bartík Vedoucí práce: Ing. Jiří Buček 17. května 2013

4

5 Poděkování Na tomto místě bych rád poděkoval Ing. Jiřímu Bučkovi za pomoc a věcné připomínky k této práci. Dále bych rád poděkoval přítelkyni a rodině za podporu při průběhu celého studia. Na závěr děkuji všem, kteří byli ochotni aplikaci testovat nebo mi jinak pomohli při tvorbě této práce.

6

7 Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle 60 odst. 1 autorského zákona. V Praze dne 17. května

8 České vysoké učení technické v Praze Fakulta informačních technologií c 2013 Marek Bartík. Všechna práva vyhrazena. Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora. Odkaz na tuto práci Bartík, Marek. Výuková demonstrace digitální steganografie. Bakalářská práce. Praha: České vysoké učení technické v Praze, Fakulta informačních technologií, 2013.

9 Abstract The main goal of this bachelor s thesis is to design and implement graphical user interface for steganography tool Steghide. Application will clearly demonstrate the embedding process and can be used as learning application. Thesis briefly describe theory of steganography, steganalysis and data hiding in general. Thesis also describe analysis of available steganography tools. Keywords steganography, steganalysis, data hiding, Steghide Abstrakt Hlavním cílem této práce je navrhnout a implementovat grafické uživatelské rozhraní pro steganografický nástroj Steghide. Aplikace bude názorně demonstrovat proces vkládání informací a může sloužit jako výuková aplikace. Práce stručně popisuje problematiku steganografie, steganalýzy a obecně problematiku ukrývání informací. Součástí práce je i analýza současných steganografických nástrojů. Klíčová slova steganografie, steganalýza, ukrývání informací, Steghide ix

10

11 Obsah Úvod 1 1 Teorie problematiky Rozdělení a terminologie Steganografie Značení copyrightu Druhy stegosystémů a nejznámější metody ukrývání Možnosti vnímání člověka Příklady nosičů a možnosti skrývání Steganalýza Shrnutí Analýza současných nástrojů Podpora nosičů Dostupné steganalytické nástroje Dostupné steganografické nástroje Shrnutí Analýza a návrh řešení Rychlost a paměť Programovací jazyk Knihovny pro práci s GUI Funkční požadavky Spojení dvou projektů Shrnutí Implementace a testování 47 xi

12 4.1 Jeden projekt Lokalizace Rozložení GUI Funkčnost Testování Nápady na další vylepšení aplikace Shrnutí Závěr 53 Literatura 55 A Instalační příručka 59 B Hlavní okno 61 C Demonstrace vkládání 63 D Seznam použitých zkratek 65 E Obsah přiloženého CD 67 xii

13 Seznam obrázků 1.1 Ukrývání informací rozdělení Vizuální reprezentace barvy 0xf335de Vizuální zobrazení 64 podobných barev Vizuální reprezentace barev 0xf034dc a 0xf337df Matice DCT koeficientů Opticklý klam - krychle Data ukrytá v obrázku s rozdílným jasem Hlavička TCP segmentu Hlavička IPv4 paketu Úspěšný vizuální útok StirMark útok Barvy pixelů vzniklé metodou Adjust Kapacita nosiče Překročená kapacita nosiče B.1 Hlavní okno aplikace na záložce Vlož B.2 Hlavní okno aplikace na záložce Extrahuj C.1 Demonstrace vkládacího procesu okno Prohlédnutí C.2 Prohlížeč obrázků Barevný pixelový rozdíl nosiče a stegogramu 64 C.3 Prohlížeč obrázků Černý pixelový rozdíl nosiče a stegogramu. 64 xiii

14

15 Seznam tabulek 2.1 Steganografické nástroje podpora obrázkových formátů xv

16

17 Úvod V dnešní době internetu a výkonného hardware je stále těžší a těžší tajně komunikovat. Kryptografie se snaží zamezit přečtení tajné komunikace třetí stranou, neřeší však utajení existence takové komunikace. Tento problém řeší věda zvaná steganografie. V rámci fakulty se vyučuje několik předmětů zabývajících se především kryptografií, žádný se však blíže nezabývá steganografií. Tato práce má za úkol navrhnout a implementovat výukovou aplikaci, která bude názorně demonstrovat proces ukrývání tajných dat pomocí steganografických metod, čímž by měla pomoci výuce steganografie na naší fakultě. Práce se nezabývá vymýšlením nových metod ukrývání, steganalytických útoků ani si neklade za cíl hledat nové druhy nosičů. Jako jádro aplikace implemetované v této práci byl zadán program Steghide. Tento program je velice pokročilý steganografický nástroj, který ale nemá grafické uživatelské rozhraní a nedemonstruje názorně svůj proces vkládání. Náplní této práce je daný program rozšířit o grafické uživatelské rozhraní, názornou demonstraci procesu vkládání a několik dalších funkčností, jako je počítání steganografické kapacity, zadávání do vstupního pole apod. V první části bude uvedena teorie problematiky ukrývání informací, která je nutná ke správné analýze a návrhu řešení výsledku této práce. V následující části budou analyzovány současné steganografické nástroje a shrnutí jejich předností a nedostatků. V další části bude provedena analýza a návrh možných řešení funčkností a požadavků výsledné aplikace. V poslední části bude zmíněn postup použitý při implementaci a testování aplikace. Součástí práce je příloha s instalační příručkou, programátorská dokumentace a obrázky z výsledné aplikace. 1

18 Úvod Tato práce bude zaměřena na obrázkové nosiče, především z důvodu nejsnazší prezentace výsledků v pdf formátu i papírové formě. 2

19 Kapitola 1 Teorie problematiky Tato kapitola se postupně věnuje rozdělení disciplín zabývajících se ukrýváním informací (viz 1.1 str. 3), dále steganografií (viz 1.2 str. 4) a značením copyrightu (viz 1.3 str. 5). Dále popisuje známé stegosystémy algoritmy k ukrývání informací a jejich rozdělení (viz 1.4 str. 7). Další částí je zkoumání možností lidských smyslů a využití těchto poznatků v ukrývání informací (viz 1.5 str. 14). Poté je popsáno několik vybraných nejvhodnějších druhů nosičů, jejich vlastnosti a využití k ukrývání tajných zpráv (viz 1.6 str. 17). Dále je stručně rozebrána steganalýza a útoky na stegogramy (viz 1.7 str. 23). Nakonec je celá kapitola shrnuta (viz 1.8 str. 26). 1.1 Rozdělení a terminologie Obrázek 1.1 zobrazuje rozdělení podle způsobu ukrývání informací. Ukrývanou zprávou se rozumí data, která se ukrývají před třetí stranou. Původní soubor, jež je využit pro přenos ukrývané zprávy, se nazývá nosič. Druhů nosičů existuje celá řada, podrobněji bude popsáno později (viz 1.6 str. 17). Pojmem stegogram se rozumí taková instance nosiče, která obsahuje ukrývanou zprávu. Pojmem stegosystém se rozumí algoritmus použitý k zakódování ukrývané zprávy do nosiče. Maximální kapacita, kterou lze v daném nosiči daným stegosystémem využít, se nazývá steganografická kapacita. Robustností stegogramu se v této práci rozumí odolnost proti běžným změnám (poškození dat v přenosovém kanále, kompresi, ořezu či aplikaci nejrůznějších filtrů) i cíleným steganalytickým útokům (viz. 1.7 str. 23). 3

20 1. Teorie problematiky Ukrývání informací Skryté kanály Steganografie Anonymita Značení copyrightu Lingvistická steganografie Technická steganografie Robustní značení copyrightu Křehké vodoznaky Fingerprinting Vodoznaky Neviditelné vodoznaky Viditelné vodoznaky Obrázek 1.1: Rozdělení ukrývání informací podle [35]. Přeloženo z angličtiny. 1.2 Steganografie Pojem steganografie pochází z řeckých slov steganos (ukrytý) a graphia (psát), doslova přeloženo jako ukryté psaní. Kryptografie znamená tajné psaní [3] [33]. Rozdíl je patrný už z původu slov zatímco kryptografie řeší pouze zamezení přečtění dané zprávy, steganografie se snaží zamezit zjištění existence takové zprávy. Hlavním smyslem steganografie je nastavit tajnou komunikaci mezi dvěma stranami tak, aby třetí strana (prostředník) nedetekovala její existenci. Tato formalizace byla uvedena prvně Simmonsem v roce 1983 jako Prisoners problem. [35] Problém vězňů (Prisoners problem) Uvažujme dva vězně, dvě strany, v oddělených celách, kteří spolu mohou komunikovat pouze prostřednictvím dozorců třetí strany. Úkolem vězňů je naplánovat útěk bez povšimnutí dozorců. Dozorce doručí zprávu od vězně druhému vězni v naději oklamání alespoň jednoho vězně tak, aby se domníval že přijímá od druhého skutečnou zprávu, zatímco dozorce původní zprávu modifikoval či celou sám vytvořil. Na druhou stranu, vězeň se s tímto nezabezpečeným komunikačním kanálem musí spokojit, neboť nemá jinou možnost. 4

21 1.3. Značení copyrightu K útěku vězni nutně potřebují vytvořit zabezpečený komunikační kanál. Pokud sdělí dozorci očividně šifrový text, vzbudí v něm podezření a komunikační kanál může zcela zaniknout. Simmons v [42] ukázal, že takový kanál existuje například v jistých schématech digitálních podpisů: náhodný klíč používaný v těchto schématech může být nahrazen krátkými zprávami. Metoda výměny náhodných dat za jiná náhodná data 1 nemůže být v principu detekována. Simmons tuto techniku pojmenoval jako tzv. subliminal channel. Tato definice později vedla k definici tzv. supraliminal channel. Supraliminal channel má velmi malou propustnost a je navržen tak, aby využíval velice vyznámově důležité komponenty nosiče jako místo k ukrytí zprávy [35]. Dozorce tedy poté nebude moci zprávu modifikovat, neboť by zcela zničil očividnou korektnost zprávy. Například, vězeň napíše krátký příběh o několika známých pohádkových postavách, ukrytá zpráva může být v posloupnosti počátečních písmen křestních jmen postav, příběh bude obsahovat podrobné informace o těchto postavách, aby nebylo možné je zaměnit, dozorce tedy bude muset zprávu zachovat v původním znění či změnit nedůležité informace. 1.3 Značení copyrightu Protože se tato práce nezabývá blíže značením copyrightu, bude uvedeno stručně něco z této problematiky pro potřeby této práce. Zdroj [35] definuje slovo vodoznak, v kontextu ukrývání informací, jako skrytá zpráva copyrightu. Účelem steganografie je mít komunikační kanál mezi dvěma stranami, jehož existence je neznámá třetí straně, úspěšným útokem je detekování existence této komunikace. Naproti tomu, značení copyrightu má větší požadavky na robustnost proti možným útokům. Značky copyrightu nejsou vždy skryté, jako např. Viditelné vodoznaky (viz Obrázek 1.1 str. 4). V zájmu zachování jednoduchosti této práce je používán pojem stegogram i pro nosič se skrytou zprávou copyrightu. Jelikož několik zmíněných zdrojů používá pro pojem značení copyrightu pojem digitální vodoznak, budu používat označení obě. 1 Jiná náhodná data jsou zde reprezentována daty tajné zprávy. Ač se může zdát označení náhodná data pro tajnou zprávu zcela nekorektní, je potřeba si uvědomit, že nelze o vygenerované zprávě s absolutní jistotou tvrdit zda je či není náhodná. Avšak, jelikož se podle [6] na generátory náhodných čísel klade požadavek vysokoentropního výstupu, nízkoentropní zpráva by mohla vzbudit podezření, v takovém případě by mohlo být vhodné entropii zprávy zvýšit do zprávy zanést šum či využít například kompresního algoritmu. 5

22 1. Teorie problematiky Své uplatnění dostává značení copyrightu především dnes. V dobách používání analogových technologií se kopírovali např. páskové kazety, každá kopie z kopie však měla horší a horší kvalitu. Pro nahrávací společnosti tedy nebyly tyto pirátské kopie takovým problémem. Dnes, s nástupem digitálních technologií a rozvojem internetu, můžeme tvořit a sdílet kopie z kopií s malou či vůbec žádnou degradací. Proto je dnes nutné tyto techniky dále rozvíjet [40]. Rozdělení a příklady Neviditelný vodoznak Tento druh asi nejvíce připomíná technickou steganografii, avšak s výše zmíněným větším nárokem na robustnost. Metody použité ke skrývání neviditelných vodoznaků můžou být využívány i steganografií, což bude probráno později (viz str. 9). Příkladem je několik fotografií od autora, kde každá obsahuje ty samé skryté informace o autorovi skryté přímo ve fotografii. Tyto informace však nemusí být reprezentovány ve výsledném stegogramu stejnými daty. Vložený vodoznak může být pokaždé zašifrován jiným klíčem, čímž může být zamezeno odhalení vodoznaku a následnému útoku. Viditelný vodoznak Jak už název napovídá, vodoznak je viditelný přímo ve stegogramu. Cílem není skrýt informaci o značení copyrightu, nýbrž označit nosič tak, aby viditelně zobrazoval značku daného copyrightu a zároveň byl robustný tento vodoznak by měl jít odstranit jen v případě vysoké degradace či úplného zničení nosiče. Příkladem je fotografie s viditelným logem ve středu obrázku, logo televizní stanice na televizním kanále, či reklama rádio stanice během přehrávané písničky. Fingerprinting Tato metoda je velice podobná neviditelným vodoznakům, liší se v obsahovaném vodoznaku. U neviditelného vodoznaku byly každé vkládané informace stejné, u metod fingerprintingu jsou tyto informace pokaždé jiné. Vodoznak má jednoznačně identifikovat osobu, které byl takto svěřen označený stegogram. Tento způsob nese význam v komerční sféře po uniknutí 6

23 1.4. Druhy stegosystémů a nejznámější metody ukrývání stegogramu na veřejnost 2 dohledáme danou osobu, které byl stegogram svěřen. 1.4 Druhy stegosystémů a nejznámější metody ukrývání Druhy stegosystémů se můžou podle [32] dělit na tři, vzájemně se vylučující, metody. Jsou to Injekční steganografie, Subtituční steganografie a Propagační (generující) steganografie Injekční steganografie Injekční algoritmy přidávají utajovanou zprávu do nosiče na vhodné místo tak, aby běžná aplikace, která má za úkol prezentovat výsledek uživateli, zobrazila původní obsah daného nosiče. Původní data nosiče tedy musí zůstat zachována. Příkladem jednoduchého injekčního algoritmu může být vkládání bloků komentářů, kde komentář obsahuje utajovaná data, do skriptu interpretovaného jazyka. Několik programů a typů souborů používá znak EOF (end-of-file) k rozpoznání konce souboru. Data za tímto znakem jsou obvykle považována za bezobsažná, avšak pro injekční algoritmy skýtají další možnost ukrytí utajované zprávy. Výhodou injekčních algoritmů bývá malá, nebo žádná režie počet bitů informace, které jsou potřeba skrýt navíc spolu s ukrývanou zprávou. Například do skriptu bez komentářů je přidána utajovaná zpráva jako komentář, smyšlený stegosystém tedy nepotřebuje žádnou režii za předpokladu, že vstupní nosič nebude nikdy obsahovat komentáře (nebo budou vymazány). Podstatnou nevýhodou injekčních algoritmů je zvyšování objemu dat nosiče. Dva soubory s různou velikostí a stejným obsahem z pohledu uživatele mohou vzbudit podezření, taktéž stručný textový soubor s několikanásobně větší velikostí neodpovídající obsahu. Podobné injekční techniky jsou využívány mnohými počítačovými viry, příkladem je trojský kůň [44] 2 Uniknutím na veřejnost je myšleno zveřejnění stegogramu třetí straně, je důležité aby stegogram byl zveřejněn v takové formě, kterou je možno převést do digitální podoby a získat zpět daný vodoznak. Vytisknutí fotografie do novin je očividně destruktivní proces pro tento druh vodoznaku 7

24 1. Teorie problematiky Substituční steganografie Substituční algoritmy nahrazují původní data nosiče utajovanou zprávou, přičemž musí zůstat zachována čitelnost nosiče 3. Substituční algoritmy využívají především omezených možností vnímání člověka (viz 1.5 na str. 14) a můžou degradovat kvalitu nosiče (šum v audio nosičích, barevná aberace v obrázcích). Nejdůležitější je tedy vhodný výběr částí nosiče, kam bude utajovaná zpráva vložena. Výhodou substitučních algoritmů je zachování datového objemu nosiče. Nevýhodou je omezená kapacita nosiče, kterou logicky nemůže utajovaná zpráva překročit Propagační (generující) steganografie Injekční a substituční algoritmy předpokládaly existenci nosiče a byly jeho velikostí, alespoň částečně, omezeny. Propagační (generující) algoritmy nosič nevyužívají. Jejich jediným vstupem je utajovaná zpráva, dají se tedy definovat jako zobrazení z množiny utajovaných zpráv do množiny stegogramů. Takové zobrazení by mělo být prosté (injektivní) kvůli možnosti extrakce. Příkladem propagačního algoritmu je generování fraktálů. Výhodou propagačních algoritmů je především neomezování vstupním nosičem (protože žádný není) a výsledný stegogram není s čím porovnávat, neboť výsledný stegogram je originál odpovídající výstupu vlastního generátoru Porovnání metod Na příkladu libovolného JPEG obrázku velikosti N bytů lze demonstrovat utajení zprávy velikosti M bytů, kde M N: Injekční: po bytech 0xFF, 0xD9 (JPEG end-of-image) je vložena utajovaná zpráva. Výsledný stegogram zachovává vstupní kvalitu JPEGu, velikost se zvyšuje na N+M bytů. 3 Příkladem ztráty čitelnosti nechť je nahrazení bitů hlavičky formátu JPEG, tímto nahrazením ztratíme informaci o MIME typu daného souboru a bez dalšího zásahu zůstane nosič nečitelný. 8

25 1.4. Druhy stegosystémů a nejznámější metody ukrývání Substituční: Utajovaná zpráva je vložena do DCT koeficientů, koeficienty byly vybírány od začátku souboru. Výsledný stegogram degraduje kvalitu vstupního JPEGu, avšak zachová velikost N bytů. Propagační: Nosič se vůbec nepoužije, je vygenerován X bytů velký JPEG stegogram (kde X není závislé na M ani N, neboť generující funkce může být i kompresní), kde jeho obsah je závislý na utajované zprávě Známé metody skrývání Nejvyužívanějším druhem stegosystému jsou substituční algoritmy. Budou zmíněny pouze některé známé druhy těchto algoritmů. V této části práce bylo čerpáno především z [14]. Least significant bit (LSB) Zdroj [21] definuje metodu Least significant bit jako běžnou, jednoduchou metodu skrývání informací do nosiče, která využívá k ukrytí informace nejméně významné bity daného nosiče. Podle [49] ji řadíme mezi substituční algoritmy. Hlavní výhodou LSB metody je jednoduchost vkládání a extrahování, není tedy zapotřebí složitých algoritmů a výkonného hardware, což ocení zejména reálné a vestavěné systémy. Další důležitou výhodou je velká steganografická kapacita této metody. Ovšem jednoduchost vkládání přináší i jednoduchost detekce vložených dat, bude probráno později (viz str. 24). Nevýhodou této metody je špatná robustnost. Běžné operace s obrázkovým nosičem, jako je ořez, geometrické transformace a použití filtrů (např. nekonstantní zesvětlení či ztmavení), dokáží nenávratně zničit vloženou zprávu. Tato metoda, stejně jako ztrátové kompresní algoritmy, využívá redundanci v nosiči ke svému učelu ukrytí tajné zprávy. Ztrátové kompresní algoritmy však tyto informace odstraní, tudíž dojde k odstranění zprávy. Po LSB vložení tajné zprávy do obrázkové bitmapy a následném převedení na JPEG 4 jsou tato data ztracena. Jelikož digitální vodoznaky kladou podle [5] důraz především na robustnost, je pro ně metoda LSB spíše nevhodná. 4 Zde je pojmem JPEG myšlena varianta ztrátového kompresního algoritmu JPEG. 9

26 1. Teorie problematiky Příklad LSB stegosystému Nechť je nosičem RGB bitmapa a její barevná hloubka je 24 bitů, potom každý pixel může nabývat 2 24 různých hodnot, které jsou reprezentovány jako různé hodnoty tří základních barevných složek: červená (R), zelená (G), modrá (B). Každá složka (barevný kanál) je zastoupena pomocí 8 bitů. Nahrazeny budou 2 nejméně významné bity z každého barevného kanálu, celkem tedy 6 bitů z jednoho pixelu. Tím lze získat 2 6 = 64 různých hodnot. Je tedy například možné vložit obrázek se stejným rozlišením a 64 barvami na pixel nebo 6 bitů informace/pixel. Nechť má pixel hexadecimální hodnotu 0xf335de (binárně ). Vizuální reprezentace viz Obrázek 1.2. Obrázek 1.2: Vizuální reprezentace barvy 0xf335de Jsou-li vygenerovány všechny možné kombinace barev vzniklé upravováním tohoto pixelu metodou LSB, je získán Obrázek 1.3 na str. 11. Názornější však bude porovnání dvou nejodlišnějších barev 0xf034dc a 0xf337df, viz 1.4 na str. 11. Ukázky slouží k demonstrování 5 velmi malého rozdílu změny barev i při velkém poměru využití kapacity nosiče v tomto konkrétním případě je využito 25 % celkové kapacity nosiče. Ve většině případů nebude rozdíl mezi pixelem nosiče a stegogramu maximální 6, barevný rozdíl tedy bude menší. Lidské oko tedy pravděpodobně nebude v takovém případě schopné rozeznat nosič a stegogram i při maximálním využití kapacity. Pokud by ovšem třetí strana měla k dispozici nosič i stegogram, porovnání lidským okem samozřejmě nepřipadá v úvahu, namísto toho můžeme využít Known Cover útok, jak bude probráno později (viz str. 25). 5 Tuto demonstraci je nutno je bráti s rezervou. Rozdíl nemusí být tak patrný v tištěné či v elektronické podobě, jak bylo úmyslem. Je důležité vzít v potaz ostatní faktory ovlivňující schopnost takto podobné barvy rozlišit fyziologické změny oka, barevný profil tiskárny (a obecně kvalita tisku), barevný profil a kvalita panelu displeje, atd... 6 Maximální rozdíl bude v pouhých 2 případech z ,05% pravděpodobnost že pixel nosiče a stegogramu mezi sebou budou mít maximální barevný rozdíl 10

27 1.4. Druhy stegosystémů a nejznámější metody ukrývání Obrázek 1.3: 64 různých barevných ploch 8 řádků, 8 sloupců vzniklých změnou 2 nejméně významných bitů barevných kanálů pixelu Obrázek 1.4: Vizuální reprezentace barev 0xf034dc a 0xf337df dva obdélníky nad sebou 11

28 1. Teorie problematiky Spread Spectrum Image Steganography (SSIS) Studování této metody je nad rámec této práce, proto je zmíněna jen stručně. K vložení i extrahování zprávy je nutné použít tentýž pseudonáhodný generátor šumu a klíč. Do vygenerovaného šumu je vložena ukrývaná zpráva a to vše je poté vloženo přímo do stegogramu. Spread spectrum techniky jsou široce používané ve vojenských radiokomunikacích zejména díky jejich vysoké odolnosti proti detekci a extrakci. SSIS je dokonale vyspělý proces a jeho cílem je dosáhnout nízké detekovatelnosti, jednoduchosti extrakce, vysokých datových přenosů a dobré odolnosti proti odstranění. Je tedy vhodný jak pro steganografie, tak pro digitální vodoznaky [14] [40]. Texture Block Coding Tato metoda funguje na principu zkopírování oblasti vzoru nalezeného v obrázku do oblasti s podobnou texturou. Díky podobnosti textur lidský faktor nezjistí přesunutí. Příkladem může být vyříznutí kusu oblohy ve tvaru písmene a vložení na jiné místo barevně podobné oblohy. Při vkládacím procesu musí uživatel manuálně zvolit oblast nosiče ve které bude pracovat, poté zvolí nějakou masku oblasti ke zkopírovaní (například grafický text) tak, aby po extrahování byla maska viditelná. Tato metoda nemá velkou datovou propustnost v porovnání například s metodou LSB, jak bylo probráno dříve (viz str. 9). Je však robustní vůči rotaci, filtrům a kompresi vkládaná maska bude po těchto operacích stále viditelná, bude pouze orotovaná nebo filtrovaná jako celý nosič. Kvůli své robustnosti je to metoda vhodná pro digitální vodoznaky, malá datová propustnost ji však činí nevhodnou pro steganografii. Vkládání ani extrahování nevyžaduje žádný klíč k zabezpečení metody, tajnou zprávy tedy může extrahovat kdokoliv [14]. Patchwork Patchwork je statistická metoda, která dokáže vložit velmi malou informaci do obrázku a poté detekovat její přítomnost. Tento algoritmus se nesnaží skrýt větší množství informace, snaží se pouze pozměnit statistické vlastnosti daného obrázku. Výsledkem procesu extrakce není utajovaná zpráva či vodoznak, nýbrž procentuální pravděpodobnost přítomnosti vodoznaku. Proces vložení probíhá následovně. Jsou vybrány dvě množiny pixelů (patches), první A a druhá B. Poté algoritmus lehce zesvětlí pixely v A, zatímco pixely v B ztmaví stejným faktorem. Množiny A a B generuje pseudonáhodný generátor inicializovaný tajným klíčem. Tajný klíč musí být 12

29 1.4. Druhy stegosystémů a nejznámější metody ukrývání logicky přítomen i při extraci, protože extrahovací algoritmus musí navštívit ty samé pixely ve stejném pořadí, aby dokázal určit, zda byl obrázek označen touto metodou. Jelikož metoda není vhodná pro ukrytí zprávy a má velmi nízkou datovou propustnost, není vhodná pro účely steganografie. Je však velice vhodná pro digitální vodoznaky, neboť výsledný stegogram je velice robustní, dokáže odolat i oříznutí velké části obrázku. Ořez může pouze snížit výstupní procentuální pravděpodobnost přítomnosti vodoznaku [15][7]. Manipulace s DCT koeficienty Manipulace s DCT koeficienty je metoda používaná u nosičů se ztrátovou kompresí (např. JPEG, MP3). Algoritmy ztrátové komprese obvykle používají Diskrétní kosinovu transformaci (DCT) vytvářející matice koeficientů v plovoucí řádové čárce, které jsou však poté ukládany jako celá čísla. Je možné pozměnit chování zaokrouhlovací funkce tak, aby ukrývala tajnou zprávu na místa koeficientů [14]. Podstata úspěšného ukrývání této metody je ve volbě koeficientů a velikosti jejich změny. Protože všechny koeficienty nemají stejný význam (viz Obrázek 1.5), je nutné vybrat ty nejvhodnější pro ukrytí informace. Výpočet steganografické kapacity pro obrázkový nosič se dá vyjádřit jako: Kapacita = X Y b c (1.1) 64 V této rovnici jsou X a Y rozměry obrázku. Vydělením součinu X Y číslem 64 získáme počet DCT bloků (neboť bloky jsou sestaveny z 8 8 koeficientů). Počet nahrazovaných LSB koeficientů reprezentuje b. Pro počet využitých koeficientů z každého bloku je použit znak c. Obrázek 1.5: Matice DCT koeficientů a jejich význam. Převzato z [41] 13

30 1. Teorie problematiky Jelikož se nahrazují především nejméně významné bity DCT koeficientů, považuje se někdy tato metoda za podmnožinu LSB metod, které byly zmíněny dříve (viz str. 9). Díky poměrně vysoké využitelné kapacitě je tato metoda vhodná pro steganografii. Orthogonal projection coefficients manipulation Tato metoda ukrývání informací je zobecněním manipulace s DCT koeficienty, probrané v přecházející části (viz str. 13). Základním principem této metody je manipulování s významějšími koeficienty, takže ukrývaná zpráva je v nejdůležitější části nosiče a je menší pravděpodobnost, že budou během manipulace úpravy a ztrátové komprese nosiče s obrázkem zničeny. Metoda je vylepšením klasické manipulace s DCT koeficienty a zajišťuje lepší robustnost. Používá pseudonáhodný generátor k vygenerování pozic koeficientů, kam se ukryjí data. Výsledné koeficienty se však nepřepisují hodnotou skrytých dat, vztah pro výpočet koeficientu ve stegogramu je následující: c [j] = c[j](1 + a m(k)) (1.2) Kde c [j] je j-tý vygenerovaný koeficient ve výsledném stegogramu, c[j] je j-tý vygenerovaný koeficient v nosiči, a je zvolená síla modifikace koeficientu (čím větší, tím lepší robustnost) a m(k) je k-tá část ukrývané zprávy (ta část, která se právě ukryje do koeficientu). Perceptual Masking Tento přístup se snaží skrývat data do míst, která jsou redundantní či méně významná pro lidské vnímání. Objem dat skrytých touto metodou se odvíjí od obsahu nosiče a volba míst pro ukrývání často bývá prováděna lidským faktorem. Možnosti vnímání člověka budou vysvětleny v následující části (1.5 str. 14). 1.5 Možnosti vnímání člověka Ztrátové kompresní algoritmy jsou založeny na odstranění redundantních či méně důležitých informací pro lidský faktor. Steganografie je však založena na nahrazování těchto informací tajnou zprávou, pokud jsou tedy tyto 14

31 1.5. Možnosti vnímání člověka Obrázek 1.6: Vlastnost lidského zraku nás nutí domýšlet si hrany. Převzato z [39] redundantní informace odstraněny, pole působnosti steganografie se velmi zúží. V následujících budou zhodnoceny limity zraku a sluchu. Zrak Je velice složité určit počet barev rozlišitelných okem, jak uvádí zdroj [12]. Odhady se pohybují od do 10 milionů barev, rozpětí je tedy velké a v průběhu života se u jedince mění. Pixel 24-bitové bitmapy však může nabývat až barev. I moderní monitory však mohou zobrazovat menší počet barev či zobrazovat barvy jinak než jiný monitor. Lidský zrak si často domýšlí tvary, které neexistují, na čemž je založeno několik optických klamů (viz Obrázek 1.6). Vhodným využitím tohoto faktu lze nahrazovat existující tvary za tajnou zprávu. Je však potřeba zrakem výsledné změny důkladně kontrolovat, aby stegogram nevypadal nepřirozeně. Zrak se často soustředí na hlavní objekt v obrázku, záleží tedy na celkové kompozici nosiče. Kompozičně může být obrázek podle zlatého řezu, pravidla třetin, zón nebo i komponován na střed. Rozpoznání hlavních objektů v nosiči je složitá algoritmická úloha, lze tedy konstatovat, že důležité objekty budou vždy na středu a stegosystém nebude nikdy na těchto místech měnit pixely. Tímto přístupem však bude redukována celková steganografická kapacita a snížena robustnost stegogramu vůči ořezu. Je vhodné zvážit využití pouze určitých barevných kanálů či využít kanál pouze pokud hodnota pixelu splňuje určitou podmínku. Podle [28] je 15

32 1. Teorie problematiky každý jedinec jinak citlivý na určité barvy, v intenzivní modré většinou oko nerozliší takové odstíny jako v červené či zelené. Zrak má také intenzivnější cit pro změnu jasu oproti změně barevného odstínu, obzvláště v pestré a členité oblasti. Podle úrovně jasu dokáže či nedokáže rozlišit rozdíly (viz. Obrázek 1.7). Pro ukrytí zprávy byl použit program SilentEye [8], byla využita celková kapacita obrázku. Na světlé obloze jsou vidět zvláštní artefakty, kdežto tmavší spodní část vypadá neporušeně. Oko není příliš citlivé na pomalou, plynulou změnu odstínu napříč rozsáhlým prostorem [14]. Velká plocha s barevným přechodem obsahující několik barev se tedy může zdát jako jednobarevná plocha. Obrázek 1.7: Data ukrytá v obrázku s rozdílným jasem Sluch Po hlasitém zvuku nějaký časový okamžik ucho neslyší tiché zvuky, jak uvádí [22]. Pokud audio nahrávka obsahuje 2 signály o různé frekvenci, ucho slyší pouze ten hlasitější, ten tišší může být reprezentován ukrytou zprávou. Pokud mají signály velice podobnou frekvenci, sluch se snaží ze své přirozené podstaty spojit obě frekvence dohromady. Rozdílem obou frekvencí pak může být ukrývaná zpráva [16]. Slyšitelná frekvence pro lidské ucho se v průběhu života mění, rozmezí se udává 20 Hz 20 khz. Signál zakódovaný mimo tento rozsah nebude slyšitelný a skýtá tedy další místo k ukrytí tajné zprávy. Lidský sluch nevnímá velice krátké ozvěny. Pokud se tyto ozvěny pohybují v řádu milisekund, ucho je nemusí zaznamenat. Zakódovat informaci je možné v podobě krátké (binární 0) a dlouhé (binární 1) ozvěny. 16

33 1.6. Příklady nosičů a možnosti skrývání 1.6 Příklady nosičů a možnosti skrývání Nosičem může být nejen jakýkoliv formát souboru, ale jakákoliv digitální data. Zde bude zmíněno několik nejzajímavějších a nejznámějších nosičů a bude zhodnocena vhodnost jejich využití pro ukrývání informací. Prostý text Prostým textem rozumíme abstraktní posloupnost znaků, ne textové soubory. Ve vztahu k textovému souboru je prostý text jeho obsahem. Změna či přidání byť jediného znaku vyústí ve zcela jinou interpretaci textu, pro substituční a injekční algoritmy zcela nepoužitelný cover. U skrývání do textu je široce využívaná propagační (generující) steganografie (viz str. 8). Mezi nejznámější a nejnázornější lze zařadit tvorbu spamu. Např. nástroj Spam Mimic [26] poskytuje vkládání a extrahování tajné zprávy do/z nevyžádáné pošty. Bohužel neposkytuje bližší informace o používaném stegosystému. Následující odstavec znázorňuje zprávu hello world ukrytou ve spamu pomocí tohoto nástroje: Dear Decision maker, We know you are interested in receiving amazing intelligence. This is a one time mailing there is no need to request removal if you won t want any more. This mail is being sent in compliance with Senate bill 1625 ; Title 4 ; Section 302. THIS IS NOT MULTI-LEVEL MARKETING! Why work for somebody else when you can become rich as few as 33 days. Have you ever noticed people love convenience and more people than ever are surfing the web! Well, now is your chance to capitalize on this! WE will help YOU decrease perceived waiting time by 190% and increase customer response by 150%. You can begin at absolutely no cost to you. But don t believe us. Ms Ames of Florida tried us and says "My only problem now is where to park all my cars"! We are licensed to operate in all states! We implore you - act now! Sign up a friend and you get half off. God Bless! Prostý text je tedy nejvhodnější pro propagační (generující) algoritmy a tím jsou vhodné spíše pro steganografii než pro digitální vodoznaky. 17

34 1. Teorie problematiky Textové soubory Textovými soubory rozumíme jiné než binární soubory obsahující text. Text nemusí být nutně prostý, může být sémantický a syntaktický (např. HTML). Injekční algoritmy můžou přidávat netisknutelné znaky, přidávat zprávu za znak EOF nebo využívat zláštních neprezentovatelných struktur textového souboru jako jsou například komentáře v kódu (viz str. 7). Substituční algoritmy zde nejsou příliš vhodné, protože by mohly narušit syntaxi či sémantiku daného textového souboru. Propagační (generující) algoritmy zde mají stejný význam jako u prostého textu v této kapitole (viz 1.6 str. 17). Textové soubory nejsou obecně příliš dobrým nosičem, mohou však posloužit steganografickým účelům i účelům digitálních vodoznaků. Binární spustitelné soubory Existuje několik formátů binárních spustitelných souborů. Každý formát má definovanou svou vlastní strukturu, nabízí se tedy tuto strukturu zkoumat z hlediska využití k účelům skrývání tajných dat. Injekční algoritmy opět můžou vkládat za EOF znak. Výhodnějším přístupem však může být injektování ukrytých dat do datových segmentů spustitelného binárního souboru. Nesmíme však pozměnit nosič natolik, aby nebyl spustitelný či vykonával jiný kód. Pokud tedy vkládáme do instrukčního segmentu, musíme zajistit, aby se daný kód nikdy neprovedl. Pokud vkládáme do segmentu konstantních dat, musíme zajistit, aby se dané konstanty nikdy nepoužily. Musíme však pamatovat na možnost odhalení antivirovým programem, viz zmínka o trojském koni str. 7. Tento druh nosiče není příliš vhodný pro substituční algoritmy, neboť se stále snažíme zachovat korektní běh nosiče. K substituci se nabízí pouze redundantní data v jednotlivých segmentech, redundanci ovšem musíme posoudit zanalyzováním celého nosiče. Jelikož konstanty obsažené v textovém segmentu můžou být ve formě textového i binárního souboru, je možné na ně aplikovat standardní substituční algoritmy, avšak je nutné vzít v potaz fakt, že dané konstanty nebudou přímo prezentovány lidskému faktoru, nýbrž budou zpracovány spustitelným binárním souborem a jejich substituce může mít nečekaný dopad na jeho běh. Příkladem jednoduchého propagačního (generujícího) algoritmu může být plnohodnotný kompilátor jazyka, který navíc do každého výstupního binárního spustitelného souboru přidá tajnou zprávu do kostanty, která se nikdy nepoužije. 18

35 1.6. Příklady nosičů a možnosti skrývání Obrázky Obrázky jsou asi nejvyužívanější formáty ke skrývání informací. Důvodem bude pravděpodobně jejich četnost na internetu 7 nebo relativně jednoduché metody skrývání spolu s dobrým poměrem využité steganografické kapacity. Z hlediska ukrývání informací je velmi důležitý obsah obrázku. Pokud je obsah obrázkového nosiče přirozený, např. fotografie, obsahuje barevné nádechy a přechody, obsahuje tedy mnoho barev, které jsou si však ve svém okolí dosti podobné. Při ukrývání informace je nutné pouze nezměnit barvu příliš, aby nebyla změna nápadná. V případě syntetického obrázku (např. vyrenderovaná grafika pro uživatelské rozhraní aplikace), pixely často obsahují jen několik barev a hrany přechodů bývají konstrastní a ostré. Narušení těchto vazeb vkládáním tajné informace je tedy jednodušší než u přirozených obrázkových nosičů. Použití syntetického obrázků obvykle vede k jednodušší steganalýze a útokům, ukázku útoku na syntetický obrázek uvedeme později (viz str. 25). Injekční algoritmy mohou využívat vkládání za znak 0xFF, 0xD9 (JPEG end-of-image), jak je popsáno dříve (viz str. 7). Nejširší využití u tohoto nosiče uplatní substituční algoritmy. Existuje několik známých stegosystémů, jak bylo popsáno dříve (viz str. 9). Propagační (generující) techniky podporují všechny druhy nosičů, ani obrázek tedy není výjimka. Ostatní techniky však využívají pokud možno nesyntetických obrázků, jak bylo popsáno dříve (viz 1.5 str. 15), kdežto tyto techniky ze své podstaty generují především ty syntetické. Příkladem je generování fraktálů. Mezi programy umožňující ukrývání dat do obrázkových nosičů patří např. nástroj Steghide[17]. Audio Audio nahrávky představují další rozšířený nosič, který je schopný pojmout ukrývanou zprávu. V předchozí části byly popsány možnosti lidského sluchu (viz ), které dovolují skrývat tajné zprávy do audio nahrávek. Mezi používané algoritmy, stejně jako u obrázkových nosičů, patří především nahrazování LSB, jak bylo popsáno dříve (viz str. 9). 7 Díky vysoké četnosti obrázků na internetu poskytuje obrázkový stegogram dostatečnou nenápadnost. Tam, kde by video či nějaký binární soubor působil podezřele, může obrázek vypadat nevinně výjimkou budící podezření může být obrázková bitmapa nebo jiný nekomprimovaný formát. Příkladem málo podezřelého obrázkového nosiče jsou tajná data skrytá v obrázkovém logu webové stránky. 19

36 1. Teorie problematiky Další metodou je tzv. fázové kódování. Tato metoda funguje na principu rozdělení celé audio nahrávky na určitý počet segmentů a nahrazení fáze každého počátečního segmentu fází referenční, která představuje skrytou informaci. Rozdíl mezi fázemi musí být malý, aby nebyl zvuk pro lidské ucho slyšitelný. Extrahování vyžaduje znalost velikosti zvoleného segmentu. Vkládání i extrahování je složitý proces obsahující mj. Diskrétní Fourierovu Transformaci (DFT). Spread spectrum je další velice využívanou metodou při skrývání dat do audia. Princip metody je stejný jako u obrázkových nosičů, metoda byla popsána v předchozích kapitolách (viz str. 12). Metoda tzv. skrývání ozvěn skrývá do signálu krátké, pro ucho neslyšitelné, ozvěny, jak bylo zmíněno dříve (viz 1.5 str. 16). Tato metoda poskytuje vysokou steganografickou kapacitu a je extrémně robustní v porovnání s ostatními metodami [18]. Mezi programy umožňující ukrývání dat do audio nosičů patří např. nástroj OpenPuff [30]. Protokolové datové jednotky Protokolové datové jednotky (PDU) skýtají další možnost k ukrývání informací. Společnou myšlenkou je využití volitelných polí v hlavičkách různých PDU, sémantických změn a nesprávné, avšak akceptovatelné, konstrukce těchto datových jednotek. Za účelem stručného představení těchto metod bude následující text omezen pouze na dva nejpoužívanější protokoly z rodiny TCP/IP protokolů, a to přímo TCP a IP. TCP TCP je protokol trapnsportní vrstvy, jeho PDU se nazývá segment. V hlavičce TCP (viz Obrázek 1.8 str. 21), můžeme využít především: 20 PAD (zarovnávací bity), kapacita až 31 bitů/segment sekvenční číslo při inicializaci tcp spojení, kapacita 32 bitů za jedno spojení pole urgent pointer, URG flag musí být nastaveno na 0, kapacita 16 bitů/segment pole reserved, 6 bitů/segment

37 1.6. Příklady nosičů a možnosti skrývání Obrázek 1.8: Hlavička TCP segmentu zobrazující provázanost flagů. Převzato z [45] pole data, pokud je RST flag nastaven na 1, většina zařízení nepočítá s existencí dat v tomto poli, kapacita je omezena maximální velikostí TCP segmentu zdrojový a cílový port, lze využít až 8 32 bitů/segment IP IP je protokol síťové vrstvy, jeho PDU se nazývá paket. V hlavičce IP verze 4 (viz Obrázek 1.9 str. 22), můžeme využít především: PAD (zarovnávací bity), kapacita až 31 bitů/paket pole identification, kapacita 16 bitů/paket podvržená IP adresa, kapacita 32 bitů/paket 8 Je nutné volit takové porty, které jsou povolené na obou stranách komunikace a je vhodné se vyhnout portům, které bývají často zakázány na firewallech. I přesto je možné takto využít celých 32 bitů. 21

38 1. Teorie problematiky Obrázek 1.9: Hlavička IPv4 paketu. Převzato z [45] částečné využití cílové IP adresy k ukrytí tajné zprávy, kapacita několik nejméně významných bitů/paket použití volitelných položek Type of service, options, flags (použití flagu don t fragment u nefragmentovaného paketu) TCP i IP zřejmě obsahují mnoho možností k ukrytí dat, je však nutné myslet na skutečnost, že ne všechny síťové zařízení se k TCP segmentům a IP paketům, ale i jakýmkoliv jiným PDU, budou chovat stejně. Steganografické souborové systémy Dosavadní nosiče si snadlo šlo představit jako soubor, nosičem však můžou být jakákoliv digitální data. Typickým příkladem jsou steganografické souborové systémy. Z hlediska uživatele i obyčejného souborového systému obsahuje volné místo na pevném disku nesmyslná data. Celý tento prostor však může být využit pro ukrytí tajných informací. Tajné informace možná nebudou vidět z hlediska souborového systému, fyzicky ale na pevném disku vidět jsou. 22

39 1.7. Steganalýza Problémem těchto systémů je správa volného místa při zaplnění jak obyčejné tak steganografické části. V takovém případě nesmí steganografický souborový systém dovolit přepsání tajných informací. Existuje několik implementací těchto souborových systémů a jejich použití je velmi jednoduché. Mezi nejznámější patří především StegFS [25]. 1.7 Steganalýza Stejně jako se kryptoanalýza snaží odhalit zprávy zašifrované kryptografií, steganalýza se snaží objevovat zprávy skryté pomocí steganografie. Navíc se však steganalýza zabývá i ničením nalezených zpráv [19] Rozdělení Steganalytické útoky můžeme podle [48] dělit do 3 kategorií. Jsou to Vizuální a aurální útoky, Strukturální útoky a Statistické útoky. Vizuální a aurální útoky Využívají lidského faktoru pro detekci vizuálních či sluchových anomálií separováním nejvýznamějších částí nosiče od těch méně významných. Klasickou ukázkou testu je zobrazení LSB bitmapy v odstínech šedi (viz Obrázek 1.10), která neobsahuje anomálie (nosič, vlevo) nebo je viditelně obsahuje (stegogram, vpravo). Naopak náhodný šum může často vzbudit podezření o existenci skryté zprávy, jelikož nedokonalost fotoaparátů, skenerů a podobných digitálních zařízení, zanechává specifický šum v LSB. Strukturální útoky Strojový útok, který prozkoumává napadnutelné struktury daného nosiče a s určitou pravděpodobností dokáže vyhodnotit přítomnost ukrytých dat. Napadnutelné struktury často nebývají interpretovány prezentační aplikací nosiče, jak bylo probráno dříve (viz str. 7). Nebo jsou nahrazena redundantní data napadnutelných struktur daty náhodnými, může tedy být zvýšena entropie nosiče až na podezřelou úroveň 9 a strukturální útok může tuto skutečnost odhalit. 9 Například u fotografie, která byla pořízena běžným fotoaparátem, bude míra entropie nízká tohoto faktu využívají kompresní algoritmy. Pokud ovšem potencionální stegogram bude mít míru entropie vyšší než je běžné, je vyšší pravděpodobnost existence ukryté zprávy 23

40 1. Teorie problematiky nosič stegogram Obrázek 1.10: Úspěšný vizuální útok, LSB nosiče a stegogramu bitmapy v odstínech šedi. Převzato z [19] Statistické útoky Statistické útoky shromažďují vytipované kandidáty dat na ukrytou zprávu a poté je porovnávají s běžným statistickým profilem nosiče. Příkladem může být obrázkový nosič, který původně obsahoval velice světlou scénu, ale vložením zprávy byly některé pixely ztmaveny. Zdroj [24] uvádí dělení steganalytických útoků podle situace, ve které se stegoanalytik nachází. Každý útok předpokládá, že je k dispozici stegogram. Jsou to útoky Chosen Stego, Stego Only, Known Cover a Known message. Chosen Stego útok Známe použitý stegosystém, díky tomu můžeme vytvářet z nosičů stegogramy. Teoreticky můžeme díky znalosti stegosystému generovat stegogramy pro všechny zprávy a poté porovnat výstupní stegogram s původním, neznáme ovšem podobu nosiče. Nabízí se tedy praktičtější varianta vygenerování stegogramu s naprosto jinou zprávou. Stego Only útok Mimo stegogramu nemá steganalytik k dispozici nic. Tato situace je pro steganalytika nejtěžší. Nabízí se pouze možnost zkoušení známých stegosystémů. 24

41 1.7. Steganalýza Known Cover útok Tento druh útoku předpokládá mimo stegogramu i odpovídající nosič. Rozdílem obou médií můžeme hádat použitý stegosystém. Known Message útok Při tomto útoku známe zprávu, která byla do stegogramu ukryta. Steganalytik poté odhaduje použitý stegosystém. Znalost zprávy nám neposkytuje příliš velkou výhodu a dá se tak přirovnat ke Stego Only útok. Toto rozdělení avšak [24] pokládá za příliš teoretické, proto ještě uvádí praktičtější rozdělení do 3 skupin. Jsou to Cílená analýza, Slepá analýza a Poloslepá analýza. Cílená analýza Funguje pouze pro specifický stegosystém. Vzniká analýzou statistik stegogramů produkovaných daných stegosystémem. Cílená analýza je, podobně jako kryptoanalýza, vhodná především pro zlepšení daného stegosystému. Slepá analýza Je navržena tak, aby fungovala pro více stegosystémů, bývá většinou ovšem omezena na určitý druh nosiče. Takováto analýza se učí z velkých databází nosičů a stegogramů. Tato analýza většinou není tak přesná jako cílená analýza, avšak je mnohem lépe škálovatelná. Poloslepá analýza Je použitelná na určitou doménu stegosystémů, například stegosystémů využívajících metodu LSB Ukázka primitivního útoku V této části je demonstrován primitivní útok na obrázkový stegogram. Stegogramem je obrázková bitmapa, barevná hloubka 24 bitů, rozlišení 1x15, aplikace prezentující bitmapu zobrazuje, pro lidské oko, černou čáru. 25

42 1. Teorie problematiky Hexdump 10 pixelů vypadá následovně: 0x x x x x x x x x x x x x x Necházíme se v situaci, kde máme pouze stegogram, tedy Stego Only útok, který byl popsán dříve (viz str. 24). Stegogram příhodně přípomíná téměř černou čáru. Všimneme si, že jsou vždy upravené maximálně 2 nejméně významné bity, pokud se je pokusíme extrahovat z každého barevného kanálu, dostaneme následující hexadecimální data poskládáná do skupin 6 bitů, doplněna na 8 bitů (uvozena nulami): 0x48 0x65 0x6c 0x6c 0x6f 0x20 0x77 0x6f 0x72 0x6c 0x64 0x21 Což v ASCII6 11 odpovídá řetězci hello world Stirmark Program Stirmark [34] představuje pokročilý nástroj sloužící k útokům na stegogramy. Jeho podstatou je mírná geometrická deformace obrázku protáhnutí, oříznutí, posunutí, ohnutí a pootočení o malou náhodnou hodnotu (viz Obrázek 1.11 str. 27). StirMark také slouží jako benchmark pro hodnocení kvality digitálních vodoznaků. 1.8 Shrnutí Teorie ukrývání informací nemá vždy jednoznačně ustálené definice a její podobory se neustále rychle vyvíjí. Ač jsou tyto metodiky vyvíjeny spíše pro armádní či komerční účely a mnohá know-how zůstávají utajená, existuje mnoho kvalitních veřejně přístupných zdrojů. Obor poznávání hranic možností lidského vnímání je velice zajímavý a složitý. Poznatky však vedou mj. k vylepšování kompresních a steganografických algoritmů. 10 Velmi zjednodušený hexadecimální výpis bitmapy, všechny hlavičky a patičky jsou vynechány, vypsány pouze pixely 11 ASCII6 je 6-bitová varianta ASCII. Tabulka znaků s příslušnými kódy je dostupná na [1] 26

43 1.8. Shrnutí před útokem po útoku před útokem po útoku Obrázek 1.11: Demonstrace útoku StirMark. Převzato z [35] Nosičů existuje spousta, jen malá část z nich byla uvedena. Každý z nich je ovšem nutné studovat mnohem více do hloubky z hlediska možnosti použití pro ukrývání informací. Steganalýza pomáhá steganografii v dalším rozvoji, stejně jako kryptoanalýza kryptografii. Je to velice rozsáhlá věda využívající především matematické teorie pravděpodobnosti a statistiky. Problematika ukrývání informací je velice rozsáhlá. Poznatky z této problematiky však mají široké uplatnění. 27

44

45 Kapitola 2 Analýza současných nástrojů Tato kapitola obsahuje zhodnocení vybraných aktuálně dostupných steganografických nástrojů. Jelikož implementovaná aplikace bude pracovat pouze s obrázkovými nosiči, bude výběr nástrojů omezen na software nutně podporující obrázkové nosiče a podrobně budou popsány pouze ty, které podporují formát JPEG. Budou vybrány pouze ty nejdůležitější a budou uvedeny jejich podporované formáty obrázkových nosičů (viz 2.1 str. 29). Budou zmíněny druhy dostupných steganalytických nástrojů (viz 2.2 str. 29). Dále budou zhodnoceny největší klady a zápory steganografických nástrojů (viz 2.3 str. 30) a nakonec shrnutí celé kapitoly (viz 2.4 str. 33). Jelikož si tato práce neklade za cíl vyhotovit steganalytický nástroj, nebudou v této kapitole analyzovány tyto nástroje. 2.1 Podpora nosičů Tabulka 2.1 porovnává jednotlivé steganografické nástroje z hlediska podpory formátů obrázkových nosičů. 2.2 Dostupné steganalytické nástroje Několik steganografických nástrojů je přímo od autora dostupných spolu se steganalytickém nástrojem, příkladem je program Outguess [36]. Dále existují steganalytické nástroje vyhotovené někým jiným než autorem, které cílí útok přímo na konkrétní steganografický nástroj, jak bylo probráno dříve (viz str. 25). Ostatní steganalytické nástroje využívají jinou než cílenou analýzu. 29

46 2. Analýza současných nástrojů BMP JPEG PNG TIFF TGA GIF SilentEye OutGuess Steg Steghide OpenPuff GifShuffle Tabulka 2.1: Podpora obrázkových formátů jednotlivých steganografických nástrojů 2.3 Dostupné steganografické nástroje Zdroj [20] poskytuje rozsáhlý seznam steganografických a steganalytických nástrojů. Není však pravidelně aktualizovaný a neobsahuje tedy nejnovější nástroje. Většina z uvedených odkazů na nástroje je již bohužel nedostupná SilentEye V této části popisujeme software [8]. Obsahuje GUI, ale lze spustit i z příkazové řádky Dokumentovaný projekt v C++/Qt Open source Aplikace pro Windows, Linux, Mac OS X Podpora šifrování (AES 256) Podpora komprese Uživatelsky přívětivý Využívá nejprimitivnější LSB metodu náchylné na útoky Neumí distribuovat tajnou zprávu do nosiče náhodně pouze za sebou (od začátku souboru) a ekvidistantně (po celém souboru) Hlavičku skrývá vždy na stejná místa náchylné na útoky SilentEye je velice uživatelsky přívětivá aplikace umožňující pohodlné vkládání a extrahování. Obsahuje vstupní pole na vložení utajované zprávy a počítá steganografickou kapacitu v reálném čase a to i po kompresi. Při vkládání do obrázkové bitmapy umožňuje pokročilé nastavení vkládací LSB 30

47 2.3. Dostupné steganografické nástroje metody nastavení barevného kanálu, kam se bude vkládat, počet využitých bitů, atd.... Neoplývá ovšem širokou škálou šifrovacích algoritmů, nedovoluje zvolit mód šifrovacího algoritmu, nepopisuje proces vkládání a implementuje velice jednoduchý stegosystém, který je velice zranitelný vůči stegalytickým útokům OutGuess V této části popisujeme software [36]. Napsáno v C Součástí programu je i steganalytický software Open source Multiplatformní Využívá pokročilejší metodu vkládání Nemá GUI Nepodporuje šifrování Nepodporuje kompresi OutGuess je velice zajímavá steganografická a steganalytická aplikace. Obzvláště zajímavá je pokročilá metoda vkládání na základě frekvenční analýzy umísťuje data do DCT, nedovoluje překročit maximální bezpečnou kapacitu zjištěnou touto analýzou. Tato metoda je odolná vůči statistickým útokům. Bohužel není dostupné GUI a neposkytuje šifrování a kompresi ukrývané zprávy. Autor se projektu již nevěnuje Steg V této části popisujeme software [13]. Obsahuje GUI Napsaný v C++/Qt Multiplatformní Široká škála nastavení Symetrická, asymetrická kryprografie Stegosystém podobný jako u OutGuess, odolný statistickým útokům 31

48 2. Analýza současných nástrojů Není open source Nepodporuje kompresi Prohlížeč nosiče a stegogramu není dobře udělaný Steg je velice užitečný nástroj s obrovským množstvím různých nastavení. Velice zajímavé je využití asymetrické kryprografie a to jak k zašifrování dat veřejným klíčem, tak k elektronickému podpisu těchto dat. Pokročilý stegosystém a široká škála podporovaných formátů nosičů jej řadí mezi nejlepší dostupné steganografické nástroje. Bohužel tento program není open source a autor nezveřejňuje ani kód, ani dokumentaci. Prohlížeč nosiče a stegogramu kromě nesynchronizovaného přibližování nenabízí vůbec nic tedy ani názornější porovnání obrázků Steghide V této části popisujeme software [17]. Napsaný v C++ Open source Široká škála kryptografických algoritmů Umožňuje kompresi Umožňuje vložení checksumu k zajištění integrity dat Velice pokročilý stegosystém Oficiální Steghide neobsahuje GUI Používá jen jedno heslo na generování pozic i jako klíč šifrovacího algoritmu Nezvládá větší nosiče Steghide je velice silný steganografický nástroj se zajímavým stegosystémem. Stegosystém používá přístup z teorie grafů. Bohužel se autor projektu nevěnuje už přes 10 let a projekt neobsahuje oficiální GUI, existuje však několik neoficiálních např. [9] a [29]. Stegosystém je poněkud náročnější na výpočetní prostředky a při vložení většího obrázku (např. 7 MB) program po určité době sám spadne. 32

49 2.4. Shrnutí OpenPuff V této části popisujeme software [30]. Sočástí programu je GUI Podpora vícevláknového zpracování (až 16 CPU) Široká škála kryptografických algoritmů Velice pokročilý stegosystém Neumožňuje kompresi Neumožňuje vložení textu ze vstupního pole Freeware licence Neposkytuje podrobnější informace o vlastním stegosystému OpenPuff je velice pokročilý steganografický nástroj se širokou škálou podporovaných nosičů. Jako jeden z mála podporuje opravdu hodně formátů nosičů, nejen obrázkových, jako jsou např. MP3, MPG, 3GP, PDF a další. Program slibuje odolnost vůči χ 2 útoku 12. Autor projektu bohužel neposkytuje zdrojový kód programu. Proces vkládání je, oproti např. programu Steghide, velice pomalý. 2.4 Shrnutí Trh nabízí velké množství steganografických nástrojů. Až na výjimky jsou k dispozici zkušební verze zdarma, některé z nich mají ovšem výrazná omezení. Steganografie je poněkud citlivé téma, takže většina pokročilých programů asi nebude veřejně dostupná. Steghide je open source a nabízí opravdu zajímavý způsob vkládání, ovšem není vhodný pro výukové účely. Existuje pár GUI nad Steghide (např. [9] a [29]), ale nenabízí důležité funkčnosti, nejsou open source nebo nejsou vhodné pro výuku. Program, který splňuje všechny tyto vlastnosti, je cílem této práce. 12 Jelikož se práce nezabývá podrobněji steganalýzou, nebudeme zde χ 2 útok popisovat. 33

50

51 Kapitola 3 Analýza a návrh řešení Kapitola popisuje analýzu a návrh řešení požadovaného programu. Popisuje požadavky na rychlost a paměť (viz 3.1 na str. 35), volbu programovacího jazyka (viz 3.2 na str. 35), volbu knihovny pro práci s GUI (viz 3.3 na str. 36) a především jednotlivě popisuje funkční požadavky programu (viz 3.4 na str. 39). V předposlední části popisuje možná řešení propojení GUI s programem Steghide v jednom projektu (viz 3.5 na str. 45). Poslední částí je shrnutí celé kapitoly (viz 3.6 na str. 46). 3.1 Rychlost a paměť Aplikace by měla být v rámci možností 13 rychlá a využívat jen paměť, kterou opravdu potřebuje pro svůj aktuální běh. Program by měl jít ukončit v jakémkoliv rozpracovaném stavu a nezanechávat po sobě neuvolněnou paměť či dočasné soubory. 3.2 Programovací jazyk Pro tuto práci můžeme vybrat jakýkoliv programovací jazyk. Z hlediska možnosti využití kusů kódu programu Steghide a propojení obou programů do jednoho projektu je výhodnější použít jazyk používaný ve Steghide, jazyk C++. Jazyk C++ je podle [2] jeden z nejrychlejších jazyků vůbec a má mnoho dalších předností. Pro práci s GUI je dostupných několik kvalitních a bezplatných knihoven. 13 Rámec možností určuje především GUI framework, přesto by bylo vhodné zabývat se různými přístupy řešení v daném frameworku z hlediska optimálního výkonu. 35

52 3. Analýza a návrh řešení Z hlediska vývojářských zkušeností autora této práce, tak i z hlediska vyučovaných programovacích jazyků na fakultě, by bylo nejvhodnější použít právě jazyk C++. Na základě výše uvedených argumentů byl zvolen jazyk C++ pro implementaci řešení. 3.3 Knihovny pro práci s GUI Jelikož byl v předchozí části (viz 3.2 str. 35) zvolen jazyk C++, je nutné zvolit knihovnu pro práci s GUI, která podporuje tento programovací jazyk. C++ nemá standardní GUI knihovnu, trh však nabízí externích knihoven hned několik. Bylo by vhodné použít knihovnu, která obsahuje podporu tvorby a ovládání nejrůznějších oken, tlačítek a událostí. Užitečný by byl i správce souborů pro výběr nosiče a ostatních souborů ze souborového systému SDL V této části popisujeme software [23]. Multiplatformní Licence LGPL Primárně pro C Maximálně jedno okno aplikace Vhodné spíše na hry Neobsahuje užitečné formuláře, tlačítka, apod Qt V této části popisujeme software [11]. 36 Podpora C++ Licence LGPL Multiplatformní Jednoduché použití systému signálů a slotů Vysoce čitelný, lehce udržovatelný kód Jednoduché na naučení a použití

53 3.3. Knihovny pro práci s GUI Užitečné nástroje, např. Qt Linguist na lokalizace Výborná dokumentace Rozšiřuje C++ o tzv. MOC objekty, tím činí proces sestavení projektu složitější Projekty Wolfram Mathematica KDE Google Earth Lucasfilm WinAPI V této části popisujeme software [27]. Podpora C++ Jen Windows Těžké na naučení Nepřehledný kód GTK+ V této části popisujeme software [46]. C++ wrapper Gtkmm Licence LGPL Multiplatformní Jednoduché na naučení a použití jak pro vývojáře, tak pro uživatele Dobře navržené, flexibilní a rozšiřitelné Výborná dokumentace Sofistikovaný framework pro internacionalizace, lokalizace 37

54 3. Analýza a návrh řešení Projekty GIMP Gnome VMWare Inkspace wxwidgets V této části popisujeme software [43]. Podpora C++ Licence LGPL Multiplatformní Dobrá dokumentace Použití nativních widgetů operačního systému, kód se může chovat na každé platformě odlišně, což přináší mnoho chyb aplikace Neposkytuje binární spustitelné soubory, nutná kompilace celé knihovny Projekty Google Drive BitTorrent Code::Blocks VLC media player Shrnutí volby GUI knihovny Na trhu je mnoho dostupných a kvalitních externích knihoven pro práci s GUI. Jelikož je možné zvolit multiplatformní knihovnu pod licencí LGPL, bude volba WinAPI rovnou zamítnuta. Navzdory zkušenostem autora pouze s knihovnou SDL, by bylo vhodné vybrat jinou, neboť SDL by nevyhovovala potřebám tvořené aplikace. Z hlediska podpory, kvality dokumentace a poskytnutí kvalitních nástrojů pro návrh GUI aplikace a její překlad jednoznačně vítězí Qt. Na základě argumentů popsaných výše byla vybrána knihovna Qt. 38

55 3.4. Funkční požadavky 3.4 Funkční požadavky Zde si popíšeme návrh jednotlivých požadovaných funkčností navrhované aplikace Rozložení prvků v GUI Grafické rozhraní by mělo být jednoduché a přehledné. Proces vkládání by měl být graficky separován od extrahování. Aplikace by dále měla obsahovat informace o programu Lokalizace Z důvodu dalšího možného rozšíření výukové aplikace, je vhodné tuto aplikaci vyhotovit ve více jazykových provedení, nejlépe češtině a angličtině, nebo alespoň rozšířit o možnost překladu. Systém překladu by neměl být složitý a pracný. Překlad všech znakových řetězců ve zdrojovém kódu a rekompilace zcela nové spustitelné verze programu je nevyhovujícím přístupem. Spustitelná verze programu by měla být jedna a při vypisování lokalizovatelných řetězců by měla využívat externí soubor, tento soubor by měl být lehce nahraditelný souborem s dalším překladem Vstupní pole Jelikož Steghide umožňuje vkládat nejen soubory ale i text ze standardního vstupu v terminálu, bylo by vhodné implementovat v grafickém prostředí vstupní pole, kam by se dala psát vkládaná zpráva. Podle toho, jak by se text v poli měnil, by se počítala aktuální využítá steganografická kapacity nosiče. Pokud chceme zjišťovat kapacitu textu, musíme nejprve jednotlivé znaky textu zakódovat. Je tedy nutno zvolit vhodné kódování znaků. Aspektů na volbu vhodného kódování je několik. Úspornost jelikož u subtituční steganografie jde především o úspornost, mělo by být zvolené kódování úsporné, není to ovšem nejdůležitější aspekt. Mezi úsporná kódování patří například ASCII6 [1] či další obdoby založené na ASCII tabulce znaků. Pokrytí Unicode co největší pokrytí Unicode je opakem úspornosti. Program je určen především pro výuku v češtině, bylo by tedy vhodné použít kódování, které obsahuje i české znaky. Nabízí se kódování pro 39

56 3. Analýza a návrh řešení Střední Evropu nebo ideálně celou Unicode tabulku. Mezi Středoevropská kódování se řadí rozšířené Windows-1250 a ISO Mezi Unicode kódování patří UTF a UCS a jejich konkrétní varianty. Rozšíření je velice důležité diskutovat vhodnost zvoleného kódování z hlediska použitého kódování v operačním systému a míry jeho rozšíření. [10] a [47] ukazují, že kódování UTF-8 je velice rozšířené na webu. Zdroj [37] poukazuje na rozšíření a výhody UTF-8 oproti ostatním Unicode kódováním navzdory tomu Windows používá UTF-16. Jádro linuxu podle [4] používá přímo UTF-8. Podle [50] UTF-8 využívá 1 4 byty na znak. Pro znaky ASCII využívá 1 byte, není tedy tak úsporné jako ASCII6 či ASCII7, nabízí ovšem všechny znaky Unicode. Z výše zmíněných argumentů se nabízí jako nejlepší řešení použití UTF Steganografická kapacita Součástí zadání je návrh a implementace počítání steganografické kapacity, je tedy nutné navrhnout její funkční a užitečnou implementaci. Celková kapacita nosiče Po zvolení nosiče by měla být vypočítána steganografická kapacita daného nosiče a zobrazena. Metoda getcapacity() třídy CvrStgFile tuto kapacitu dokáže spočítat. Kód této metody je následující : unsigned long CvrStgFile::getCapacity () const { float maxnvertices = getnumsamples() / getsamplespervertex() ; float maxnbits = maxnvertices * log2(getembvaluemodulus()) ; return ((unsigned long) (maxnbits / 8)) ; } Nejedná se ovšem o maximálně využitelnou kapacitu, neboť algoritmus Steghide [17] se snaží o minimální počet změn v nosiči, stejné bloky dat zprávy tedy nezapisuje vícekrát, pouze na ně odkáže. Nebudeme tedy při využití této kapacity na více jak 100 % zabraňovat uživateli ve vkládacím procesu, nýbrž ho jen upozorníme na možnou komplikaci v důsledku vyčerpání dané kapacity např. varovným zbarvením popisku kapacity. 40

57 3.4. Funkční požadavky Daná metoda je závislá na několika existujících objektech, nejde tedy volat staticky (bez vytvoření objektu). Máme tedy dva způsoby jejího zavolání. Prvním je zjištění všech závislostí a tvorba patřičných objektů, toto řešení je těžkopádné, při změně struktury tříd Steghide by tento způsob mohl přestat fungovat. Druhý způsob nám nabízí přímo Steghide. Viz následující zavolání programu: terminal:$ steghide info -p "password" file.jpeg Steghide mód info poskytuje informace o souboru např. steganografická kapacita, informace o vložených datech (pokud nějaká jsou), použitý šifrovací algoritmus a mód, úroveň komprese, atd... Pokud je daný soubor nosič (tedy neobsahuje žádnou ukrytou zprávu) a spustíme mód info s jakýmkoliv heslem, Steghide nám poskytne informace o steganografické kapacitě, neboť jsou vytvořeny všechny potřebné objekty a metoda getcapacity() je také zavolána. Jelikož je druhý způsob flexibilnější, jednodušší a je nabízen přímo programem Steghide, byl tento způsob zvolen pro implementaci. Uložení celkové kapacity využitím této metody se však dá ještě dvěma různými přístupy. Parsování výstupu Steghide info módu či uložení kapacity do externí globální proměnné. Parsování výstupu je časově, paměťově i implementačně náročnější. Je tedy vhodné zvolit metodu uložení globální proměnné. Aktuálně využitá kapacita Utajovaná zpráva může být vložena ze dvou různách zdrojů ze souboru a z textového pole. Podle aktuálně zvoleného režimu vstupu je nutné zobrazovat aktuálně využitou kapacitu právě zvoleného vstupu. Kapacita by měla být zobrazena na jednom míste v GUI nezávisle na vstupu. Vkládání ze souboru: situace je jednodušší, po zvolení souboru zjistíme jeho velikost a tu zobrazíme v GUI. Vkládání ze vstupního pole: zde by bylo vhodné v reálném čase informaci o aktuálním využití kapacity také zobrazovat v GUI. V této kapitole jsme se rozhodli využít UTF-8 ke kódování znaků (viz str. 39). Text tedy zakódujeme a zjistíme výslednou velikost. 41

58 3. Analýza a návrh řešení Steghide navíc umožňuje kompresi vkládané zprávy pomocí knihovny zlib [38], jak zmiňuje na [17]. Bylo by příhodné spočítat kapacitu zakódovaného textu i po kompresi. To však znamená nutnost celý proces komprese při každé změně vstupního pole provést znovu. Je nutné otestovat, zda takto výpočetně náročný proces bude probíhat v rozumném 14 čase v opačném případě by měla být možnost tuto funkci vypnout. Spočítat velikost po kompresi knihovnou zlib můžeme dvěma způsoby. Prvním je možnost využití funkce compress2 knihovny zlib, stejně jako se používá u Steghide, viz následující kód: #ifdef USE_ZLIB BitString& BitString::compress (int level) { // -- code omitted -- // do compression int ret = zlib::compress2 (destbuf, &destlen, (const zlib::bytef*) srcbuf, srclen, level) ; // -- code omitted -- } Druhou možností je využití celého vkládacího procesu Steghide s uložením velikosti výstupu funkce compress2 (příklad výše) do externí globální proměnné. Druhá možnost by sice zjednodušila implementaci, je ale velice časově a paměťově neefektivní, proto je vhodnější použít možnost první Demonstrace procesu vkládání Dalším úkolem je názorně demonstrovat proces vkládání. Budou tedy vybrány nejdůležitější kroky vkládání a bude zobrazeno, jak se daná utajovaná data v průběhu mění (resp. jak se z nosiče stane stegogram). Součástí této demonstrace by měl být i doprovodný text u každé ukázky mezivýsledku. Je tedy nutné navrhnout, jak budou jednotlivé mezivýsledky získávany a jak budou poté prezentovány. 14 Při vložení/umazání znaku by neměla být odezva programu příliš dlouhá, uživatel by mohl být tímto chováním programu odrazen 42

59 3.4. Funkční požadavky Získání mezivýsledků vkládání Zavoláním funkce main programu Steghide s příslušnými parametry navíc doplněnými o parametry poskytující debug 15 výpisy. Například parametr --printstats. Při použití této metody je nutné přesměrovat standardní vstup a rozparsovat jej. Steghide bohužel nedovoluje použití více jak jednoho debug výpisu v parametrech spuštění, nemůžeme si tedy například nechat vypsat podobu celého grafu společně s jeho vlastnostmi, jako je průměrný stupeň uzlu, atd... Tato metoda tedy není příliš flexibilní. Využitím zdrojových souborů Steghide včetně zrušení Steghide funkce main a postupnou tvorbu objektů a volání Steghide metod. Tato metoda má jisté výhody můžeme se kdykoliv v průběhu vkládání zastavit, to by mohl ocenit uživatel, který by chtěl vidět pouze část procesu vkládání, ne však například výsledný stegogram. Tato metoda je opravdu složitá a vyžaduje částečné přepsání celého Steghide projektu. Ukládání mezivýsledků běhu Steghide do externích globálních proměnných. Tato metoda je flexibilní, jednoduchá a nevyžaduje takový drastický zásah do struktury Steghide. První metoda je pro náš účel téměř nepoužitelná, zajímavější jsou ovšem druhá a třetí. Třetí možnost vždy spustí celý proces vkládání, nemusel by to však být takový problém, ve většině případů to bude uživatelův záměr. Pokud uvažujeme možnost budoucí aktualizace jádra našeho řešení programu Steghide autorem programu, muselo by se opět předělat i naše řešení, v takovém případě je třetí možnost výhodnější než druhá. Celkově z hlediska menšího počtu zásahů do struktury Steghide je výhodnější třetí metoda, ta tedy byla zvolena. Zobrazení mezivýsledků vkládání Každý důležitý mezivýsledek by měl být detailněji popsán jeho význam, vlastnosti, náhled, atd... Náhled by měl být přehledný, formátovaný a hlavně jednotný. Jelikož jsou mezivýsledky různých formátů (obrázek, prostý text, binární soubor) je nutné zvolit formu, kterou může reprezentovat každý. Takovou formou je binární soubor, neboť každý z těchto mezivýsledků na něj lze převést. 15 Aby Steghide tyto výpisy poskytoval, je nutné jej zkompilovat s definovaným DEBUG makrem preprocesoru 43

60 3. Analýza a návrh řešení Jednotlivé mezivýsledky, které by měly být zobrazeny: Nosič u nosiče by měla být informace o jeho velikosti, jeho celkové steganografické kapacitě a jeho náhled jako binárního souboru. Utajová zpráva zpráva jako binární soubor (popř. text zakódován v UTF-8), informace o její velikosti a náhled. Heslo heslo zakódované v UTF-8, jeho použití a náhled. Zkomprimovaná zpráva zpráva po kompresi, úspěšnost 16 komprese algoritmu, její nová velikost a náhled. Zašifrovaná zpráva zpráva v zašifrované podobě a její nová velikost a náhled, informace o použitém algoritmu, klíči, inicializačním vektoru a módu. Spočítané CRC pokud byla tato možnost zvolena, je vhodné zobrazit velikost a náhled spočítaného CRC. Mezivýsledky stegosystému v našem případě počet vrcholů, hran grafu, atd.... Stegogram jeho velikost 17 a náhled jako binární soubor. Porování nosiče a stegogramu Poté by bylo užitečné implementovat jednoduchý prohlížeč nosiče a stegogramu. Zobrazení by mělo být v obrazkové podobě, které by sloužilo k porovnání lidským okem. Toto porovnání by mělo jít současně přiblížit a mělo by být názorné, je tedy potřeba zobrazit jak původní verze nosiče a stegogramu, tak i nějakou názornější formu. Názornější by mohlo být zobrazení pixelových odlišností na místě stegogramu zobrazit černou barvu tam, kde jsou pixely stejné na nosiči a stegogramu, bílou tam, kde nejsou. Toto zobrazení nám ukáže jaké pixely se liší a kde jsou umístěny v obrázku z pozic lze odtušit, jak funguje generátor pozic pro skrývání dat. Nevýhodou této metody je zobrazení pouze rozdílných pixelů, ne však rozdílných barevných kanálů. Další názornou metodou by tedy mohlo být zobrazení odlišností v barevných kanálech. Zobrazíme černou barvu tam, kde jsou pixely naprosto 16 Pojmem Úspěšnost komprese se rozumí zda-li byl objem vstupních dat po kompresi zredukován či nikoliv a v jaké míře. 17 Jelikož se jedná o substituční algoritmus, musí být velikost shodná s velikostí nosiče. 44

61 3.5. Spojení dvou projektů stejné na nosiči i stegogramu, na ostatních porovnáme barevný kanál nosiče a stegogramu, pokud se neliší, nastavíme nejnižší intenzitu barevného kanálu, pokud se liší, nastavíme nejvyšší intenzitu barevného kanálu. Pixel tedy může být reprezentován 8 různými barvami, viz Obrázek 3.1. Obrázek 3.1: Barvy s nejnižší a/nebo nejvyšší intenzitou jednotlivých barevných kanálů 3.5 Spojení dvou projektů V této části bude navrženo propojení obou projektů této práce a programu Steghide. V předchozích částech jsme zvolili jazyk C++ (viz 3.2 str. 35) a knihovnu Qt (viz 3.3 str. 36). Spojení obou projektů může být následující způsoby. Steghide jako binární spustitelný soubor Jednodušší přístup. Projekt obsahuje pouze kód GUI, který v určité situaci externě zavolá program Steghide a předá mu parametry. Tento přístup má velkou nevýhodu, není možné předávat hodnoty pomocí globálních proměnných. Jedinou možností je parsování výstupu a ukládání do dočasných souborů či vytvoření sdíleného paměťového prostoru. Při ukládání do dočasných souborů je nutné upravit kód Steghide a celý projekt opět rekompilovat. Výhodou je menší velikost výsledného spustitelného binárního souboru této práce. Tento přístup by mohl ocenit potencionální uživatel, který má již Steghide nainstalovaný, toto platí pouze v případě kdy není Steghide vůbec upraven. 45

62 3. Analýza a návrh řešení Steghide zdrojové soubory jako součást projektu Zdrojové soubory budou součástí jednoho projektu. Složitější přístup, který však přináší mnohé výhody. Hlavní výhodou je možnost využití kusů kódu Steghide a předávání hodnot pomocí globálních proměnných, což se velice hodí, jak bylo popsáno dříve (viz 3.4 str. 39). Viz následující kód: QString datasizehr = Utils::formatHRSize(dataSize).c_str(); V příkladu je využita statická metoda formathrsize třídy Utils ze zdrojových souborů Steghide. Při použití tohoto způsobu propojení je možné tuto užitečnou metodu, která převádí kapacitu uloženou jako integer na std::string v názornější a zaokrouhlené podobě, využít. Tento přístup je velice flexibilní a rychlejší z hlediska výkonu. Další výhodou je jednotná rekompilace obou projektů Nevýhodou je složitější spojení obou projektů, výsledná velikost binárního spustitelného souboru a nutné zasáhnutí do zdrojových souborů Steghide. Z výše zmíněných argumentů je vhodnější zvolit druhou variantu. 3.6 Shrnutí V první části byly uvedeny nároky na rychlost a paměť výsledné aplikace. V další části byl vybrán nejvhodnější programovací jazyk z hlediska potřeb této práce, jazyk C++. V následující práci byly uvedeny výhody a nevýhody dostupných GUI knihoven pro zvolený programovací jazyk a vybrána byla knihovna Qt. Další část řešila návrh jednotlivých funkčních požadavků. Mezi ně patří vzhled aplikace, lokalizace, vstupní pole, počítání a zobrazování steganografické kapacity a demonstrace procesu vkládání. Nakonec byl vybrán způsob spojení projektů. 46

63 Kapitola 4 Implementace a testování V této kapitole bude popsána implementace GUI aplikace nad programem Steghide a její následné testování. Současně bude zobrazeno pár ukázek z výsledného programu. Nejdříve bude popsáno vyřešení spojení obou projektů do jednoho celku (viz 4.1 str. 47), dále bude zmíněno vyřešení lokalizací (viz 4.2 str. 48) a vyřešení rozložení GUI (viz 4.3 str. 48). V další části bude popsána implementace jednotlivých funkčních požadavků (viz 4.4 str. 49), testování výsledného programu (viz 4.5 str. 51), nápady na další vylepšení aplikace, které by se v budoucnu mohli uskutečnit (viz 4.6 str. 52) a nakonec bude celá kapitola shrnuta (viz 4.7, str. 52). 4.1 Jeden projekt Při spojení obou projektů se ukázal problém nezkompilovatelná konfigurace obsahující část Qt i C++, kde každá obsahuje jiný makefile. Vyřešit tento problém dokázalo vývojové prostředí NetBeans [31], v němž byl založen zcela nový Qt projekt, do něj přidán makefile, zdrojové a hlavičkové soubory programu Steghide. NetBeans se poté postará o nastavení výsledného makefile z nastavení projektu a z původního makefile programu Steghide. Steghide main() funkce v main.cpp musela být přejmenována na steg_main() a main.cpp na steg_main.cpp. Z GUI zdrojového kódu je pak volán steg_main(). Důležité parametry jsou předávány pomocí globálních proměnných. 47

64 4. Implementace a testování 4.2 Lokalizace Výsledný program byl realizován ve dvou jazykových provedení češtině a angličtině. Qt používá nástroj Linguist pro jednoduchý ruční překlad lokalizovatelných znakových řetězců. Výstupem překladu je XML soubor s příponou.ts, ten je následně, pomocí Linquist, převeden na binární 18 soubor s příponou.qm a tento slovník je nahrán do Qt aplikace ve funkci main programu. Viz následující kód: // main.cpp QApplication app(argc, argv); QTranslator translator; translator.load("./tr_cs"); app.installtranslator(&translator); Při spuštění aplikace musí být daný slovník v dané cestě, jinak je použita výchozí hodnota znakových řetězců. Viz následující řádek: window->setwindowtitle(tr("image Viewer")); Pokud byl přítomen, ve stejné cestě jako binárka, soubor tr_cs.qm, bude použit překlad (např. Prohlížeč obrázků). Jestliže nebyl, bude použita výchozí hodnota Image Viewer. Program nepoužívá žádné slovníky a přidání dalšího jazyka je možné pomocí nástroje Linguist. Pokud by měl program podporovat více jazykových mutací, je vhodné tento systém vylepšit na použití slovníků, systémových locales nebo možnosti přepnutí jazyka přímo za běhu programu. 4.3 Rozložení GUI Program obsahuje několik oken. Hlavní okno se 3 záložkami, Vlož (viz Příloha B.1 str. 61), Extrahuj (viz Příloha B.2 str. 62) a Info. Tlačítko prohlédni spustí názornou demonstraci procesu vkládání (viz Příloha C.1 str. 63). V tomto okně je navíc tlačítko Ukaž obrázky, po jeho stlačení se objeví další okno Prohlížeč obrázků okno na porovnání dvou obrázků (viz Příloha C.2 a C.3 str. 64). 18 Výsledná Qt aplikace podle [11] dokáže zpracovat pouze binární qm soubor, nikoliv však textové XML, proto musí být vždy převedeno do binární formy. 48

65 4.4. Funkčnost 4.4 Funkčnost Následující část popisuje implementaci funkčních požadavků Steganografická kapacita Úkolem bylo implementovat počítání steganografické kapacity podle návrhu. V pravé dolní části okna Vlož je vidět aktuální využití celkové kapacity nosiče a to jak v případě kdy je vkládán soubor, tak v případě vkládaného textu z QPlainTextEdit (viz Obrázek 4.1 str. 49). Obrázek 4.1: Zobrazení využití steganografické kapacity nosiče V případě vkládaného souboru je použita absolutní velikost souboru, v případě vkládaného textu z pole je text zakódován do UTF8 a následně zjištěna jeho velikost. Zobrazená kapacita je po zvolené kompresi. Pokud kapacita překročí mez udanou pomocí Steghide info (viz str. 40) je kapacita zobrazena červeně (viz Obrázek 4.2 str. 49). Obrázek 4.2: Zobrazení možného překročení steganografické kapacity nosiče 49

66 4. Implementace a testování Celková kapacita nosiče V návrhu počítání aktuální celkové kapacity, jak bylo zmíněno dříve (viz str. 40), byl zvolen způsob zavolání metody info programu Steghide a uložení do externí globální proměnné. Viz následující kód: // CvrStgFile.cc extern std::string GCoverCapacityHR; std::string CvrStgFile::getHRCapacity () const { return GCoverCapacityHR= Utils::formatHRSize (getcapacity()) ; } Aktuální kapacita nosiče V návrhové části (viz str. 40) bylo popsáno počítání kapacity po kompresi. Implemetována byla metoda aftercompresssize(qbytearray data, int level), která kopíruje postup Steghide. Po implementaci bylo ovšem nutné otestovat, zda nebude odezva programu příliš dlouhá, pokud ano, měla by být možnost tuto funkčnost vypnout. Jelikož v testování byla odezva relativně krátká, možnost vypnutí této funkčnosti nebyla implementována, což zachová přehlednější uživatelské rozhraní Ukládání zvoleného nastavení Aplikace obsahuje implemetované ukládaní zvoleného nastavení aplikace. Ukládány jsou použité cesty k nosiči, vkládanému a extrahovanému souboru a stegogramu. Technologie je použita přímo od Qt, které slibuje multiplatformní funkčnost. Výsledné nastavení je uloženo v závislosti na OS (registry pro Windows, soubor.ini pro Linux a.xml pro Mac OS X [11]). Nastavení je uloženo pomocí názvu autora aplikace a jména aplikace: QSettings settings("marek Bartik - CTU FIT", "Steghide GUI"); V konstruktoru třídy combo boxů je načítáno ono uložené nastavení do položek konkrétního combo boxu. Nově přidaná položka je ihned zapsána a uložena do daného nastavení. Při každé změně combo boxu s cestou se do nastavení uloží poslední zvolená použitá cesta. Použit je systém signálů a slotů. 50

67 4.5. Testování Demonstrace vkládání Implementováno bylo samostatné okno se zobrazenými mezivýsledky vkládání (viz Příloha str. 63). Příloha obsahuje pouze zmenšený náhled. Součástí demonostrace byl jednoduchý prohlížeč obrázků (viz Příloha C.2 a C.3 str. 64), který názorně porovná nosič a stegogram navrženými metodami, zmíněno v kapitole návrhu (viz str. 42). 4.5 Testování V zájmu vylepšení aplikace bylo prováděno testování. Testy nebyly automatizované, byly prováděny pouze lidmi, především studenty. Zjištěné nedostatky jsou diskutovány v následující části Nedostatky zjištěné při testování Combo box pro volbu úrovně komprese byl v menu nepřehledně umístěn, bylo sice ušetřeno místo v grafickém rozložení, ale nebylo názorně vidět k čemu combo box patří. Vyřešeno přesunutím combo boxu s popiskem na další řádek. Zobrazení černobílého rozdílu pixelu nebylo dostatečně názorné, bylo tedy z implementace zcela vypuštěno. Nahrazeno bylo upraveném rozdílu barevných složek (viz Příloha C.2 str. 64). V prohlížeči obrázků nebylo ve výchozím zobrazení poznat co je nosič a co stegogram. Jako řešení byly přidány odpovídající popisky. Přibližování a oddalování je příliš pomalé, se vzrůstajícím faktorem přiblížení je odezva delší. U slabšího hardware je to problém. Je však použit kód založený na ukázce z Qt, kde je tento možný pokles výkonu zmíněn. Z hlediska nejjednoduššího a pravděpodobně postačujícího řešení, byla omezena možnost přiblížení na trojnásobek původní velikosti. Prohlížeč obrázků má problémy s nastavením pozice obrázku po přiblížení. Stávající řešení nepoužívá pozici kolečka myši a nezjistí tedy, jak má správně pozici v obrázku posunout, postranní posuvník však funguje bez problémů. Tento problém nebyl prioritou a nebyl v rámci této práce vyřešen. 51

68 4. Implementace a testování 4.6 Nápady na další vylepšení aplikace V zájmu vylepšení aplikace by bylo vhodné v budoucnu realizovat několik dalších vylepšení, které jsou nad rámec této práce. Aplikace byla primárně vyvíjena na Ubuntu, bylo by tedy vhodné otestovat ji na více distribucích a platformách. Další velice vhodná možnost je uzpůsobení a otestování aplikace na systému Windows a Mac OS X. Dále sestavení instalačních balíčků, instalátorů a poskytnout uživatelům webový systém bug reportů. Podle zpětné vazby uživatelů by bylo vhodné vylepšit stávající vzhled, uspořádání GUI či přidání nových funkčností a jazykových mutací. Vhodná by byla také úprava jádra aplikace - programu Steghide. Steghide je přes 10 let neaktualizovaný program a nezvládá zpracovat větší obrázkové nosiče (typicky 7 MB). Zajímavé by bylo rozšíření o asymetrickou kryptografii, nové šifrovací algoritmy, podporu více hesel, větší velikosti klíčů a sbírání entropie z hardwarových zařízení či napojení na náhodný generátor. Další možností je rozšíření podpory nejrůznějších formátů nosičů. Výuková demonstrace by mohla rozšířena o zobrazení průběhu vkládání do audio sou 4.7 Shrnutí V rámci implementace byla vytvořená zcela nová aplikace využívající zdrojové kódy programu Steghide. Byl vytvořen nový Qt projekt, který ve svém těle volal upravenou funkci main programu Steghide. Do programu Steghide bylo zasahováno minimálně, byly použity pouze externí globální proměnné ke sběru obsahu důležitých proměnných. 52

69 Závěr V rámci této práce se podařilo navrhnout a implementovat funkční aplikaci s grafickým uživatelským rozhraním pro výukové účely. Aplikace je naprogramovaná v jazyku C++ a využívá grafickou knihovnu Qt. Jádrem této aplikace je program Steghide. Pro výukové účely by měla posloužit názorná demonstrace postupu vkládání uživatelem zvolených dat do zvoleného obrázkového nosiče. V textové podobě je čtenáři v první kapitole poskytnut teoretický základ problematiky steganografie a ukrývání informací, který bylo potřeba nastudovat k úspěšnému dosažení cílů této práce. Všechny stanovené požadavky se podařilo v rámci práce splnit. V analýze stávajících steganografických nástrojů byly zjištěny nedostatky těchto programů a posloužily pro návrh lepšího řešení a dalších funkčních celků. Výsledek této práce může být využit pro výukové účely předmětů i nepřímo se zabývajích steganografií. Může však být využit i jako běžný steganografický nástroj běžným uživatelem, názorná demonstrace je jen další funkční součást aplikace, které nemusí být využita. Největším osobním přínosem je tvorba projektu nad existujícím větším projektem, tvorba v Qt a pochopení části problematiky steganografie a její praktické vyzkoušení. Dalším přínosem bylo pochopení důležitosti důkladné rešerše a její zužitkování v akademické práci. Pokračováním této práce by mohlo být vylepšení či přidání funkčností po zpětné vazbě od uživatelů této aplikace. Dalším možným pokračováním by bylo vhodně vylepšit jádro této aplikace program Steghide a přizpůsobit ho požadavkům dnešní doby. 53

70

71 Literatura [1] ASCII6. [online], [cit ]. Dostupné z: longlandclan.yi.org/index.php/ascii6 [2] Amaya, S.: C++ language description. [online], [cit ]. Dostupné z: [3] Anderson, R.: Information Hiding: First International Workshop Cambridge, U.K. Berlin, Heidelberg: Springer-Verlag Springer e-books, květen 1996, ISBN [4] Anvin, H. P.: Linux Kernel rewritten to use Unicode. [online], [cit ]. Dostupné z: ftp://ftp.kernel.org/pub/linux/docs/ lanana/unicode/unicode.txt [5] Bamatraf, A.; Ibrahim, R.; Salleh, M. N. M.: A New Digital Watermarking Algorithm Using Combination of Least Significant Bit (LSB) and Inverse Bit. CoRR, [6] Barker, E.; Kelsey, J.: NIST Special Publication A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators. CreateSpace, 2012, ISBN , 18 s. [7] Bender, W.; Gruhl, D.; Morimoto, N.; aj.: Techniques for Datahiding [8] Chorein, A.: SilentEye. 2008, [software], [cit ]. Dostupné z: [9] Cocchiaro, N.: SteGUI. [software], [cit ]. Dostupné z: http: //stegui.sourceforge.net/ 55

72 Literatura [10] Davis, M.: Unicode nearing 50 % of the web. [online], [cit ]. Dostupné z: 01/unicode-nearing-50-of-web.html [11] Digia: Qt 4.7. [online], [cit ]. Dostupné z: qt-project.org/ [12] Elert, G.: Number of Colors Distinguishable by the Human Eye. Dostupné z: shtml [13] Fabio: Steg , [software], [cit ]. Dostupné z: http: //steg.drupalgardens.com/ [14] Fortini, M.: Data hiding in still images. [online], [cit ]. Dostupné z: RetiDiCalcolatori/Progetti98/Fortini/images.html [15] Gruhl, D.; Bender, W.: Information Hiding to Foil the Casual Counterfeiter [16] Herych, J.: Označování hudebních souborů: Bakalářská práce, Praha: ČVUT v Praze, Fakulta informačních technologií [17] Hetzl, S.: Steghide. Dostupné z: [18] Jayaram, P.; Ranganatha, H. R.; Anupama, H. S.: Information Hiding using audio steganography A Survey. The International Journal of Multimedia & Its Applications (IJMA), ročník 3, č. 3, srpen [19] Johnson, N.; Jajodia, S.: Steganalysis of Images Created Using Current Steganography Software, Lecture Notes in Computer Science, ročník Springer Berlin Heidelberg, 1998, ISBN , s., doi: / _19. [20] Johnson, N. F.: Steganography Software. [online], [cit ]. Dostupné z: [21] Johnson, N. F.; Jajodia, S.; George Mason University: Exploring Steganography: Seeing the Unseen. únor [22] Kumar, S.; BandyopadhyayBarnali; Banik, G.: LSB Modification and Phase Encoding Technique of Audio Steganography Revisited. červen

73 Literatura [23] Lantinga, S.: SDL - Simple Dictmedia Layer. [online], [cit ]. Dostupné z: [24] Leivaditis, M.: Statistical Steganalysis. Diplomová práce, University of Surrey, Dostupné z: personal/st/h.schaathun/projects/past/leivaditis.pdf [25] McDonald, A. D.: StegFS. [software], [cit ]. Dostupné z: [26] Mckellar, D.: Spam Mimic. [online], [cit ]. Dostupné z: [27] Microsoft: WinAPI. [online], [cit ]. Dostupné z: msdn.microsoft.com/en-us/library/cc433218%28vs.85%29.aspx [28] Nave, C. R.: The Color-Sensitive Cones. [online], [cit ]. Dostupné z: rodcone.html [29] Neznámý autor vystupující pod přezdívkou Drunken.Canadian: Steghide UI. [software], [cit ]. Dostupné z: steghideui.sourceforge.net/ [30] Oliboni, E. C.: OpenPuff [software], [cit ]. Dostupné z: [31] ORACLE: NetBeans IDE. [software], [cit ]. Dostupné z: [32] Owens, M.: A Discussion of Covert Channels and Steganography. SANS Institute, [33] Oxford Unity Press: Oxford Dictionary - definition of Steganography. [online], [cit ]. Dostupné z: com/definition/english/steganography?q=steganography [34] Petitcolas, F. A. P.: StirMark. [software], [cit ]. Dostupné z: [35] Petitcolas, F. A. P.; Anderson, R. J.; Kuhn, M. G.: Information Hiding A Survey. Proceedings of the IEEE, ročník 87, č. 7, červenec [36] Provos, N.: OutGuess , [software], [cit ]. Dostupné z: 57

74 Literatura [37] Radzivilovsky, P.; Galka, Y.; Novgorodov, S.: UTF-8 Everywhere. [online], [cit ]. Dostupné z: org/ [38] Roelofs, G.; Adler, M.: zlib. Dostupné z: [39] Schibilla, A.: Opticall illusions. Dostupné z: funny/optical_illusions/nonexistent_objects/nonexistent_ objects.php [40] Seok, J.; Hong, J.; Kim, J.: A Novel Audio Watermarking Algorithm for Copyright Protection of Digital Audio. červen [41] Sheisi, H.; Mesgarian, J.; Rahmani, M.: Steganography: Dct Coefficient Replacement Method and Compare With JSteg Algorithm. srpen [42] Simmons, J. G.: Advances in cryptology. Springer-Verlag, April 1984, ISBN , s. [43] Smart, J.: WxWidgets. [online], [cit ]. Dostupné z: http: // [44] Summers, R. C.: Secure Computing : Threats and Safeguards. New York : McGraw-Hill, 1997, ISBN [45] Szczypiorski, K.: Steganography in TCP/IP Networks. State of the Art and a Proposal of a New System - HICCUPS. Warsaw University of Technology, Poland, November 4th 2003, institute of Telecommunications seminar. [46] The GTK+ Team: GTK+. [online], [cit ]. Dostupné z: [47] W3Techs: Usage of character encodings for websites. [online], [cit ]. Dostupné z: character_encoding/all [48] Wayner, P.: Disappearing cryptography : information hiding : steganography & watermarking. Amsterdam Boston: MK/Morgan Kaufmann Publishers, 2002, ISBN [49] YANG, C.-H.; WANG, S.-J.: Transforming LSB Substitution for Image-based Steganography in Matching Algorithms. červenec [50] Yergeau, F.: UTF-8, a transformation format of ISO [online], [cit ]. Dostupné z: 58

75 Příloha A Instalační příručka Spustitelný binární soubor Součástí archivu je binární spustitelný soubor SteghideGUI vytvořený na Ubuntu 64-bit. Pokud chcete tento program spustit na jiné platformě, archiv obsahuje zdrojové kódy a projekt v prostředí NetBeans. Pokud toto prostředí nemáte, nabízí se např. terminálový program ant. Požadavky Aplikace využívá program Steghide ve verzi 0.5.1, který potřebuje ke svému běhu následující knihovny: libmcrypt, doporučený balík libmcrypt4 libmhash, doporučený balík libmcrypt2 libjpeg, doporučený balík libmjpeg62 zlib, doporučený balík zlibc Struktura Spustitelný soubor používá obrázky, ikonu a překlad znakových řetězců z externích souborů. Tyto soubory jsou v aktuálním adresáři (soubor tr_cs.qm) a v adresáři gfx. Pokud chcete, aby program fungoval správně, zachovejte tyto soubory a jejich adresářové struktury. 59

76

77 Příloha B Hlavní okno Obrázek B.1: Hlavní okno aplikace na záložce Vlož 61

78 B. Hlavní okno Obrázek B.2: Hlavní okno aplikace na záložce Extrahuj 62

79 Příloha C Demonstrace vkládání Obrázek C.1: Demonstrace vkládacího procesu okno Prohlédnutí 63

80 C. Demonstrace vkládání Obrázek C.2: Prohlížeč obrázků Barevný pixelový rozdíl nosiče a stegogramu Obrázek C.3: Prohlížeč obrázků Černý pixelový rozdíl nosiče a stegogramu 64

Systémy digitálního vodotisku. Digital Watermarking Systems

Systémy digitálního vodotisku. Digital Watermarking Systems Systémy digitálního vodotisku Digital Watermarking Systems Simona PEJSAROVÁ Česká zemědělská univerzita v Praze, Provozně ekonomická fakulta Katedra informačních technologií Kamýcká 129, Praha 6, Česká

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

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

Adobe Photoshop 18. Ukládání dokumentu formáty

Adobe Photoshop 18. Ukládání dokumentu formáty Adobe Photoshop 18. Ukládání dokumentu formáty www.isspolygr.cz Vytvořila: Bc. Blažena Kondelíková Vytvořila dne: 20. 11. 2012 Strana: 1/5 Škola Ročník 4. ročník (SOŠ, SOU) Název projektu Interaktivní

Více

Vodoznačení video obsahu

Vodoznačení video obsahu Vodoznačení video obsahu Bc. Jiří Hošek Email: hosek.j@seznam.cz Ústav Telekomunikací, FEKT, VUT v Brně Tento článek je zaměřen na problematiku vodoznačení a zejména pak na techniky vkládání vodoznaku

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

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

KRY. Projekt č. 2. Kamil Dudka xdudka00

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

Více

POČÍTAČOVÁ GRAFIKA. Počítačová grafika 1

POČÍTAČOVÁ GRAFIKA. Počítačová grafika 1 Počítačová grafika 1 POČÍTAČOVÁ GRAFIKA Gymnázium Jiřího Wolkera v Prostějově Výukové materiály z matematiky pro nižší gymnázia Autoři projektu Student na prahu 21. století - využití ICT ve vyučování matematiky

Více

VY_32_INOVACE_INF4_12. Počítačová grafika. Úvod

VY_32_INOVACE_INF4_12. Počítačová grafika. Úvod VY_32_INOVACE_INF4_12 Počítačová grafika Úvod Základní rozdělení grafických formátů Rastrová grafika (bitmapová) Vektorová grafika Základním prvkem je bod (pixel). Vhodná pro zpracování digitální fotografie.

Více

M4 PDF rozšíření. Modul pro PrestaShop. http://www.presta-addons.com

M4 PDF rozšíření. Modul pro PrestaShop. http://www.presta-addons.com M4 PDF rozšíření Modul pro PrestaShop http://www.presta-addons.com Obsah Úvod... 2 Vlastnosti... 2 Jak modul funguje... 2 Zdroje dat... 3 Šablony... 4 A. Označení šablon... 4 B. Funkce Smarty... 5 C. Definice

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

Zásady prezentace CENTRUM MEDIÁLNÍHO VZDĚLÁVÁNÍ. Akreditované středisko dalšího vzdělávání pedagogických pracovníků

Zásady prezentace CENTRUM MEDIÁLNÍHO VZDĚLÁVÁNÍ. Akreditované středisko dalšího vzdělávání pedagogických pracovníků Zásady prezentace CENTRUM MEDIÁLNÍHO VZDĚLÁVÁNÍ Akreditované středisko dalšího vzdělávání pedagogických pracovníků Prezentace Prezentace: přednášený text + elektronický materiál Přednášený text: poutavý

Více

Práce s obrazovým materiálem CENTRUM MEDIÁLNÍHO VZDĚLÁVÁNÍ. Akreditované středisko dalšího vzdělávání pedagogických pracovníků

Práce s obrazovým materiálem CENTRUM MEDIÁLNÍHO VZDĚLÁVÁNÍ. Akreditované středisko dalšího vzdělávání pedagogických pracovníků Práce s obrazovým materiálem CENTRUM MEDIÁLNÍHO VZDĚLÁVÁNÍ Akreditované středisko dalšího vzdělávání pedagogických pracovníků Obrazový materiál příjemná součást prezentace lépe zapamatovatelný často nahrazení

Více

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se Kapitola 3 Úpravy obrazu V následující kapitole se seznámíme se základními typy úpravy obrazu. První z nich je transformace barev pro výstupní zařízení, dále práce s barvami a expozicí pomocí histogramu

Více

Přehled nabízených kurzů

Přehled nabízených kurzů WINDOWS XP ZÁKLADY OBSLUHY Seznámení s osobním počítačem Periferie osobního počítače (monitory, tiskárny, skenery...) Obsluha klávesnice Práce s myší Prostředí MS Windows XP Plocha Menu Start Soubor, ikona,

Více

Porovnání obrazových souborů vzniklých digitalizací periodik a monografií

Porovnání obrazových souborů vzniklých digitalizací periodik a monografií Příloha č. 4 Porovnání obrazových souborů vzniklých digitalizací periodik a monografií Digitální dokumenty vznikají v digitalizaci NK dvojím způsobem : 1. Naskenování mikrofilmu skenerem Wicks and Wilson

Více

A1 Marketingové minimum pro posílení výchovy k podnikavosti (8h)

A1 Marketingové minimum pro posílení výchovy k podnikavosti (8h) A1 Marketingové minimum pro posílení výchovy k podnikavosti (8h) 2.1 Základy marketingové strategie (2,5h) Učitelé se seznámí se základní marketingovou terminologií a s možnými cestami rozvoje firmy. V

Více

Příprava dat v softwaru Statistica

Příprava dat v softwaru Statistica Příprava dat v softwaru Statistica Software Statistica obsahuje pokročilé nástroje pro přípravu dat a tvorbu nových proměnných. Tyto funkcionality přinášejí značnou úsporu času při přípravě datového souboru,

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 35.240.60 materiálem o normě. Dopravní telematika Vyhrazené spojení krátkého rozsahu (DSRC) Datová

Více

1. sada. 9. ročník. 101. Šifrovací tutoriál

1. sada. 9. ročník. 101. Šifrovací tutoriál 9. ročník 1. sada 101. Šifrovací tutoriál Protože se luštitelské zkušenosti týmů velmi liší, rozhodli jsme se na začátek letošního ročníku zařadit úlohu, při které si všichni zopakují základní šifrovací

Více

VYUŽITÍ POČÍTAČOVÉ GRAFIKY

VYUŽITÍ POČÍTAČOVÉ GRAFIKY POČÍTAČOVÁ GRAFIKA VYUŽITÍ POČÍTAČOVÉ GRAFIKY ÚPRAVA FOTOGRAFIÍ NAFOCENÉ FOTOGRAFIE Z DIGITÁLNÍHO FOTOAPARÁTU MŮŽEME NEJEN PROHLÍŽET, ALE TAKÉ UPRAVOVAT JAS KONTRAST BAREVNOST OŘÍZNUTÍ ODSTRANĚNÍ ČERVENÝCH

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

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Úlohy nad rastrovými daty Daniela

Více

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií VY_32_INOVACE_31_20 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední

Více

Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace. Maturitní otázky z předmětu INFORMATIKA A VÝPOČETNÍ TECHNIKA

Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace. Maturitní otázky z předmětu INFORMATIKA A VÝPOČETNÍ TECHNIKA Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu INFORMATIKA A VÝPOČETNÍ TECHNIKA 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu

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

Aplikace pro srovna ní cen povinne ho ruc ení

Aplikace pro srovna ní cen povinne ho ruc ení Aplikace pro srovna ní cen povinne ho ruc ení Ukázkový přiklad mikroaplikace systému Formcrates 2010 Naucrates s.r.o. Veškerá práva vyhrazena. Vyskočilova 741/3, 140 00 Praha 4 Czech Republic tel.: +420

Více

Obsah SLEDOVÁNÍ PRÁCE... 4

Obsah SLEDOVÁNÍ PRÁCE... 4 Co je nového Obsah SLEDOVÁNÍ PRÁCE...... 4 Konfigurace souboru... 5 Globální konfigurace... 6 Soubory... 6 Projekty... 6 Uživatelské rozhraní... 7 Synchronizace... 7 Typ serveru... 8 Test připojení...

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

Obsah. Úvod... 9. Barevná kompozice... 16 Světlo... 18 Chromatická teplota světla... 19 Vyvážení bílé barvy... 20

Obsah. Úvod... 9. Barevná kompozice... 16 Světlo... 18 Chromatická teplota světla... 19 Vyvážení bílé barvy... 20 Obsah Úvod.............................................................................................. 9 Historie grafického designu a tisku..................................... 10 Od zadání k návrhu..............................................................

Více

Vizuální programování

Vizuální programování Vizuální programování Adam Zmrzlý Seminář LaSArIS, 28. 11. 2013 Obsah Motivace Co je vizuální programování Novost přístupu Cíle vizuálního programování Různé přístupy Jazyk Shades Motivace Zvýrazňování

Více

Digitalizace dat metodika

Digitalizace dat metodika Digitalizace dat metodika Digitalizace Jak počítač získá jedničky a nuly, se kterými potom počítá a které je schopen si pamatovat? Pomocí různých přístrojů a zařízení (mikrofon, fotoaparát, skener, kamera,

Více

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi

Více

VÝPOČETNÍ TECHNIKA OBOR: EKONOMIKA A PODNIKÁNÍ ZAMĚŘENÍ: PODNIKÁNÍ FORMA: DENNÍ STUDIUM

VÝPOČETNÍ TECHNIKA OBOR: EKONOMIKA A PODNIKÁNÍ ZAMĚŘENÍ: PODNIKÁNÍ FORMA: DENNÍ STUDIUM VÝPOČETNÍ TECHNIKA OBOR: EKONOMIKA A PODNIKÁNÍ ZAMĚŘENÍ: PODNIKÁNÍ FORMA: DENNÍ STUDIUM 1. Historie a vývoj VT. Dnešní parametry PC. Von Neumannovo schéma. a. historie a vznik počítačů b. využití počítačů

Více

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

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

Více

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů A0M38SPP - Signálové procesory v praxi - přednáška 4 2 Číslicové filtry typu FIR a IIR definice operace filtrace základní rozdělení FIR, IIR základní vlastnosti, používané struktury filtrů návrhové prostředky

Více

Maturitní témata pro 1.KŠPA Kladno, s.r.o. Výpočetní technika

Maturitní témata pro 1.KŠPA Kladno, s.r.o. Výpočetní technika Maturitní témata pro 1.KŠPA Kladno, s.r.o. Předmět Typ zkoušky Obor Forma Zkoušející Období Výpočetní technika Profilová ústní Ekonomika a podnikání zaměření Podnikání Denní / Distanční Ing. Horová / K.

Více

Osvědčené postupy pro zpracování tiskových dat s vynikající kvalitou tisku

Osvědčené postupy pro zpracování tiskových dat s vynikající kvalitou tisku Osvědčené postupy pro zpracování tiskových dat s vynikající kvalitou tisku Arnošt Nečas Marketing manager GRAFIE CZ Jan Štor Odborný konzultant GRAFIE CZ Agenda Základy digitálních obrazů Kvalita obrazu

Více

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím ICT Číslo projektu: CZ.1.07/1.5.00/34.0940

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

================================================================================ =====

================================================================================ ===== Název: VY_32_INOVACE_PG4101 Základní struktura HTML stránky Datum vytvoření: 01 / 2012 Anotace: DUM seznamuje se základní strukturou a členěním HTML stránky, s jednotlivými složkami - HTML, CSS, externí

Více

Využití ICT techniky především v uměleckém vzdělávání. Akademie - VOŠ, Gymn. a SOŠUP Světlá nad Sázavou

Využití ICT techniky především v uměleckém vzdělávání. Akademie - VOŠ, Gymn. a SOŠUP Světlá nad Sázavou Datum: 1. 12. 2013 Projekt: Registrační číslo: Číslo DUM: Škola: Jméno autora: Název sady: Název práce: Předmět: Ročník: Obor: Časová dotace: Vzdělávací cíl: Pomůcky: Využití ICT techniky především v uměleckém

Více

OBECNÉ POKYNY. Nedodržováním těchto pravidel je porušována integrita značky a všechny tyto věci mají negativní vliv na firemní image.

OBECNÉ POKYNY. Nedodržováním těchto pravidel je porušována integrita značky a všechny tyto věci mají negativní vliv na firemní image. STYLE GUIDE OBECNÉ POKYNY STYLE GUIDE přesně definuje závazné normy pro všechny druhy a formy vizuální komunikace společnosti a je důležitou součástí publikace NAVITEL BRAND BOOK (hlavní publikace jednotného

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

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

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

Více

Osnova kurzu OBSLUHA PC ZÁKLADNÍ ZNALOSTI. pilotního projektu v rámci I. Etapy realizace SIPVZ

Osnova kurzu OBSLUHA PC ZÁKLADNÍ ZNALOSTI. pilotního projektu v rámci I. Etapy realizace SIPVZ Střední průmyslová škola a Střední odborné učiliště, Trutnov, Školní 101, tel.: +420 499 813 071, fax: +420 499 814 729, e-mail: skola@spssoutu.cz, URL: http://www.spssoutu.cz Osnova kurzu OBSLUHA PC ZÁKLADNÍ

Více

Rozšíření bakalářské práce

Rozšíření bakalářské práce Rozšíření bakalářské práce Vojtěch Vlkovský 2011 1 Obsah Seznam obrázků... 3 1 Barevné modely... 4 1.1 RGB barevný model... 4 1.2 Barevný model CMY(K)... 4 1.3 Další barevné modely... 4 1.3.1 Model CIE

Více

Endura 2.0 Nová generace CCTV IP systémů s Full-HD rozlišením Endura Optimalizace HD

Endura 2.0 Nová generace CCTV IP systémů s Full-HD rozlišením Endura Optimalizace HD Endura 2.0 Nová generace CCTV IP systémů s Full-HD rozlišením Mnoho dodavatelů řeší HD IP kamerový systém nekompletně s použitím produktů třetích stran. IP kamerový systém ENDURA společnosti Schneider

Více

6.28 Informatika. Vzdělávací oblast: Informační a komunikační technologie Vyučovací předmět: Informatika. Informační a komunikační technologie

6.28 Informatika. Vzdělávací oblast: Informační a komunikační technologie Vyučovací předmět: Informatika. Informační a komunikační technologie Vyučovací předmět: Informatika VZDĚLÁVACÍ OBLAST : VZDĚLÁVACÍ OBOR: VYUČOVACÍ PŘEDMĚT: Informační a komunikační technologie Informační a komunikační technologie 6.28 Informatika CHARAKTERISTIKA PŘEDMĚTU:

Více

JPEG Formát pro archivaci a zpřístupnění.

JPEG Formát pro archivaci a zpřístupnění. JPEG 2000 Formát pro archivaci a zpřístupnění Přednáška: Přednášející: Kontakt: 3. 12, 2009, AMK2009 Bedřich Vychodil bedrich.vychodil@nkp.cz JPEG2000 a očekávání Představen konsorciem Joint Photographic

Více

Používá paměťová média pro přenos dat mezi počítači, vyjmenuje nejpoužívanější paměťová média.

Používá paměťová média pro přenos dat mezi počítači, vyjmenuje nejpoužívanější paměťová média. Vyučovací předmět: Informační a komunikační technologie (ICT) Ročník Předmět Průřezová témata Mezipředmět. vazby Školní výstupy Učivo (pojmy) Poznámka 1 Zapne a korektně vypne počítač; přihlásí se do školní

Více

SEKVENČNÍ LOGICKÉ OBVODY

SEKVENČNÍ LOGICKÉ OBVODY Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ

Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ 10. 5. 2011 Tým: Simplesoft Členové: Zdeněk Malík Jan Rada Ladislav Račák Václav Král Marta Pechová malikz@students.zcu.cz jrada1@students.zcu.cz

Více

Angličtina program k procvičování slovní zásoby

Angličtina program k procvičování slovní zásoby Středoškolská technika 2011 Setkání a prezentace prací středoškolských studentů na ČVUT Angličtina program k procvičování slovní zásoby Kamil Hanus Střední průmyslová škola elektrotechniky a informačních

Více

Středoškolská technika SCI-Lab

Středoškolská technika SCI-Lab Středoškolská technika 2016 Setkání a prezentace prací středoškolských studentů na ČVUT SCI-Lab Kamil Mudruňka Gymnázium Dašická 1083 Dašická 1083, Pardubice O projektu SCI-Lab je program napsaný v jazyce

Více

Direct Digital Synthesis (DDS)

Direct Digital Synthesis (DDS) ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Direct Digital Synthesis (DDS) Přímá číslicová syntéza Tyto materiály vznikly za podpory

Více

Postranními kanály k tajemství čipových karet

Postranními kanály k tajemství čipových karet SIX Research Centre Vysoké učení technické v Brně martinasek@feec.vutbr.cz crypto.utko.feec.vutbr.cz Kryptoanaly za postrannı mi kana ly Proudova analy za Pr edstavenı U vod Crypto Research Group, Vysoke

Více

Algoritmy a struktury neuropočítačů ASN - P11

Algoritmy a struktury neuropočítačů ASN - P11 Aplikace UNS při rozpoznání obrazů Základní úloha segmentace obrazu rozdělení obrazu do několika významných oblastí klasifikační úloha, clusterová analýza target Metody Kohonenova metoda KSOM Kohonenova

Více

Informatika / bezpečnost

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

Více

Uživatelský manuál. Format Convert V3.1

Uživatelský manuál. Format Convert V3.1 Uživatelský manuál Format Convert V3.1 Obsah Obsah 1 Kapitola 1 - Popis softwaru Systémové požadavky 2 Podporovaná zařízení a formáty 2 Odinstalace 3 Kapitola 2 - Ovládání Výběr formátu souboru 4 Výběr

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

Analýza a zpracování digitálního obrazu

Analýza a zpracování digitálního obrazu Analýza a zpracování digitálního obrazu Úlohy strojového vidění lze přibližně rozdělit do sekvence čtyř funkčních bloků: Předzpracování veškerých obrazových dat pomocí filtrací (tj. transformací obrazové

Více

InformatikaaVT(1) Cílem předmětu je: Žáci:

InformatikaaVT(1) Cílem předmětu je: Žáci: InformatikaaVT(1) Cílem předmětu je: seznámení žáků se základními pojmy informatiky a VT poskytnutí teoretických znalostí a praktických dovedností nezbytných při práci s informacemi azařízeními VT Žáci:

Více

Vytváření DVD s DVDStyler

Vytváření DVD s DVDStyler Vytváření DVD s DVDStyler 21. 8. 2009 Jan Drábek Multimédia 26352 DVDStyler je multiplatformní program (ano, funguje i na Windows) pro vytváření profesionálně vypadajících DVD i interaktivních DVD menu.

Více

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu Metoda Monte Carlo a její aplikace v problematice oceňování technologií Manuál k programu This software was created under the state subsidy of the Czech Republic within the research and development project

Více

SADA VY_32_INOVACE_PP1

SADA VY_32_INOVACE_PP1 SADA VY_32_INOVACE_PP1 Přehled anotačních tabulek k dvaceti výukovým materiálům vytvořených Ing. Janem Prašivkou. Kontakt na tvůrce těchto DUM: prasivka@szesro.cz Úvod do informatiky VY_32_INOVACE_PP1.PRA.01

Více

Základní práce v souborovém manažeru

Základní práce v souborovém manažeru Základní práce v souborovém manažeru 18-20-M/01 Informační technologie Základní pojmy a prostředky pro programování webových stránek Zvládnutí nástrojů typických pro programování webových aplikací Základní

Více

Kurz digitální fotografie. blok 1 data/úpravy fotografií

Kurz digitální fotografie. blok 1 data/úpravy fotografií Kurz digitální fotografie blok 1 data/úpravy fotografií Grafické soubory Grafické soubory Obsahují grafická (obrazová) data, která mohou být uložena různými způsoby, tedy formou různých grafických formátů.

Více

Počítačové formy projekce jsou: promítání snímků na obrazovce počítače, promítání snímků z počítače na plátno,

Počítačové formy projekce jsou: promítání snímků na obrazovce počítače, promítání snímků z počítače na plátno, Prezentace Počítačové formy projekce jsou: promítání snímků na obrazovce počítače, promítání snímků z počítače na plátno, využití interaktivní tabule. Postup při tvorbě prezentace I 1. Stanovení cílů.

Více

INFORMATIKA. Grafické studio ve škole

INFORMATIKA. Grafické studio ve škole INFORMATIKA Grafické studio ve škole LUKÁŠ RACHŮNEK Přírodovědecká fakulta UP, Olomouc V současné době školy všech typů často potřebují grafické práce. Jedná se například o prezentaci školy ve formě brožur,

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

Obchodní akademie, Náchod, Denisovo nábřeží 673

Obchodní akademie, Náchod, Denisovo nábřeží 673 Název vyučovacího předmětu: GRAFIKA NA PC (GRA Obor vzdělání: 18 20 M/01 Informační technologie Forma vzdělání: denní Celkový počet vyučovacích hodin za studium: 154 (5 hodin týdně) Platnost: 1. 9. 2009

Více

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student Předmět Ústav Úloha č. 9 BIO - igitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student Cíle Pochopení funkce obvodu pro odstranění zákmitů na

Více

Vytvoření portálu odboru strukturálních fondů Ministerstva vnitra a zajištění jeho hostingu na serveru dodavatele

Vytvoření portálu odboru strukturálních fondů Ministerstva vnitra a zajištění jeho hostingu na serveru dodavatele MINISTERSTVO VNITRA odbor strukturálních fondů č.j. MV- 82945-5 /OSF Praha dne 24. listopadu 2009 Počet listů: 5 Odpověď zadavatele na otázky ze dne 20. listopadu 2009 k Zadávací dokumentaci na veřejnou

Více

Přínos k rozvoji klíčových kompetencí:

Přínos k rozvoji klíčových kompetencí: Střední škola hospodářská a lesnická, Frýdlant, Bělíkova 1387, příspěvková organizace Název modulu Informační a komunikační Kód modulu ICT-M-4/1-5 technologie Délka modulu 60 hodin Platnost 1.09.2010 Typ

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Chyby měření 210DPSM

Chyby měření 210DPSM Chyby měření 210DPSM Jan Zatloukal Stručný přehled Zdroje a druhy chyb Systematické chyby měření Náhodné chyby měření Spojité a diskrétní náhodné veličiny Normální rozdělení a jeho vlastnosti Odhad parametrů

Více

Úvod do počítačové grafiky

Úvod do počítačové grafiky Úvod do počítačové grafiky elmag. záření s určitou vlnovou délkou dopadající na sítnici našeho oka vnímáme jako barvu v rámci viditelné části spektra je člověk schopen rozlišit přibližně 10 milionů barev

Více

ROZLOŽENÍ STRÁNKY, NÁVRH. Okraje

ROZLOŽENÍ STRÁNKY, NÁVRH. Okraje ROZLOŽENÍ STRÁNKY, NÁVRH Ve Wordu tedy můžeme nastavovat vlastnosti písma, vlastnosti odstavce a také vlastnosti stránky. Přesuneme se na záložku ROZLOŽENÍ STRÁNKY, kde tyto najdeme v levé části. Další

Více

KAPITOLA 1 Několik slov o PowerPointu 2007 9

KAPITOLA 1 Několik slov o PowerPointu 2007 9 Obsah KAPITOLA 1 Několik slov o PowerPointu 2007 9 Nové uživatelské rozhraní 9 Pás karet 10 Panel nástrojů Rychlý přístup 11 Tlačítko Office 12 Pracovní plocha 12 Nápověda 13 Obecné zásady pro vytváření

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

Více

CENÍK INZERCE V ČASOPISE MUZIKUS

CENÍK INZERCE V ČASOPISE MUZIKUS CENÍK INZERCE V ČASOPISE MUZIKUS Platí od 1. 8. 2019 do vydání nového ceníku hudební celobarevná komerční celobarevná kód formát šířka výška umístění cena cena A1 1/1 202 285 zadní strana obálky 27050

Více

Psaní na mokrý papír. Andrew Kozlik KA MFF UK

Psaní na mokrý papír. Andrew Kozlik KA MFF UK Psaní na mokrý papír Andrew Kozlik KA MFF UK W1 Motivace Problém: Vkládání do některých prvků nosiče má vysoký dopad na detekovatelnost. PNG/GIF: Oblasti s nízkou texturou. JPEG: Nulové AC koeficienty.

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

Zvyšování kvality výuky technických oborů

Zvyšování kvality výuky technických oborů Zvyšování kvality výuky technických oborů Klíčová aktivita lll.2 Inovace a zkvalitnění výuky směřující k rozvoji odborných kompetencí žáků středních škol Pracovní list pro téma lll.2.5 Rastrová grafika

Více

Bitmapová grafika: Vrstvy - interakce (režimy prolnutí)

Bitmapová grafika: Vrstvy - interakce (režimy prolnutí) VY_32_INOVACE_PG3108 ; Mgr. Pavel Hauer ; 5/2012; 1.ročník; bitmapová grafika, Počítačová grafika; názorná pomůcka pro výuku, opakování, doplnění látky Bitmapová grafika: Vrstvy - interakce (režimy prolnutí)

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-301. Informace, jednotka

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-301. Informace, jednotka Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Číslicová filtrace. FIR filtry IIR filtry. ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Číslicová filtrace. FIR filtry IIR filtry. ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Číslicová filtrace FIR filtry IIR filtry Tyto materiály vznikly za podpory Fondu rozvoje

Více

SOU Valašské Klobouky. VY_32_INOVACE_3_01 IKT Pc grafika základní pojmy Mgr. Radomír Soural. Zkvalitnění výuky prostřednictvím ICT

SOU Valašské Klobouky. VY_32_INOVACE_3_01 IKT Pc grafika základní pojmy Mgr. Radomír Soural. Zkvalitnění výuky prostřednictvím ICT SOU Valašské Klobouky VY_32_INOVACE_3_01 IKT Pc grafika základní pojmy Mgr. Radomír Soural Zkvalitnění výuky prostřednictvím ICT Název a číslo projektu CZ.1.07/1.5.00/34.0459 Název školy SOU Valašské Klobouky,

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

Uživatelský manuál aplikace. Dental MAXweb

Uživatelský manuál aplikace. Dental MAXweb Uživatelský manuál aplikace Dental MAXweb Obsah Obsah... 2 1. Základní operace... 3 1.1. Přihlášení do aplikace... 3 1.2. Odhlášení z aplikace... 3 1.3. Náhled aplikace v jiné úrovni... 3 1.4. Změna barevné

Více

Dlouhodobé a důvěryhodné ukládání elektronických dokumentů. Oskar Macek

Dlouhodobé a důvěryhodné ukládání elektronických dokumentů. Oskar Macek Dlouhodobé a důvěryhodné ukládání elektronických dokumentů Oskar Macek Co je to dokument? co se rozumí pod pojmem dokument, je definováno v zákoně 499/2004 Sb., ve znění pozdějších předpisů v 2, písmeno

Více

Šifrová ochrana informací historie KS4

Šifrová ochrana informací historie KS4 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací historie KS4 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2 Osnova

Více

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13. Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy

Více

KITTV PedF UK TÉMATA BAKALÁŘSKÝCH PRACÍ pro školní rok 2010/2011

KITTV PedF UK TÉMATA BAKALÁŘSKÝCH PRACÍ pro školní rok 2010/2011 KITTV PedF UK TÉMATA BAKALÁŘSKÝCH PRACÍ pro školní rok 2010/2011 PRO STUDENTY OBORU Informační a komunikační technologie se zaměřením na vzdělávání Algoritmizace a programování v Imagine Tvorba a ověření

Více

Logomanuál Klub Zaměstnavatelů

Logomanuál Klub Zaměstnavatelů Logomanuál Klub Zaměstnavatelů Obsah 1 Logotyp 1.1 Základní verze 3 1.2 Horizontální verze 4 1.3 Symbol 5 2 Principy užití logotypu 2.1 Ochranná zóna základní verze 7 2.2 Ochranná zóna horizontální verze

Více

MAXScript výukový kurz

MAXScript výukový kurz MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1 OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM...

Více