Masarykova univerzita Fakulta}w¡¢£¤¥¦§¨  informatiky !"#$%&'()+,-./012345

Zabezpečenie súborov PDF

Bakalárska práca

Martin Sárkány

Brno, jar 2015 Prehlásenie

Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní používal alebo z nich čerpal, v práci riadne citujem s uvedením úplného odkazu na príslušný zdroj.

Martin Sárkány

Vedúci práce: RNDr. Andriy Stetsko, Ph.D.

ii Poďakovanie

Týmto chcem poďakovať RNDr. Andriymu Stetskovi, Ph.D. za odborné vedenie bakalárskej práce, cenné rady a čas, ktorý mi venoval.

iii Zhrnutie

Prvým z dvoch cieľov tejto bakalárskej práce je opis formátu PDF vzhľa- dom na podporu šifrovania, dešifrovania, podpisovania a overovania podpisu. Druhým cieľom je vytvorenie prehľadu existujúcich nástro- jov podporujúcich zabezpečenie dokumentov PDF a výber vhodného nástroja pre tlačiarenské riešenie Y Soft SafeQ na základe ich skúmania.

iv Kľúčové slová

PDF, Portable Document Format, zabezpečenie, šifrovanie, podpisovanie

v Obsah

1 Úvod ...... 2 2 Formát PDF ...... 3 2.1 Syntax ...... 3 2.2 Filtre ...... 5 2.3 Zmena obsahu dokumentu ...... 5 3 Šifrovanie dokumentov PDF ...... 7 4 Digitálne podpisovanie dokumentov PDF ...... 12 5 Analýza nástrojov ...... 15 5.1 Všeobecná analýza ...... 15 5.2 Analýza z hľadiska funkcionality ...... 22 5.2.1 Šifrovanie ...... 23 5.2.2 Dešifrovanie ...... 23 5.2.3 Podpisovanie ...... 25 5.2.4 Overovanie podpisu ...... 27 6 Testovanie ...... 28 6.1 Rýchlosť nástrojov ...... 28 6.2 Pamäťová náročnosť nástrojov ...... 29 6.3 Vyhodnotenie ...... 30 7 Modifikácia nástroja JSignPdf ...... 32 8 Záver ...... 34 Literatúra ...... 34 A Grafy nameraných hodnôt ...... 40

1 1 Úvod

Formát PDF (Portable Document Format) [1] je jedným z celosvetovo najpoužívanejších formátov. Využíva sa prevažne na reprezentáciu texto- vých dokumentov, ale je možné v ňom uchovať aj rôzny multimediálny obsah. Vďaka jeho vlastnostiam si našiel uplatnenie prevažne v sieťo- vej komunikácii, ktorá je spojená s množstvom rizík. Preto môže byť vyžadované zabezpečenie integrity, dôvernosti, nepopierateľnosti alebo autentickosti. Jednou z možností ich dosiahnutia je použitie bezpečnost- ných prvkov založených na symetrickej alebo asymetrickej kryptografii, ktoré tento formát priamo podporuje. Užívateľ si môže vybrať jednu zo štandardných funkcií alebo, ak mu úroveň zabezpečenia, ktorú po- skytujú, nevyhovuje, definovať vlastné metódy. Cieľom tejto práce je tieto mechanizmy popísať, pripraviť prehľad existujúcich nástrojov s otvoreným zdrojovým kódom, ktoré ich podpo- rujú a otestovať vybrané nástroje na bežnom počítači. V nasledujúcej kapitole je charakterizovaný formát PDF a jeho štruktúra. Spôsoby šifrovania a dešifrovania sú uvedené v kapitole 3, podpisovanie a overovanie podpisu opisuje kapitola 4. Zvyšok práce sa venuje analýze nástrojov, ich testovaniu a modifikácii jedného z nich. Analýza sa skladá z dvoch častí. Prvá časť rieši všeobecné vlastnosti, ako programovacie jazyky, v ktorých boli nástroje napísané, úroveň dokumentácie, možnosti technickej podpory a podobne. Druhá časť je zameraná na funkcionalitu poskytovanú nástrojmi, vzťahujúcu sa na zabezpečenie dokumentov. Testovanie obsahuje dve hlavné časti, ktoré uvádzajú výsledky merania rýchlosti a pamäťovej náročnosti. Na jeho konci sú na základe výsledkov testovania vybrané najvhodnejšie nástroje. Hlavnými kritériami pri výbere vhodných nástrojov boli: programovací jazyk, rýchlosť, spotreba pamäte a podporované algoritmy.

2 2 Formát PDF

PDF bol pôvodne proprietárny formát vlastnený spoločnosťou Adobe Systems, dnes existuje ako otvorený štandard vydaný organizáciou International Organization for Standardization pod označením ISO 32000-1:2008, ktorý je totožný s verziou 1.7. Tento štandard sa ne- mení, namiesto toho vznikajú nové rozšírenia. Je založený na jazyku PostScript, z ktorého boli niektoré prvky odstránené a niektoré boli, naopak, pridané. Okrem toho podporuje mnoho funkcií, ako napríklad možnosť kompresie, nastavenie úrovne priehľadnosti, textové vyhľadáva- nie, záložky, poznámky a ďalšie. Jednou z jeho výhod je taktiež možnosť prednostného stiahnutia dát potrebných pre zobrazenie požadovanej strany a až následne zbytku dokumentu. Hlavným cieľom pri jeho vývoji bolo rovnaké zobrazenie dokumentu nezávisle od použitého aplikačného softvéru, operačného systému či hardvéru.

2.1 Syntax

Celý dokument je tvorený množinou objektov, objekt môže byť tvorený ďalšími objektmi. Existuje niekoľko typov objektov:

1. Pravdivostné – pravdivostné hodnoty uložené pomocou kľúčových slov true a false.

2. Číselné – existujú 2 typy: celé a desatinné čísla. Presnosť čísel závisí od vnútornej reprezentácie použitej na počítači. Čísla môžu obsahovať znamienko.

3. Reťazce – existujú 2 typy:

(a) Znakové – ľubovoľný počet znakov uzatvorených zátvorkami, napríklad (Toto je znakový reťazec.). (b) Hexadecimálne – ľubovoľný počet hexadecimálnych číslic uzatvorených ostrými zátvorkami, napríklad <5F896A3EC4>.

4. Menné – ľubovoľná unikátna postupnosť znakov začínajúca zna- kom /, napríklad /TotoJeNázov.

3 2. Formát PDF 5. Polia – jednorozmerná postupnosť prvkov ohraničená hranatými zátvorkami. Na rozdiel od väčšiny programovacích jazykov môže obsahovať objekty rôzneho typu, napríklad [78 /meno 21.43 (reťazec znakov)].

6. Slovníkové – hlavný stavebný blok dokumentu PDF, tabuľka obsahujúca záznamy tvorené dvojicami kľúč – hodnota. Kľúč musí byť názov. Slovník sa začína dvojicou znakov « a končí znakmi ». Príklad: « /Key1 (reťazec) /Key2 /NameObject /Key3 4.25 »

7. Dátové prúdy – postupnosť bajtov neobmedzenej dĺžky. Na roz- diel od reťazcov sú vhodné na ukladanie väčšieho množstva dát. Začínajú kľúčovým slovom stream a končia kľúčovým slovom end- stream. Pred prúdom sa vždy nachádza slovník definujúci jeho použitie. Príklad: « /Length 22 » stream nula alebo viac bajtov endstream

8. null – má typ a hodnotu, ktoré sa nezhodujú so žiadnymi inými typmi a hodnotami.

Objekty môžu byť priame alebo nepriame. Nepriamy objekt vzniká z priameho pridelením unikátneho identifikátora, pomocou ktorého sa naň dá odkazovať z ľubovoľnej časti dokumentu. Tento identifikátor pozostáva z:

1. Číslo objektu - kladné celé číslo identifikujúce objekt.

2. Číslo generácie - nezáporné celé číslo udávajúce verziu objektu. V novovytvorenom súbore PDF majú všetky nepriame objekty generačné číslo rovné 0. S každou aktualizáciou sa zvyšuje o 1.

Všetky objekty neobsahujúce tento identifikátor sú priame.

4 2. Formát PDF Dokument PDF má štyri časti: hlavička, telo, tabuľka krížových referencií a záverečná sekcia. Hlavička sa skladá z piatich znakov a identifikuje verziu, v ktorej bol súbor napísaný (%PDF-1.0 - %PDF-1.7). Telo obsahuje postupnosť objektov, ktoré tvoria obsah dokumentu. Ta- buľka krížových referencií obsahuje informácie o umiestnení nepriamych objektov v súbore, aby k nim bolo možné pristupovať priamo, bez nut- nosti čítania celého dokumentu. Záverečná sekcia umožňuje prehliadaču rýchlo nájsť tabuľku krížových referencií a určité objekty. Od verzie 1.5 môže byť tabuľka krížových referencií spolu so záverečnou sekciou uložená v jednom dátovom prúde. Dokument PDF môže byť uložený ako textový alebo binárny súbor.

2.2 Filtre

Na dátové prúdy je pri vytváraní alebo modifikácii dokumentov možné použiť rôzne kódovanie. Príkladom takéhoto kódovania je napríklad pou- žitie komprimačných algoritmov. Aby bolo možné takéto prúdy správne interpretovať, musí byť pri nich uvedený spôsob, ako ich dekódovať. Preto každý prúd, na ktorý bolo použité kódovanie, musí obsahovať názov filtra použitého na dekódovanie. Ak je ich použitých viac, musia byť uvedené v poradí, v akom majú byť aplikované. Niektoré filtre vyža- dujú parametre použité pri dekódovaní. Slovník prúdu vtedy obsahuje slovník DecodeParams, v ktorom sú uložené.

2.3 Zmena obsahu dokumentu

