Bankovní institut vysoká škola Praha Katedra informačních technologií a elektronického obchodování
Kryptografie v ICT Aplikace v elektronickém obchodování a bankovnictví Bakalářská práce
Autor:
Eva Adámková Informační technologie, Manaţer Projektů IS
Vedoucí práce:
Praha
Ing. Vladimír Beneš
Březen, 2010 0
Prohlášení:
Prohlašuji, ţe jsem bakalářskou práci zpracovala samostatně a s pouţitím uvedené literatury.
V Praze, dne 30.3.2010
_______________________ Eva Adámková
1
Poděkování Děkuji Ing. Vladimíru Benešovi, vedoucímu mé bakalářské práce, za vedení a za cenné připomínky, které byly přínosem při zpracování a dokončení této práce. Dále děkuji Milanu Adámkovi za odborné rady z oblasti kryptologie. Poděkování také patří Martinu Šlancarovi za konzultaci v oblasti udělování certifikátů.
2
Anotace Bakalářská práce „Kryptografie v ICT, Aplikace v elektronickém obchodování a bankovnictví“ popisuje ve svém prvním logickém celku základní pojmy pouţívané v kryptografii a způsoby jejího uţití. V dalším textu jsou popsány kryptografické a částečně téţ kryptoanalytické metody od historických aţ po vyspělé, moderní, silné kryptosystémy. Dále práce popisuje soudobé aplikace kryptografie s přihlédnutím na systémy ICT. V závěru se téţ zamýšlí nad vývojovými trendy v oblasti kryptografie. Annotation In its first part, the thesis „Cryptography in ICT, Application in e-Commerce and eBanking“ describes some basic terms and definitions used in cryptography, and use-cases of cryptography. In the following part, some fundamental historical methods as well as advanced, strong, modern cryptosystems are described. Furher, the work discusses contemporary application of cryptography with special regard on ICT systems. In its conclusion, some trends and future perspectives on cryptography are considered.
3
Obsah ÚVOD ............................................................................................................................................................... 7 1
2
ZÁKLADNÍ POJMY V KRYPTOGRAFII......................................................................................... 8 1.1
ZÁKONY VZTAHUJÍCÍ SE KE KRYPTOGRAFICKÉ OCHRANĚ DAT ........................................................ 8
1.2
DEFINICE ZÁKLADNÍCH POJMŮ ........................................................................................................ 9
1.3
POUŢITÉ SYMBOLY A ZKRATKY ..................................................................................................... 10
ZÁKLADNÍ POUŢITÍ KRYPTOGRAFIE ....................................................................................... 11 2.1
SCHÉMA PŘENOSU INFORMACE PO NEZABEZPEČENÉM KANÁLE..................................................... 11
2.2
MATEMATICKÝ POPIS OBECNÉHO KRYPTOSYSTÉMU ..................................................................... 12
2.3
DVĚ ZÁKLADNÍ KRYPTOGRAFICKÁ SCHÉMATA ............................................................................. 13
2.3.1
Symetrická kryptografie ........................................................................................................... 13
2.3.2
Nesymetrická kryptografie ....................................................................................................... 14
2.4 3
4
DRUHY ÚTOKŮ NA KRYPTOGRAFICKÝ SYSTÉM.................................................................. 15 3.1
ÚTOK BEZ ZNÁMÉHO ORIGINÁLU .................................................................................................. 15
3.2
ÚTOK SE ZNÁMÝM ORIGINÁLEM .................................................................................................... 16
3.3
ÚTOK S VYBRANÝM ORIGINÁLEM ................................................................................................. 16
3.4
ÚTOK S VYBRANÝM ŠIFROVANÝM TEXTEM ................................................................................... 17
3.5
ÚTOK HRUBOU SILOU .................................................................................................................... 17
HISTORICKÁ KRYPTOGRAFIE .................................................................................................... 19 4.1
HISTORICKÉ ETAPY KRYPTOGRAFIE .............................................................................................. 19
4.2
ZÁKLADNÍ PRINCIPY KLASICKÉ KRYPTOGRAFIE ............................................................................ 19
4.2.1
Substituce................................................................................................................................. 20
4.2.2
Transpozice.............................................................................................................................. 23
4.2.3
Adice. Sčítání operací "modulo".............................................................................................. 24
4.2.4
Kombinované kryptosystémy ................................................................................................... 26
4.3
5
PROBLÉM PŘEDÁNÍ KLÍČE.............................................................................................................. 14
ŠIFROVACÍ STROJE ........................................................................................................................ 29
4.3.1
Enigma..................................................................................................................................... 29
4.3.2
Hebernův „Elektrický kód“ ..................................................................................................... 32
4.3.3
Hagelinův stroj ........................................................................................................................ 32
4.3.4
Vernam, proudová dálnopisná šifra ........................................................................................ 33
4.3.5
Japonský „Purpurový kód“ ..................................................................................................... 33
4.3.6
Šifrování po válce .................................................................................................................... 33
MODERNÍ KRYPTOGRAFIE .......................................................................................................... 35 5.1
OBECNÉ ZÁSADY MODERNÍ KRYPTOGRAFIE .................................................................................. 35
5.2
PRODUKTOVÉ ŠIFRY ...................................................................................................................... 35
4
5.2.1
Moderní blokové šifry, systémy Feistelova typu ...................................................................... 35
5.2.2
Data Encryption Standard (DES) ............................................................................................ 36
5.2.3
Další systémy Feistelova typu .................................................................................................. 36
5.2.4
Pracovní módy blokových šifer ................................................................................................ 37
5.3 5.3.1 5.4
Princip ..................................................................................................................................... 37 METODA RSA ............................................................................................................................... 38
5.4.1
Princip metody......................................................................................................................... 38
5.4.2
Potenciální útoky na RSA ........................................................................................................ 38
5.5 6
SYSTÉMY VEŘEJNÉ KRYPTOGRAFIE (SVK).................................................................................... 37
JEDNOCESTNÁ FUNKCE.................................................................................................................. 39
APLIKACE KRYPTOGRAFIE V IS/IT ........................................................................................... 40 6.1
PŘÍPADY UŢITÍ KRYPTOGRAFIE ...................................................................................................... 40
6.2
ELEKTRONICKÝ PODPIS ................................................................................................................. 41
6.2.1
Praktická realizace EP ............................................................................................................ 41
6.2.2
Praktický postup práce s EP .................................................................................................... 42
6.2.3
Certifikáty, certifikační autority .............................................................................................. 43
6.2.4
Právní aspekty použití elektronického podpisu........................................................................ 45
6.2.5
Aplikace elektronického podpisu ve státní správě ČR ............................................................. 45
6.3
PLATEBNÍ KARTY .......................................................................................................................... 47
6.4
ZABEZPEČENÉ INTERNETOVÉ PROTOKOLY .................................................................................... 48
6.4.1
Protokol HTTPS ...................................................................................................................... 48
6.4.2
Protokoly FTPS a SFTP .......................................................................................................... 49
6.4.3
Řešení bezpečnosti v internetovém bankovnictví ..................................................................... 49
6.5
BEZPEČNÉ PŘIHLAŠOVÁNÍ UŢIVATELŮ .......................................................................................... 50
6.6
VPN .............................................................................................................................................. 51
6.7
ZABEZPEČENÍ DAT NA ÚROVNI HARDWARU................................................................................... 52
7
BUDOUCNOST A TRENDY KRYPTOGRAFIE ............................................................................ 53
8
ZÁVĚR ................................................................................................................................................. 54
BIBLIOGRAFIE ............................................................................................................................................. 1 PŘÍLOHY ........................................................................................................................................................ 3
5
Úvod Cílem mé bakalářské práce je přiblíţit základní pojmy a principy kryptografie a bezpečnosti dat a za pomoci praktických ukázek vysvětlit, jak fungují historické kryptosystémy i jejich současní nástupci. Práce je zaměřena zejména na specifika kryptografie aplikované v systémech informačních a komunikačních technologií s přihlédnutím k elektronickému bankovnictví a elektronickému obchodování, ale v závěru téţ nastiňuje vyhlídky a trendy v kryptografii. Cíl práce, jak byl stanoven v zadání, můţeme popsat v následujících bodech: 1. Základní pojmy v kryptografii 2. Historické metody 3. Moderní kryptografie 4. Aplikace kryptografie v ICT 5. Budoucnost kryptografie
7
7
1 Základní pojmy v kryptografii V této kapitole se seznámíme nejprve se základním legislativním rámcem, upravujícím kryptografickou ochranu dat, a dále přehlednou formou s definicemi základních pojmů v oblasti kryptografie a s problematikou úzce související s kryptografií a kryptoanalýzou, a to otázkami fyzické bezpečnosti dat, kryptografické ochrany dat, problémem předání klíče, pojmy souvisejícími s útoky na kryptosystémy apod.
1.1 Zákony vztahující se ke kryptografické ochraně dat Podle zákona č. 412/2005 Sb. z 21. září 2005 „O ochraně utajovaných informací a o bezpečnostní způsobilosti“ [1] je v ČR ochrana utajovaných informací zajišťována (zjednodušeno): a) personální bezpečností (výběr fyzických osob, které mají přístup k utajovaným informacím, jejich výchova a ochrana), b) průmyslovou bezpečností (systém opatření k zjišťování a ověřování podmínek pro přístup k utajovaným informacím), c) administrativní bezpečností (opatření při tvorbě, příjmu, evidenci, zpracování, odesílání, přepravě, přenášení, ukládání, skartaci a archivaci...), d) fyzickou bezpečností (opatření, která neoprávněné osobě brání nebo ztěţují přístup k utajovaným informacím, popř. mají přístup nebo pokus o přístup zaznamenat), e) bezpečností informačních/komunikačních systémů (systém opatření k zajištění důvěrnosti, integrity a dostupnosti informací), f) kryptografickou ochranou (systém opatření na ochranu utajovaných informací pouţitím kryptografických metod a materiálů při zpracování, přenosu a ukládání utajovaných informací). Další zákony, upravující tuto oblast, jsou zejména: Vyhláška NBÚ 523 ze dne 5. prosince 2005 o bezpečnosti informačních a komunikačních systémů a dalších elektronických zařízení nakládajících s utajovanými informacemi a o certifikaci stínicích komor Vyhláška NBÚ 524 ze dne 14. prosince 2005 o zajištění kryptografické ochrany utajovaných informací
8
8
V této bakalářské práci se zaměřím pouze na body e) a f) uvedeného seznamu, tedy oblast ochrany informací (v uţším pojetí dat) kryptografickými prostředky a opatření k zajištění důvěrnosti, integrity apod.
1.2 Definice základních pojmů Tab.1: Definice základních pojmů POJEM zpráva
symbol Abeceda zprávy, zdroje odesílatel příjemce třetí strana, útočník čistý text, ČT šifrovaný text, ŠT klíč
prostor klíčů
OBSAH uspořádaná posloupnost znaků určená k přenosu informací. V užším slova smyslu jde o text, který chceme utajit, tj. chránit před nepovolanými zraky, nebo o vlastní zašifrovanou informaci rozlišitelný prvek ve zprávě, v grafickém pojetí znak, dále nedělitelný element zprávy množina všech symbolů zprávy. Abeceda zdroje je množina všech možných symbolů zdroje informace. strana, která provádí proces šifrování strana, jíž je zpráva určena, tj. která ji může (oprávněně) dešifrovat. neoprávněná osoba, která se pokouší bez znalosti klíče o dešifraci zachycené zprávy data, která chceme chránit, čili zpráva před jejím zašifrováním výstup po procesu šifrování, tj. text nesrozumitelný pro nezainteresovaného čitatele nějaká data, obvykle slovo, číslo nebo skupina znaků, které umožní proces šifrace a dešifrace oběma stranám. Je parametrem šifrovacího procesu. Množina všech použitelných klíčů v daném kryptosystému
správa klíčů
postupy k zajištění ochrany a integrity klíčů během jejich životního cyklu, tj. počínaje vygenerováním klíče až po jeho zničení
kódování
transformace zprávy vyjádřené pomocí jedné abecedy na zprávu vyjádřenou pomocí druhé abecedy
POZNÁMKY, PŘÍKLAD Příklad: věta „Šaty jsou ve skříni“ je zpráva. Její zašifrovaná podoba „“ je také zpráva.
Nejčastěji písmeno nebo cifra, ale může jít i o jednotlivý bit nebo Byte apod., podle způsobu užití. Zdrojem informace se může rozumět např. přirozený jazyk, počítačový text, výstup nějakého zařízení pro přenos nebo zpracování informace apod. (např. dálnopisu, modemu, … )
angl. plaintext, též clear text angl. ciphertext V moderní kryptografii jsou kryptografické algoritmy všeobecně známy. Síla systému tedy netkví v utajení algoritmu, ale je založeno na utajení klíče. angl. keyspace; Je to významný faktor pro posouzení kvality kryptosystému angl. key management, klíčové hospodářství
Kódování nemusí mít žádný dopad v oblasti bezpečnosti. Kódem rozumíme jakýkoli převod mezi abecedami, např. uložení textu v digitální podobě pomocí ASCII kódu je také kódování.
9
9
šifrování
kód šifrace
dešifrace kryptosystém
útok kryptografie kryptoanalýza
kryptologie
Obecnější proces než kódování; může zahrnovat i kódování, ale zpravidla se jedná o složitější postup obsahující i změny pořadí znaků zprávy apod. soubor pravidel pro převádění jednoho jazyka do jiného jazyka proces převodu ČT -> ŠT, tedy proces transformace ČT do tvaru nesrozumitelného pro třetí stranu zpětný převod ŠT -> ČT, tedy proces transformace ŠT na původní srozumitelný ČT Zahrnuje kompletní popis Např. německá Enigma vč. způsobu nastavení konkrétní šifrovací metody, stroje a systému správy klíčů byla poměrně generování a distribuce komplexním kryptosystémem. klíčů, mnohdy i způsob zabezpečení technických prostředků. Metoda prolomení Děje se např. zneužitím nedokonalosti použité bezpečnosti kryptosystému a šifry, kryptografického protokolu, nebo schématu zjištění ČT třetí stranou správy klíčů. věda o vytváření a používání šifrových systémů pokus třetí strany o přečtení V širším slova smyslu věda o metodách ŠT bez znalosti klíče (tzv. používaných pro luštění šifer prolomení šifry, z anglického codebreaking); kryptografie+ kryptoanalýza Zdroj: vlastní
1.3 Použité symboly a zkratky V dalším textu budou pouţívány následující zkratky a symboly: Tab.2: Zkratky a symboly pouţité v textu ZKRATKA ČT ŠT K KE, KD E(x), D(x) EP SVK AK CA
VÝZNAM Čistý text Šifrovaný text Klíč Šifrovací a dešifrovací klíč v asymetrické kryptografii Šifrovací funkce a dešifrovací funkce Elektronický podpis Systémy veřejné kryptografie Autentizační kalkulátor Certifikační autorita Zdroj: vlastní
10
10
2 Základní pouţití kryptografie 2.1 Schéma přenosu informace po nezabezpečeném kanále Nejjednodušší formou ochrany dat je fyzická ochrana. Spočívá buď v utajení existence zprávy samotné (nikoli jejího obsahu), která se nazývá steganografií, anebo zabezpečení zprávy tak, aby nebylo moţné její obsah přečíst či pozměnit třetí stranou. Všechny fyzické metody ochrany jsou však nakonec napadnutelné, protoţe obsahují různé limitující faktory a nejistotu danou lidským faktorem (zámek nebo trezor lze otevřít, podpisový vzor napodobit, bezpečnostní zařízení vyřadit, poškodit atp.). Tam, kde nestačí informace před třetí stranou chránit fyzicky, otevírá se prostor pro kryptografii s jejími dnes jiţ velmi spolehlivými a propracovanými postupy. Nejzákladnější schéma pouţití kryptografie je znázorněno na obr. 1. Obr. 1: Základní schéma užití (symetrické) kryptografie
Zdroj: vlastní
Na počátku procesu odesílatel generuje zprávu v čisté podobě, tzv. čistý text (ČT). Příjemce má číst zprávu v této původní formě a přitom má být na cestu pozměněna tak, aby se k jejímu obsahu nedostal nikdo třetí. Informace se přitom přenáší po komunikačním kanále, který můţe být odposloucháván (typicky Internet, rádiový spoj, ale i obecně jakýkoli datový nosič) a/nebo zůstává na místě, které není moţno povaţovat za bezpečné (osobní počítač, server, datový nosič v pracovním stole, ...). Pro účely dalšího textu budu obě tyto alternativy souhrnně nazývat nezabezpečeným kanálem a budu abstrahovat od skutečnosti, zda zpráva někam putuje, nebo je jen uloţena na 11
11
nezabezpečeném místě. Na tomto kanále se potenciálně můţe vyskytnout útočník (třetí strana), který se snaţí obsah zprávy přečíst, popř. svévolně změnit. Odesílatel má k dispozici šifrovací klíč. Zpráva a klíč vstupují do šifrátoru (kterým je dnes nejčastěji počítačový program nebo nějaké zařízení). Po nezabezpečeném kanále se přenáší zašifrovaný produkt. Příjemce přijme šifru. Má také k dispozici dešifrovací klíč, který spolu s ŠT vstoupí do dešifrátoru. Výsledkem je zpět čistý text. V případě tzv. symetrické kryptografie jsou oba klíče, šifrovací i dešifrovací, totoţné. V případě nesymetrické kryptografie se klíče liší.
2.2 Matematický popis obecného kryptosystému V následujícím textu budu pouţívat matematické symboliky z oblasti funkcí. Symbol y = f(x) čteme funkce x a znamená to nějaký jednoznačný předpis, jehoţ vstupem je hodnota x a výstupem hodnota y. Proces šifrace pak můţeme popsat jako funkci: ŠT = E(ČT) a proces dešifrace jako: ČT’ = D(ŠT) přičemţ musí platit, ţe ČT’=ČT. Toto je splněno tehdy, jsou-li funkce E() a D() jednoznačné a vzájemně opačné (inverzní). Kdyby nebylo ČT’=ČT, vyšel by po dešifraci text odlišný od původního a systém by byl nepouţitelný [2]. Takto postavený systém by ale znamenal, ţe čistý text se zašifruje nějakým pevným způsobem na šifrovaný text a nic více, coţ by mělo několik nepříjemných důsledků: 1. stejný text se zašifruje vţdy stejně, 2. všechny osoby zasvěcené do systému šifrují a dešifrují stejně; není tedy moţné pouţití kryptosystému na různých úrovních téţe instituce, 3. změnit šifrování, např. při prozrazení, půjde jen za cenu výměny celého algoritmu (tj. funkcí E(x) a D(x)), coţ je obtíţné, nebezpečné a nákladné, 4. před třetí stranou by bylo nezbytné utajit E(x) a D(x), coţ by vedlo na sloţité, těţko zapamatovatelné a k chybám náchylné postupy. Do hry proto vstupuje další nezávislá proměnná, a tou je klíč. Obě funkce budou tedy parametrizovány další nezávisle proměnnou K, přičemţ obecně můţeme rozlišovat klíč šifrovací (KE) a klíč dešifrovací (KD): ŠT = E(ČT, KE) ČT’= D(ŠT, KD) 12
12
Je-li šifrovací klíč roven dešifrovacímu, tedy za předpokladu KE=KD=K, pak z uvedeného vyplývá, ţe obě strany musí nějakým způsobem sdílet tento klíč K. Musí jej buď společně vytvořit a pak se rozejít kaţdý svou cestou (coţ není někdy úplně praktické), anebo jej vytvoří jen jedna strana a druhé straně ho nějak sdělí. Nemůţe ho ale sdělit po témţe nezabezpečeném kanále, tím by se celý princip postavil na hlavu. Dostáváme se tak k paradoxu, který se nazývá problém předání klíče: klíč musí a zároveň nemůţe být předán. Řešení tohoto problému je nastíněno v kapitole Problém předání klíče.
2.3 Dvě základní kryptografická schémata V předchozí kapitole jsem naznačila, ţe klíč šifrovací můţe, ale také nemusí být roven klíči dešifrovacímu. Zjednodušeně řečeno jsou na tom zaloţeny dva nejzákladnější principy uţití kryptografie:
2.3.1 Symetrická kryptografie V tomto schématu je KE=KD=K a funkce E() a D() jsou vzájemně inverzní. Tab.3 : Výhody a nevýhody symetrické kryptografie VÝHODY Jednoduchost implementace Rychlost výpočtu
NEVÝHODY Obvykle snazší napadnutelnost (vytváří slabší kryptosystémy) Problematická správa klíčů anebo snížená privátnost v případě počtu komunikujících stran větším než 2, viz další text. Zdroj: vlastní
Zastavme se na chvíli u druhé jmenované nevýhody tohoto uspořádání. Jestliţe se omezíme na komunikaci mezi dvěma body, např. A a B, je pouţití symetrických šifer snadné, avšak potřebuje-li komunikovat větší počet protistran, např. A, B, C a D, nutně narazí na problém, ţe komunikace, kterou si posílá strana A a B, můţe číst téţ C a D. Pokud to není ţádoucí (a to většinou není), nelze pouţít stejný klíč pro ţádný pár (dvojici) v rámci komunikace této sítě. Je-li N počet komunikujících stran (uzlů) sítě, pak počet klíčů potřebných pro komunikaci „kaţdý s kaţdým“ je dán kombinačním číslem C2 N
coţ po zjednodušení vede na počet klíčů =
N
N!
2
N N .( N 2
2 ! 2! 1)
,
,
Toto schéma pak pro větší počty uzlů začíná být dosti nepraktické. Například počet klíčů pro 10 navzájem komunikujících stran je 45 [9]. 13
13
2.3.2 Nesymetrická kryptografie V tomto schématu je KE≠KD a funkce E() a D() nejsou obecně v ţádném (jednoduchém) vztahu. Kaţdá komunikující strana má pouze svůj pár klíčů, tedy pro Nuzlů sítě je počet_klíčů = 2 . N , coţ je příjemná lineární závislost, narozdíl od kvadratické v předchozím případě. Další významnou vlastností je, ţe jeden z klíčů je veřejně přístupný a nazývá se veřejný klíč, zatímco druhý, k němu komplementární klíč, je soukromý klíč. A nyní to nejpodstatnější: pomocí soukromého klíče se dešifruje, pomocí veřejného šifruje. Kaţdá strana komunikace si vygeneruje svůj pár klíčů a pak svůj veřejný klíč zveřejní v čemsi, co můţeme vnímat jako obdobu telefonního seznamu, tedy tabulky obsahující uspořádané dvojice Uţivatel–KE. Tímto aktem uţivatel vlastně říká: „Chcete-li mi něco poslat, šifrujte to tímto klíčem, a já budu schopen to dešifrovat svým (tajným) klíčem“. Je to tedy zcela odlišná filosofie a ve své době šlo skutečně o revoluční myšlenku. Blíţe se u tohoto postupu ještě zastavím v kapitole Systémy veřejné kryptografie. Aby byla zaručena bezpečnost, musí být splněny dvě podmínky: z veřejného klíče nesmí být moţné získat klíč soukromý, tj. nesmí existovat funkce (přesněji zobrazení) KE → KD, nesmí být moţnost veřejným klíčem zprávu rozšifrovat, tj. nesmí existovat funkce ČT = f(ŠT,KE).
2.4 Problém předání klíče Kdyţ nepouţijeme asymetrickou šifru, kde se tajné klíče nikam nepředávají, pak jedním z moţných řešení výše uvedeného paradoxu předání klíč je, ţe mimo nezabezpečený kanál musí existovat ještě nějaký další, bezpečný kanál, po němţ si dvě oprávněné strany nejprve klíč předají. Můţe to být při osobním setkání, kurýrem, diplomatickou poštou nebo nějakým jiným, dostatečně bezpečným kryptosystémem, jenţ je pro obě strany důvěryhodný, byť by byl třeba i pomalý (v případě klíče nejde zpravidla o velké objemy dat, takţe rychlost není limitujícím faktorem). Na Obr. 1 je bezpečný kanál znázorněn zelenou čarou a je patrné, ţe obchází komunikační kanál, a tím i útočníka. Moţným scénářem je např. tento: v rutině se pouţije symetrické šifrování některým středně silným, ale rychlým algoritmem, např. DEA (DES), ale klíče k němu si strany předají nějakým jiným, silným systémem nesymetrické kryptografie, např. RSA. Klíč se dokonce nemusí ani vytvořit dopředu, ale můţe se generovat jako náhodná nebo 14
14
pseudonáhodná sekvence ad-hoc (pro kaţdou zprávu zvlášť) a ke zprávě jej připojit ve formě bloku zašifrovaného v silném kryptosystému. Je-li toto moţné, proč potom nepouţít rovnou silný kryptosystém na celou zprávu? Důvod je jednoduchý: silnější, zejména asymetrické systémy bývají početně mnohem náročnější, a proto pomalejší.
3 Druhy útoků na kryptografický systém Jak bylo řečeno ve zjednodušené definici výše, útokem rozumíme pokus o prolomení bezpečnosti kryptosystému, které vede ke zjištění klíče a/nebo čistého textu (nebo alespoň jeho fragmentů) třetí stranou bez předchozí znalosti klíče. Vzhledem k tomu, ţe do hry vstupují faktory ČT, ŠT, K a E(x)/D(x) algoritmus, můţe útok na kryptosystém nabývat řady podob. Z tohoto hlediska dělíme útoky na: útok bez známého originálu (originálem se rozumí ČT), útok se známým originálem, útok s vybraným originálem, útok s vybraným šifrovaným textem.
3.1 Útok bez známého originálu Nazývá se téţ útok se známou šifrou (Ciphertext-Only Atack) a je to standardní, ale současně nejobtíţnější kryptoanalytická úloha. Útočníkovi není znám ČT ani K a k výsledku dospěje na základě rozboru pravidelností v ŠT. V extrémním případě není znám ani šifrovací algoritmus (na coţ by ale tvůrce systému neměl nikdy spoléhat!). Útok je zaloţen na zachycení šifrované zprávy nebo více zpráv, případně zašifrovaných týmţ klíčem, a – pokud moţno – na znalosti algoritmu. Útočník hledá K a samozřejmě ČT. Po nalezení K, který se mnohdy nemění celé delší časové období, tj. rozbitím jedné zprávy, je pak schopen číst i další zprávy, a to opravdu číst (bez luštění). Příkladem tohoto útoku je např. prolomení japonského „Purpurového kódu“ americkou tajnou sluţbou za druhé světové války [3]. Zprvu nebyl kryptoanalytikům znám dokonce ani princip šifrovacího stroje a museli se vše domýšlet jen na základě statistik zachycených depeší. Ţe šlo o příklad brilantní analytické práce matematiků vedených Williamem F. Friedmanem dokazuje fakt, ţe kdyţ byl později Američany zadrţen poničený fragment stroje Purpur na japonské ambasádě, mohli konstatovat prakticky shodu matematického modelu s reálným strojem. 15
15
3.2 Útok se známým originálem Útok se známým ČT (Known-Plaintext Atack) je zaloţen na tom, ţe útočník zná jak původní text, tak jeho šifru. Rozborem se pak snaţí odvodit klíč a případně i šifrovací algoritmus. Tento typ útoku je tedy zaloţen na schopnosti kryptoanalytika obstarat si zprávu v její originální podobě – ČT i tomu odpovídající ŠT. Pouţívá se v případě, ţe existuje více zpráv šifrovaných stejným, např. denním či měsíčním klíčem, přičemţ u jedné je znám ČT i ŠT. Klíč se pak hledá jako pojítko mezi nimi. Jakmile je klíč takto rozkryt, lze ho pak bezpracně pouţít k přečtení dalších zpráv, pochopitelně aţ do okamţiku, neţ ho uţivatelé systému změní. Nejčastěji se k páru ČT-ŠT dostane útočník agenturní cestou (šifra je odposlechnuta a originál je ukraden, dodán defektující osobou). Někdy je však i ČT odhadnut, alespoň určité jeho části. Příkladem takového prolomení na svou dobu velmi silného systému je německá Enigma [7]. Angličanům se v určitém období dařilo číst zprávy z Enigmy tehdy, kdyţ zjistili denní klíč na základě znalosti jediného čistého textu (byly to zprávy o počasí v místě spojovacího uzlu, které se daly sehnat i jinak). V první světové válce zase pomohl tento typ útoku kryptoanalytikům, jelikoţ si protivník (Němci) liboval v pouţívání stereotypních začátků nebo konců zpráv. Mívali totiţ v oblibě pouţívat určitou rigidní strukturu zpráv se stejnými začátky a konci textu (adresa, hodnosti, salutace atp.) a dokonce bylo známo, ţe mají i zálibu v psaní celých přísloví do bojových zpráv.
3.3 Útok s vybraným originálem Útok s vybraným ČT (Chosen-Plaintext Atack) se pouţívá tehdy, kdyţ je moţno si zvolit vstupní text a získat hned jeho šifru. Vhodným výběrem vstupního textu mohou být odhalena slabá místa šifry. Je to vlastně určitá variace na útok se známým originálem. Technicky je více moţností, jak toho docílit: útočník nějakým způsobem „donutí“ protivníka zašifrovat konkrétní text útočník se vloudí do místa, kde probíhá práce s kryptosystémem (reţimového pracoviště apod.), a zašifruje si na něm trochu textu útočník má stroj (přístroj, software,...) k dispozici, ať uţ legálně, protoţe je otevřený, anebo ho odcizí, a můţe si na něm zašifrovat libovolné mnoţství textu a „hrát si“. Abych uvedla opět příklad z historie [3], Američané pouţili tento druh kryptoanalýzy proti Japoncům ve druhé světové válce tak, ţe na základě agenturní práce se jim podařilo vzbudit dojem, ţe na určitém ostrově vypukne nedostatek vody. Zakrátko
16
16
následovala japonská depeše, v níţ bylo moţné na 99% předpokládat název ostrova. Pak stačilo „sunout“ předpokládané slovo textem a zjistit klíč. Máme-li k dispozici např. něčí šifrovací program, ovšem bez znalosti algoritmu, můţeme mu podsouvat různé čisté texty a sledovat, co se objeví na výstupu. To opět ukazuje platnost obecného pravidla, ţe pouţití systému s tajným algoritmem je nevhodné. Silné kryptosystémy jsou naopak zaloţeny právě na veřejné znalosti algoritmu, avšak na vysoké početní sloţitosti dešifrování při neznalosti klíče.
3.4 Útok s vybraným šifrovaným textem Útok s vybraným ŠT (Chosen-Ciphertext Atack) je opačnou alternativou k předchozímu útoku s vybraným originálem. Vyuţití volitelných ŠT spočívá v tom, ţe kryptoanalytik si můţe vybírat šifrované texty, které pak budou dešifrovány, a má přístup k takto dešifrovaným čistým textům. Pouţívá se ale dosti zřídka, je spíše teoretický.
3.5 Útok hrubou silou Tato metoda nebyla zmíněna zvlášť v rozdělení na začátku kapitoly, protoţe se jedná o specifickou variantu útoku bez znalosti originálu. Jde o zdánlivě tupou, ale při dnešní rychlosti výpočetní techniky někdy velice efektivní metodu kryptoanalýzy, zvanou brutální útok (Brute-Force Atack) neboli vyčerpávající hledání (Exhaustive Search). Zcela selhává u moderních silných šifer s dlouhým klíčem a vysokou sloţitostí, ale můţe být naopak velmi efektivní u starších kryptosystémů, s nimiţ se lze také ještě setkat. Útok hrubou silou je zaloţen na testování celého prostoru klíčů, čili jde o systematické zkoušení jednoho klíče po druhém aţ do okamţiku, kdy se trefíme do toho správného. Za tímto účelem je zpravidla třeba napsat specializovaný program, který můţeme nazvat kryptoanalytickým robotem. Je známo z historie, ţe Poláci i Britové měli ve svém snaţení číst Enigmu postaveny takové roboty na elektromechanickém principu (tzv. Turingova Bomba) [2]. Dnes se útok hrubou silou realizuje o mnoho snáze díky existenci počítačového softwaru. Postup činnosti takového robota má v kaţdém kroku čtyři fáze[2]: 1. 2. 3. 4.
Generování klíče Dešifrace ŠT -> ČT Test správnosti dešifrace Zpět na bod 1, anebo konec
17
17
Těchto kroků se provede nejvýše tolik, kolik činí objem mnoţiny klíčů pouţitého kryptosystému. Odolnost proti tomuto druhu útoku je tedy (ne přímo-, ale určitým způsobem) úměrná délce klíče. Značného urychlení se dosáhne, kdyţ se v prvním kroku pouţije tzv. slovníkový útok. Tím lze prostor klíčů velmi drasticky omezit, např. pouze na geografické názvy apod., nebo v horším případě na „všechna“ slova přirozeného jazyka. Vychází se z frekvenčního slovníku nebo jazykového korpusu. Problémem ale je, jak co nejlépe (výpočetně nejrychleji) realizovat krok č. 3, tj. test. Dešifrovací program můţe např. nalézt útrţek daného textu, a tím pozná, ţe se právě trefil do správného klíče a zastaví dešifrační proces. Nebo hledá v ČT různá frekventovaná slova v předpokládaném jazyce zprávy. Metoda je časově velmi náročná, ale měla by být prakticky neomezeně spolehlivá. I v celkem krátké zprávě se vyskytne slovo do řekněme sté pozice ve frekvenčním slovníku s pravděpodobností hraničící s jistotou. Hledají se delší slova, řekněme aspoň čtyřpísmenná, protoţe krátká slova mohou v dešifrovaném produktu vykazovat falešné výskyty – příklad: dešifrovaný fragment textu MFHGAZALEMASN nelze povaţovat zjevně za správnou dešifraci, přestoţe obsahuje smysluplná slova ZA, ALE, GAZ, GAZA, LEM, ŢALEM, MÁ, MÁŠ… Pouţití této analýzy je v případě moderních sloţitých šifer neúnosné. Vyţaduje buď velmi rychlý počítač či specializované hardwarové zařízení, anebo zvláštní metodu přístupu, zvanou distribuované (paralelní) zpracování. Ovšem vzhledem k nárůstu výkonu počítačů, který má geometrický charakter s meziročním růstem daným kvocientem cca 1,5 (tzv. Moorův zákon), je třeba také stále zvyšovat výpočetní sloţitost šifer. Jeden zajímavý aspekt: Je-li nějaká konkrétní úloha k dešifraci, kde prostor klíčů má např. 1018 moţností, pak selským rozumem vzato, čím dříve se začne, tím dříve se skončí. Úvahou však dospějeme k závěru, ţe to tak zcela platit nemusí. Za pět let budou počítače řekněme 10-20x rychlejší, takţe se paradoxně vyplatí, nezačínat s výpočtem hned, ale naopak nějakou dobu počkat. Nesmí to být pochopitelně příliš dlouho (sto let), protoţe pak výsledek sice vypadne skoro ihned, ale zato v době, kdy výstup z kryptoanalýzy uţ nikoho nezajímá. Optimální přístup by byl, začít hned a doplňovat a modernizovat hardware průběţně během výpočtu. Tato metoda zajistí nejrychlejší moţný výpočet.
18
18
4 Historická kryptografie V této kapitole se budu zabývat nejdůleţitějšími kryptografickými systémy pouţívanými od středověku po současnost. Pro lepší pochopitelnost a čitelnost textu se historické pozadí jednotlivých metod bude prolínat s teoretickým popisem jejich principů i praktickými ukázkami.
4.1 Historické etapy kryptografie Pojem kryptologie kryptografie a je odvozen z řeckého slova
[čti
kryptos], jehoţ význam je: „skrytý“, „utajený“. Vyvinula se z nejprimitivnějších metod utajování nápisů a dopisů a tak jako jiné obory lidské činnosti, i ona prošla svými vývojovými etapami, které bychom mohli rozdělit zhruba do následujících čtyř bodů [2]: 1. Primitivní šifry realizované pomocí změn abecedy a při pouţití tajných symbolů. Do této kategorie ovšem nespadají symboly jako hieroglyfy nebo písmo Etrusků, které jsme neuměli nebo dosud neumíme rozluštit. Primárním cílem tehdejších písařů nebyla nerozluštitelnost za několik tisíciletí, ta je jen vedlejší efekt. 2. Komplikovanější systémy (kniţní klíče, kombinované transpozičně-substituční). Dochází tu zřejmě k prvnímu komerčnímu vyuţití šifer, které se datuje od vynálezu a pouţívání telegrafu, ačkoli největší uplatnění nacházejí ve špionáţi a vojenství. 3. Šifrovací stroje, realizující tzv. mechanické či elektromechanické šifrování. Pouţití kryptosystémů se tu poněkud přesouvá z oblasti zpravodajských sluţeb a diplomacie i do komerční sféry. Jedná se hlavně o období od 1. sv. války aţ po sedmdesátá léta. 4. Elektronické šifrování. Realizují je zejména počítače, ale i specializovaná elektronická zařízení. Implementují podstatně sloţitější algoritmy. Teprve nasazením počítačů bylo vůbec umoţněno realizovat některé sloţité algoritmy, např. DES, neřkuli asymetrickou kryptografii.
4.2 Základní principy klasické kryptografie V předchozím rozdělení jsem několikrát pouţila pojmů jako substituce či transpozice, které jsme zatím mohli chápat jen intuitivně. Podívejme se teď na jejich podrobnější vysvětlení. Klasická kryptografie je zaloţena na třech základních úkonech, a těmi jsou substituce (náhrada symbolu za symbol), transpozice (zpřeházení, změny pořadí) a adice (přičítání, posun hodnoty).
19
19
U kaţdého jmenovaného principu vysvětlím stručně podstatu metody, doplním ji ukázkami z historie a velmi stručně nastíním moţnosti kryptoanalýzy (útoku).
4.2.1 Substituce Substituční šifrování spočívá v náhradě lexikálních elementů ČT za jiné podle kódovací tabulky. Tuto (jedinou) šifru můţeme také nazvat kódováním. Kód definujeme jako jedno-jednoznačný (oboustranně jednoznačný) předpis, kterým se nahrazují symboly zdrojové abecedy symboly cílové abecedy. Také ho můţeme charakterizovat jako zobrazení. Musí jít o zobrazení prosté, (injektivní), tj. takové, které různým prvkům přiřazuje různé obrazy, aby se nemohlo stát, ţe jeden prvek má více obrazů. K prostému zobrazení totiţ existuje inverzní zobrazení, coţ je v kryptografii důleţité pro dešifrování. 4.2.1.1 Substituce jednoabecední. Četnost znaků, frekvenční analýza Monoalfabetní (jednoabecední) substituce nahrazuje zdrojovou abecedu vţdy jen jednou abecedou cílovou. Nejjednodušší takovou historickou substitucí byla tzv. Caesarova šifra. Je velmi prostá a pouţívá srovnané, jen o určitý počet znaků posunuté abecedy, například (s posunem o tři znaky): ČT: ABCDEFGHIJKLMNOPQRSTUVWXYZ ŠT: DEFGHIJKLMNOPQRSTUVWXYZABC
Dále to byla tzv. reciproká abeceda, jeţ se stala základem hebrejské šifry atbaš: ČT: ABCDEFGHIJKLMNOPQRSTUVWXYZ ŠT: ZYXWVUTSRQPONMLKJIHGFEDCBA
Díky těmto pravidelnostem jsou tyto systémy velice snadno napadnutelné. Druhý extrém je zcela rozházená abeceda, např.: ČT: ABCDEFGHIJKLMNOPQRSTUVWXYZ ŠT: XDYECMOPRWIJLAQBTSFGKHVZNU
Taková abeceda se však (pro případ „polního“ pouţití) jen velmi obtíţně pamatuje. Proto byly vyvinuty různé kompromisní metody, které umoţňují na základě klíčového slova rekonstruovat oběma stranám abecedu. Abeceda částečně rozházená začíná (je inicializována) klíčem, který zapíšeme od začátku, přičemţ jednou pouţité znaky neopakujeme. Pak se doplní zbytek abecedy uţ po řadě. Například pro K=Zábřeh: ČT: ABCDEFGHIJKLMNOPQRSTUVWXYZ ŠT: ZABREHCDFGIJKLMNOPQSTUVWXY
Čím delšího klíče pouţijeme, tím je rozházení abecedy dokonalejší, např.: ČT: ABCDEFGHIJKLMNOPQRSTUVWXYZ ŠT: USTINADLBEMCFGHJKOPQRVWXYZ
1 2 3 4 5
20
20
Je mnoho metod, jak vyhovět oběma protichůdným kritériím, tj. 1 Z A B R E Tab.č.4 Polybiův čtverec snadná pamatovatelnost a přitom dobrá náhodnost abecedy [2]. Uvedu například pouţití tabulky NxM, tzv. Polybiova čtverce. Pro abecedu o 26 písmenech pouţívá např. tabulky
2 3 4 5
H I N T
C J O U
D K P V
F L Q Y
G M S Z
7x4, anebo i 5x5, ovšem s vypuštěním nějakého málo významného znaku, např. X. Mříţka je opatřena hlavičkou svislou a vodorovnou, jejíţ znaky poslouţí jako lexikální prvky abecedy ŠT. Tedy A=12, B=13, C=22… Lidé si brzy všimli, ţe různá písmena se v textu vyskytují různě často. Napíšeme-li dostatečně dlouhý text, pak pravděpodobnost výskytu znaku, tzv. četnost (téţ frekvence) znaku konverguje k určité hodnotě. Četnost se udává zpravidla v procentech a jako tzv. standardní četnost je tabelována. V různých jazycích se četnosti některých znaků i dost zásadně liší, ačkoliv lze říci, ţe nejčetnější znaky ve většině pro nás „běţných“ jazyků jsou samohlásky, viz Příloha, tab. 1, Standardní frekvence znaků ve vybraných jazycích [2]. Zajímavé je, vyjádřit standardní četnosti grafem. Lomené čáry vykazují peaky (špičky), které jsou si ale v oblasti souhlásek opravdu nápadně podobné, viz Příloha. 1, Četnost znaků ve vybraných jazycích [2]. Tyto a mnohé další pravidelnosti dané strukturou přirozeného
jazyka
diskvalifikují
jednoduchou
substituci
pro
pouţití
v silných
kryptosystémech a odkazují ji tak spíše do oblasti historických metod a skautských her. 4.2.1.2 Substituce víceabecední, Vigenèrova tabulka, periodický klíč Systém, který dokáţe měnit abecedu (kódovací tabulku) v průběhu procesu šifrování zprávy, nazýváme polyalfabetní (víceabecední) substitucí. Vzhledem ke konečnému počtu prvků je i počet moţných abeced konečný, ale můţe dosahovat úctyhodných počtů, takţe frekvenční kryptoanalýza uţ nepřichází v úvahu. Hezkým příkladem z historie je šifra benediktýna Johana Trithemia. Navrhl takové vylepšení Caesarovy šifry, ţe posun se pro kaţdé písmeno textu mění. Systém dává 26 abeced, které lze zapsat pomocí tzv. Vigenèrovy tabulky, viz Příloha. 3, Tabulka Vigenère pro víceabecední substituci. Střídání abeced musí probíhat podle určitého systému. Můţe být dán např. pořadím písmen v klíči. Jakmile se vyčerpají znaky klíče, začíná se odznovu. Pak se ale vyuţije z potenciálu 26 abeced jen tolik, kolik činí počet různých znaků klíče. Např. pro K= PRAHA jsou pouţité abecedy dány posuny 16, 18, 1, 8 a 1, coţ jsou jen 4 různé abecedy. Kdyţ se hlouběji zamyslíme nad tímto principem dojdeme k závěru, ţe tato periodická šifra je jiţ na pomezí s adičními kryptosystémy, které popíši v dalším textu.
21
21
Kryptoanalýza tohoto systému je uţ obtíţnější, ale ve věku počítačů je poměrně snadnou záleţitostí (stačí i kalkulačka). Nejprve se provede statistický test víceabecednosti, který
vychází
z tzv.
indexu
shody
(index
of
coincidence,
IC),
zavedeného
W.F.Friedmanem [2, 3, 5] tak, ţe se sečtou druhé mocniny četností, tj.: IC = Σfi2, kde fi je četnost i-tého prvku abecedy. Vychází-li IC v rozsahu cca 0.07-0.08, pak zdroj je velmi pravděpodobně jednoabecední s charakteristikou přirozeného jazyka. Vychází-li však hodnota IC značně niţší, řekněme kolem 0.04-0.05, pak se s velkou pravděpodobností jedná o víceabecední systém nebo jiný typ zdroje zpráv, produkující pseudonáhodné frekvenční rozloţení (relativně dokonalejší šifru, neţ je jednoduchá substituce) [2]. Ve druhém kroku se pak pro jednotlivé předpoklady periody, např. R=2 aţ 10, vyčíslí IC všech fragmentů textu, které vzniknou rozsekáním ŠT pro daný předpoklad R, a tedy odpovídají vţdy jedné abecedě (aniţ ji zatím známe!). Jakmile se trefíme do správné délky periody R, „vyskočí“ nám náhle IC blízké hodnotě přirozeného jazyka (kolem 0.075), protoţe se smyjí rozdíly mezi posuny v abecedách. Ve třetím kroku se opět statistickými metodami, jejichţ popis bohuţel přesahuje rozsah této práce, stanoví relativní posuny mezi abecedami, takţe pak můţeme ŠT transformovat na text o jedné abecedě a tím problém převést na monoalfabetní substituci. Uvedený postup abstrahuje od vlastních pouţitých abeced čistě statistickými metodami, coţ je velmi elegantní a jiţ blízké moderním metodám útoků na kryptografické systémy. 4.2.1.3 Substituce s delším lexikálním elementem Všechny uvedené případy předpokládaly délku prvku zdrojové abecedy 1 znak. Nic ale nebrání, nahrazovat celé skupiny znaků jejich kódy. Nahradíme-li dvojice znaků, hovoříme o bigramové šifře. Příkladem z historie je tzv. Anglický čtverec (tzv. Playfair cipher), který vyuţívá čtvercové tabulky vyplněné písmeny a určitého postupu čtení dvojic znaků. Text rozdělíme na dvojice (bigramy) a kdyţ někde vyjde dvojice stejných znaků, vloţíme mezi ně libovolný jiný znak. Potom šifrujeme jeden bigram po druhém takto: Leţí-li písmena v jiném řádku i sloupci tabulky, vybereme písmena, leţící ve vrcholech pomyslného obdélníka, tvořeném bigramem ČT. Leţí-li písmena v různých řádcích, ale ve stejném sloupci, vezmeme písmena leţící pod nimi. U posledního řádku se bere písmeno na prvním řádku. Leţí-li písmena ve stejném řádku, vezmeme písmena leţící napravo od nich. U posledního sloupce bereme písmeno v prvním sloupci.
22
22
Pokročilejší systémy samozřejmě pracují s delším elementem neţ 2 znaky. Extrémním případem je tzv. diplomatický kód, který nahrazuje celá slova za jiná podle slovníku, který musí vlastnit obě strany. Je to ovšem případ kódování s proměnnou délkou lexikálního elementu. Příklad z historie pouţiji tentokrát humorný, ale přesto funkční: Vzkaz, ţe německé superdělo Tlustá Berta dostřelilo tam a tam, byl agentem v týlu nepřítele odeslán na pohlednici formou „Teta přijela tam a tam“. Jiným příkladem v této kategorii je – ač to můţe znít překvapivě – šifra DES, jestliţe pracuje v módu ECB (Electronic Code Book). Délka prvku, který se kóduje, je 56 bitů, takţe abeceda má slušných 256 prvků.
4.2.2 Transpozice Podstatou transpozice je změna pořadí znaků v textu. Přeskupování probíhá podle určitého pravidla, jeţ určuje typ transpozice, a je řízeno klíčem. ŠT obsahuje přesně ty znaky, které obsahoval ČT, a proto respektuje i původní charakteristiky ČT, přinejmenším pokud jde o relativní četnosti. Přesto některé tyto systémy jsou natolik způsobilé, ţe byly ještě začátkem století pouţívány jako vojenské šifry a v kombinaci se substitucí byly hojně uţívány např. československým odbojem za druhé světové války [2 ]. 4.2.2.1 Jednoduchá transpozice ČT se zapíše do bloků o délce N, např. 8 znaků, a čte se v pořadí, které určuje klíč např. (5,1,2,6,7,4,8,3). V polních systémech se kvůli pamatovatelnosti klíče blok očísluje pomocí nějakého klíčového slova podle pořadí písmen klíče v abecedě, přičemţ při více výskytech písmene označujeme pozice vzrůstajícími čísly zleva doprava, např. pro klíč K=Benátky je N=7 a transpoziční vektor je (2,3,5,1,6,4,7). Konec textu je potřeba obvykle doplnit nějakými znaky tak, aby délka ČT byla celistvým násobkem N. Na konce textu se doplní tzv. klamače. Volí se řada náhodných písmen a nikoli třeba XXX, abychom protivníkovi neposkytli ţádné vodítko k luštění. 4.2.2.2 Transpozice v tabulce Transpozice v tabulce se provádí tak, ţe text dělíme opět do bloků podle délky klíče, ale pak jej čteme po sloupcích tak, jak jsou očíslovány transpozičním vektorem. Je to o hodně kvalitnější metoda, protoţe při delším textu od sebe více vzdaluje písmena, patřící do stejného bloku. Přesto je napadnutelná v případě, kdyţ útočník dostane alespoň 3 zprávy zašifrované týmţ klíčem. Luští se pomocí tzv. anagramové metody [7].
23
23
4.2.2.3 Nestandardní transpozice Tyto metody bychom dnes uţ asi označili za poněkud obskurní, ale z úcty k jejich tvůrcům v historii se o nich zmíním. Jde především o šifrovací mříţky, čtverce, šifru ruských nihilistů, šifru Playfaire. Rochova transpozice pozměňuje transpozici v tabulce tak, ţe text se zapisuje do nestejně dlouhých bloků rostoucích o 1 do nějakého čísla R. Cardanova mříţka vyuţívá pomůcky, kterou je obdélník vystřiţený např. z tuhého papíru o rozměrech M-řádků x N-sloupců a s výřezy na cca 90% políček. Na zbylých políčkách, která nejsou vystřiţena, jsou umístěny tzv. klamače. Text se vpisuje po řádcích do volných okének a čte se po sloupcích i s klamači. Otočná Fleisnerova mříţka je vţdy čtvercová mříţka s vyříznutými okénky na čtvrtině plochy. Mříţka se přiloţí k ČT napsanému do matice NxN a během šifrování se 4x otočí, aby vyříznutými okénky odkryla vţdy čtvrtinu textu. ŠT jsou pak znaky, které se objeví pod okénky v pořadí zleva doprava a shora dolů., viz Příloha č.4, Fleissnerova otočná mřížka.
4.2.3 Adice. Sčítání operací "modulo" Principem adice je přičtení určitých hodnot k ČT. Aby se systém nezvrhl na primitivní monoalfabetickou substituci Caesarova typu, musí se přičítané hodnoty nějakým způsobem měnit. Mění-li se stále dokola s periodou R, rozpadne se text na R-částí, kaţdá kódovaná vlastní abecedou, a dostáváme jiţ popsanou a také snadno luštitelnou víceabecední substituci. Aby tedy měla adice nějakou „přidanou hodnotu“, je třeba přičítat proměnlivé hodnoty, nejlépe proud (pseudo)náhodných čísel. Tím se dostáváme k poměrně zajímavým pojmům: teoreticky i prakticky nerozluštitelná šifra a kniţní kód. Dříve však, neţ přikročím k jejich vysvětlení, ukáţeme si prakticky postup při aplikaci adice. Je-li ČT vyjádřen pomocí čísel, jde o sčítání, jak je známe ze základní školy: 21+3=24 atp. Je-li však text vyjádřen ve znacích, aplikujeme adici jednoduše jako posun v abecedě: A+A=B, A+B=C, A+Z=A atd. (při práci pomůţe tabulka Vigenère). Aby adice nedávala útočníkovi ţádnou pouţitelnou informaci, je třeba, aby probíhala bez přenosu řádu. Kromě toho je to i praktické, protoţe všechny prvky ŠT mají aspoň shodnou délku. Pracujeme proto s tzv. sčítáním modulo X. Například součet čísel a, b v modulo 10 je roven a+b, jestliţe součet nepřesáhne 9, jinak je roven a+b–10. Např. v modulo 26 je C+Y = B, v modulo 100 je 60+51=11 atp. Rovnítko v zápisu není samozřejmě striktně vzato na místě. Korektní zápis by byl 60+51=11 mod 100. 24
24
4.2.3.1 Knižní kód Proud znaků, pouţitých jako adiční klíč, jak bylo vysvětleno v předchozí kapitole, se vezme z nějakého jiného textu, který mají k dispozici obě strany, odesílatel i příjemce. Bývalo docela praktické, kdyţ se jednalo o knihu, neboť pak se dalo jako klíče pouţít jen ukazatel na stranu a řádek, odkud se klíč začne brát. Před útočníkem pak musela zůstat utajena jen skutečnost, z jaké knihy se vychází. Příklad: Šifrujeme text „bezpečnostní sloţky“. Kniha obsahující klíč nechť je Koukolík/Drtinová: Vzpoura deprivantů, str. 122, řádek 14, kde začíná textem „Pro tuto poruchu osobnosti je charakteristické…“. Proces šifrace pak bude: ČT: K: ŠT:
B P R
E R W
Z O O
P T J
E U Z
C T W
N O C
O P E
S O H
T R L
N U I
I C L
S H A
L U G
O O D
Z S S
K O Z
Y B A
4.2.3.2 Běžící klíč: nerozluštitelná šifra Je-li adiční klíč periodicky opakován, systém degraduje ve víceabecední substituci. S kniţním klíčem je to jiţ podstatně lepší, ale i tento systém je luštitelný, zejména, uhodneli útočník nebo nějak zjistí, o jakou knihu jde. Důvodem je, ţe text v knize je v přirozeném jazyce a má všechny jeho atributy (četnost znaků, bigramů, entropie,…) a je moţné nasadit index shody. Zajistíme-li však nějak, aby v textu nebyla vůbec ţádná pravidelnost, pak adice zcela dokonale překryje statistické charakteristiky ČT a systém se stává teoreticky i prakticky nerozluštitelnou šifrou. Nazývá se podle svého objevitele Vernamova šifra. Přesně řečeno, podmínkou nerozluštitelnosti je, ţe: 1. klíč je stejně dlouhý jako samotná zpráva, 2. klíč je dokonale náhodný 3. klíč pouţijeme jen jedenkrát (tj. pro zašifrování jediné zprávy). Pak je systém absolutně bezpečný. Hovoříme o šifře nerozluštitelné prakticky i teoreticky, a nejedná se o nějakou slepou víru v nerozluštitelnost, ale jde o dokazatelnou vlastnost na základě teorie informace. Systém dále splňuje jiţ dříve zdůrazňované důleţité kriterium pro moderní kryptosystémy, a sice, ţe vlastní algoritmus není předmětem utajení. Bylo ukázáno, ţe kvalita šifry spočívá v utajení klíče a utajení způsobu kryptování je jen doplňkovou metodou ochrany v celém systému, ale nijak nezvyšuje kvalitu algoritmu samotného a rozhodně by na něm neměla záviset bezpečnost systému [2]. 4.2.3.3 Generování klíče pomocí PRNG Uvedený způsob šifrování je sice absolutně bezpečný, ale na druhou stranu extrémně náročný na klíčové hospodářství, neboť vyţaduje generování dlouhých a zcela 25
25
náhodných klíčů ve velkém rozsahu a vyţaduje značnou technologickou kázeň šifranta (po pouţití jednorázového klíče musí zabezpečit, aby uţ nikdy nebyl pouţit znovu). Proto se pro vytvoření klíče, jenţ je stejně dlouhý jako ČT, pouţívá z praktických důvodů generátor pseudonáhodných čísel (Pseudo-Random Numbers Generator, PRNG), který je inicializovaný zárodkem (seed) [8]. Generátor musí splňovat několik podmínek: 1. Musí být nemoţné předpovědět další výstup z generátoru, známe-li jeho předchozí výstupy (tj. celý doposud vygenerovaný proud čísel) 2. Skupiny čísel se nesmějí opakovat, tj. cyklus má mít velmi dlouhou periodou. Kanonická definice říká, ţe posloupnost je perfektně náhodná, kdyţ neexistuje ţádný způsob, jak ji vyjádřit kratším způsobem, neţ pomocí této posloupnosti samotné, tedy ţe ji nezle komprimovat. Všechny prvky se vyskytují se stejnou pravděpodobností, která je rovna 1/N, kde N je počet prvků abecedy zdroje [2]. V minulosti byly uskutečněny různé více či méně nepraktické pokusy o rutinní generování dlouhých náhodných řad. Jmenujme alespoň tyto: Náhodné „bušení“ do klávesnice Vyhazování rozstříhaných papírků nad hlavu (obdoba losování) Tahání z klobouku Digitalizace bílého šumu přicházejícího z kosmu Digitalizace bílého šumu z el. obvodu se Zenerovou diodou Digitalizace obrázků z lávové lampy Řady čísel odvozené z pohybu (souřadnic) myši … a mnohé další. Některé postupy působí dnes humorně. Jelikoţ ale ţádný přírodní proces není dokonale náhodný, přistupuje se ještě k tzv. destilaci entropie, tedy zvýšení náhodnosti sekvence. Pouţije se např. ztrátová komprese, která realizuje vlastně jednocestnou funkci. Jiná metoda je, zašifrovat posloupnost nějakou kvalitní šifrou (např. DES) pomocí náhodného a neznámého klíče.
4.2.4 Kombinované kryptosystémy Z logiky věci vyplývá, ţe uvedené tři základní principy lze mezi sebou libovolně kombinovat. Označíme-li substituci=S, transpozice=T, adici=A, pak kombinované systémy představují různé kombinace, určující, které základní principy a v jakém pořadí jsou pouţity, např. SA, ST, ale i dva stejné za sebou, tedy např. SS či TT.
26
26
4.2.4.1 Substituce + Adice (SA systémy) Moţné uţití tohoto systému si snadno představíme na základě příkladu s kniţním kódem, kdyţ nahradíme písmena zdroje (ČT i K) číselnými symboly. Nejprve kódujeme nějakou substituční abecedou a pak sčítáme (zpravidla v modulu 10). Příklad: ČT: K: ŠT: ST:
B E Z P E C N O S T N I S L O Z K Y 56 31 37 59 31 22 72 05 11 30 72 99 11 79 05 37 80 14 P R O T U T O P O R U C H U O S O B 59 19 05 30 91 30 05 59 05 19 91 22 19 91 05 11 05 56 05 40 32 89 22 52 77 54 16 49 63 11 20 60 00 48 85 60
A jelikoţ bývalo dobrou praxí dělit text pro přenos do tzv. pětiskupin, zpráva by se odvysílala takto: 05403
28922 52775 41649 63112 06000 48856 00000.
4.2.4.2 Substituce + Transpozice (ST systémy) V prvním kroku se symboly ČT nahradí podle nějakého kódu jinou abecedou, obvykle číselnou, a ve druhém kroku se přešifruje transpozicí. Kvalitu systému výrazně zlepší, kdyţ délka lexikálního elementu abecedy kódu je nesoudělná s periodou transpozice, protoţe pak dojde k rozsekání (roztrţení) zakódovaných skupin. Příklad: Pouţijeme z předchozího příkladu ČT a kódování na dvojskupiny čísel. Pak zařadíme transpozici ve skupině klíčem (2,5,1,4,3), dostaneme: ČT: B E Z P E C N O S T N I S L O Z K Y Kódování: 56 31 37 59 31 22 72 05 11 30 72 99 11 79 05 37 80 14 Dělení na 5-skupiny: 56313 75931 22720 51130 72991 17905 37801 49217 Transpozice: 63513 51739 20227 10531 21799 75109 71308 97412
4.2.4.3 Substituce + Substituce (SS systémy) Tato varianta předpokládá, ţe máme dva kódy, kterými se kódují nejprve symboly ČT→meziprodukt a pak meziprodukt→ŠT. Kdyţ se nad tím zamyslíme, je zřejmé, ţe můţe být velmi zrádná, pokud není správně realizována. Dvojí přešifrování textu totiţ nevede na ţádné zvýšení bezpečnosti, pokud je délka lexikálního elementu ČT i meziproduktu shodná. Pak totiţ můţeme rovnou kódovat pomocí nějaké třetí kódovací tabulky ČT→ŠT a systém degraduje v obyčejnou monoalfabetní substituci: ŠT = f ( g (ČT, K1), K2 ) = h (ČT, f(K1, K2) ) = h (ČT, K3) Kombinace funkcí f ◦ g s různými klíči je totéţ, jako funkce h s jakýmsi klíčem K3. Je tedy nezbytně nutné, aby se lišily délky prvků abecedy zdroje a mezikroku. Příklad: Kódujeme bigramy ČT na trojskupiny (to je moţné, neboť bigramů je 262=676) a pak kódujeme podruhé ve dvouciferných číslech: ČT: BE ZP EC NO ST NI SL OZ KY Kódování: 398 671 012 887 841 100 195 215 901 Dělení na 2-skupiny: 39 86 71 01 28 87 84 11 00 19 52 15 90 19 ŠT: 51 55 78 89 01 07 20 76 66 33 25 61 92 33
27
27
4.2.4.4 Transpozice + Transpozice (TT systémy) Opět zde platí stejná zásada: naprosto esenciální podmínkou pro to, aby systém TT dával smysl a zvyšoval bezpečnost, je, aby délka transpoziční skupiny byla v první a druhé transpozici rozdílná. Nedává valný smysl, transponovat text např. klíčem o periodě 6 na mezivýsledek a ten pak znovu jiným, stejně dlouhým klíčem, protoţe ŠT je pak pouze určitou transformací ČT, která by vznikla jedinou transpozicí rovnou. Systém degraduje na prostou transpozici s klíčem, jenţ je „součinem“ obou pouţitých transpozičních klíčů (ne součinem v matematickém slova smyslu, rozumíme ale sřetězení dvou zobrazení, f ◦ g). Je třeba, aby klíče byly různě dlouhé a ještě lépe s nesoudělnými délkami. 4.2.4.5 Aplikace Z historie je známa celá řada kombinovaných kryptosystémů. Důvodem je, ţe v době, kdy nebyly k dispozici počítače, skýtaly skutečně dobrou úroveň zabezpečení. Jmenujme například dvě kombinované šifry: Systém „TTS“: Tuto součinovou šifru pouţíval jej čs. odboj po roce 1939. Obsahovala 2 transpoziční kroky s klíči, které se vybíraly z 11 dvojic klíčů podle určitého systému kaţdý den v měsíci jinak, a výsledek se ještě překódoval substituční abecedou sestávající z 31 písmen, několika interpunkčních znamének a cifer 0 aţ 9 (celkem 45 znaků), jeţ se měnila tak, ţe se posouvala báze abecedy (tj. kód znaku „A“) podle denního klíče (konkrétně podle čísla dne v měsíci). Šifra měla slabiny, které nakonec umoţnily, ţe nám ji luštili Němci a Švédi. Od poloviny r. 1940 luštili aţ na výjimky téměř všechny zprávy našich zpravodajců. [11]. Šifra ADFGVX: šlo o velmi úspěšnou produktovou šifru pouţívanou Němci za 1.sv.války výhradně pro spojení mezi nejvyšším velením a velitelstvími divizí. Je pojmenována podle šesti písmen, které jako jediné se vyskytovaly v ŠT (!). Podle všeho důvodem byla snadná rozlišitelnost těchto znaků v Morseovce. Nejprve se ČT kóduje fixní substituční tabulkou 6x6 s oběma záhlavími A,D,F,G,V,X, která mapuje znaky ČT na pár písmen daný sloupcem a řádkem znaku. Meziprodukt se ještě transponuje blokově podle klíče, coţ rozháţe páry písmen, vzniklé v prvním kroku. Šifra byla prolomena Francouzi aţ v dubnu 1918, ale šlo jen o dvě speciální situace. Ještě mnoho let po válce však nebylo známo obecné řešení šifry (publikoval je aţ americký kryptoanalytik W.F.Friedmann v roce 1933!).
28
28
4.3 Šifrovací stroje Nejen snaha o další zvyšování bezpečnosti, ale i touha usnadnit si úmorné, opakující se úkony pouţívané při šifrování, vedly postupně ke vzniku šifrovacích strojů. Asi první vlaštovkou a současně velmi zajímavou historickou hříčkou byl tzv. Wadsworthův kryptograf. Pomůcka sestávala ze dvou otočných kotoučů o nesoudělných délkách obvodu. Vnější slouţil k nastavení znaků ČT a vnitřní ke čtení ŠT nebo naopak. Důleţité však je, ţe se přitom vzájemná poloha kotoučů s kaţdým zašifrovaným znakem změnila tak, ţe strojek, ač velmi jednoduchý, skýtal obrovské mnoţství abeced. Je docela dobře moţné, ţe byl inspirací ke stavbě prvních šifrovacích strojů ve 20.století.
4.3.1 Enigma Stroj Enigma, jehoţ název je odvozen od řeckého výrazu pro záhadu či tajemství, vzniká v období po 1. světové válce. Její vznik je však opředen tajemstvím. Patentoval ji pravděpodobně pan Hugo Koch z Delftu anebo snad berlínský strojní inţenýr Arthur Scherbius. První doloţený patent, vztahující se k Enigmě, je datován rokem 1919 a je to vynález tzv. Kochova reflektoru. První komerční verze se objevuje roku 1922 [2]. Stroj se pouţíval v komerční oblasti, avšak po nástupu Hitlera si jej všiml Wehrmacht, protoţe skýtal na svou dobu mimořádnou bezpečnost a – unesl ho jediný voják! Nakonec se stal německou tajnou zbraní a asi nejslavnějším šifrovacím strojem v historii. Zpočátku neexistoval ani matematický aparát pro popis takového šifrovacího stroje, natoţ postupy pro luštění jím produkovaných šifer, a tak Němci nabubřele povaţovali texty zašifrované Enigmou za nerozluštitelné. Spojenci neměli zpočátku nejmenší ponětí, jak funguje, a i kdyţ uţ to věděli, nedokázali dlouho vymyslet metodu jejího prolomení. 4.3.1.1 Popis a princip Enigma je elektromechanický šifrátor. Podobá se na první pohled obyčejnému psacímu stroji. Klávesnice (Tastatur) má 26 typů. Nad ní je matice 26 znaků podsvícených ţárovičkami (Glühlampenfeld). Po stisknutí znaku na klávesnici se rozsvítí ţárovička pod příslušným znakem ŠT a šifrant jej opíše. Stroj tak realizuje proudovou šifru, substituci znak za znak, ale pochopitelně mnohoabecední. Tajemství „nerozluštitelnosti“ spočívá ve střídání abeced pomocí tzv. rotorů (Walzen), které se volně otáčejí na společné ose podle určitého programu. Obsahují elektrické kontakty tak, ţe kaţdý kotouč má na svých čelních plochách 26 kontaktů a tyto plochy jsou uvnitř tělíčka kotouče vzájemně propojeny.
29
29
Sousedící kotouče se přitom svými kontakty vzájemně dotýkají, takţe proud teče skrz ně klikatými cestami mnoha a mnoha způsoby. Viz Příloha č.5, Příklad propojení Enigmy. Konkrétní okamţitá poloha kotoučů realizuje tzv. permutaci – uspořádanou n-tici písmen, popisující způsob, jak se zobrazí znak ČT na výstup ŠT, např.: ČT: ABCDEFGHIJKLMNOPQRSTUVWXYZ ŠT: TOWYHLGDKMBUSPRCJXAIQVZNEF
Z hlediska jiţ zavedených definic by to byla vlastně obyčejná jednoduchá (monoalfabetní) substituce, ale síla sytému spočívá v tom, ţe se neustále (při zakódování kaţdého znaku) mění. Výchozí poloha kotoučů určuje okrajové podmínky problému. Jeden otočný kotouč by nepředstavoval moc silné zabezpečení, i kdyby se s kaţdým krokem otáčel. Kotoučů však je více (zpočátku 3, později přidávali další), jsou na společné ose a přiléhají na sebe, tj. dotýkají se ploškami svých kontaktů. Co je výstupem z prvního, jde na vstup druhého, permutuje se jeho abecedou a vystupuje ven a vstupuje do třetího kotouče. Po průchodu kotouči je původní písmeno, které operátor stiskl na klávesnici, zcela „ztraceno“ přemletím ve třech rozdílných substitučních abecedách [2]. Dalším prvkem komplexity je, ţe proud se na výstupu posledního kotouče dostává do dalšího, který se nazývá reflektor (Umkehrwalze). Ten také mění abecedu, ale hlavně vrací proud zpět do kotoučů, kde se opět transformuje, aţ se dostane zpět ven a rozsvítí ţárovičku. Toto vylepšení tak realizuje ještě tzv. inverzní permutaci. Označíme-li transformace ve třech kotoučích L, M, N, k nim inverzní L’, M’, N’ a transformaci na reflektoru R, pak enkrypce probíhá podle sřetězené funkce: ŠT = L◦M◦N◦R◦N’◦M’◦L’(ČT). Přitom se transformační funkce L, M, N se mění v kaţdém kroku šifrace. Způsob změny polohy je takový, aby nenastávalo pouhé posunutí následného kotouče předchozím po jeho 26 krocích, jako je tomu u počítadla otáček na magnetofonu. Tzv. řídící rotory, jsou pod pracovními rotory a prostřednictvím ozubení s nimi pohybují. Po obvodu kaţdého kotouče je 26 zubů a řídící rotory mají různé počty zubů a některé i chybí (tzv. neaktivní poloha) a jiné jsou přítomny na své pozici (aktivní poloha). Dalším prvkem, který ještě zvyšuje komplexitu systému, je komutátor (Steckerbrett). Je zařazen na vstupu hned za klávesnici. Je to propojovací deska s 26 páry zdířek A aţ Z (Steckerverbindungen), kam obsluha můţe, ale nemusí zasunovat propojky. Tím se na vstupu vytvoří další permutace, jakési “předkódování” ještě před vstupem do prvého kotouče.
30
30
4.3.1.2 Pravidla provozu, distribuce klíčů Prvky, které se uplatní pro šifrování konkrétní zprávy, jsou výběr a nastavení kotoučů a propojení komutátoru, přičemţ jednotlivé parametry skýtají následující počty moţností (počítáno jen pro tříkotoučovou Enigmu): vnitřní propojení kotoučů (zůstává pevné po mnoho let) pořadí kotoučů I-V (Walzenlage, měněno čtvrtletně, 5x4x3=60 moţností) nastavení prstenců, tj. relativní posun písmenného krouţku vzhledem k vnitřku kotouče (Ringstellung, 263 = 17576 moţností) propojky komutátoru (pro 6 propojek asi 1011 moţností) denní klíč (Grundstellung, 263 = 17576 moţností) náhodně zvolené znaky šifrovacího klíče (Indikator, AAA aţ ZZZ, tj. 263 = 17576 moţností), které se zašifrují denním klíčem dvakrát na začátku zprávy Tab.č.5 : Příklad nastavení Enigmy Datum
Kotouče
Kroužky
Denní klíč
Propojky
22.5.1939
IV,II,I
11 12 20
Z B W
AC,DV,YT,JL,IM,OP,KG
Zdroj: vlastní
Klíč, nutný pro zašifrování a dešifrování textu, je tedy určen výběrem pracovních kotoučů (v sadě jich bylo 5 aţ 8), polohou pracovních kotoučů na ose, nastavením výchozí pozice kotoučů a propojením komutátoru. Toto nastavení se pravidelně měnilo podle knihy klíčů, která se distribuovala k jednotlivým pracovištím Enigmy, např. na ponorky, sluţebny Abwehru apod. 4.3.1.3 Rozbití Enigmy Jak je patrné z popisu konstrukce stroje, je variabilita systému obrovská. Podle [2] je celkový počet moţností pro jeden kaţdý znak přibliţně 2,3.1073 a i při znalosti vnitřního uspořádání stroje (tj. vnitřního propojení kotoučů, coţ je moţné získat např. zpravodajsky) se variabilita systému sniţuje na „pouhých“ 7.1033, coţ je však také závratné číslo a bez počítače vylučuje útok hrubou silou. Patrně největší energii a úsilí proti Enigmě zaměřili Britové. Od roku 1938 pracovala dobře utajená skupina nedaleko Londýna v místě zvaném Bletchley Park, tzv.Vládní škola kódů a šifer (Government Code & Cipher School, GC&CS). Matematik Alan Turing, pozdějšího objevitele principu umělé inteligence, zkonstruoval tzv. Bombu, stroj, který pouze generoval moţné kombinace šifrovacího klíče při známém ČT a ŠT. Na jejím výstupu by byl dnes patrně připojen algoritmus na rozpoznání validního německého textu, coţ ale tehdy nebylo moţné. Přesto měla bomba svůj význam a poslouţila k dešifraci Enigmy. Další stroj vybíral z prostoru klíčů pouze ty, které byly logicky 31
31
pravděpodobné. Počet moţných klíčů v řádu 1020 redukoval na pouhých 7000, které uţ bylo moţno prověřit ručně armádou vyškolených „úřednic“ v barácích Bletchley parku. Pozdější typ pracoval tak, ţe vyuţíval předpokládaného stereotypu, ke kterým Němci tíhli, např. ustálená oslovení, a snaţil se odhalit aktuální nastavení disků. Při nalezení moţné kombinace se stroj automaticky zastavil a zobrazil aktuální nastavení. Polští matematici byli ve své době také ve svém oboru na špičce a málokde se publikuje, ţe měli téţ velkou zásluhu na prolomení Enigmy (její komerční verze) uţ ve dvacátých letech. Vlastnili i jeden exemplář ne-civilní Enigmy, a to díky jistým zmatkům při transportu. Mohli ji zkoumat jen týden, ale stihli přijít na způsob propojení klávesnice s disky. Pouţili manuálu ukradeného Němcům francouzským agentem a to jim umoţnilo vytvořit vlastní automat, polskou obdobu Bomby. V roce 1939 došlo k setkání mezi polskými, francouzskými a britskými kryptoanalytiky. Pak byli teprve Britové schopni efektivněji pojmout řešení problému a za půl roku měli na stole první výsledky. Britský princ Andrew předal Polsku model Enigmy jako symbolický dar po více neţ půlstoletí. Spojenci si byli dobře vědomi, ţe bez příspěvku Polska by se nepodařilo systém rozluštit.
4.3.2 Hebernův „Elektrický kód“ V roce 1915 sestrojil Edward Hebern jednoduchý šifrovací stroj, který byl řešen jako dva elektrické psací stroje propojené pseudonáhodně 26 dráty. Zápis znaku na jednom z nich měl za následek tisk jiného znaku na druhém. Později patentoval dokonalejší stroj, pracující jiţ na moderním principu rotorů, tzv. „Electrical code“. Byla to asi první jednoduchá aplikace rotoru v šifrovací technice. Rotor byl principiálně shodný s disky v Enigmě a při počtu kotoučů 5 stroj dával 265=11 881 376 různých abeced. Přístroj pouţívalo americké námořnictvo.
4.3.3 Hagelinův stroj Rus Boris Hagelin působící ve Švédsku byl v této oblasti úspěšným podnikatelem a ve dvacátých letech dal na trh postupně několik elektromechanických šifrovacích strojů, z nichţ jeden podnítil vznik Enigmy. Jeho stroje byly pouţívány v Evropě ještě v šedesátých letech (např. stroj HX-63, který byl devítirotorový, kaţdý rotor měl 41 kontaktů, jen 26 kontaktů znakových, 15 kontaktů tvořilo zpětnou vazbu, měl velmi nepravidelný rytmus otáčení jednotlivých disků a navíc na kaţdém disku bylo 41 spínačů, které určovaly vnitřní propojení v disku).
32
32
4.3.4 Vernam, proudová dálnopisná šifra V roce 1918 představil Gilbert Vernam princip šifrování zpráv na dálnopisu. Děrná páska obsahuje binární kód (dírka=1, nepřítomnost dírky=0). K dálnopisu byl však navíc přidán druhý snímač děrné pásky, do něhoţ se vkládala páska s klíčem. Jednalo se o pseudonáhodný běţící klíč, který realizuje tedy za dodrţení určitých podmínek teoreticky i prakticky nerozluštitelnou šifru. Kaţdý bit ŠT se vytvořil jako operace „výlučné nebo“, (exclusive or, XOR), mezi bity ČT a K na dané pozici. Operace XOR de-facto realizuje sčítání modulo 2, viz Příloha č.6, Operace XOR.
4.3.5 Japonský „Purpurový kód“ Z technologického hlediska na vrcholu všech předválečných strojů stojí tajuplný Purpur, pouţívaný japonskou armádou. Tím, ţe se Japonci dostali v roce 1934 k exempláři Enigmy (která uţ sama o sobě naháněla kryptoanalytikům hrůzu) a přetvořili ji s pověstnou pečlivostí, nasazením a orientální lstivostí, vytvořili nejdokonalejší šifrovací zařízení své doby. To, co se dnes označuje jako Purpurový kód (Purple Code), je ve skutečnosti šifrou, ale díky populárním článkům v pozdější době se zauţívalo označení, které laikům snad zní lépe, neţ kdyby se říkalo „purpurová šifra“. Američané ihned začali odposlouchávat depeše vysílané v tomto systému a skupina kolem W.F.Friedmana se do nich pokoušela proniknout. Pomoc při luštění poskytlo několik skutečností: stereotypní začátky zpráv, adresy i často pouţívaná slova a spojení občasné získání čistého textu depeše ministerstvem zahraničí chyba operátora (byla odvysílána zpráva postupně ve starém i novém systému) šifrování pomocí prošlého a jiţ vyluštěného klíče slabina ve způsobu generování klíčů [3]. Američané nakonec dokonce sestavili repliku přístroje, která šifrovala a dešifrovala zprávy shodně jako japonský originál, aniţ by jej kdykoli viděli. Aţ v r. 1945 se dostali k fragmentům originálního stroje. Další zajímavostí je, ţe ač Japonci svému systému bezvýhradně věřili a přenášeli jím tak důleţité zprávy, jako např. o napadení Sovětského svazu, Američané nedopřávali tomuto zdroji sluchu, coţ nakonec vyústilo aţ ve zkázu Pearl Harboru.
4.3.6 Šifrování po válce Pouţití technologie elektromechanického šifrování bylo ve své době nejlepším řešením, protoţe šlo o zařízení na špičce moţností tehdejší kryptografie. Přesto se mnohé
33
33
tyto systémy podařilo dříve či později vyluštit, ať uţ díky chybám šifrantů, nebo prostě z principu. Autoři strojů často podléhali iluzi, ţe sloţitost systému roste s velikostí prostoru klíče. Ţe tomu tak není, ukazuje vyluštění Enigmy i dalších. Omyl je zaloţen na tom, ţe luštitel musí vyzkoušet všechny varianty klíče. Na Západě se zhusta pouţíval moderní šifrovací stroj Hagelin CX-52, který byl narozdíl od Enigmy čistě mechanický (elektrický proud se nezúčastňoval procesu šifrace, jen se pouţíval pro pohon místo původní kliky). V kaţdém kroku, se ke znaku přičetl znak klíče v modulu 26. Jde tedy o proudovou šifru typu Vigenère. Ale perioda je zde velmi dlouhá, přesahující o několik řádů délku zprávy. Přičtení hesla, čili operaci ŠT = (ČT+K) mod 26, realizuje výstupní typové kolečko, které zároveň vytiskne znak ŠT na papír. Je to zcela triviální princip. Důleţitější je generování hodnot klíče v kaţdém kroku. Probíhá na 6 šifrovacích kotoučích navlečených na společné ose, které mají různé, navzájem nesoudělné periody 25, 26, 29, 31, 34, 37, 38, 41, 42, 43, 47 a 47 (=sada, z nichţ se vţdy vybralo 6 konkrétních). Díky nepravidelnému kroku je stroj velice komplexním zpětnovazebním systémem a skutečnou výzvou pro kryptoanalytiky. Přesto se jim dařilo zprávy z Hagelina úspěšně luštit (nevyjímaje čs. armádní analytiky). Obvykle pouţívali metodu postupného oslabování vnitřního nastavení stroje a sunutí očekávané sekvence textem. I na východní straně ţelezné opony byly vyvíjeny šifrovací stroje. Nepodařilo se mi o nich zjistit mnoho informací, pravděpodobně proto, ţe narozdíl od těch západních nebyly prodávány na volném trhu. Pokud je mi známo, existoval stroj T-217 zvaný ELBRUS, který byl jiţ elektronický a realizoval šifru podobnou prvním americkým elektronickým zařízením. Základem je generátor bitového proudu na principu posuvných registrů. Další známý „socialistický“ stroj byl M-105. Pouţíval expanze znaku ČT z 5 na 12 bitů, pak operace XOR s páskou běţícího klíče a opětnou kompresi na 5 bitů. Tento princip je velmi progresivní a je pouţit později i v moderních kryptosystémech typu DES. A konečně u nás fungoval stroj M-125 zvaný Fialka, coţ je zdařilá mutace Enigmy pracující ovšem s abecedou o 31 znacích a s komutátorem tvořeným čtvercovým děrným štítkem, který řídí propojení. Počet rotorů, shodných s těmi v Enigmě, byl 10. Stroj měl také reflektor. Na vstupu a výstupu měl čtečku a děrovačku pětistopé děrné pásky. Stroj je dodnes opředen částečně určitou aureolou tajemství a sběratelé si jej velice cení. V loňském roce jsem měla moţnost vidět jeden exemplář na výstavě radioamatérské techniky v Německu a vystavovatel mi nabízel jeho funkční repliku za cenu 2000 EUR. I přes eleganci a snad i určitou krásu všech těchto vynálezů, měly však uţ být brzy nahrazeny elektronickými přístroji a počítači… 34
34
5 Moderní kryptografie V této části se budu zabývat teoretickými i praktickými aspekty soudobých kryptografických systémů. Hlavní pozornost věnuji dnes nejrozšířenějšímu systému silné asymetrické kryptografie.
5.1 Obecné zásady moderní kryptografie Jak uţ bylo na několika místech této práce zdůrazněno, pouţití kryptosystému s utajeným algoritmem není bezpečné. Silné kryptosystémy jsou naopak zaloţeny právě na veřejné znalosti algoritmu, avšak na vysoké výpočetní sloţitosti dešifrování při neznalosti klíče. Kvalita šifry pak spočívá v utajení klíče.
5.2 Produktové šifry Šifry, zaloţené jen na substituci nebo jen na transpozici (byť vícenásobné), nejsou bezpečné. Proto se zavedly tzv. produktové šifry, které představují de-facto kombinaci substituce a transpozice. V historii asi první takovou šifrou bylo výše zmíněné ADFGVX.
5.2.1 Moderní blokové šifry, systémy Feistelova typu Blokové šifry jsou zaloţeny na zpracování vţdy celého bloku ČT v jednom kroku. Na kaţdý znak nebo dokonce bit výsledného ŠT má pak vliv nejen hodnota klíče, ale i hodnota ostatních bitů v bloku. Zavádíme pojem bitová sloţitost , který charakterizuje, jak změna byť jediného bitu ČT či klíče má za následek nepředvídatelnou změnu ŠT, přičemţ kaţdý bit ŠT se mění s pravděpodobností blízkou 0,5, tj. pseudonáhodně. Jak bylo řečeno, algoritmy jsou kombinací substituce a transpozice (ta se zde ze zvyku nazývá častěji permutací). Šifra je proto realizována tzv. S-boxy a P-boxy. Na vstupu kaţdého boxu je blok textu o délce N-bitů, výstupem je jiný blok, někdy o odlišné délce (realizuje současně expanzi nebo kompresi – pochopitelně bezeztrátovou!). Algoritmus obsahuje inherentně vlastnosti tzv. difuze (diffusion) a konfuze (confusion), a tím dělá statistickou vazbu (korelaci) mezi vstupem a výstupem velmi sloţitou. U šifer Feistelova typu (Horst Feistel, v 60.-70. létech pracoval pro IBM) se tyto kroky navíc provádějí zvlášť pro levou a pravou polovinu bloku, a to ve více krocích, přičemţ obě poloviny se mezi sebou v jednotlivých krocích různě prohazují. Jeden blok se zpracovává transformací pomocí klíče a následně se přičte v modulu 2 k druhému bloku. Pak se druhý blok transformuje analogicky. Takto konstruovaná šifra je obvykle involutorní (tuto vlastnost měla i Enigma). Znamená to, ţe E(x) = y a současně E(y)=x. 35
35
5.2.2 Data Encryption Standard (DES) Šifra byla vyvinuta v roce 1975 organizací National Bureau of Standards pod patronátem Ministerstva obchodu USA. Její algoritmus a přeneseně i šifra sama se někdy téţ označuje jako DEA (Data Encryption Algorithm). Je asi nejúspěšnějších a komerčně nejrozšířenějších realizací kryptosystému Feistelova typu. Délka bloku je 64 bitů, z čehoţ 56 bitů je informačních (7 znaků ČT) a zbylých 8 bitů je redundantních. Na vstupní blok se aplikuje tzv. vstupní permutace, její produkt se rozdělí na dvě poloviny po 32 bitech a na nich se provede v 16 cyklech substituce a permutace. Na závěr se aplikují ještě výstupní permutace. Schéma – viz Příloha č.7, Blokové schéma algoritmu DEA. Systém byl mnohokráte a zevrubně studován různými nezávislými týmy, a tak jsou jeho klady i slabiny dobře známy. Aţ na určité specifické situace můţe být úspěšný útok proveden jen hrubou silou. Prostor klíčů je velký 264, coţ je však dnes uţ superpočítači zvládnutelné. Existují také tzv. slabé a poloslabé klíče, při jejichţ volbě můţe mít systém jednodušší charakter a je snáze napadnutelný. Soudí se, ţe Úřad pro národní bezpečnost (National Security Agency, NSA) a další speciální sluţby jsou schopny DES luštit např. pomocí jednoúčelového hardwarového zařízení nazývaného DES Cracker. Z těchto důvodů nelze povaţovat DES i přes jeho vysokou bitovou sloţitost za stoprocentně bezpečný systém a je vhodný spíše pro šifrování obchodních dat. Jeho pouţívání v NATO, ozbrojených silách i zpravodajství je zakázáno. Určitým opatřením lze dosáhnout vyšší bezpečnosti DESu. Je to reţim zvaný Tripple DES (3DES), který pracuje tak, ţe máme dva různé klíče K1 a K2, přičemţ pomocí K1 šifrujeme ČT na nějaký meziprodukt, ten pak dešifrujeme pomocí K2 na další meziprodukt a ten opět přešifrujeme klíčem K1.
5.2.3 Další systémy Feistelova typu Rovněţ firma IBM vyvinula systém LUCIFER, pracující s dvojnásobně dlouhým blokem (128 bitů). Další známější kryptosystémy tohoto typu jsou IDEA, SKIPJACK, BLOWFISH, CAST, C_CRYPT aj. V České republice byla vyvinuta týmem RNDr. Vlastimila Klímy šifra, která pracuje s blokem 64 bitů, ale zato s klíčem o délce 256 bitů, coţ by mělo vést skutečně k vysoké míře bezpečnosti.
36
36
5.2.4 Pracovní módy blokových šifer Mód Elektronická kódová kniha, ECB (Electronic Code Book) spočívá v tom, ţe v kaţdém kroku se zašifruje jeden blok klíčem, takţe systém vlastně realizuje obří slovník všech moţných kombinací (2N, kde N je počet bitů v bloku, obv. 64). Kaţdý blok je šifrován nezávisle na jiných blocích, a proto ČT a ŠT spolu tvoří uspořádané dvojice jako v kódové knize. Jinými slovy: stejný vstupní blok generuje vţdy stejný výstupní blok. Mód Řetězení šifrového textu, CBC (Cipher Block Chaining) vyuţívá výstup z jednoho šifrovacího kroku k modifikaci dalšího vstupního bloku ČT. Kaţdý blok ŠT je tím závislý nejen na právě zpracovávaném bloku ČT, ale i na všech předchozích blocích. Stejný vstupní blok generuje různé výstupní bloky (princip jako v autoklávu). Inicializační blok je generován pseudonáhodně a závisí na K.
5.3 Systémy veřejné kryptografie (SVK) 5.3.1 Princip Jak bylo řečeno v kapitole Nesymetrická kryptografie, klíče pro šifrování a dešifrování se od sebe liší (KE≠KD), nelze je navzájem jeden z druhého odvodit a funkce E() a D() nejsou obecně v ţádném jednoduchém vztahu. Obě komunikující strany znají pouze svůj pár klíčů, coţ vede k redukci počtu klíčů při větším počtu komunikujících uzlů. Jeden z klíčů je veřejně přístupný všem stranám – tzv. veřejný klíč, druhý je tzv. soukromý klíč a ten se utají. Pomocí soukromého klíče se dešifruje, pomocí veřejného klíče se šifruje. Klíč KE strana zveřejní a říká tím: „Tímto klíčem šifrujte to, co mi posíláte a já si to dešifruji svým tajným klíčem.“ Filosofie je tedy značně odlišná od klasické symetrické kryptografie. Nesmí tedy být průhledná vazba mezi KE a KD, nějaká souvislost přece existovat musí, jinak byly zprávy nešly dešifrovat. Tento zdánlivý protimluv je dnes uspokojivě vyřešen více způsoby za pomoci metod moderní matematiky (maticového počtu a teorie čísel). Postup implementují tyto nejznámější systémy: McElliceova šifra, RSA, zavazadlový problém a eliptické funkce.
37
37
5.4 Metoda RSA 5.4.1 Princip metody Šifru RSA navrhli v roce 1977 tři izraelští kryptologové Rivest, Shamir a Adleman. Je zaloţena na dvou zajímavých vlastnostech prvočísel: 1. Existuje rychlý algoritmus k nalezení náhodného, velmi velkého prvočísla 2. Neexistuje (není znám) rychlý algoritmus rozkladu velkého čísla na součin prvočinitelů V metodě se pouţívá tzv. kongruence, která pracuje s dělením modulo a zapisuje se x
y mod N
Zápis znamená: x odpovídá y v modulu N. Číslo y je tedy zbytek po dělení x a N, např. 16 1 mod 5. Praktický postup je tento: 1. ČT se nejprve vyjádří jako proud čísel (např. kódem ASCII) a rozdělí se na bloky o stejné délce, např. 128 Bytů. Blok je tedy vlastně reprezentací velmi velkého čísla. 2. Pak si zvolí dvě velká prvočísla P a Q a vypočte jejich součin N = P.Q. 3. Dále se vypočte hodnota funkce (P,Q) = (P-1).(Q-1). 4. Pak se zvolíme číslo S, nesoudělné s , tzv. šifrovací exponent. Veřejný klíč tvoří dvojice čísel N a S. 5. Dále se najde takové číslo T, aby (T.S) 1 mod . Toto číslo T bude dešifrovací exponent. Existuje právě jeden. Tajný klíč tvoří dvojice čísel N a T. Šifrování a dešifrování se pak řídí uţ jednoduchými vzorečky: ŠT = ČTS mod N ČT = ŠTT mod N. Výpočetně náročné je nalezení a otestování prvočísel P a Q, ale to se naštěstí provádí jen jednou a navţdy (platí aţ do případné změny klíče).
5.4.2 Potenciální útoky na RSA Kryptoanalýza systému by musela být zaloţena na nalezení čísla T, a tedy znalosti hodnoty funkce
(P,Q), tedy čísel P a Q. Ta lze najít jen rozkladem čísla N na
prvočinitele, coţ je výpočetně velmi obtíţná úloha
(neřešitelná v rozumném čase).
Z veřejně známého čísla N se musí určit, z jakých dvou prvočinitelů P a Q toto číslo vzniklo, coţ se nazývá problém faktorizace (popsal jej jiţ Euler). Pro vyšší prvočísla (např. 100-místná) je v rozumném čase dnes neřešitelný. Faktorizace by trvala i na velmi rychlých počítačích roky, na běţně dostupném hardwaru staletí, a proto je systém předurčen k pouţití v profesionálních aplikacích pro ochranu v nejvyšším stupni utajení. 38
38
Kromě toho je systém škálovatelný (rozšiřitelný co do délky klíče). Se vzrůstajícími schopnostmi techniky pouţívané potenciálními útočníky lze během doby prodluţovat délku klíče. S rostoucí délkou klíče přitom výpočetní sloţitost útoku roste exponenciálně nebo snad dokonce o něco rychleji, viz Příloha, obr. 5, Výpočetní složitost útoku na RSA. O bezpečnosti šifry svědčí to, ţe americký NBS údajně věnoval 17 člověko-roků bezvýsledné práce, aby porušil bezpečnost systému RSA [5]. V současnosti se povaţuje za bezpečnou velikost klíče 1024 bitů, po roce 2010 je organizací RSA Security doporučována velikost 2048 bitů. Tyto trendy jsou reflektovány i u nás, jak zmíním později v kapitole Aplikace elektronického podpisu ve státní správě ČR.
5.5 Jednocestná funkce Tzv. jednocestná funkce (One-way Function) je to taková funkce, která umoţňuje data jen zašifrovat, ale nikoli uţ zpět dešifrovat. Jinými slovy: je to taková funkce, kterou je snadné vyčíslit, ale je velmi obtíţné z výsledku odvodit vstup. Funkce E(x) totiţ nemá známou inverzní funkci. Je zaloţena na vysoké výpočetní sloţitosti dešifrace v asymetrické kryptografii při znalosti jen KE a neznalosti KD nebo naopak. Prostor klíčů (key space), musí být tak velký, aby to případného útočníka dopředu odradilo. KE je utajen, a tak se ze šifrátoru stane něco jako skartovací stroj. K vysvětlení principu poslouţí jednoduchý příklad – součin: funkce y = k.x dává součin dvou čísel, např. pro vstup 263 x 37 dává 9731. Zpětně je ale relativně obtíţné z čísla 9731 zjistit, z jakých dvou čísel vlastně vzniklo. Samozřejmě je to moţné udělat rozkladem na prvočinitele a vyzkoušením všech variant, a tak součin není vhodný pro pouţití v kryptografii. O mnoho pouţitelnější jednocestná funkce je Y = aX mod b, kde je snadné pro kaţdé X vyčíslit Y, zatímco pro dané Y nelze v rozumném čase zjistit X. Asymetrická kryptografie do značné míry spoléhá na existenci jednocestných funkcí, ačkoli jejich jednocestnost není prokázána. Zmíněné Y = aX mod b je o problému, který se nazývá výpočet diskrétního logaritmu. Zatímco vypočítat Y ze znalosti (X,a,b) je snadné, dopočítat se zpětně diskrétního logaritmu X je velmi obtíţné. Tato skutečnost předurčuje tento problém (nazývaný téţ umocňování nad konečným tělesem) k vyuţití v kryptografii. Existují ještě další matematické problémy, pouţitelné v jednocestných funkcích, jako např. Rabinova funkce, zavazadlový problém (Knapsack Problem) a jeho varianta Subset sum.
39
39
6 Aplikace kryptografie v IS/IT V této kapitole se budu zabývat hlavními případy uţití kryptografie v praxi, tj. v dnes zejména v IS/IT obecně, s přihlédnutím k elektronickému obchodování a bankovnictví.
6.1 Případy užití kryptografie Potenciální útočník nemusí nutně vţdy jen chtít přečíst šifrované zprávy, ale můţe mu jít např. o poškození adresáta, coţ můţe učinit dvěma způsoby: podstrčením falešné zprávy, která se tváří, ţe je od autentického odesílatele (zná přece příjemcův šifrovací klíč), nebo pozměněním jiţ odeslané zprávy od autentického odesílatele, tj. zfalšováním obsahu zprávy. Z principu asymetrické kryptografie uţitého v systémech veřejné kryptografie (dále jen SVK) vyplývají i další zajímavé aplikace tohoto mechanismu, a tak máme včetně „klasického“ procesu šifrování/dešifrování dat – utajení celkem čtyři varianty pouţití kryptografie. Přidrţíme-li se označení A=odesílatel, B=příjemce, Ú=útočník, přicházejí v úvahu následující varianty: 1. Utajení: Ú nemůţe přečíst obsah zprávy A→B 2. Autentizace: Ú nemůţe dokázat, ţe je A. Lze tedy ověřit původnost (identitu) A. 3. Identifikace: B nemůţe dokázat nikomu dalšímu v síti, ţe je A (tedy ani B nemůţe vystupovat v roli Ú) 4. Autorizace: B nemůţe dokázat ani sobě samému, ţe je A (tedy B nedokáţe napodobit podpis A) Pokud jde o první případ uţití, tj. utajení obsahu, bylo jiţ dost řečeno v kapitolách o historické kryptografii. Přestoţe se můţe zdát, ţe utajení komunikace je vyhrazeno jen armádě, bezpečnostním sloţkám a diplomacii, je třeba zdůraznit, ţe se s ním setkáme i v civilní oblasti (šifrování obsah souboru, adresáře nebo i disku na PC, šifrovaný protokol https pro přenosy po Internetu, komerční i volně dostupné programy na šifrování mailové korespondence apod.). Jako perličku bych uvedla, ţe BIS zveřejňuje na svých oficiálních webových stránkách mimo otevřených způsobů komunikace (telefon, mail) také způsob kontaktu prostřednictvím silné kryptografie, přičemţ je zde ke staţení veřejný šifrovací klíč ve standardu PGP (Pretty Good Privacy). Pisatel zašifruje text pomocí veřejného šifrovacího klíče a odešle na adresu
[email protected]. BIS upozorňuje, ţe její veřejný šifrovací klíč lze pouţít pouze pro větší diskrétnost komunikace, ale nesmí slouţit k přenosu utajovaných informací podle zákona o ochraně utajovaných informací č. 412/2005 Sb. Doporučuje pouţití nekomerčního programu GnuPG nebo komerčního PGP. [22]. Případy uţití uvedené v bodech 2-4 seznamu pokrývá tzv. elektronický podpis. 40
40
6.2 Elektronický podpis Elektronický podpis je mechanismus, který poskytuje stranám moţnost ověřit, ţe zpráva byla vytvořena oprávněným odesílatelem a ţe během přenosu nebyla pozměněna neoprávněnou osobou. Odesílatel je vlastníkem elektronického podpisu (dále jen EP). Nezaručený EP: Elektronický podpis jsou jakékoli (elektronické) identifikační údaje odesílatele připojené k dokumentu. V širším významu tohoto pojmu můţeme povaţovat za elektronický podpis i prosté (nezašifrované) uvedení těchto identifikačních údajů (například jména a adresy, RČ, čísla OP apod.) To zaručuje identifikaci (jednoznačné určení) osoby odesílatele resp. autora. Nezaručuje to však integritu podepsaného dokumentu ani jeho autentičnost. Zaručený EP: je takový EP, který zaručuje téţ integritu dokumentu a autentizaci podepsaného dokumentu. Zaručený EP zajišťuje integritu systému, tedy prokazatelnost, ţe po podepsání nedošlo k pozměnění či úmyslnému či neúmyslnému poškození dokumentu. Dále zajišťuje nepopiratelnost, tedy ţe autor nemůţe tvrdit, ţe podepsaný elektronický dokument nevytvořil a tím se zříci jeho vytvoření. Kdyţ dokument resp. podpis obsahuje i tzv. časové razítko (timestamp), jsou prokazatelné i datum a čas podepsání dokumentu. Rozdíl mezi EP prostým a zaručeným je tedy obdobný rozdílu mezi úředně neověřeným a ověřeným podpisem.
6.2.1 Praktická realizace EP Z praktických důvodů se nešifruje celý dokument (zdvojnásobovaly by se nároky na přenosový systém a kapacitu úloţišť). Šifruje pouze jeho elektronický otisk (tzv. hash, nebo miniatura). Hash se vytvoří z celého chráněného dokumentu za pouţití takového algoritmu, ţe je prakticky nemoţné změnit dokument tak, aby se při tom nezměnil jeho hash. Hash je mnohem kratší neţ původní dokument. Výhody tohoto přístupu jsou 1. dokument je nezašifrovaný a je tedy čitelný i bez klíče, 2. vyšší rychlost šifrování a dešifrování maličkého hashe dovoluje pouţití sloţitějších (a tedy bezpečnějších) šifer. Opět uvedu pro ilustraci jednoduchý příklad: Hash můţe být vytvořen jako prostý součet všech znaků dokumentu (tedy nejspíše jejich ASCII kódů), tzv. kontrolní součet. Např. zpráva „Potvrzuji převzetí částky Kč 100000,-“ má kontrolní součet 3841. Kdyby chtěl útočník pozměnit zprávu tak, ţe částka bude jen 10000, sníţí se kontrolní součet o 48 na hodnotu 3793. Snadno to ale vykompenzuje přidáním 48 k jinému znaku,
41
41
simulací překlepu, přidáním nevýznamné nuly před číslo účtu či variabilního symbolu, a kontrolka textu bude opět 3793. Přitom strana A bude náhle dluţit ještě 90.000 Kč … Takovýto jednoduchý hash je tudíţ pro kryptografii nepouţitelný. Je nutné pouţít takový algoritmus, který je odolný vůči napadení v těchto aspektech: 1. Odolnost vůči získání předlohy. Z hashe je nemoţné nebo velmi výpočetně náročné získat původní text (funkce je jednocestná, viz kap. Jednocestná funkce). 2. Odolnost vůči získání jiné předlohy. Pro daný vstup je obtíţné spočítat jiný vstup se shodným hashem. Těchto vlastností se docílí tím, ţe je prokazatelná nekorelovatelnost vstupních bitů zprávy a výstupních bitů hashe. Tato vlastnost se v kryptografii nazývá také difuzí (změna 1 bitu vstupu pronikne-difunduje do výstupu jako pseudonáhodná změna všech bitů výstupu). Dále algoritmus musí být odolný vůči tzv. „skoro-kolizím“ (nalezení dvou zpráv M1 a M2 takových, ţe hash(M1) a hash(M2) se liší jen v malém počtu bitů). A konečně jde o tzv. lokální odolnost vůči získání předlohy: je obtíţné najít i jen část vstupu M ze znalosti hash(M). Jedním z nejčastěji pouţívaných algoritmů v praxi je asi MD5 zaloţený na MDA (Message Digest Algorithm), přestoţe od roku 2004 je veřejně znám postup pro nalezení kolizního páru zpráv. Dále se pouţívá SHA (Secure Hash Algorithm), a to ve dvou jeho variantách: SHA-1 je jiţ prolomená funkce, neboť v roce 2005 byl zveřejněn algoritmus k nalezení kolizí. Přesto je stále oblíbenou funkcí, protoţe výpočetní náročnost útoku je stále mimo moţnosti současné výpočetní techniky. Jeho následníka SHA-2 představuje rodina čtyř hashovacích funkcí, SHA-256, -384, -512 a -224, pro něţ dosud nebyly nalezeny ţádné bezpečnostní slabiny.
6.2.2 Praktický postup práce s EP Na straně A – vytvoření EP: 1. Vytvoří hash vstupního dokumentu (zprávy): H = hash (M) 2. Tento hash následně zašifruje svým tajným klíčem: EP = E(H, KD) 3. Odešle dokument M a k němu připojenou hodnotu EP Na straně B – ověření EP: 1. 2. 4. 3. 4.
Přijme M a EP Přijatý EP dešifruje pomocí veřejného klíče strany A: H = D(EP, KE) Vytvoří svoji nezávislou hodnotu hashe vstupního dokumentu: H’ = hash (M) Porovná obě hodnoty: H = H’ ? Jestliţe si odpovídají, je podpis ověřen a dokument povaţuje za důvěryhodný. 42
42
Jestliţe je zaručeno, ţe k tajnému klíči autora A nemá nikdo další přístup, pak nikdo třetí (útočník) nemůţe přešifrovat hash tak, aby po veřejného klíče strany A vznikla správná hodnota. Autor tak nemůţe popřít své autorství. Kdyby byl dokument po podepsání pozměněn nebo poškozen při přenosu, vypočítaní hodnota hashe H’ ≠ H a elektronický podpis je povaţován příjemcem B jako neplatný. Přesto je moţné na tento mechanismus vést útok, a to tak, ţe útočník podvrhne svůj vlastní veřejný klíč místo klíče oprávněné strany a můţe tak nadále vystupovat jako tato strana. K tomu, aby nemohlo dojít k tomuto typu útoku, slouţí tzv. certifikáty.
6.2.3 Certifikáty, certifikační autority Proces předávání dokumentů je v případě pouţití certifikátu poněkud pozměněn. Příjemce postupuje obdobně jako dříve, tj. z dokumentu vypočte hash, veřejným klíčem dešifruje EP, čímţ získá původní hash, a porovná oba hashe. Jediný rozdíl spočívá v tom, ţe k EP je přičleněn certifikát. Certifikát je datová struktura, identifikující jednoznačně svého drţitele a uloţená buď v souboru nebo v hardwaru (čipové kartě). Struktura certifikátu je dána standardem X.509. Vydává jej poskytovatel certifikačních sluţeb, tzv. Certifikační autorita (dále jen CA). Certifikát je tedy dokument, zahrnující veřejný klíč strany a stvrzující, ţe tento klíč patří jednoznačně dané fyzické či právnické osobě. Obsahuje ještě některá další data, např. dobu platnosti klíče a informace o CA. Certifikát obsahuje elektronický podpis CA. Jedním z moţných způsobů získání certifikátu je jeho zaslání pouze na základě platné e-mailové adresy, vyšší míru jistoty poskytuje ovšem osobní ověření ţadatele na základě dokladu totoţnosti v kanceláři certifikační autority. Při komunikaci si strana B nejdříve ověří EP strany A pomocí jeho veřejného klíče, ale také si ověří původ veřejného klíče ověřením podpisu certifikátu pomocí veřejného klíče CA. Rovněţ si musí u CA ověřit, zda uţivatel certifikát nedal pokyn k jeho revokaci. Tato část procesu se nazývá validací. Ověření revokace certifikátu můţe být řešeno on-line přes Internet (např. protokolem OCSP), anebo s vyuţitím seznamu neplatných certifikátů. Existují komerční certifikáty a kvalifikované certifikáty. Pro některé účely, v ČR zejména pro komunikaci s orgány státní správy a státní moci, se vyţaduje tzv. zaručený elektronický podpis. Ten se ověřuje pomocí kvalifikovaného certifikátu. Tato sluţba je zpoplatněna a poplatky u jednotlivých registrátorů se liší. Přehled CA akreditovaných k vydávání kvalifikovaných certifikátů vydává v sekci Povinně zveřejňované informace 43
43
MV ČR, a to na stránkách http://www.mvcr.cz/clanek/prehled-udelenych-akreditaci.aspx.. Zaručený EP u nás vydávají v současné době tři subjekty, a to: První certifikační autorita, a. s. eIdentity, a. s. PostSignum QCA (sluţba České pošty, s. p.) Komerční certifikáty jsou určeny pro pouţití v uzavřených systémech, kde je mezi účastníky současně uzavřena smlouva, řešící podmínky bezpečné komunikace pro šifrování a autentizaci [6]. Certifikát můţe být vázán na čipovou kartu. Komerční serverový certifikát je určen pro bezpečnou komunikaci mezi servery (např. Internet Information Server, Apache apod.) nebo serverem a uţivateli. Kvalifikovaný certifikát musí splňovat aktuální poţadavky dané legislativou, tj. Zákonem o elektronickém podpisu (č. 227/2000 Sb., o elektronickém podpisu a o změně některých dalších zákonů ve znění zákona č. 226/2002 Sb.). Proto je vhodný i pro komunikaci občanů, firem, úřadů, lékařů, advokátů se státní správou a samosprávou (s ČSSZ, FÚ, zdravotními pojišťovnami, celní správou apod.). Kvalifikovaný certifikát lze vyuţít k ověření EP a zajištění neodmítnutelnosti odpovědnosti. Produkt můţe být vázán na čipovou kartu, která zahrnuje i různé funkce pro její uţivatele, např. paměť RAM v řádu desítek kByte, kryptografické funkce DES, 3DES, RSA aţ do 2048 bitů apod. Kvalifikovaný systémový certifikát slouţí zejména pro automatizované systémy bez součinnosti fyzické osoby, tedy např. elektronickou fakturaci, hromadné zasílání emailů, doručenek e-podatelny apod. [13]. Certifikát v tomto případě není povinně vázán na čipovou kartu, neboť zadávání PINu při kaţdém pouţití je neţádoucí. Pro všechny certifikáty platí, ţe počítač je třeba nejprve na pouţívání certifikátu připravit , coţ obvykle zahrnuje následující úkony: Instalovat kořenový certifikát CA Vytvořit ţádost o certifikát a uloţit vzniklý soubor na přenosné médium Navštívit CA a získat certifikát Instalovat certifikát Ještě zmíním moţnost vytvoření certifikátu, který si emitent sám sobě podepíše. Je to tzv. samopodepsaný certifikát (self-signed certificate). V takovém případě musí protistrana přidat do úloţiště veřejný klíč sama (a ověřit ho jinak).
44
44
6.2.4 Právní aspekty pouţití elektronického podpisu V ČR a dalších zemích Evropské Unie platí jiţ několik let legislativa, umoţňující za jistých podmínek pouţívat místo klasického podpisu elektronický podpis. U nás je toto zakotveno v Zákonu o elektronickém podpisu (č. 227/2000 Sb.), který byl zpočátku nedokonalý, kdyţ v něm nebyl plně vyjasněn rozdíl mezi elektronickým podpisem a zaručeným elektronickým podpisem. Tento nedostatek je nyní zdá se odstraněn a zákon tak upravuje v souladu s právem EU „pouţívání elektronického podpisu, elektronické značky, poskytování certifikačních sluţeb a souvisejících sluţeb poskytovateli usazenými na území České republiky, kontrolu povinností stanovených tímto zákonem a sankce za porušení povinností stanovených tímto zákonem.“ [7]. EP se vyuţívá stále více i ve státní sféře, a to i přes setrvačnost úřadů, pokud jde o přizpůsobení se novým technologiím, a nutnost kaţdoročního poplatku za certifikáty. Kromě toho Ústavní soud vydal průlomové rozhodnutí, ţe podání soudům v ČR s připojeným uznaným elektronickým podpisem se nemusí do tří dnů doplňovat originálem v papírové podobě. Tento judikát plně zrovnoprávňuje elektronické a papírové podání.
6.2.5 Aplikace elektronického podpisu ve státní správě ČR 6.2.5.1 Role ministerstva vnitra MV ČR (jmenovitě Odbor koncepce a koordinace informačních a komunikačních technologií ve veřejné správě) vykonává gesci k problematice elektronického podpisu. Odpovídá za projekty elektronizace veřejné správy, které jsou průřezového charakteru a u nichţ je nezbytné zajistit adekvátní úroveň bezpečnosti. Pouţívání kryptografických prostředků je vázáno na současnou úroveň poznání v této oblasti tak, aby šifry a algoritmy byly v mezinárodním kontextu vţdy v dané době povaţovány za bezpečné pro daný účel, tj. aby nehrozilo bezprostřední nebezpečí jejich prolomení. Algoritmy tedy musí respektovat neustálý rozvoj v oblasti kryptoanalýzy a výpočetních techniky. ČR proto ustupuje od pouţívání algoritmu SHA-1 a zabývá se přechodem na SHA-2. Součástí přechodu na silnější kryptografii je i stanovení minimální přípustné délky klíče algoritmu RSA na 2048 bitů.
45
45
6.2.5.2 Datové schránky Datové schránky jsou elektronické úloţiště zřizované a spravované MV a určené k doručování a provádění úkonů vůči orgánům veřejné moci. Pomocí DS lze posílat a přijímat úřední dokumenty v elektronické formě (datové zprávy), přičemţ tento způsob komunikace vynahrazuje klasický způsob doručování v listinné podobě. Občan, který má zaloţenou datovou schránku, bude moci většinu korespondence od orgánů veřejné moci přijímat elektronicky. Elektronické dokumenty jsou opatřeny elektronickým podpisem odesílajícího orgánu. Kdyţ dokument odesílá občan, musí jak také označit zaručeným elektronickým podpisem. Za okamţik doručení dokumentu do datové schránky je povaţován okamţik přihlášení oprávněné osoby do její datové schránky. Obdobně jako u listovních zásilek zde funguje tzv. fikce doručení (nepřihlásíte-li se do datové schránky ve lhůtě 10 dnů ode dne, kdy byl dokument dodán do datové schránky, povaţuje se tento dokument za doručený posledním dnem této lhůty) a pravidlo, ţe doručení dokumentu má stejné právní účinky jako doručení do vlastních rukou. Všechny tyto moderní funkce umoţňuje právě mechanismus EP a silné kryptografie,
aplikované
tak,
aby
byly
naplněny
podmínky
nepopiratelnosti,
nezaměnitelnosti obsahu apod. Vstup do DS je realizován po webovém rozhraní přes zabezpečený protokol https (viz dále), s moţností přidané bezpečnosti pomocí digitálního certifikátu. Ten se nachází buď na disku počítače nebo na externím médiu (USB „klíčenka“, čipová karta, USB tokenu). 6.2.5.3 Národní bezpečnostní úřad (NBÚ) NBÚ se zabývá ochranou utajovaných informací a bezpečnostní způsobilostí subjektů. Vzhledem k prudkému vývoji v oblasti kryptoanalýzy hashovacích funkcí (nalezení kolizí u některých hashovacích funkcí) vydalo NBÚ následující prohlášení: „Doporučuje se nadále nepouţívat hashovací funkce s výstupem menším neţ 160 bitů (např. hashovací funkce MD4, MD5, RIPEMD, HAVAL-128 atd.). Doporučuje se neprodleně zahájit přípravu k přechodu od hashovací funkce SHA-1 na novou generaci hashovacích funkcí třídy SHA-2 (SHA-224, SHA-256, SHA-384 a SHA-512). Doporučuje se prozkoumat všechny bezpečnostní aplikace i kryptografické prostředky, ve kterých se vyuţívá hashovacích funkcí a odborně posoudit vliv nejnovějších kryptoanalytických útoků na jejich bezpečnost.“ [5].
46
46
6.3 Platební karty Karty (debetní, kreditní a charge) se pouţívají v platebních terminálech a systémech platebních karet. Jen v ČR bylo v loňském roce cca. 8 milionů karet různých druhů. To představuje velké lákadlo k útokům (od phishingu, přes kopírování, skimming aţ po klasické kapesní krádeţe), a proto musí být karta i transakce dobře zabezpečeny. Od roku 2003 se u nás zavádí první čipové karty (první na světě byly ve Francii v 90.letech). Nahrazují karty s magnetickým prouţkem a platby tak činí bezpečnějšími. Data z čipu je moţné narozdíl od magnetického prouţku přečíst jen velmi těţko, a ani jejich zkopírování není triviální, protoţe karta obsahuje mikroprocesor (SmartCard kontaktní a bezkontaktní) nebo přinejmenším paměť (WORM, Write Once Read Many). Navíc k provedení transakce je vyţadován PIN (nestačí jen podpis). Transakce s kartou je v zásadě třífázová: 1) Ověření karty (je karta pravá?) 2) Ověření drţitele (je oprávněn kartu pouţít?) 3) Autorizace transakce (lze transakci provést?), přičemţ veškerá data, která se během tohoto procesu přenáší po síti, jsou povinně kryptována. Největší bezpečnostní riziko nese transakce bez fyzické přítomnosti karty, tj. zejména po Internetu. Proto se implementuje systém 3DSecure, spočívající v oddělení platby od obchodu (zákazník poskytuje údaje o své kartě přímo jen bance, nikoli obchodníkovi), přičemţ přenos dat probíhá přes https (viz kapitola Protokol HTTPS). Jako velmi perspektivní pro internetové platební transakce uskutečňované prostřednictvím běţných platebních karet se jeví protokol SET (Secure Electronic Transaction). SET je otevřená specifikace vyvinutá společnostmi MasterCard, Visa, IBM, Microsoft, Netscape, Verisign a RSA. Nejde o platební systém, ale o sadu protokolů a definic formátů zpráv pro platební transakce. Subjekty SET jsou [21]: Cardholder (vlastník platební karty, nakupující) Merchant (prodávající strana) Issuer (finanční instituce) Acquier (účtující banka, ověřuje a zpracovává platbu platební kartou) Payment gateway (instituce, vytvářející rozhraní na Internet) Certification Authority (CA) pro majitele karty, obchodníka i platební bránu Kryptografické sloţky protokolu SET jsou [21]: tajný klíč transakce soukromý a veřejný klíč zákazníka certifikát veřejného klíče zákazníka soukromý a veřejný klíč obchodníka 47
47
certifikát veřejného klíče obchodníka soukromý a veřejný klíč platební brány certifikát veřejného klíče platební brány.´ Klíčovou organizací v oblasti poskytování sluţeb v bezhotovostním platebním styku v ČR je MÚZO, a.s. (Mechanizační ústředna zahraničního obchodu). Zabezpečuje autorizaci a zúčtování kartových transakcí. Na autorizační centrum MÚZO bylo ke konci roku 2004 připojeno 1.534 bankomatů a 24.742 platebních terminálů. [22]
6.4 Zabezpečené internetové protokoly 6.4.1 Protokol HTTPS Pro bezpečný přenos dat po síti Internet se pouţívá nadstavba síťového protokolu HTTP, nazývaná HTTPS (Secure). Tento protokol zabezpečuje spojení mezi webovým prohlíţečem a serverem před odposlechnutím dat či podvrţením dat. Umoţňuje také autentizovat protistranu. Vrstva, která obaluje stávající nezabezpečený protokol HTTP, je SSL nebo TLS, vyuţívající asymetrické šifrování. Strana A a B si před zahájením komunikace vygenerují páry klíčů (tajný a veřejný) a vymění si své veřejné klíče. Autenticita veřejného klíče můţe být ověřena u protistrany například pomocí jiného bezpečného kanálu (telefon, SMS apod.), anebo se běţněji pouţívá principu přenosu důvěry (protistrana předá klíč digitálně podepsaný certifikační autoritou, které důvěřují obě strany). Vlastní komunikace po HTTPS poznáme na straně klienta snadno: URL adresa začíná „https://“ a následuje adresa webu, obvykle běţné www.atd. Tento protokol pouţívají nejčastěji banky pro internetové bankovnictví, občas se s ním setkáme i ve vstupních formulářích na „lepších“ stránkách při zadávání osobních údajů v procesu registrace uţivatele a pro bezpečné přihlášení uţivatele. Například při přístupu na Aukro je URL adresa http://www.aukro.cz/, ale po prokliknutí na přihlašovací masku se ihned změní na https://ssl.aukro.cz/enter_login.php. Přihlašovací maska např. u internetového bankovnictví České spořitelny (Servisu 24) je https://www.servis24.cz/ebanking-s24 atp.
48
48
6.4.2 Protokoly FTPS a SFTP Protokol FTP pro přenos souborů mezi klientem a serverem je dnes vyuţíván asi nejčastěji k přenosu souborů na internetové servery pro tzv. upload souborů (uloţení nových či aktualizaci existujících souborů webových prezentací). Většina FTP klientů (FreeZilla, TotalCommander, ...) má přitom v sobě uloţeno heslo v čisté, nezašifrované formě a právě tak nešifrovaně je přenáší na server při navázání spojení. Proto vznikla mutace tohoto protokolu FTPS, v níţ je přenosu dat předřazena vrstva SSL (Secure Socket Layer). [5, str. 55]. Jako náhrada za telnet, který také nešifruje komunikaci, vzniklo SFTP, pouţívající SSH 2.0 (Secure Shell).
6.4.3 Řešení bezpečnosti v internetovém bankovnictví Přihlašování uţivatele (klienta) do aplikací Internet bankingu, označovaného často jako přímé bankovnictví, se děje v zásadě jedním ze tří přístupů: 6.4.3.1 Pomocí uživatelského jména a hesla Je to nejméně bezpečný, ale levný a jednoduchý způsob. Uţivatel (klient banky) se přihlašuje do bankovní aplikace pomocí loginu a hesla (obojí je vygenerováno bankou při zaloţení sluţby, heslo si uţivatel posléze změní). Moţné riziko je, ţe někdo nepovolaný zjistí (odpozoruje, odposlechne pomocí keyloggeru) tyto dva údaje. Pro vyšší bezpečnost se proto pouţívá doplňkového prvku zabezpečení pomocí SMS zprávy, kterou generuje banka jednorázově a má platnost např. 2 minuty. Klient musí v tomto časovém intervalu natypovat 6- aţ 8-místný PIN, sdělený mu v SMSce. Potenciální útočník by tedy musel znát klientova přihlašovací data a ještě se zmocnit jeho mobilního telefonu. Např. u ČS se zadává SMSkou předaný PIN pro kaţdou transakci i pro instrukce (změny TP a SI), a např. u GE Money se zadává i pro přihlášení. 6.4.3.2 Pomocí klientského certifikátu Certifikát je uloţen na čipové kartě, která komunikuje s počítačem přes čtečku. Čipová karta provádí kryptografické výpočty a sama komunikuje s bankovní aplikací. Pouţití klientského certifikátu je pohodlné, neboť uţivatel zadává jen PIN k čipové kartě. 6.4.3.3 Pomocí autentizačního kalkulátoru Autentizační kalkulátor (téţ PIN kalkulátor, elektronický klíč, generátor jednorázových hesel, dále jen AK) je zařízení, nejčastěji připomínající kalkulačku – viz Příloha č.9. 49
49
Autentizační kód klienta je metoda, kdy AK generuje v pravidelných intervalech posloupnost PINů, závislou na interních parametrech AK a unikátních pro kaţdý AK). Obě strany znají interní parametry AK a nelze vypočítat ani předpovědět PIN následující. Kód se pouţije pro přihlášení do bankovní aplikace (např. u ČS, aplikace SERVIS 24 Internetbanking, jen v případě, ţe si klient aktivoval metodu přihlašování s autentizačním kalkulátorem. Lze jej pouţít pouze jednou, a to do 60 minut od vygenerování). Autentizační kód zprávy (Message Authentication Code, MAC) se generuje podobně, tedy na základě interní parametrů AK, ale také podle vybraných údajů transakce (obv. částka, číslo účtu a VS platby). AK pak vygeneruje MAC, který se spolu se zprávou předá bance. Banka vypočte očekávaný kód a porovnáním ověří autenticitu odesílatele a současně i integritu zprávy. MAC zprávy má platnost v řádu hodin (např. u ČS je to 22 hodin). Několik relevantních údajů k jednotlivé transakci je tedy nutno do AK natypovat, AK vygeneruje kód a klient ho natypuje do bankovní aplikace. Proces je náročný na čas i pečlivost obsluhy, ale je to nejbezpečnější, byť sloţité a pro klienta nepohodlné řešení.
6.5 Bezpečné přihlašování uživatelů V Internetových aplikacích, kde jde o osobní data, ale i v nejrůznějších lokálních systémech firem a operačních systémech je třeba zajistit přihlašování (logging-in) oprávněných uţivatelů. Uţivateli je vytvořen tzv. účet, který obvykle zahrnuje uţivatelské jméno (login, či user name) nebo přezdívku (nick) a heslo (password) a dále různé proprietární atributy, např. role v systému a nejrůznější další potřebná nastavení. Z bezpečnostního hlediska nás bude zajímat především to, jak systém vyhodnocuje při přihlášení, zda se jedná o oprávněného uţivatele. Musí uţivatele nějakým způsobem autorizovat na základě shody s heslem, které natypuje. Heslo však nesmí být v systému uloţeno přímo v jeho čitelné podobě. Z tohoto hlediska jsou v zásadě moţné dva přístupy: 1)
Heslo je uloţeno v zašifrované formě. Při přihlašování se rozšifruje a porovná se s natypovaným heslem. V případě shody se jedná o oprávněného uţivatele.
2)
Heslo je uloţeno v zašifrované formě, ale jednocestnou funkcí (obv. hash MD5), takţe nejde dešifrovat. Při přihlášení se natypované heslo také zašifruje toutéţ funkcí a porovnají se hashe. V případě shody se jedná o oprávněného uţivatele. Je zřejmé, ţe oba přístupy budou funkční, ale druhý jmenovaný mechanismus je
správnější, protoţe kromě zamezení přihlášení neoprávněného uţivatele navíc brání přečtení hesla někým, kdo má náleţité oprávnění a dostal by se k zašifrovaným heslům 50
50
(administrátor, zkušený uţivatel, hacker). Díky jednocestnosti funkce hash(psswd) není moţné z hodnoty uloţené v systému zpětně odvodit vlastní hodnotu hesla. Jednosměrný obraz musí splňovat všechny podmínky kladené na jednocestnou funkci, tj. zejména difuzi: i nepatrná změna v hesle vyvolá významné a pseudonáhodné změny v jeho otisku. Zkusila jsem si vytvořit dva uţivatelské účty na zabezpečeném webu, k jehoţ heslům mám přístup, a výsledná uloţená hesla vypadala takto: Tab.č.6: Bezpečné přihlašování uţivatelů Uţivatel eva1 eva2
Heslo hesloeva1 hesloeva2
Uloţené heslo (jednocestná funkce MD5) 2da611fc789b24d6996ee9550e06e7a3 f0f564f9828c3f17abce5be3178c049d
Zdroj: vlastní
6.6 VPN Poměrně zajímavou aplikací postavenou na kryptografii je virtuální privátní síť, VPN (Virtual Private Network). Slouţí k propojení několika počítačů prostřednictvím veřejné, tj. nedůvěryhodné sítě, nejčastěji Internetu. Počítače mezi sebou mohou komunikovat, jako by byly propojeny v rámci jediné uzavřené, důvěryhodné sítě. Totoţnost stran spojení se ověřuje pomocí certifikátu. Po úspěšné autentizaci se naváţe šifrovaná komunikace. Ve firemní síti je nastaven VPN server s připojením k Internetu. Na něj se pak napojují jednotliví klienti. Server plní funkci síťové brány a zabezpečuje nejen vlastní připojení, ale i a šifrování síťové komunikace. Mechanismus zajišťuje, ţe kdyţ se uţivatel připojil na VPN server, pak je tím, za koho se vydává (je autentizován). VPN sítě tak mohou realizovat například bezpečné připojení firemních notebooků na vnitřní firemní síť z pohodlí domova nebo vlastně jakéhokoli místa na světě, kde je přístup k Internetu. Uţivatel pak má přístup k síťovým prostředkům ve své organizaci (disky, tiskárny, …), jako by seděl na svém pracovišti. Pouţije-li navíc některého nástroje pro připojení ke vzdálené ploše (např. pod MS Windows® Remote Desktop Connection, mstsc.exe), získá přístup ke (svému či jinému pro něho dostupnému) počítači tak, jako by seděl přímo u něj. Umoţňuje to zcela plnohodnotnou práci na dálku, omezenou pouze rychlostí jeho připojení k Internetu viz Příloha č.10.
51
51
6.7 Zabezpečení dat na úrovni hardwaru Z mnoţství různých řešení k podpoře bezpečnosti v IT vysvítá poměrně čerstvá technologie TPM (Trusted Platform Module), která má naději na značné rozšíření. Na základní desce počítače je vestavěn čip nebo je instalována přídavná karta s čipem, který řeší různé úlohy v souvislosti s bezpečností: ukládání klíčů, hesel a certifikátů. Čip obsahuje pevně uloţený RSA tajný klíč, tzv. Endorsment Key, který se nikdy nepředává ven z čipu. Čip realizuje také tzv. autentizaci platformy: jde o kontrolu integrity zařízení, na němţ běţí, přičemţ konfigurace počítače je při prvním spuštění uloţena ve formě hashe do vnitřního registru čipu. Při výraznější změně konfigurace nastoupí restrikce pro uţivatele, protoţe se předpokládá, ţe čip byl přenesen na jiný počítač. Starší alternativou zabezpečení počítače je SmartCard. Je to plastová karta obvykle o velikosti platební karty, na níţ se uchovávají certifikáty a soukromé klíče. Systém MS Windows® od verze XP umoţňuje plné vyuţívání SmartCard, samozřejmě za předpokladu, ţe počítač je vybaven odpovídajícím hardwarem a softwarem. Obdobou karty jsou různé hardwarové klíče, realizované zpravidla jako modul, který je třeba vsunout do sériového nebo paralelního portu PC nebo do USB vstupu . U všech podobných platforem by se mělo jednat o nezfalšovatelné médium pro uchovávání klíčů a digitálních podpisů pro identifikaci a zabezpečený přenos přihlašovacích údajů mezi počítači, zejména po lokálních sítích. Poměrně
rozšířená
je
také
biometrická
identifikace
uţivatelů,
zejména
u přenosných počítačů. Před přihlášením uţivatele se snímá některý biometrický údaj, u něhoţ je záruka jedinečnosti a nezcizitelnosti. Vedle jiţ všeobecně známého snímání otisku prstu byla na loňském Cebitu představena metoda snímání iris (oční duhovky) webkamerkou notebooku. Ať uţ se snímá jakýkoli parametr lidského těla, společným jmenovatelem je, ţe se snímaná hodnota vyjádří nějakou matematickou funkcí jako data, a ta se uloţí ve formě hashe v chráněném počítači. Pro utajení dat a zamezení neautorizovanému přístupu slouţí mnoţství komerčních produktů, které řeší šifrování pevného disku počítače, např. DisCryptor a mnohé další. Kvůli rychlosti nepouţívají silnou kryptografii, ale kvalitní blokové šifry, obvykle zaloţený na standardu AES (Advanced Encryption Standard), náhradě DESu s délkou klíče 256 bitů, schválenou NSA do stupně Přísně tajné. Šifrují se nejen lokální disky počítače, ale i síťové disky či přenosná flash média. Šifrují se jednotlivé soubory či celé adresáře.
52
52
7 Budoucnost a trendy kryptografie Při závratné rychlosti vývoje ICT a specificky kryptografie je dosti obtíţné a nejisté cokoli předvídat. S úspěchem bych zde mohla parafrázovat práci jednoho amerického amatérského kryptologa z meziválečného období, který na téma „Co vím o budoucnosti bavlny“ vydal knihu obsahující 100 bílých listů. Přesto se pokusím jen velmi stručně nastínit moţné směry vývoje v této oblasti. S pravděpodobností hraničící s jistotou se bude prodluţovat délka klíče u silné asymetrické kryptografie i u kvalitních blokových šifer tak, aby obstály před potenciálním útokem hrubou silou ve světě vzrůstajícího výkonu počítačů. Obtíţnost řešení matematických problémů spojených s kryptografií je naštěstí nelineární (viz v příloze graf o náročnosti útoku na RSA), takţe tempo prodluţování počtu bitů klíče nemusí sledovat Moorův zákon. Bude se dále vést výzkum v oblasti algoritmů teorie čísel, na kterých jsou postaveny soudobé silné šifry. Průlomy, byť částečné, do některých systémů, zaloţené na lepším pochopením některých matematických problémů, jsou zajímavým překvapením, ale ne zas tak velkým, kdyţ uváţíme, ţe i v dnešní době se občas některému výjimečnému vědci nebo týmu podaří vyluštění stovky let starých matematických problémů (např. v roce 1993 Velká Fermatova věta a v r. 2002 Poincarého domněnka). A konečně, ale v neposlední řadě, se domnívám, ţe vedle kvantity (posilování délky klíčů) dojde i k posunu kvalitativnímu. Velkým „hitem“ dalších let by mohl být princip kvantové kryptografie, QKD (Quantum Key Distribution) a jednočásticového protokolu. Některé, uţ i praktické práce na tomto poli naznačují velmi slibnou budoucnost. Také se budou zřejmě rozšiřovat oblasti aplikace kryptografie, pravděpodobně směrem k „elektronickým penězům“ a elektronickým volbám.
53
53
8 Závěr Téma kryptografie a kryptoanalýzy mě jiţ delší dobu zajímá, a proto jsem se rozhodla pouţít je jako námět pro svou bakalářskou práci. Avšak kryptografie a bezpečnost dat, jakkoli je to mladý vědní obor, je dnes nesmírně rozsáhlý do šíře i hloubky. Aby tedy měla moje práce nějaký větší přínos neţ jen hrubý popis problematiky, bylo zjevné, ţe se musím ve svém záměru specializovat. Prvních dvě kapitoly práce přehledně popisují základní pojmy a způsoby pouţití kryptografických a kryptoanalytických metod. Ve třetí kapitole se zaměřuji na některé typické druhy útoků na kryptosystémy. Ve čtvrté a páté kapitole shrnuji nejdůleţitější historické etapy ve vývoje kryptografie aţ k moderním, silným kryptosystémům. Dále se práce soustředí jiţ specificky na aplikaci kryptografie v elektronickém bankovnictví a obchodování, tedy zejména na osvětlení pozadí elektronického podpisu a principu certifikace, vysvětlení zabezpečeného internetového protokolu, mechanismu přihlašování uţivatelů, internetového tunelu VPN aj. Na závěr se zamýšlím nad trendy a moţným vývojem v kryptografii.
54
54
Bibliografie [1]
Česko. Zákon č. 412/2005 Sb. o ochraně utajovaných informací a o bezpečnostní způsobilosti. In Sbírka zákonů Česká republika. 2005, částka 143.
[2]
ADÁMEK, Milan. Tajemný svět šifer, připravovaná publikace.
[3]
CLARK, R.W. Muž, který odhalil Purpur. Praha : Naše vojsko, 1983. 187s. ISBN 28-051-83.
[4]
DEAVOURS, C.; KRUH, L; KHAN, D. Cryptology – Machines, History And Methods. Boston/London : Artech House, 1989. 508s. ISBN 89006-399-0.
[5]
DOSEDĚL,Tomáš. Počítačová bezpečnost a ochrana dat. Computer Press Brno 2004. 190s. ISBN 80-251-0106-1.
[6]
DOSTÁLEK , Libor; VOHNOUTOVÁ, Marta. Velký průvodce infrastrukturou PKI a technologií elektronického podpisu. Praha : Computer Press, 2006. 534s. ISBN 80-251-08287-7.
[7]
DOSTÁLEK, Libor a kolektiv. Velký průvodce protokoly TCP/IP: Bezpečnost. Praha: Computer Press, 2003. 571s. ISBN 80-7226-849-X.
[8]
GROŠEK, Otakar; PORUBSKÝ, Štefan. Šifrovanie – algoritmy, metódy, prax. Praha: Grada, 1992. 268s. ISBN 80-85424-62-2.
[9]
JANEČEK, Jiří. Odhalená tajemství šifrovacích klíčů minulosti. Praha: Naše vojsko, 1994, ISBN 80-206-0462-6.
[10]
JANEČEK, Jiří. Gentlemani (ne)čtou cizí dopisy. Brno: BOOKS Brno, 1998, ISBN 80-85914-90-5.
[11]
JANÁK, Michal. Moderní aplikace šifer. Praha, 2009, Diplomová práce. BIVŠ.
[12]
JEŢEK, Jakub. Kryptografické metody. Praha,2009, Diplomová práce. BIVŠ.
[13]
První certifikační autorita a.s. [online]. [cit. 2010-03-25]. Kvalifikovaný Certifikát.
Dostupné z WWW: < http://www.ica.cz/cz/menu/29/produkty-a-sluzby/certifikaty/>. [14]
KLÍMA, Vlastimil. Základy moderní kryptologie – Symetrická kryptografie II. verze 1.2. [online]. 2004. Dostupné z WWW:
< http://crypto-world.info/klima/mffuk/Symetricka_kryptografie_II_2004.doc>. [15]
Česko. Zákon č. 227/2009 Sb. o elektronickém podpisu. In Sbírka zákonů Česká republika. (citace 226/2002 Sb., 517/2002 Sb., 440/2004 Sb., 635/2004 Sb., 501/2004 Sb., 444/2005 Sb.,) částka 37/2010 Sb., s. 1139 .
1
1
[16]
MARKUS, Jan. Ochraňte datové schránky. Connect!. 2009, Prosinec, Brno:CPress Media Brno, ISSN 1211-3085.
[17]
Národní Bezpečnostní úřad. E-komunikace. [online]. [cit. 2010-03-22]. Dostupné z WWW: < http://www.nbu.cz/cs/e-komunikace/>.
[18]
BROŢ, Vladimír. Kybernetičtí zločinci mění své priority. Connect!. 2009, Květen, Brno: CPress Media Brno, ISSN 1211-3085.
[19]
První Certifikační Autorita a.s. (I.CA). [online]. [cit. 2010-03-18]. Dostupné z WWW: < http://www.ica.cz>.
[20]
Bezpečnostní a informační sluţba. Bezpečnost informačních a komunikačních systémů. [online]. [cit. 2010-03-20]. Dostupné z WWW: < http://www.bis.cz/kontakt.html>.
[21]
Akela Mendelu. Studentský server. Bezpečnost komunikačních procesů, [cit. 201003-20]. Dostupné z WWW: < https://akela.mendelu.cz/~lidak/bis/11prot.htm>.
[22]
MÚZO, a.s., [cit. 2010-03-20]. Dostupné z WWW: < http://www.muzo.cz/>.
[23]
Ministerstvo Vnitra ČR. Informace k používání elektronického podpisu. [online]. [cit. 2010-03-22]. Dostupné z WWW: < e-podpis na stránkách Ministerstva vnitra ČR >.
[24
Elektronický podpis. [online]. [cit. 2010-03-26]. Dostupné z WWW: < Rozbor judikátu, který říká, ţe se elektronické soudní podání nemusí doplňovat papírovým >.
[25]
Datové schránky. O datových stránkách. [online]. [cit. 2010-03-18]. Dostupné z WWW: < http://www.datoveschranky.info/o-datovych-schrankach-text/>.
2
2
Přílohy Příloha č. 1 Standardní frekvence znaků ve vybraných jazycích Znak
Angličtina
Němčina
Italština
Čeština
A
7,88
5,26
11,42
8,45
B
1,44
2,03
1,00
1,55
C
2,89
2,22
4,30
3,62
D
4,06
4,96
3,64
3,62
E
12,94
18,80
11,70
10,67
F
2,75
1,73
1,05
0,27
G
1,69
3,80
1,68
0,27
H
5,61
4,51
1,19
2,44
I
7,26
8,11
11,66
7,62
J
0,20
0,08
0,00
2,11
K
0,42
1,17
0,00
3,73
L
3,56
3,24
6,23
3,84
M
2,53
2,10
2,58
3,22
N
7,40
10,85
7,28
6,61
O
7,41
2,82
9,38
8,69
P
1,98
0,52
2,85
3,41
Q
0,16
0,01
0,54
0,00
R
6,74
7,01
6,47
4,91
S
6,53
7,04
4,90
5,32
T
9,36
5,43
6,34
5,76
U
2,63
4,61
3,05
3,94
V
1,08
0,92
1,88
4,66
W
1,65
1,44
0,00
0,00
X
0,24
0,00
0,00
0,07
Y
1,52
0,00
0,00
2,98
Z
0,07
1,34
0,86
2,29
100,00
100,00
100,00
100,00
Suma
Zdroj: [2]
3
3
Příloha č. 2
R e l.č e tn o s t %
Četnost znaků ve vybraných jazycích
20 18 16 14 12 10 8 6 4 2 0 A
B
C
Č e š tin a
D
E
F
G
An g ličtin a
H
I
J
K
L
M N
N ě m čin a
O
Ita lš tin a
P
Q
R
S
T
U
V W
X
Y
Z
Zna k
Zdroj: [2]
4
4
Příloha č. 3 Tabulka Vigenère pro víceabecední substituci
+01 +02 +03 +04 +05 +06 +07 +08 +09 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
J K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
M N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Zdroj: [2]
5
5
Příloha č. 4 Fleissnerova otočná mříţka
Zdroj: [2]
6
6
Příloha č. 5 Příklad propojení v kotouči Enigmy
Zdroj: [2]
7
7
Příloha č. 6 Operace XOR Vstup 1
Vstup 2
Výsledek
0
0
0
0
1
1
1
0
1
1
1
0
Zdroj: vlastní
8
8
Příloha č. 7 Blokové schéma algoritmu DEA
Zdroj: [2]
9
9
Příloha č. 8 Výpočetní sloţitost útoku na RSA
logaritmus počtu operací
Výpočetní složitost útoku na RSA 100,0 90,0 80,0 70,0 60,0 50,0 40,0 30,0 20,0 10,0 0,0 50
100
150
200
300
Dé lk a k líče
Zdroj: vlastní
10
10
Příloha č. 9 DIGIPass, PIN kalkulátor
Zdroj: vlastní
11
11
Příloha č. 10 VPN autentizátor
Zdroj: vlastní
12
12