Na rozdiel od väčšiny formátov, dokument uložený vo formáte PDF môže byť upravený bez nutnosti prepísania celého súboru, čo je efektívne najmä pri malých zmenách vo veľkom dokumente. Táto forma zmeny obsahu dokumentu sa nazýva inkrementálna aktualizácia. Navyše je z takto upraveného dokumentu možné získať aj jeho pôvodnú podobu. Spôsob úpravy dokumentu je nasledujúci: za záverečnú sekciu pôvodného dokumentu sa pridajú zmeny vykonané v tele dokumentu nasledované novou tabuľkou krížových referencií. Tá obsahuje len objekty, na ktorých bola vykonaná zmena, čiže boli pridané, nahradené, upravené alebo odstránené. Na koniec dokumentu sa pridá nová záverečná sekcia, ktorá okrem štandardných záznamov obsahuje aj odkaz na záverečnú sekciu

5 2. Formát PDF pôvodného dokumentu. Ak bola takáto zmena dokumentu vykonaná viackrát, odkazuje vždy na predchádzajúcu. Pri čítaní dokumentu sú staršie verzie objektov ignorované. Princíp inkrementálnej aktualizácie je znázornený na nasledujúcom obrázku.

Obr. 2.1: Inkrementálna aktualizácia, prevzaté z [2]

6 3 Šifrovanie dokumentov PDF

Súbor PDF môže byť šifrovaný, čím sa chráni jeho obsah pred neau- torizovaným prístupom. Informácie týkajúce sa šifrovania sú uchované v slovníku šifrovania, ktorý je uložený v zázname Encrypt v slovníku záverečnej sekcie. Pokiaľ sa tam tento záznam nenachádza, prehliadač považuje dokument za nezašifrovaný. Všetky objekty v slovníku šifrova- nia musia byť priame. Šifrovanie sa uplatňuje na všetky reťazce a prúdy, okrem nasledujúcich výnimiek:

1. Hodnota záznamu ID v slovníku záverečnej sekcie, aby bol aj šifrovaný dokument identifikovateľný.

2. Všetky reťazce v slovníku šifrovania, pretože sú v nich uložené informácie potrebné pre dešifrovanie.

3. Všetky reťazce vnorené v šifrovaných prúdoch.

Šifrovanie sa na ostatné objekty nevzťahuje, pretože tieto, na rozdiel od reťazcov a prúdov neuchovávajú informácie o obsahu dokumentu, ale o jeho štruktúre. Takto je zároveň možné zachovať možnosť priameho prí- stupu k objektom. Prúdy musia byť šifrované až po aplikovaní všetkých kódovacích filtrov a dešifrované pred aplikovaním dekódovacích filtrov. Pokiaľ prúd odkazuje na súbor, ktorý sa nachádza mimo samotného súboru PDF, tento nie je šifrovaný. Na šifrovanie sa používajú 2 algoritmy:

1. RC4 [3] – proprietárny algoritmus RSA Security, Inc. Je to symet- rická prúdová šifra, pri šifrovaní aj dešifrovaní sa používa rovnaký algoritmus. Nemení veľkosť dát.

2. AES v móde CBC (cipher-block chaining) [4] – symetrická bloková šifra, ktorá používa rovnaký algoritmus pri šifrovaní aj dešifrovaní dokumentu, ale dĺžka dát sa pri šifrovaní zarovná na násobok 16 bajtov, čo je dĺžka jedného bloku. Používa sa od verzie 1.6.

O šifrovanie, dešifrovanie, prístup k obsahu šifrovaného dokumentu a funkcie s tým spojené sa stará softvérový modul manažér bezpečnosti. Najčastejšie používaný je štandardný manažér bezpečnosti. Ten umožňuje

7 3. Šifrovanie dokumentov PDF využívať algoritmus RC4 s dĺžkou kľúča 40 alebo 128 bitov a algoritmus AES s dĺžkou kľúča 128 alebo 256 bitov, v závislosti od použitej verzie. Zároveň umožňuje existenciu maximálne dvoch hesiel – užívateľské heslo a heslo majiteľa dokumentu, a možnosť určiť prístupové práva. Ak je určené heslo alebo prístupové práva, dokument musí byť šifrovaný a prístupové práva uložené v slovníku šifrovania. Hodnota záznamu s prístupovými právami je použitá pri výpočte šifrovacieho kľúča, preto nie je možné tieto práva po zašifrovaní meniť. Okrem prístupových práv sú v slovníku šifrovania uložené aj záznamy U a O, odvodené pomocou funkcie MD5 a algoritmu RC4 od hesla majiteľa dokumentu a užívateľského hesla. Tie sa používajú na overenie hesla pri dešifrovaní. Ako šifrovací kľúč neslúži priamo heslo zadané užívateľom. O jeho výpočet sa stará manažér bezpečnosti, pričom každý objekt je šifrovaný vlastným kľúčom, ktorý je odvodený od hlavného šifrovacieho kľúča a identifikátoru objektu pomocou funkcie MD5. Hlavný šifrovací kľúč je odvodený od hesla zadaného užívateľom. Okrem hesla sa pri jeho výpočte využíva aj hodnota prístupových práv a identifikátor dokumentu. Využívajú sa algoritmy RC4 a MD5. Ak sa užívateľ pokúsi otvoriť dokument, prehliadač si od neho vy- pýta heslo. Z neho vypočíta pomocné hodnoty rovnakým algoritmom ako boli vypočítané hodnoty U a O v slovníku šifrovania. Ak sa aspoň jedna z nich zhoduje, heslo je správne a prehliadač dokument dešifruje a zobrazí. Keď je súbor dešifrovaný, prehliadač má prístup k celému dokumentu a nič ho nenúti dodržiavať prístupové práva. Napriek tomu by mal rešpektovať zámer vlastníka dokumentu a obmedziť užívateľské práva tak, ako ich určil. Produkty spoločnosti Adobe tieto práva rešpek- tujú, ale väčšina prehliadačov, s ktorými som sa pri tvorbe tejto práce stretol, užívateľské práva ignoruje. Ich zoznam je uvedený v sekcii 5.2.2. Ak užívateľ zadá heslo majiteľa dokumentu, má všetky prístupové práva vrátane možnosti zmeny hesiel a prístupových práv. Ak zadá užívateľské heslo, má práva špecifikované pre užívateľa. Prístupové práva, ktoré je možné udeliť pri použití prvej verzie štan- dardného manažéra bezpečnosti: 1. Zmena obsahu dokumentu.

2. Kopírovanie alebo vynímanie textu z dokumentu.

3. Pridanie alebo upravovanie anotácií a interaktívnych polí.

8 3. Šifrovanie dokumentov PDF 4. Tlač dokumentu. Od PDF 1.4 (druhá verzia štandardného manažéra bezpečnosti) je možné udeliť ďalšie prístupové práva: 1. Vypĺňanie formulárov a podpisovanie dokumentu. 2. Vkladanie, otáčanie alebo vymazávanie strán a vytváranie navi- gačných prvkov, ako napríklad záložiek a náhľadov. 3. Tlač vo vysokej kvalite. 4. Vynímanie textu a grafického obsahu. Alternatívou k štandardnému manažéru bezpečnosti je manažér bez- pečnosti využívajúci asymetrickú kryptografiu. Tento šifruje dokument, rovnako ako štandardný manažér bezpečnosti, algoritmami RC4 alebo AES. Použitý kľúč je vypočítaný pomocou funkcie SHA-1 z náhodnej hodnoty a hodnoty záznamu s príjemcami. Následne zašifruje symetrický kľúč príjemcovým verejným kľúčom pre každého príjemcu zvlášť. Takto môžu otvoriť dokumenty len užívatelia uvedení v zoznamoch príjem- cov. Každý takýto zoznam má špecifikované vlastné prístupové práva. Využíva sa pri tom štandard PKCS#7 [5]. Pri šifrovaní dokumentu musí byť prítomný užívateľov certifikát podľa štandardu X.509. Pri dešifrovaní hľadá prehliadač zhodu medzi užívateľovým certifikátom a záznamami v zoznamoch príjemcov. Ak nájde zhodu, užívateľ pomo- cou svojho súkromného kľúča získa symetrický kľúč, ktorý použije na dešifrovanie dokumentu. Okrem štandardného manažéra bezpečnosti a manažéra bezpečnosti využívajúceho asymetrickú kryptografiu je možné definovať aj vlastný manažér bezpečnosti. Ten musí byť prítomný aj v prehliadači, aby mohol byť dokument dešifrovaný a zobrazený. Od PDF verzie 1.5 je možné využívať šifrovacie filtre. Každý šifrovací filter musí byť špecifikovaný vlastným slovníkom šifrovacieho filtra. Každý prúd môže mať v sebe špecifikovaný šifrovací filter, ktorý sa použije namiesto východiskového, takže je vďaka nim možné použiť na rôzne reťazce a prúdy rôzne šifrovanie. Prehliadač vždy poskytuje šifrovací filter Identity, ktorý ponecháva obsah nezmenený, čo umožňuje prítomnosť nezašifrovaných reťazcov a prúdov v inak zašifrovanom dokumente. Záznamy spoločné pre všetky slovníky šifrovania:

9 3. Šifrovanie dokumentov PDF 1. Filter - označuje manažér bezpečnosti, ktorý bol použitý pri šifro- vaní a je preferovaný pri dešifrovaní dokumentu. Najčastejšie sa používa štandardný (hodnota Standard).

2. SubFilter - špecifikuje záznamy slovníka šifrovania, ich interpretá- ciu a použité algoritmy. Rôzne manažéry bezpečnosti môžu podpo- rovať rovnaké metódy. Ak nie je k dispozícii manažér bezpečnosti uvedený v zázname Filter, dokument môže byť dešifrovaný aj iným manažérom bezpečnosti, ktorý podporuje túto funkcionalitu.

3. V - špecifikuje algoritmus, ktorý má byť použitý.

4. Length - určuje dĺžku kľúča v bitoch.

5. CF – obsahuje všetky šifrovacie filtre použité v dokumente.

6. StmF – východiskový šifrovací filter pri šifrovaní prúdov.

7. StrF – východiskový šifrovací filter pri šifrovaní reťazcov.

8. EFF - východiskový šifrovací filter pri šifrovaní zapuzdrených súborov.

Záznamy CF, StmF, StrF a EFF sa v slovníku šifrovania nachádzajú len pri použití šifrovacích filtrov. Okrem uvedených záznamov si môžu manažéry bezpečnosti pridať vlastné. Štandardný manažér bezpečnosti dopĺňa tieto záznamy o pomocné hodnoty použité pri overovaní hesla, prístupové práva a použitý algoritmus. Ak je použitý manažér bezpeč- nosti využívajúci asymetrickú kryptografiu, slovník šifrovania obsahuje naviac zoznam príjemcov a zoznam prístupových práv. Nasledujúci ob- rázok znázorňuje stromovú štruktúru zašifrovaného a nezašifrovaného dokumentu. Záznam Root je koreň dokumentu, Size je počet objektov, ID je identifikátor dokumentu, Info je slovík obsahujúci informácie o autorovi dokumentu, dátume vzniku a podobne, a Encrypt je slovník šifrovania. Ten môže okrem uvedených záznamov obsahovať aj ďalšie. Dokument nemusí obsahovať všetky uvedené záznamy a môže naviac obsahovať aj iné.

10 3. Šifrovanie dokumentov PDF

Obr. 3.1: Štruktúra dokumentu

11 4 Digitálne podpisovanie dokumentov PDF

Digitálny podpis sa vo formáte PDF používa na autentizáciu použí- vateľa a obsahu dokumentu. Taktiež umožňuje nastavenie niektorých prístupových práv bez toho, aby bol súbor zašifrovaný. Bol navrhnutý tak, aby bol kompatibilný so štandardmi používanými PKI (Public Key Infrastructure) a je v súlade so štandardmi ochrany dát špecifikovanými inštitútom ETSI (European Telecommunications Standards Institute). Využíva štandardy PKCS#1 a PKCS#7. Uchováva v sebe informá- cie o autorovi podpisu a stave dokumentu v čase, keď bol podpísaný. O podpisovanie sa stará softvérový modul manažér podpisov. Formát PDF podporuje vytváranie digitálneho podpisu a jeho overo- vanie. Všetky informácie o podpise, okrem jeho hodnoty sú podpísané, takže musia byť známe pred podpísaním. Rovnaká podmienka platí aj pri reťazení certifikátov, kde manažér podpisov musí najprv overiť reťaz certifikátov. Informácie o podpise sú uložené v slovníku podpisu. Ten uchováva informácie o manažéroch, ktoré môžu byť použité pri overovaní podpisu, zmenách vykonaných od podpísania dokumentu, reťaz certifikátov, vy- medzenie oblasti, ktorá je podpisovaná a samotný podpis. Okrem toho môže uchovávať aj meno podpisujúceho, čas, miesto a dôvod podpísa- nia dokumentu, a kontaktné informácie podpisujúceho. Najdôležitejšie záznamy v slovníku podpisu sú: 1. Type – musí byť Sig. 2. Filter – manažér podpisov použitý pri podpisovaní. Je preferovaný pri overovaní podpisu. Je nezávislý od manažéra bezpečnosti. 3. SubFilter – definuje záznamy v slovníku podpisu, ich použitie a algoritmy používané pri podpisovaní. Pri overovaní podpisu môže byť použitý aj iný manažér podpisov ako je uvedený v zázname Filter, pokiaľ podporuje túto funkcionalitu. 4. ByteRange – rozsah podpisovaných dát. 5. Contents – hodnota podpisu. 6. TransformMethod - metóda použitá na zistenie modifikácie doku- mentu.

12 4. Digitálne podpisovanie dokumentov PDF Štandardné typy podpisov:

1. Schvaľovací podpis - slúži len na identifikovanie podpisujúceho a zaručenie integrity dokumentu.

2. Certifikačný podpis - na rozdiel od schvaľovacieho podpisu umož- ňuje vymedziť prístupové práva výberom jednej z troch možností:

(a) Nepovoliť žiadne zmeny. (b) Povoliť vypĺňanie polí formulárov. (c) Povoliť vypĺňanie polí formulárov a pridávanie poznámok.

Dokument môže obsahovať iba jeden takýto podpis. Ten musí byť vytvorený pred pridaním schvaľovacích podpisov.

3. Podpis definujúci užívateľské práva – tento druh podpisu slúži len na vymedzenie užívateľských práv a zistenie ich nedodržania. Tieto práva nie sú zhodné s právami vymedzenými pri šifrovaní dokumentu. Na rozdiel od zvyšných dvoch podpisov nevyužíva certifikát. Aplikácia [6] ho využíva pri ukladaní súboru PDF s rozšírenými právami, pričom ostatné aplikácie ho môžu využívať na rôzne účely. Žiadny z nástrojov testovaných v kapitole 6 tento podpis nepodporuje.

Podpísať je možné buď celý dokument alebo len jeho časť. Časť doku- mentu, ktorá je podpisovaná, je vymedzená pomocou záznamu ByteRange v slovníku podpisu. Táto časť by mala zahŕňať celý dokument vrátane slovníku podpisu, okrem samotnej hodnoty podpisu - záznam Contents. Podpisovanie menšej časti dokumentu nie je odporúčané. Podpis vzniká tak, že z podpisovanej časti dokumentu sa pomocou funkcie SHA-1, SHA-256, SHA-384, SHA-512 alebo RIPEMD160 vytvorí hash a ten je následne podpísaný pomocou algoritmu RSA s dĺžkou kľúča do 4096 bitov.

Inkrementálna aktualizácia a podpis Vďaka inkrementálnej aktualizácii je možné opakovane podpísať už podpísaný dokument a neznehodnotiť pri tom pôvodné podpisy. Pôvodné podpisy pritom platia na časť dokumentu, ktorá bola nimi podpísaná a nový podpis platí na celý dokument. Takýmto spôsobom je možné

13 4. Digitálne podpisovanie dokumentov PDF pridávať len schvaľovacie podpisy. Využitie inkrementálnej aktualizácie pri podpisovaní je znázornené na nasledujúcom obrázku.

Obr. 4.1: Inkrementálna aktualizácia využitá pri podpisovaní

14 5 Analýza nástrojov

V rámci tvorby tejto práce som našiel čo najväčšie množstvo nástrojov s otvoreným zdrojovým kódom s podporou šifrovania alebo podpisovania súborov PDF. Požiadavky boli rýchlosť, nízka pamäťová náročnosť a aby boli napísané v programovacích jazykoch C, C++, C# alebo . Zameral som sa na tie, ktoré boli vydané alebo aktualizované po vydaní PDF verzie 1.7. Z dostupných nástrojov som vybral tieto: jPdf Tweak [7], QPDF [8], PDF Split and Merge [9], iSafePDF [10], PDF Toolkit [11], JSignPdf [12], PortableSigner [13], pdfsign [14], PDF Creator [15] a LibreOffice [16]. Okrem týchto nástrojov existujú aj ďalšie, ako napríklad TCPDF [17] (PHP), PDFTK Builder [18] (Delphi), PDF Little Signer [19] (C#), CAcert PDF Signer [20] (Java), PyPDF2 [21] (Python), ktoré nespĺňajú požiadavky na jazyk, sú zastaralé alebo nefungujú korektne. Nástroje PDF Chain [22] (C++) a PDF Rider [23] (C#) tvoria grafické rozhranie k vyššie spomenutému nástroju PDF Toolkit. Z týchto dvoch ponúka širšiu funkcionalitu PDF Chain a je naviac multiplatformový.

5.1 Všeobecná analýza

Základné informácie k vybraným nástrojom uvádzajú tabuľky 5.1 a 5.2. Verzia označuje testovanú verziu, ktorá bola vždy najnovšia možná. Stĺpec Aktívny označuje, či je projekt stále aktívny a vychádzajú preň aktualizácie. Dokumentácia je udávaná číslom od 0 do 5, kde 0 znamená absenciu dokumentácie a 5 je dokumentácia všetkých verejných metód a funkcií. Podpora udáva existenciu a typ technickej podpory k nástroju, ak je záznam „áno“, je vysvetlený v texte. Stĺpec Používanosť udáva počet stiahnutí zverejnený na serveroch, na ktorých sú projekty publikované. Niektoré nástroje je možné stiahnuť aj z iných serverov, takže celkový počet stiahnutí nie je možné zistiť. Používateľské rozhranie môže byť GUI (graphical user interface) - grafické používateľské rozhranie alebo CLI (command-line interface) - ovládanie cez príkazový riadok.

15 5. Analýza nástrojov Aktívny Nie Áno Áno Áno Áno Nie Áno Nie Nie Áno OS Windows, Linux, Mac OS X Windows, Linux, Mac OS X Windows, Linux, Mac OS X Windows, Linux, Mac OS X Windows, Linux, Mac OSWindows X Windows, Linux, Mac OSWindows, X Linux, Mac OSWidnows X Windows Všeobecné informácie o nástrojoch 1 Jazyk Java C Java Java Java C# Java Java C# Visual Basic / C# Tabuľka 5.1: Verzia 1.1 5.1.2 2.2.4e 2.2.4 2.02 1.3 1.6.1 2.0 1.2 2.1 Názov jPdf Tweak QPDF PDF Split and Merge Enhanced PDF Split and Merge Basic PDF Toolkit iSafePDF JSignPdf PortableSigner pdfsign PDF Creator

16 5. Analýza nástrojov Licencia AGPL [24] Artistic Licence [25] GPL [26] GPL GPL, PDFtk Server Redistribution License [27] GPL GPL EUPL GPL AGPL Používateľské rozhranie GUI, CLI CLI GUI, CLI GUI, CLI GUI, CLI GUI GUI, CLI GUI, CLI CLI GUI, CLI Používanosť 194 470 148 719 100 177 7 188 806 neuvedená 18 705 242 576 36 216 1 133 111 946 695 Všeobecné informácie o nástrojoch 2 Podpora e-mail nie áno áno nie fórum áno áno fórum fórum Tabuľka 5.2: Dokumentácia 1 4 4 4 4 1 3 4 1 3 Názov jPdf Tweak QPDF PDF Split and Merge Enhanced PDF Split and Merge Basic PDF Toolkit iSafePDF JSignPdf PortableSigner pdfsign PDF Creator

17 5. Analýza nástrojov jPdfTweak Posledná aktualizácia nástroja je zo dňa 19. 12. 2011. K dispozícii je uží- vateľský manuál, dokumentácia zdrojového kódu je len k pár vybraným funkciám. Podporu poskytuje projektový administrátor prostredníctvom e-mailov. Aplikácia disponuje aj grafickým rozhraním a okrem šifrovania a podpisovania ponúka aj množstvo iných funkcií pre prácu so súbormi PDF, ako napríklad modifikácia záložiek, zmena veľkosti strán alebo pridanie vodoznaku. Využíva knižnicu iText [28] vo verzii 5.1.3, prípadne je možné použiť novšiu. Okrem nej na kompiláciu vyžaduje ďalších šesť externých knižníc, ktoré nie sú súčasťou zdrojového kódu a je potrebné ich stiahnuť zvlášť. Najjednoduchším spôsobom je stiahnuť spustiteľnú verziu, v ktorej sú tieto knižnice pribalené. Samotná kompilácia prebieha pomocou nástroja Ant [29], jednoduchým príkazom ant.

QPDF Tento nástroj je pomerne dobre zdokumentovaný po všetkých stránkach. Na stránke projektu je možné nahlasovať chyby a požiadať o novú funkcionalitu, no nie je uvedený priamy kontakt v prípade potreby technickej podpory. Grafické rozhranie v tomto prípade k dispozícii nie je. Nepoužíva žiadnu externú knižnicu. Kompilácia prebieha sériou príkazov ./configure make make install.

PDF Split and Merge Autor aktuálne vyvíja verziu 3, ktorá ešte neobsahuje možnosť šifro- vania ani podpisovania dokumentov PDF. Verzia 2 existuje v dvoch alternatívach: základná (Basic) a rozšírená (Enhanced). Základná ver- zia neobsahuje možnosť šifrovania, preto som sa zameral na rozšírenú, ktorá okrem šifrovania a dešifrovania ponúka aj ďalšie funkcie, ako napríklad rozdeľovanie a spájanie dokumentov alebo otáčanie strán. Obidve verzie majú dostupné zdrojové kódy, ale inštalačné súbory sú zdarma len k základnej verzii, pričom k rozšírenej verzii ich autor po- skytne po darovaní príspevku v hodnote aspoň 7,99 $. K programu je dostupný manuál, a taktiež dokumentácia zdrojového kódu patrí medzi hodnotenými nástrojmi k tým lepším. Autor poskytuje podporu na fóre,

18 5. Analýza nástrojov ktoré už obsahuje cez 3300 príspevkov, no je možné ho kontaktovať aj prostredníctvom e-mailu. Z hľadiska používanosti tento nástroj vyniká, no používaná je prevažne zákaldná verzia, ktorú si týždenne stiahne zo stránky sourceforge.net [30] približne 25 000 používateľov, pričom roz- šírenú verziu si stiahne približne len 60, čo je pravdepodobne spôsobené absenciou spustiteľných súborov. Tento nástroj je známy tým, že často obsahuje adware. V testovanej verzii som ho nezaznamenal. Nástroj využíva verziu 2.1.7 knižnice iText, ktorá vyšla v roku 2009. Kompilácia prebieha pomocou príkazu ant v priečinku pdfsam-maine/ant, kde je potrebné pred tým upraviť cieľové priečinky v konfiguračnom súbore build.properties.

PDF Toolkit PDF Toolkit (skrátene PDFtk) je nástroj založený na verzii 155 knižnice iText-Paulo, predbežného vydania knižnice iText. Táto verzia je naj- novšia, ale vyšla ešte koncom roka 2005. PDF Toolkit existuje v troch verziách: Free, Pro a Server. 1. Free - táto verzia je určená len pre operačný systém Windows. Obsahuje grafické rozhranie a zároveň aj verziu Server. 2. Pro - oproti verzii Free naviac zahŕňa ďalšiu funkcionalitu pre otáčanie strán, pridávanie vodoznakov a šifrovanie dokumentov. Cena tejto verzie je 3,99 $. 3. Server - určená pre operačné systémy Windows, Linux aj Mac OS X. Je dostupná pod dvomi rôznymi licenciami. Pre nekomerčné využitie a v prípade, že softvér, ktorý bude tento nástroj obsa- hovať, je tiež licencovaný pod GPL (General Public Licence), je k dispozícii GPL. Pre prípad komerčného využitia je potrebné zakúpiť si licenciu PDFtk Server Redistribution License. Ovláda sa pomocou príkazového riadku. V práci som sa venoval tejto verzii, pretože ako jediná má otvorený zdrojový kód. Nástroj je dobre zdokumentovaný. Podpora je len pre serverovú verziu, v cene 95.81 eur na rok. Pre úspešnú kompiláciu je potrebné mať nainštalovaný prekladač GCJ (GNU Compiler for Java). Priečinok pdftk obsa- huje súbory Makefile pre niekoľko operačných systémov. V súbore patriacemu žiadanému operačnému systému je potrebné pridať cestu k priečinku obsahujúcemu súbory gcj a gcjh. Následne sa

19 5. Analýza nástrojov program kompiluje príkazom make -f Makefile.OS, kde OS je konkrétny operačný systém a inštaluje sa príkazom sudo make -f Makefile.OS install, kde je OS znova nahradené konkrétnym operačným systémom. Keďže stránka so zdrojovým kódom neudáva počet stiahnutí, nepodarilo sa mi ho zistiť.

iSafePDF Nástroj určený priamo na šifrovanie a podpisovanie dokumentov PDF, posledná verzia je zo septembra 2010. Neexistuje dokumentácia zdrojo- vého kódu a autor nezabezpečuje podporu. V prípade potreby existuje diskusné fórum, kde si radia navzájom užívatelia. Nástroj sa ovláda pomocou grafického rozhrania. Využíva knižnicu iTextSharp28 [ ] vo ver- zii 5.0.1. Tento nástroj zlyhal pri niektorých testovacích dokumentoch, preto ho ďalej neuvádzam. Dôvodom bol pravdepodobne dátový prúd XRef použitý namiesto separátnej tabuľky krížových referencií a záve- rečnej sekcie. Keďže nástroj nie je udržiavaný, problém som nenahlasoval. Zdrojový kód tohto nástroja je dostupný ako projekt programu Microsoft Visual Studio. Pre skompilovanie je potrebné pridať knižnicu iTextSharp. Keďže som nikde nenašiel informáciu o potrebnej verzii, vyskúšal som verzie 5.0.0, 5.0.1 a 5.5.5, ktorá je najnovšia. Program fungoval jedine s druhou spomenutou, ktorá zodpovedá aj dátumu vydania nástroja.

JSignPdf Český nástroj zameraný hlavne na podpisovanie dokumentov. Je stále udržiavaný, ale nová funkcionalita nepribúda z dôvodu nedostatku času autora. Má výbornú dokumentáciu. Podpora je vedená formou diskus- ného fóra prostredníctvom služby Google Groups [31]. Patrí k najpou- žívanejším z uvedených. K dispozícii je ako grafické rozhranie, tak aj možnosť spustenia z príkazového riadku. Využíva modifikovanú verziu 2.1.7 knižnice iText. Rovnako ako v prípade programu jPdf Tweak, kompilácia prebieha pomocou príkazu ant.

PortableSigner Nástroj určený na podpisovanie dokumentov PDF. Posledná aktualizácia bola vydaná vo februári 2013. Zdrojový kód je dobre zdokumentovaný.

20 5. Analýza nástrojov Prostredníctvom stránky sourceforge.net je možné nahlásiť chyby, po- žiadať o podporu alebo pridanie funkcionality. Rovnako ako väčšina zmienených nástrojov, využíva knižnicu iText, konkrétne verziu 5.1.3. Zdrojový kód je vo forme projektu vývojového prostredia NetBeans [32]. Je potrebné k nemu zvlášť stiahnuť externé knižnice, ktoré je možné získať zo skompilovanej verzie nástroja.

pdfsign Tento nástroj bol vyvíjaný len krátku dobu počas roku 2011. Počtom riadkov zdrojového kódu je najmenší a nemá grafické rozhranie. Doku- mentácia k nemu takmer žiadna neexistuje, no zdrojový kód je krátky a ľahko čitateľný. Autor podporu nezabezpečuje, užívatelia si radia navzá- jom na diskusnom fóre nástroja. Využíva knižnicu verziu 5.1.3 knižnice iTextSharp. Zdrojový kód je k dispozícii ako projekt vývojového prostre- dia Microsoft Visual Studio, bez knižnice iTextSharp, ktorú je potrebné stiahnuť zvlášť. Taktiež treba mať nainštalovaný balík ILMerge [33].

PDF Creator PDF Creator sa od ostatných nástrojov líši tým, že funguje ako virtu- álna tlačiareň. Neupravuje preto pôvodný dokument, ale vytvára nový. Pôvodne bol vyvíjaný v jazyku Visual Basic, ale od verzie 2 je vyvíjaný v jazyku C#. Počet stiahnutí v tabuľke sa vzťahuje len na verzie po 1.7.2, ktoré sú uložené na servere sourceforge.net. Verzia 2.0 a novšie sa na- chádzajú na domovskej stránke nástroja, ktorá počet stiahnutí neudáva. Počas testovania tohto nástroja mi aplikácia pri súboroch s veľkosťou približne nad 40 MB vždy zlyhala s chybou „Internal Ghostscript Error“ napriek tomu, že som ho testoval na troch rôznych počítačoch. Všetky obsahovali operačný systém Windows 7 v 64 bitovej verzii. Zároveň bol tento nástroj niekoľkonásobne pomalší ako ľubovoľný z ostatných a len načítanie dokumentu trvalo niekoľko minút v prípade dokumentu, ktorý bol iným nástrojom spracovaný za menej ako 5 sekúnd. Dôvod zlyhania som sa pokúsil zistiť na diskusnom fóre, ktoré nahrádza technickú pod- poru od vývojárov. Nanešťastie, neúspešne. Z týchto dôvodov nástroj ďalej v práci neuvádzam.

21 5. Analýza nástrojov LibreOffice Draw Túto aplikáciu som nezaradil do tabuľky ani som ju ďalej neskúmal, pretože súčasná verzia (4.4.1) podporuje otvorenie dokumentov formátu PDF pomocou zásuvného modulu, ktorý funguje správne len pri jedno- duchých dokumentoch a nie je určený pre manipuláciu so zložitejšími alebo väčšími súbormi. Podpora formátu PDF a podpisovania doku- mentov PDF má byť vo verzii 4.5 prerobená a obohatená o možnosť pridania časového razítka. Ekvivalentný rozsah podpory formátu PDF má aj OpenOffice Draw.

iText iText a iTextSharp sú knižnice s otvoreným zdrojovým kódom určené na tvorbu a manipuláciu dokumentov PDF. Sú používané väčšinou skúma- ných nástrojov. Ako prvá vznikla knižnica iText, vyvíjaná v jazyku Java, neskôr vznikla iTextSharp ako jej ekvivalent v jazyku C#. Aktuálna verzia obidvoch knižníc je 5.5.5 z februára tohto roka. Vydávané sú pod dvomi druhmi licencie: AGPL (Affero General Public Licence) ako- merčné licencie. V prípade využitia licencie AGPL musí byť aj výsledný produkt licencovaný pod AGPL a mať otvorený zdrojový kód. Okrem toho musí každý dokument vytvorený týmto programom obsahovať informáciu o použití tejto knižnice. V prípade nezverejnenia zdrojo- vého kódu je nutné zakúpiť si jednu z troch komerčných licencií. Tie sú určené zvlášť pre servery, stolné počítače a zariadenia s operačným systémom Android. Ceny licencií sú 1700 e pre jeden server, 1025 e pre 10 stolných počítačov alebo 840 e pre 2000 zariadení s Androidom. Vlastníkom práv k tejto knižnici je belgická spoločnosť iText Group NV. Na kryptografické účely využíva knižnicu Bouncy Castle [34].

5.2 Analýza z hľadiska funkcionality

Väčšina nástrojov ponúka len časť požadovanej funkcionality. Niektoré z nich ju rozširujú napríklad o možnosť upraviť si vzhľad viditeľného podpisu pridaním obrázku alebo vlastného textu. Táto kapitola má za úlohu oboznámiť čitateľa s možnosťami ich využitia. Uvádzané sú hlavne algoritmy podporované jednotlivými nástrojmi a rozšírené možnosti týkajúce sa zabezpečenia dokumentov, ako napríklad viditeľnosť a vzhľad podpisu či jeho umiestnenie.

22 5. Analýza nástrojov

5.2.1 Šifrovanie Pri šifrovaní dokumentov neexistujú žiadne rozšírené možnosti, takže je možné meniť jedine šifrovací algoritmus. Šifrovacie algoritmy podporo- vané jednotlivými nástrojmi sú uvedené v nasledujúcej tabuľke.

RC4 RC4 AES AES Asymetrické Názov 40 bit 128 bit 128 bit 256 bit šifrovanie jPdf Tweak Áno Áno Áno Nie Nie QPDF Áno Áno Áno Áno Nie PDF Split and Áno Áno Áno Nie Nie Merge iSafePDF Nie Áno Nie Nie Nie PDF Toolkit Áno Áno Nie Nie Nie JSignPdf Nie Áno Nie Nie Áno PortableSigner Nie Nie Nie Nie Nie pdfsign Nie Nie Nie Nie Nie

Tabuľka 5.3: Podpora šifrovacích algoritmov u jednotlivých nástrojov

Algoritmus RC4 s dĺžkou kľúča 128 bitov podporujú všetky nástroje umožňujúce šifrovanie. Takmer všetky z týchto nástrojov umožňujú šifrovanie algoritmom RC4 s dĺžkou kľúča 40 bitov. Jediný nástroj umožňujúci šifrovanie algoritmom AES s dĺžkou kľúča 256 bitov je QPDF. Šifrovanie využívajúce asymetrickú kryptografiu podporuje len nástroj JSignPdf. Ten využíva kombináciu algoritmu AES s dĺžkou 128 bitov a algoritmu RSA s dĺžkou kľúča do 4096 bitov.

5.2.2 Dešifrovanie Dešifrovanie sa uskutočňuje pri otváraní šifrovaného dokumentu prehlia- dačom. Tabuľka 5.4 uvádza algoritmy podporované často používanými prehliadačmi s otvoreným zdrojovým kódom. Vyplýva z nej, že žiadny zo skúmaných prehliadačov neumožňuje dešifrovať dokument šifrovaný manažérom bezpečnosti využívajúcim asymetrickú kryptografiu. Z tohto dôvodu nepovažujem podporu tohto algoritmu u šifrovacích nástrojov za smerodajnú. Internetové prehliadače Firefox a Chromium zobrazujú dokumenty PDF pomocou vlastných knižníc s otvoreným zdrojovým

23 5. Analýza nástrojov kódom. Podpora algoritmov môže byť rozdielna pri použití rôznych zásuvných modulov. Uvedená zodpovedá použitiu východiskových na- stavení. Produkty spoločnosti Adobe (Reader [43] a Acrobat) umožňujú otvoriť dokumenty šifrované všetkými uvedenými algoritmami. V ta- buľke nie sú uvedené, lebo nemajú otvorenú licenciu. Prístupové práva rešpektuje len Sumatra PDF a čiastočne prehliadač Chromium. Okrem dešifrovania prehliadačmi je možné využiť aj niektoré z nástro- jov, ktoré uložia dokument v dešifrovanej podobe a odstránia vymedzenie prístupových práv. Tieto nástroje sú uvedené v tabuľke 5.5.

RC4 RC4 AES AES Asymetrické Názov 40 bit 128 bit 128 bit 256 bit šifrovanie [35] Áno Áno Áno Nie Nie [36] Áno Áno Áno Nie Nie qpdfview [37] Áno Áno Áno Nie Nie Zathura [38] Áno Áno Áno Nie Nie Sumatra PDF [39] Áno Áno Áno Áno Nie MuPDF [40] Áno Áno Áno Áno Nie Firefox [41] Áno Áno Áno Áno Nie Chromium [42] Áno Áno Áno Áno Nie

Tabuľka 5.4: Podpora dešifrovacích algoritmov u vybraných prehliadačov

RC4 RC4 AES AES Asymetrické Názov 40 bit 128 bit 128 bit 256 bit šifrovanie jPdf Tweak Áno Áno Áno Nie Nie QPDF Áno Áno Áno Áno Nie PDF Split and Áno Áno Áno Nie Nie Merge PDF Toolkit Nie Áno Áno Nie Nie

Tabuľka 5.5: Podpora dešifrovacích algoritmov u jednotlivých nástrojov

24 5. Analýza nástrojov 5.2.3 Podpisovanie Podporované typy podpisov, formáty certifikátov a hashovacie funkcie sú uvedené v tabuľke 5.6. Podporovaná dĺžka kľúča algoritmu RSA je u všetkých nástrojov maximálne 4096 bitov.

jPdfTweak Umožňuje vybrať jednu zo štandardných možností nastavení práv cer- tifikačného podpisu alebo použiť schvaľovací podpis. Podpis môže byť viditeľný alebo neviditeľný. Neposkytuje žiadne ďalšie možnosti.

JSignPdf Rovnako ako jPdf Tweak, umožňuje vytvorenie obidvoch druhov pod- pisov so štandardnými možnosťami nastavenia práv. Podporuje širokú škálu typov certifikátov a všetky hashovacie funkcie podporované formá- tom PDF. Okrem toho poskytuje ďalšie nastavenia, ako výber hashovacej funkcie z piatich možností, využitie TSA (Time Stamping Authority) a OCSP (Online Certificate Status Protocol) servera, nastavenie vidi- teľnosti podpisu, jeho umiestnenia a vzhľadu. TSA server umožňuje pridanie časovej známky a OCSP overenie platnosti certifikátu. Z do- stupných nástrojov obsahuje celkovo najväčšie množstvo doplnkových možností.

PortableSigner Podporuje obidva druhy podpisu – certifikačný aj schvaľovací. Nastaviť je možné vzhľad a umiestnenie podpisu, prípadne pridať na koniec dokumentu stranu obsahujúcu podpis.

pdfsign Umožňuje vytvoriť len schvaľovací podpis. Nastaviť je možné viditeľnosť, obsah a umiestnenie podpisu. Je možné využiť TSA.

25 5. Analýza nástrojov Podporované hashovacie funkcie SHA-1 SHA-1, SHA-256, SHA-384, SHA-512, RIPEMD160 SHA-1 SHA-1 Podporované typy certifikátov JKS BCPKCS12, BKS, BOUNCYCASTLE, CASEEXACTJKS, DKS, JCEKS, JKS, PKCS12, PKCS12-3DES-3DES, PKCS12-3DES-40RC2, PKCS12-DEF, PKCS12-DEF-3DES-3DES, PKCS12-DEF-3DES-40RC2 PKCS12 PKCS12 Schvaľovací podpis Áno Áno Áno Áno Podporované hashovacie funkcie, typy podpisov a certifikátov Certifikačný podpis Áno Áno Áno Nie Tabuľka 5.6: Názov jPdf Tweak JSignPdf PortableSigner pdfsign

26 5. Analýza nástrojov 5.2.4 Overovanie podpisu Produkty spoločnosti Adobe umožňujú overenie podpisu priamo pri otvo- rení dokumentu. Táto možnosť sa u žiadneho z prehliadačov s otvoreným zdrojovým kódom nevyskytuje. Prehliadače Evince, Okular a qpdfview využívajú knižnicu Popp- ler [44], ktorá túto funkcionalitu nezahŕňa napriek tomu, že bola žiadaná tvorcami prehliadačov. Sumatra PDF a MuPDF využívajú knižnicu MuPDF a Zathura môže využívať obidve varianty. Webové prehliadače Firefox a Chromium využívajú vlastné knižnice, konkrétne PDF.js [45] a PDFium [46]. Žiadna z knižníc neobsahuje možnosť overenia digitálneho podpisu. Zo skúmaných nástrojov dokáže overiť podpis len jediný - JSignPdf. Potrebný je k tomu certifikát podpisujúceho. Tento nástroj zároveň umožňuje z dokumentu vyňať podpísanú časť.

27 6 Testovanie

Všetky nástroje som skompiloval zo zdrojového kódu. Následne som ich testoval na operačných systémoch Linux Mint 17.1 a Windows 7 v 64-bitových verziách. Použitý počítač obsahuje dvojjadrový procesor Intel Core i5-2430M s frekvenciou 2,4 GHz a 8 GB operačnej pamäte. Na testovanie som vybral tri dokumenty. Prvý dokument je Matematika drsně a svižně [47] (ďalej dokument 1). Vybral som ho pre jeho veľkosť a z dôvodu, že celý jeho obsah je uložený v dátových prúdoch. Tento dokument má veľkosť 64,3 MB a 781 strán, z čoho je šifrovaných 60,7 MB. Druhý dokument (ďalej dokument 2) som vytvoril tak, aby jeho čítanie a parsovanie zaberalo čo najmenej času, a aby bol šifrovaný ucelený blok dát. Preto obsahuje len minimálne množstvo potrebných objektov a jeden dátový prúd o veľkosti 10 MB. Zvyšná časť dokumentu má veľkosť 0,7 kB. Keďže ani pri tomto dokumente nebol rozdiel v čase medzi použitými algoritmami a dĺžkami kľúča znateľný, vytvoril som tretí dokument (ďalej dokument 3), ktorý neobsahuje žiadny dátový prúd ani reťazec a preto žiadna jeho časť nie je šifrovaná. Vďaka tomu je viditeľný čas, ktorý je potrebný pre zvyšok operácií. Všetky merania sú uvedené v elektronickej prílohe.

6.1 Rýchlosť nástrojov

Čas potrebný testovanými nástrojmi na šifrovanie pri použití algoritmov podporovaných týmito nástrojmi je uvedený v grafoch v prílohe A. Dĺžka trvania operácií je uvedená v milisekundách. Táto hodnota je vždy priemerom z tridsiatich meraní. Grafy zobrazujúce šifrovanie obsahujú len nástroje umožňujúce šifrovanie a grafy zobrazujúce podpisovanie obsahujú len nástroje, ktoré umožňujú podpisovanie dokumentov PDF. Ak je uvedená hodnota N/A, nástroj tento algoritmus nepodporuje.

Šifrovanie Rýchlosť šifrovania dokumentov znázorňujú grafy A.1 až A.3 pre doku- ment 1, A.13 až A.15 pre dokument 2 a A.25 až A.27 pre dokument 3. V prípade algoritmu AES s dĺžkou kľúča 256 bitov a algoritmu vy- užívajúceho asymetrickú kryptografiu nie je uvedený graf, pretože každý z nich je podporovaný len jedným nástrojom. Priemerná dĺžka šifrovania

28 6. Testovanie programom QPDF algoritmom AES-256 je 3 554 ms so smerodajnou odchýlkou 24 pre dokument 1, 140 ms s odchýlkou 3 pre dokument 2 a 95 ms so smerodajnou odchýlkou 2 pre dokument 3. V prípade nástroja JSignPdf a algoritmu využívajúceho asymetrickú kryptografiu sú tieto hodnoty 4 791 ms so smerodajnou odchýlkou 115, 1 563 ms s odchýlkou 71 a 1 237 ms s odchýlkou 24 pre dokumenty 1, 2 a 3, v tomto poradí. Keďže nástrojom JSignPdf nie je možné šifrovať do- kument bez jeho súčasného podpísania, uvedené časy sa vzťahujú na šifrovanie s podpisovaním s použitím kľúča dĺžky 1024 bitov.

Podpisovanie V grafoch A.4 až A.6 pre dokument 1, A.16 až A.18 pre dokument 2 a A.28 až A.30 pre dokument 3 je uvedená priemerná dĺžka trvania podpisovania.

6.2 Pamäťová náročnosť nástrojov

Spolu s grafmi zobrazujúcimi časovú náročnosť obsahuje príloha A aj grafy pamäťovej náročnosti nástrojov. Hodnoty v grafoch sú najvyššie hodnoty počas behu aplikácie. Rovnako, ako v prípade časovej náročnosti je uvedený priemer z tridsiatich meraní. Veľkosť pamäte je uvedená v kilobajtoch.

Šifrovanie Grafy A.7 až A.9 pre dokument 1 a A.19 až A.21 pre dokument 2 uvádzajú priemernú veľkosť pamäte rezervovanú nástrojmi z tridsia- tich meraní. Ak je uvedená hodnota N/A, nástroj tento algoritmus nepodporuje. Veľkosť pamäte je uvedená v kilobajtoch. Nástroj QPDF pri šifrovaní algoritmom AES-256 potreboval od 35 212 do 35 236 kB operačnej pamäte v prípade dokumentu 1 a 2 320 až 2 336 kB v prípade dokumentu 2. JSignPdf si pri šifrovaní pomocou asymetrickej kryptografie so súčasným podpisovaním s dĺžkou kľúča 1024 bitov vyžiadal v priemere 493 216 kB so smerodajnou odchýlkou 17 069 a 150 570 kB s odchýlkou 952.

29 6. Testovanie Podpisovanie Pamäťová náročnosť nástrojov pri podpisovaní je uvedená v grafoch A.10 až A.12 a A.22 až A.24.

6.3 Vyhodnotenie

Všetky hodnotené nástroje, s výnimkou QPDF, sú založené na knižnici iText, prípadne iTextSharp. Napriek tomu sú medzi nimi veľké rozdiely v rýchlosti, pamäťovej náročnosti aj v podporovaných algoritmoch. Vo všeobecnosti je možné povedať, že časová ani pamäťová náročnosť takmer nezáležali od vykonávaných kryptografických operácií, ktoré zaberali z celkového času len veľmi malú časť. Výnimkou bol nástroj QPDF. Len polovica testovaných prehliadačov a jeden z testovaných nástro- jov umožňujú dešifrovanie dokumentu šifrovaného pomocou algoritmu AES s dĺžkou kľúča 256 bitov. Ani jedna testovaná aplikácia neumožňuje dešifrovanie dokumentu šifrovaného pomocou asymetrickej kryptografie. V prípade malých súborov sú rýchlosti šifrovania nástrojmi porovna- teľné. Spomedzi testovaných nástrojov rýchlosťou šifrovania vynikajú QPDF a PDF Toolkit, ktoré sú s narastajúcou veľkosťou a zložitosťou súboru výrazne rýchlejšie. V takom prípade je PDF Split and Merge naj- pomalší, a preto nie je vhodný. V prípade podpisovania majú najvyššiu rýchlosť pdfsign, PortableSigner a JSignPdf, v tomto poradí. jPdf Tweak za nimi výrazne zaostáva. Rozdiel je taktiež viditeľný až pri väčších a zložitejších súboroch. Z hľadiska pamäťovej náročnosti vyniká pri šifrovaní súborov všet- kých veľkostí nástroj QPDF. U ostatných nástrojov znovu platí, že pri malých súboroch sú hodnoty podobné. Pri väčších súboroch je druhý v poradí PDF Toolkit s približne trojnásobnou hodnotou a tretí JSignPdf, ktorý potrebuje pri šifrovaní testovacieho dokumentu 1 približne pol gigabatu. jPDF Tweak a PDF Split and Merge si rezervujú u operačného systému približne 1 GB, čo je pri šifrovaní súboru o veľkosti 64,3 MB pomerne veľa. jPDF Tweak aj JSignPdf majú pri podpisovaní približne rovnakú spotrebu pamäte ako pri šifrovaní. Obidva zvyšné nástroje dosahujú lepšie výsledky. Najširšiu funkcionalitu zo všetkých nástrojov ponúkajú jPdf Tweak a JSignPdf, keďže umožňujú šifrovanie aj podpisovanie, JSignPdf ako jediný aj overenie podpisu. Zo šifrovacích nástrojov ponúka najväčšie

30 6. Testovanie množstvo algoritmov QPDF. Z nástrojov umožňujúcich podpisovanie neumožňuje vytvoriť certifikačný podpis pdfsign, zvyšné tri nástroje umožňujú vytvoriť obidva druhy. V prípade výberu jedného nástroja na šifrovanie a jedného na pod- pisovanie je najvhodnejšia možnosť dvojica QPDF a PortableSigner pre ich vysokú rýchlosť a nízku pamäťovú náročnosť. V prípade potreby jedného univerzálneho nástroja som vybral jPdf Tweak z dôvodu, že umožňuje vytvorenie obidvoch druhov podpisov a šifrovanie pomocou algoritmov RC4 aj AES. Nevýhodou je jeho nízka rýchlosť a veľmi vysoká pamäťová náročnosť. V prípade pridania možnosti šifrovania bez súčasného podpísania dokumentu do nástroja JSignPdf, by bol tento najvhodnejší vďaka možnosti overenia podpisu.

31 7 Modifikácia nástroja JSignPdf

Ako je uvedené vyššie, tento nástroj ponúka najviac možností v prípade podpisovania, ako jediný umožňuje šifrovanie pomocou asymetrickej kryptografie a taktiež overenie podpisu. Jeho nevýhodou je, že neumož- ňuje samostatné šifrovanie bez súčasného podpísania. Z týchto dôvodov a preto, že má nižšiu časovú aj pamäťovú náročnosť ako jPdf Tweak - druhý nástroj podporujúci šifrovanie a podpisovanie, som ho vybral pre modifikáciu, vďaka ktorej má poskytovať celú žiadanú funkcionalitu. Toto som dosiahol tak, že v prípade neuvedenia súboru so súkrom- ným kľúčom je namiesto pôvodnej metódy vykonávajúcej podpisovanie zavolaná nová metóda, ktorá dokument len zašifruje. V prípade, že je tento súbor uvedený, funguje program rovnako, ako predtým. Nástroj po úprave nevyžaduje žiadne dodatočné knižnice. Po modifikácii nástroja som ho testoval. Výsledky merania rýchlosti a pamäťovej náročnosti pri šifrovaní sú uvedené v tabuľkách 7.1 a 7.2. Nové meranie rýchlosti a pamäťovej náročnosti podpisovania nie je nutné, keďže v tomto prípade sú všetky operácie vykonávané rovnako, ako predtým. Z nameraných údajov je zrejmé, že modifikovaný nástroj je rýchlejší a zaberá menej miesta v pamäti, ako pôvodný. Tento výsledok bol očakávaný, keďže nie je vykonávané podpisovanie. Zdrojový kód programu je k dispozícii ako elektronická príloha práce.

Smerodajná Algoritmus Dokument Priemerný čas odchýlka RC4-128 1 3198 ms 54 Asymetrické šifrovanie 1 3075 ms 71 RC4-128 2 1104 ms 24 Asymetrické šifrovanie 2 1445 ms 68 RC4-128 3 835 ms 28 Asymetrické šifrovanie 3 1167 ms 27

Tabuľka 7.1: Výsledky testovania časovej náročnosti upraveného nástroja JSignPdf

32 7. Modifikácia nástroja JSignPdf Priemerná Smerodajná Algoritmus Dokument spotrebovaná pamäť odchýlka RC4-128 1 218729 kB 3502 Asymetrické šifrovanie 1 238605 kB 1923 RC4-128 2 125745 kB 1050 Asymetrické šifrovanie 2 134570 kB 1357 RC4-128 3 75161 kB 782 Asymetrické šifrovanie 3 99032 kB 553

Tabuľka 7.2: Výsledky testovania pamäťovej náročnosti upraveného nástroja JSignPdf

33 8 Záver

Cieľom práce bolo opísať spôsoby šifrovania a podpisovania dokumentov uložených vo formáte PDF, vybrať vhodné nástroje a otestovať ich na bežnom počítači. Prvá časť práce je venovaná formátu PDF a základným pojmom použitým v ďalšej časti, ktorá opisuje bezpečnostné mechanizmy pod- porované formátom PDF. Po nej nasleduje prehľad nástrojov s otvo- reným zdrojovým kódom disponujúcich požadovanou funkcionalitou so základnou charakteristikou - jazyk, v ktorom bol nástroj napísaný, operačné systémy, na ktorých je možné ich spustiť, úroveň dokumentácie a podobne. Zvyšok práce hodnotí nástroje z rôznych hľadísk. Týmito hľadiskami sú funkčnosť, podporované algoritmy a formáty certifiká- tov, rozšírené možnosti podpisovania dokumentov, rýchlosť a spotreba pamäte. Medzi nástrojmi nie je žiadny univerzálny, ktorý by spĺňal celú požadovanú funkcionalitu. Z tohto dôvodu bolo potrebné vybrať viacero nástrojov alebo niektorý z nich modifikovať. Pre takúto modifikáciu sa ako ideálny javí JSignPdf, ktorému chýba len možnosť samostatného šifrovania bez nutnosti súčasného podpísania. Táto úprava bola obsahom poslednej časti práce.

34 Literatúra

[1] PDF files, Adobe Portable Document Format | Adobe Acrobat DC. ADOBE SYSTEMS INCORPORATED. Adobe: Creative, marketing, and document management solutions [online]. 2015 [cit. 2015-04-13]. Dostupné z: https://acrobat.adobe.com/sk/en/products/about-adobe- .html

[2] ISO 32000-1:2008 - Document management – Portable document format – Part 1: PDF 1.7. INTERNATIONAL ORGANIZATION FOR STANDARDIZATION. ISO - International Organization for Standardization [online]. 2008 [cit. 2015-04-13]. Dostupné z: http: //www.iso.org/iso/catalogue_detail.htm?csnumber=51502

[3] Cryptography - RC4 Algorithm. In: Report.pdf [online]. 2012 [cit. 2015-04-13]. Dostupné z: http://www.cs.rit.edu/~ark/ winter2011/482/team/u4/report.pdf

[4] Announcing the ADVANCED ENCRYPTION STANDARD (AES). In: FIPS 197, Advanced Encryption Standard (AES) - fips-197.pdf [online]. 2001 [cit. 2015-04-13]. Dostupné z: http:// csrc.nist.gov/publications/fips/fips197/fips-197.pdf

[5] PKCS #7: Cryptographic Message Syntax Version 1.5. In: PKCS #7: Cryptographic Message Syntax Version 1.5 [online]. 1998 [cit. 2015-04-13]. Dostupné z: https://www.ietf.org/rfc/rfc2315.txt

[6] Adobe Acrobat Pro DC: PDF converter, convert from anywhere. Adobe: Creative, marketing, and document mana- gement solutions [online]. 2015 [cit. 2015-04-14]. Dostupné z: https://acrobat.adobe.com/us/en/products/acrobat-pro.html

[7] JPdf Tweak - Swiss Army Knife for PDF files. SourceForge - Down- load, Develop and Publish Free Open Source Software [online]. 2015 [cit. 2015-04-13]. Dostupné z: http://jpdftweak.sourceforge. net/

35 LITERATÚRA [8] QPDF: A Content-Preserving PDF Transformation System. Sour- ceForge - Download, Develop and Publish Free Open Source Soft- ware [online]. 2014 [cit. 2015-04-13]. Dostupné z: http://qpdf. sourceforge.net/

[9] PDF Split and Merge | Split and merge pdf documents, free and open source [online]. 2012 [cit. 2015-04-13]. Dostupné z: http: //www.pdfsam.org/

[10] ISafePDF. Http://eurekaa.org/ [online]. 2010 [cit. 2015-04-14]. Dostupné z: http://isafepdf.eurekaa.org/

[11] PDFtk - The PDF Toolkit. PDF Labs: Tools, Services and Code for PDF Users and Programmers [online]. 2014 [cit. 2015-04-14]. Do- stupné z: https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

[12] About JSignPdf | JSignPdf - Free digital signatures for PDF. SourceForge - Download, Develop and Publish Free Open Source Software [online]. 2014 [cit. 2015-04-14]. Dostupné z: http:// jsignpdf.sourceforge.net/

[13] PortableSigner Mainpage. SourceForge - Download, Develop and Publish Free Open Source Software [online]. 2013 [cit. 2015-04-14]. Dostupné z: http://portablesigner.sourceforge.net/

[14] Command line PDF signature tool - Home. CodePlex - Open Source Project Hosting [online]. 2011 [cit. 2015-04-14]. Dostupné z: https://pdfsign.codeplex.com/

[15] Pdfforge | PDF Creator - The FREE PDF Converter Tool, ease to use pdf printer, pdf writer, pdf download. Http://www.pdfforge.org/ [online]. 2015 [cit. 2015-04-14]. Dostupné z: http://www.pdfforge.org/pdfcreator

[16] Home | LibreOffice - Free Office Suite - Fun Project -Fan- tastic People [online]. 2015 [cit. 2015-04-14]. Dostupné z: https://www.libreoffice.org/

[17] TCPDF [online]. 2013 [cit. 2015-04-18]. Dostupné z: http://www. tcpdf.org/

36 LITERATÚRA [18] PDFTK Builder and other PDF Resources. Angus Johnson’s Homepage [online]. 2009 [cit. 2015-04-18]. Dostupné z: http: //www.angusj.com/pdftkb/#pdftkbuilder

[19] PDF Little Signer - Home. CodePlex - Open Source Project Hosting [online]. 2011 [cit. 2015-04-18]. Dostupné z: http:// pdflttlesigner.codeplex.com/

[20] / - Revision 2599: /CAcert/Software/PdfSigner. Welcome to CAcert.org [online]. 2011 [cit. 2015-04-18]. Dostupné z: http: //svn.cacert.org/CAcert/Software/PdfSigner/

[21] Home page for the PyPDF2 project. GitHub Pages [online]. 2014 [cit. 2015-04-14]. Dostupné z: http://mstamy2.github.io/ PyPDF2/

[22] PDF Chain Project Page - Welcome. SourceForge - Download, Develop and Publish Free Open Source Software [online]. 2013 [cit. 2015-04-14]. Dostupné z: http://pdfchain.sourceforge.net/ index.html

[23] PDF Rider - Home. CodePlex - Open Source Project Hosting [online]. 2012 [cit. 2015-04-14]. Dostupné z: http://pdfrider. codeplex.com/

[24] GNU Affero General Public License - GNU Project - Free Soft- ware Foundation. The GNU and the Free Software Movement [online]. 2007 [cit. 2015-05-08]. Dostupné z: https://www.gnu.org/licenses/agpl-3.0.html

[25] Artistic License 2.0 | Open Source Initiative. Welcome to The Open Source Initiative | Open Source Initiative [online]. 2006 [cit. 2015-05-08]. Dostupné z: http://opensource.org/licenses/ Artistic-2.0

[26] The GNU General Public License v3.0 - GNU Project - Free Software Foundation. The GNU Operating System and the Free Software Movement [online]. 2007 [cit. 2015-05-08]. Dostupné z: http://www.gnu.org/copyleft/gpl.html

37 LITERATÚRA [27] PDFtk Server Support Agreement version 1.0 - pdf_labs- _pdftk_support_agreement_ver_1.0.pdf. PDF Labs: Tools, Ser- vices and Code for PDF Users and Programmers [online]. [cit. 2015-05-08]. Dostupné z: https://www.pdflabs.com/docs/pdftk- license/pdf_labs_pdftk_support_agreement_ver_1.0.pdf

[28] IText, Programmable PDF software | iText Software [online]. 2015 [cit. 2015-04-14]. Dostupné z: http://itextpdf.com/

[29] Apache Ant - Welcome. Welcome to The Apache Software Foun- dation! [online]. 2014 [cit. 2015-05-08]. Dostupné z: http://ant. apache.org/

[30] SourceForge - Download, Develop and Publish Free Open Source Software [online]. 2015 [cit. 2015-05-08]. Dostupné z: http:// sourceforge.net/

[31] Google Groups. Google [online]. 2015 [cit. 2015-04-14]. Dostupné z: https://groups.google.com/forum/?hl=en#!overview

[32] Welcome to NetBeans [online]. 2015 [cit. 2015-05-09]. Dostupné z: https://netbeans.org/

[33] ILMerge - Microsoft Research. Microsoft – Official Home Page [online]. 2015 [cit. 2015-05-09]. Dostupné z: http://research. microsoft.com/en-us/people/mbarnett/ilmerge.aspx

[34] Bouncycastle.org [online]. 2015 [cit. 2015-05-09]. Dostupné z: https://www.bouncycastle.org/

[35] Apps/Evince - GNOME Wiki!. GNOME [online]. 2014 [cit. 2015- 04-14]. Dostupné z: https://wiki.gnome.org/Apps/Evince

[36] Okular - more than a reader. KDE - Experience Freedom! [online]. 2014 [cit. 2015-04-14]. Dostupné z: https://okular.kde.org/

[37] Qpdfview in Launchpad. Launchpad [online]. 2015 [cit. 2015-04-14]. Dostupné z: https://launchpad.net/qpdfview

[38] Pwmt.org. Pwmt.org [online]. 2015 [cit. 2015-04-14]. Dostupné z: https://pwmt.org/projects/zathura/

38 LITERATÚRA [39] Free PDF Reader - Sumatra PDF [online]. 2015 [cit. 2015-04-14]. Dostupné z: http://www.sumatrapdfreader.org/ free-pdf-reader.html [40] MuPDF [online]. 2013 [cit. 2015-04-14]. Dostupné z: http:// .com/ [41] Download Firefox — Free Web Browser — Mozilla. We’re buil- ding a better Internet — Mozilla [online]. 2015 [cit. 2015-04-14]. Dostupné z: https://www.mozilla.org/en-US/firefox/new/ [42] The Chromium Projects [online]. 2015 [cit. 2015-04-14]. Dostupné z: https://www.chromium.org/ [43] Adobe Acrobat Reader DC Install for all versions. Adobe: Creative, marketing, and document management solutions [online]. 2015 [cit. 2015-04-14]. Dostupné z: https://get.adobe.com/reader/otherversions/ [44] . Www [online]. 2015 [cit. 2015-04-14]. Dostupné z: http: //poppler.freedesktop.org/ [45] PDF.js. GitHub Pages [online]. 2015 [cit. 2015-04-14]. Dostupné z: https://mozilla.github.io/pdf.js/ [46] Pdfium - PDFium - Google Project Hosting. Google [online]. 2015 [cit. 2015-04-14]. Dostupné z: https://code.google.com/p/pdfium/ [47] SLOVÁK, Jan, Martin PANÁK a Michal BULANT. Matematika drsně a svižně. 1. vyd. Brno: Masarykova univerzita, 2013. 773 s. ISBN 978-80-210-6307-5. doi:10.5817/CZ.MUNI.O210-6308-2013. [48] PDF Reference and Adobe Extensions to the PDF Specification | Adobe Developer Connection. ADOBE SYSTEMS INC. Adobe: Creative, marketing, and document management solutions [on- line]. 2015 [cit. 2015-04-17]. Dostupné z: http://www.adobe.com/ devnet/pdf/pdf_reference.html [49] ADOBE SYSTEMS INCORPORATED. Adobe: Creative, mar- keting, and document management solutions [online]. 2015 [cit. 2015-04-13]. Dostupné z: www.adobe.com/

39 A Grafy nameraných hodnôt

Obr. A.1: Priemerná dĺžka trvania šifrovania dokumentu 1 algoritmom RC4 s dĺžkou kľúča 40 bitov

Obr. A.2: Priemerná dĺžka trvania šifrovania dokumentu 1 algoritmom RC4 s dĺžkou kľúča 128 bitov

40 A. Grafy nameraných hodnôt

Obr. A.3: Priemerná dĺžka trvania šifrovania dokumentu 1 algoritmom AES s dĺžkou kľúča 128 bitov

Obr. A.4: Priemerná dĺžka trvania podpisovania dokumentu 1 s kľúčom dĺžky 1024 bitov

41 A. Grafy nameraných hodnôt

Obr. A.5: Priemerná dĺžka trvania podpisovania dokumentu 1 s kľúčom dĺžky 2048 bitov

Obr. A.6: Priemerná dĺžka trvania podpisovania dokumentu 1 s kľúčom dĺžky 4096 bitov

42 A. Grafy nameraných hodnôt

Obr. A.7: Priemerná spotreba pamäte pri šifrovaní dokumentu 1 algoritmom RC4 s dĺžkou kľúča 40 bitov

Obr. A.8: Priemerná spotreba pamäte pri šifrovaní dokumentu 1 algoritmom RC4 s dĺžkou kľúča 128 bitov

43 A. Grafy nameraných hodnôt

Obr. A.9: Priemerná spotreba pamäte pri šifrovaní dokumentu 1 algoritmom AES s dĺžkou kľúča 128 bitov

Obr. A.10: Priemerná spotreba pamäte pri podpisovaní dokumentu 1 s kľúčom dĺžky 1024 bitov

44 A. Grafy nameraných hodnôt

Obr. A.11: Priemerná spotreba pamäte pri podpisovaní dokumentu 1 s kľúčom dĺžky 2048 bitov

Obr. A.12: Priemerná spotreba pamäte pri podpisovaní dokumentu 1 s kľúčom dĺžky 4096 bitov

45 A. Grafy nameraných hodnôt

Obr. A.13: Priemerná dĺžka trvania šifrovania dokumentu 2 algoritmom RC4 s dĺžkou kľúča 40 bitov

Obr. A.14: Priemerná dĺžka trvania šifrovania dokumentu 2 algoritmom RC4 s dĺžkou kľúča 128 bitov

46 A. Grafy nameraných hodnôt

Obr. A.15: Priemerná dĺžka trvania šifrovania dokumentu 2 algoritmom AES s dĺžkou kľúča 128 bitov

Obr. A.16: Priemerná dĺžka trvania podpisovania dokumentu 2 s kľúčom dĺžky 1024 bitov

47 A. Grafy nameraných hodnôt

Obr. A.17: Priemerná dĺžka trvania podpisovania dokumentu 2 s kľúčom dĺžky 2048 bitov

Obr. A.18: Priemerná dĺžka trvania podpisovania dokumentu 2 s kľúčom dĺžky 4096 bitov

48 A. Grafy nameraných hodnôt

Obr. A.19: Priemerná spotreba pamäte pri šifrovaní dokumentu 2 algoritmom RC4 s dĺžkou kľúča 40 bitov

Obr. A.20: Priemerná spotreba pamäte pri šifrovaní dokumentu 2 algoritmom RC4 s dĺžkou kľúča 128 bitov

49 A. Grafy nameraných hodnôt

Obr. A.21: Priemerná spotreba pamäte pri šifrovaní dokumentu 2 algoritmom AES s dĺžkou kľúča 128 bitov

Obr. A.22: Priemerná spotreba pamäte pri podpisovaní dokumentu 2 s kľúčom dĺžky 1024 bitov

50 A. Grafy nameraných hodnôt

Obr. A.23: Priemerná spotreba pamäte pri podpisovaní dokumentu 2 s kľúčom dĺžky 2048 bitov

Obr. A.24: Priemerná spotreba pamäte pri podpisovaní dokumentu 2 s kľúčom dĺžky 4096 bitov

51 A. Grafy nameraných hodnôt

Obr. A.25: Priemerná dĺžka trvania šifrovania dokumentu 3 algoritmom RC4 s dĺžkou kľúča 40 bitov

Obr. A.26: Priemerná dĺžka trvania šifrovania dokumentu 3 algoritmom RC4 s dĺžkou kľúča 128 bitov

52 A. Grafy nameraných hodnôt

Obr. A.27: Priemerná dĺžka trvania šifrovania dokumentu 3 algoritmom AES s dĺžkou kľúča 128 bitov

Obr. A.28: Priemerná dĺžka trvania podpisovania dokumentu 3 s kľúčom dĺžky 1024 bitov

53 A. Grafy nameraných hodnôt

Obr. A.29: Priemerná dĺžka trvania podpisovania dokumentu 3 s kľúčom dĺžky 2048 bitov

Obr. A.30: Priemerná dĺžka trvania podpisovania dokumentu 3 s kľúčom dĺžky 4096 bitov

54