OBSAH

Úvod 11

1 Teorie klasické kryptologie 12

1.1 De nice pojmů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2 Rozdělení klasických šifrových systémů . . . . . . . . . . . . . . . . . 13

1.2.1 Substituce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.2.2 Transpozice . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.3 Základní metody luštění šifer . . . . . . . . . . . . . . . . . . . . . . 23

1.3.1 Index koincidence . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.3.2 Frekvenční analýza . . . . . . . . . . . . . . . . . . . . . . . . 25

1.4 Luštění . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

1.4.1 Obecný postup luštění klasických šifer . . . . . . . . . . . . . 30

1.4.2 Luštění monoalfabetické substituce . . . . . . . . . . . . . . . 31

1.4.3 Luštění polyalfabetické substituce . . . . . . . . . . . . . . . . 31

1.4.4 Luštění jednoduché transpozice . . . . . . . . . . . . . . . . . 32

2 Návrh software 34

3 Závěr 40

Literatura 41

Seznam symbolů, veličin a zkratek 42

SEZNAM OBRÁZKů

1.1 Rozdělení klasických šifrovacích systémů . . . . . . . . . . . . . . . . 13

1.2 Fleissnerova otočná mřížka . . . . . . . . . . . . . . . . . . . . . . . . 22

1.3 Využití indexu koincidence . . . . . . . . . . . . . . . . . . . . . . . . 24

1.4 Obecný postup při luštění klasických šifer . . . . . . . . . . . . . . . 30

2.1 Šifrování pomocí softwaru . . . . . . . . . . . . . . . . . . . . . . . . 35

2.2 Luštění pomocí softwaru . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.3 Návrh softwaru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

SEZNAM TABULEK

1.1 Příklad šifrové abecedy - monoalfabetická substituce . . . . . . . . . . 14

1.2 Příklad zašifrování textu monoalfabetickou substitucí . . . . . . . . . 14

1.3 Vytvoření šifrové abecedy pomocí klíče . . . . . . . . . . . . . . . . . 15

1.4 Tabulka abeced pro polyalfabetickou šifru . . . . . . . . . . . . . . . 17

1.5 Šifrování slova lokomotiva pomocí polyalfabetické šifry . . . . . . . . 18

1.6 Převod písmen na pozice . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.7 Otevřený text před zašifrováním jednoduchou transpozicí . . . . . . . 21

1.8 Výměna sloupců při transpozici dle zvoleného klíče . . . . . . . . . . 21

1.9 Index koincidence pro vybrané druhy jazyků . . . . . . . . . . . . . . 24

1.10 Frekvence písmen české abecedy . . . . . . . . . . . . . . . . . . . . . 26

1.11 Frekvence písmen základní abecedy (26 znaků) . . . . . . . . . . . . . 27

1.12 Nejčastější bigramy českého jazyka . . . . . . . . . . . . . . . . . . . 28

1.13 Nejčastější trigramy českého jazyka . . . . . . . . . . . . . . . . . . . 28

ÚVOD

V historii kryptologie mezi sebou odedávna soupeří dvě skupiny - šifranti a luštitelé.

V některých obdobích dějin měla navrch kryptoanalýza (např. po objevu metody

frekvenční analýzy arabskými vědci), v současné době však vítězí spíše kryptogra e

- existují šifrovací algoritmy, které neumíme v reálném čase prolomit. Moderní kryptogra

e, tak jak ji známe dnes, se začala rozvíjet na počátku 20. století, zejména

s masovým rozšířením telegra e. Následoval velký rozmach šifrovacích systémů bě-

hem 2. světové války (mimo jiné se začaly běžněji využívat mechanické stroje, např.

velmi známá Enigma). Od druhé poloviny 20. století se potom začínají šifry roz-

šiřovat také do obchodní a nanční sféry. Kryptogra e tak přestála být záležitostí

téměř výhradně vojenskou.

Využití kryptoanalýzy je v dnešní době poměrně široké. Na jednu stranu se jedná o

přímé luštění zachycených šifrových zpráv (ať už se jde o vojenské, diplomatické či

obchodní texty), a na stranu druhou se pomocí kryptoanalýzy přímo zkoumá odolnost

šifrových systémů při jejich navrhování. Moderní kryptoanalytické metody se

dnes již nesnaží pouze odhalit skrytý obsah zpráv, ale také se pokouší např. prolomit

integritu dat, podvrhnout autentizaci atd. Ačkoliv se může zdát, že klasická kryptoanal

ýza je tedy v dnešní době prakticky již přežitá, ve skutečnosti jsou moderní

metody právě na jejích základech postaveny. Z toho plyne důležitost její výuky - aby

studenti co nejlépe pochopili danou problematiku, je třeba použít co nejvíce názorné

pomůcky.

1 TEORIE KLASICKÉ KRYPTOLOGIE

1.1 Defi nice pojmů

Aby bylo možno podrobněji popsat klasické šifrové systémy a metody jejich luštění,

je nutno de novat si některé pojmy.

Šifrový nebo také kryptogra cký systém je jakýkoliv systém, který lze použít k pozměnění

textu nějaké zprávy s cílem učinit ji nesrozumitelnou komukoliv jinému s výjimkou adresáta,

kterému je určena. Původní zpráva je nazývána otevřeným textem, pozměněná zpráva je

šifrový text. Proces změny zprávy za pomocí šifrového systému se nazývá šifrování. Je to

tedy postup, pomocí kterého lze převést otevřený text na šifrový. Při tomto převodu se obvykle

používá klíč - určitý parametr šifrového systému, který ovlivòuje podobu výsledného šifrového

textu. Autorizovaná osoba (ta, pro kterou je zpráva určena) může provést původní rekonstrukci

zprávy - její dešifrování, což je proces opačný k šifrování. Pro dešifrování zprávy je nutné znát

typ šifrového systému a příslušný klíč. O původní zprávu však může mít zájem i nepovolaná

osoba, bez znalosti parametrů systému i systému samotného - ta se může pokusit o luštění.

Je to proces, jehož cílem je získat otevřený text z textu zašifrovaného bez znalosti potřebných

informací (klíče). Symetrický šifrovací systém používá stejný klíč pro šifrování i dešifrování.

Pro zajištění bezpečnosti by tento klíč měl zůstat utajený. Existují také asymetrické šifrovací

systémy. Používají 2 typy klíčů: tzv. veřejný, který slouží pro zašifrování, a druhý tzv. neveřejný,

který slouží pro dešifrování. Klíče jsou navzájem odlišné (ačkoliv mezi nimi existuje určitý vztah);

veřejný klíč lze zveřejnit, protože jeho pomocí nelze šifrový text dešifrovat ani rozluštit.

Každá zpráva je zapsána pomocí abecedy - obvykle abecedy původního jazyka. Abeceda se

skládá z jednotlivých symbolů - písmen, číslic, atd. Posloupnost těchto znaků se nazývá řetězec.

Pomocí abecedy otevřeného textu je zapsána původní zpráva; zašifrovaná zpráva (nazývaná

také kryptogram) je zapsána pomocí šifrové abecedy. Tyto dvě abecedy mohou (ale nemusí) být

totožné.

Věda o šifrování se nazývá kryptografi e. Zabývá se tvorbou šifrovacích a dešifrovacích algoritmů,

jejím cílem je utajit význam zprávy. Jinými slovy, zkoumá metody utajování významu zpráv pomocí

převodu do podoby, která je čitelná pouze s určit ými znalostmi.

Opakem kryptografi e je kryptoanalýza. Je to věda o metodách luštění šifrovacích systémů bez

znalosti klíče. Dále se zabývá analýzou odolnosti těchto systémů. Slovo kryptoanalýza taktéž

pochází z řečtiny, konkrétně ze dvou řeckých slov, a to kryptós - skrytý a analýein - uvolnit či rozvázat.

Kryptografi e a kryptoanalýza tvoří společně vědní obor s názvem kryptologie.

1.2 Rozdělení klasických šifrových systémů

Šifrovací systémy se v základu rozdělují do dvou kategorií: substituce a transpozice.

OBRAZEK

Substituční šifra je historicky starší, její kořeny spadají až do roku 1900 př.n.l. Spočívá v nahrazení

každého znaku (nebo skupin znaků) otevřeného textu jiným znakem (skupinou) textu šifrovaného.

Pro tento převod lze použít jednu nebo více abeced (např. pro každý znak jinou abecedu).

Substitučních metod existuje celá řada, v klasické kryptogra i se nejvíce používají zejména tyto čtyři

typy: monoalfabetická substituce, polyalfabetická substituce, homofonní substituce a substituce

polygramová.

Při transpozici se jednotlivá písmena otevřeného textu nemění, ale posouvají na jiné

místo v textu šifrovém podle určitých pravidel - jedná se vlastně o přesmyčku otevřen

ého textu. Díky tomu dojde k přerušení některých vazeb mezi znaky, což stěžuje

luštění. Tato šifra nemění frekvenci výskytu původních znaků, pouze mění jejich

pozici - z toho mj. vyplývá, že poměr samohlásek a souhlásek je v šifrovém textu

zachován (pro český jazyk je to cca 2:3), čehož se při luštění často využívá. Nejjednodu

šším transpozičním systémem je jednoduchá sloupcová transpozice (někdy

nazývaná zkráceně jednoduchá transpozice) dále se používají dvojitá transpozice,

úhlopříčkově - sloupcová transpozice atd.

Kódová kniha je v podstatě slovník, který nahrazuje vybraná slova či věty otevřeného

14

textu různě složitými kódy. Obvykle obsahuje nejčetnější výrazy (fráze), používané

v daném kontextu (jistě bude tedy odlišná kódová kniha vojenská a diplomatická).

Každý výraz má většinou několik možností zakódování a šifrant si náhodně vybírá,

kterou z nich použije. Kódová kniha se nejčastěji používá ve spojení s jinými šifrovac

ími metodami. Za krajní případ použití kódové knihy lze považovat překlad

zprávy do jiného jazyka pomocí kódové knihy - slovníku. V některých případech se

však i tato možnost využívala pro šifrování - např. během 2.světové války, kdy si

americká armáda předávala některé zprávy pomocí indiánů z kmene Navajo.

1.2.1 Substituce

Monoalfabetická šifra

Tato šifra se nazývá také jednoduchá substituce nebo jednoduchá záměna. Jedná

se o jednu ze základních šifrovacích metod. Při šifrování je postupně každý znak

otevřeného textu nahrazován jedním znakem z šifrové abecedy. Důležité je, že pro

celou otevřenou zprávu se použije stejná šifrová abeceda - od toho tedy název monoalfabetick

á. Tato abeceda může obsahovat odlišné znaky, než abeceda otevřeného

textu.

Obecně není monoalfabetická substituce příliš bezpečná - díky převodu 1:1 se totiž

v šifrovém textu zachovávají určité charakteristické rysy abecedy otevřeného textu,

které lze s úspěchem použít při luštění pomocí frekvenční analýzy (viz kapitola 1.10).

Následující tabulka (1.1) ukazuje příklad otevřené a šifrové abecedy:

Otevřená abeceda 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

Šifrová abeceda 5 o l 7 & n j 2 q @ z 6 a d 1 i 3 s 9 8 b 4 f p h m

Tab. 1.1: Příklad šifrové abecedy - monoalfabetická substituce

Při znalosti šifrové abecedy je tedy šifrování velmi jednoduché, konkrétní příklad je

vidět v tabulce 1.2. Dešifrování potom probíhá stejným - pouze inverzním - způsobem.

Otevřený text d i p l o m o v a p r a c e

Šifrový text 7 q i 6 1 a 1 4 5 i s 5 1&

Tab. 1.2: Příklad zašifrování textu monoalfabetickou substitucí

15

Podle způsobu záměny se tato šifra dělí na čtyři typy (v následujícím textu je

použito S(x) pro označení šifrové abecedy a O(x) pro abecedu otevřeného textu)

[11]:

Jednoduchý posun V případě jednoduchého posunu vznikne šifrová abecedu tak,

že abeceda otevřeného textu se posune o několik pozic (parametr k v rovnici 1.1).

Pro českou abecedu (26 znaků) tedy existuje celkem 26 možností posunu, z čehož

25 je þpoužitelnýchÿ, poslední je posun o 0 pozic, tedy k žádnému posunu vlastně

nedojde.

Uvedený postup lze zapsat matematicky:

S(x) = O(x) + k (1.1)

kde k je parametr posunu; k 2< 0; 25 >.

Dobrým příkladem této šifry je známá Caesarova šifra, kterou používal Julius Caesar

již v 1.stol. př. n. l. Tuto šifru popsal ve svých Zápiscích o válce galské. Jednotlivá

písmena OT se zamění za písmena ležící v abecedě o tři místa dál. Jedná se tedy

o jednoduchý posun s parametrem k = 3. Caesarův synovec Augustus používal

obdobný systém s parametrem k = 1 a k tomu poslední písmeno v abecedě (tehdy

X) bylo nahrazeno dvojicí AA.

A nní šifra Šifrová abeceda a nní šifry vznikne podle následujícího předpisu:

S(x) = a O(x) + b (1.2)

kde a, b jsou parametry takové, že a 2< 1; 25 > a b 2< 0; 25 >. V tomto případě

existuje celkem 312 možností vytvoření abecedy. Speciálním případem a nní šifry je

jednoduchý posun (pro a = 1).

Použití klíče Tabulka 1.3 demostruje použití klíče při vytváření šifrové abecedy.

Nejprve se obě strany dohodnou na klíči - v tomto případě zvoleno slovo hotel.

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

h o t e l a b c d f g i j k m n p q r s u v w x y z

Tab. 1.3: Vytvoření šifrové abecedy pomocí klíče

Tímto slovem bude začínat šifrová abeceda, a dále bude pokračovat abeceda stejná

jako otevřená, pouze s vynecháním písmen z klíče. Pokud se v klíči vyskytují stejná

písmena (např. slovo motorka), vynechají se písmena vyskytující se vícekrát - vyjma

prvního (motrka).

16

Náhodný výběr V tomto případě se šifrová abeceda vygeneruje náhodně z abecedy

otevřeného textu. Existuje tedy celkem 26! = 403291461126605635584000000

4 10 26 možností.

Aby nebylo luštění této šifry jednoduché, šifrový text se obvykle zbavuje mezer

(případně se mezery nahradí některým - obvykle méně frekventovaným - znakem,

či skupinou znaků) - díky tomu kryptoanalytik neví, z kolika slov se otevřený text

skládá. čísla se obvykle vypisují slovy, mohou se ale samozřejmě nahradit některými

jinými znaky - stejně tak jako interpunkce.

Dešifrování jednoduché záměny není složité - obě dvě strany potřebují znát původní

abecedu a případně heslo (parametry) nebo postup, díky kterému se vytvoří abeceda

šifrového textu. Za vůbec první substituční šifru je považován Hebrejci vynalezený

systém ATBAŠ [1]. Šifrování probíhá následujícím způsobem: písmeno OT se nahrad

í takovým písmenem ŠT, které má stejnou vzdálenost od konce abecedy, jako

původní písmeno od začátku abecedy (v české abecedě tedy např. d = w, i = r

atd.).

Jednoduchá záměna byla použitelná do cca 17.století, od té doby byla - obzvláště

pro vojenské a vládní systémy - naprosto nedostatečná a bylo nutné nahradit ji

jinými systémy.

Polyalfabetická šifra

Protože monoalfabetická šifra byla poměrně slušně luštitelná již ve středověku, bylo

nutné vymýšlet nové, složitější šifrovací postupy, které by odolávaly dosavadním

metodám luštění. Za otce západní kryptologie je považován Leon Battista Alberti

(15.stol.n.l.), který poprvé popsal polyalfabetickou substituci.

Polyalfabetická subtituce se skládá z několika monoalfabetických substitucí, které

jsou podle určitého systému aplikovány postupně na jednotlivá písmena otevřeného

textu. Zásadní výhoda této šifry spočívá v tom, že stejné písmeno lze zašifrovat více

různými způsoby - obecně tolika, kolik abeced je použito pro šifrování - mohou to být

i tisíce. Pro představu, německý šifrovací stroj Enigma, který byl využívaný hlavně

pro vojenské účely, pracoval s 16900 abecedami [9]. Prakticky se pak konkrétní text

zašifruje tolika abecedami, kolik písmen obsahuje zvolený klíč.

Následující příklad vysvětluje způsob šifrování. Jedná se o systém Vigénere, což byla

pravděpodobně nejpoužívanější varianta polyalfabetické šifry. Tento systém byl ve

své době (19.stol.) nazývan þle chire indéchirableÿ, tedy jako nerozluštitelná šifra.

K šifrování je v tomto systému použito tolik abeced, kolik existuje v jazyce otevřen

ého textu znaků. Pro základní abecedu českého jazyka (tedy bez číslic, diakritických

a jiných speciálních znaků) je systém abeced znázorněn v tabulce 1.4. Pro šifrování

17

a b c d e f g h i j k l m n o p q r s t u v w x y z

b c d e f g h i j k l m n o p q r s t u v w x y z a

c d e f g h i j k l m n o p q r s t u v w x y z a b

d e f g h i j k l m n o p q r s t u v w x y z a b c

e f g h i j k l m n o p q r s t u v w x y z a b c d

f g h i j k l m n o p q r s t u v w x y z a b c d e

g h i j k l m n o p q r s t u v w x y z a b c d e f

h i j k l m n o p q r s t u v w x y z a b c d e f g

i j k l m n o p q r s t u v w x y z a b c d e f g h

j k l m n o p q r s t u v w x y z a b c d e f g h i

k l m n o p q r s t u v w x y z a b c d e f g h i j

l m n o p q r s t u v w x y z a b c d e f g h i j k

m n o p q r s t u v w x y z a b c d e f g h i j k l

n o p q r s t u v w x y z a b c d e f g h i j k l m

o p q r s t u v w x y z a b c d e f g h i j k l m n

p q r s t u v w x y z a b c d e f g h i j k l m n o

q r s t u v w x y z a b c d e f g h i j k l m n o p

r s t u v w x y z a b c d e f g h i j k l m n o p q

s t u v w x y z a b c d e f g h i j k l m n o p q r

t u v w x y z a b c d e f g h i j k l m n o p q r s

u v w x y z a b c d e f g h i j k l m n o p q r s t

w x y z a b c d e f g h i j k l m n o p q r s t u v

x y z a b c d e f g h i j k l m n o p q r s t u v w

y z a b c d e f g h i j k l m n o p q r s t u v w x

z a b c d e f g h i j k l m n o p q r s t u v w x y

Tab. 1.4: Tabulka abeced pro polyalfabetickou šifru

18

Klíč l i s t l i s t l i

Otevřený text l o k o m o t i v a

Tab. 1.5: Šifrování slova lokomotiva pomocí polyalfabetické šifry

a dešifování je zapotřebí, aby si obě strany domluvily klíč - tím je nějaké slovo nebo

skupina znaků (např. slovo list ). Tento klíč se poté nadepíše nad celou délku otev

řeného textu, který se bude šifrovat - v tomto případě slovo þlokomotivaÿ - viz

tabulka 1.5. Pokud není klíč dostatečně dlouhý (což obvykle nebývá), opakuje se.

Proto se tento systém nazývá také periodické heslo. čím delší je zvolený klíč, tím

větší je počet možností, kterými můžeme zašifrovat jeden znak. Šifrování probíhá

následujícím způsobem: první písmeno otevřeného textu (l ) se zašifruje znakem z

tabulky 1.4, který má tyto souřadnice:

- řádek je určen písmenem klíče umístěného nad písmenem otevřeného textu (v na-

šem případě také l )

- sloupec je určen písmenem otevřeného textu

Na průsečíku leží písmeno w, což je tedy první znak šifrového textu. Obdobným

způsobem se postupuje dále, výsledkem je šifrový text wwchxwlbgi. Tato metoda

šifrování lze ještě mírně zjednodušit: opět se nad otevřený text napíše (opakované)

heslo. První písmeno šifrového textu se získá jako součet pozic prvního písmene klíče

a prvního písmene otevřeného textu, oboje ve stejné (neposunuté) abecedě. Pro ur-

čení pozice písmene v abecedě může sloužit tabulka č.1.6.

pozice 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

abeceda 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

Tab. 1.6: Převod písmen na pozice

V případě šifrování slova lokomotiva pomocí klíče list by tedy šifrování vypadalo

následovně: první písmeno se získá sečtením pozic písmen l a l, tedy 11+11=22 a

to odpovídá dle tabulky 1.6 písmenu w. Druhé písmeno bude i + o = 8 + 14 = 22

a to odpovídá opět písmenu w. Pro názornost ještě třetí písmeno, které odpovídá

s + k = 18 + 10 = 28, ale protože abeceda obsahuje pouze 26 znaků, od hodnoty

větší se musí číslo 26 vždy odečíst, tedy 28 - 26 = 2 a to odpovídá písmenu c. Je

zřejmé, že výsledek šifrování je totožný, nebylo ale zapotřebí používat þvelkouÿ tabulku

abeced.

Dešifrování probíhá zpětně - nad šifrový text se zapíše opakovaně klíč a pomocí něj

je v tabulce vyhledáván původní otevřený text: znaky šifrového textu se vyhledávají

v řádku určeném písmenem hesla, které je zaspáno nad šifrovým textem. Nebo, od

šifrového textu (resp. pozic jeho písmen) se odečítají pozice písmen klíče (přičemž

19

je třeba respektovat, že abeceda má pouze 26 znaků).

Šifra Vigénere je bezpečná pouze pro případ velmi krátkých textů nebo velmi dlouh

ých klíčů, jejichž délka se blíží délce celého otevřeného textu.

Za zmínku stojí i modi kace systému Vigénere - tzv. autoklíč otevřeného textu [1].

Odesílatel a příjemce se nedomluví na klíči, ale pouze na jednom písmenu. Toto se

zapíše nad první písmeno otevřeného textu, a dále se jako þklíčÿ použije otevřený

text (dá se tedy říct, že klíčem je původní otevřený text posunutý o jeden znak

vpravo a doplněný zleva o jedno zvolené písmeno). Takto vytvořený klíč se nazývá

autoklíč. Šifrování a dešifrování potom probíhá stejným způsobem, jako u základn

ího systému Vigénere.

Polyalfabetická šifra byla poměrně dlouhou dobu považována za bezpečnou, protože

ji nešlo snadno prolomit metodami používanými pro luštění monoalfabetické šifry.

časem se však ukázaly její jiné nevýhody - lze ji luštit na základě analýzy vzdá-

lenosti mezi opakováními řetězců šifrových znaků (viz kapitola 1.4.3). Mezi další

systémy založené na polyalfabetické subtituci např. šifry Gronsfeld nebo Beaufort

[1]. Obě dvě jsou zjednodušenu variantou systému Vigénere.

Za zmínku ještě stojí Vernamova šifra. Je to Vigénerova šifra s náhodně generovaným

klíčem, který je stejně dlouhý jako otevřený text. Tato šifra je jediná dokazatelně

bezpečná - bez znalosti klíče ji nelze prolomit. Problémem však je v tomto případě

bezpečná distribuce klíčů.

Další substituční systémy

Na homofonní šifru lze nahlížet jako na speciální případ šifry monoalfabetické. Substituce

spočívá v postupné náhradě jednoho znaku otevřeného textu jedním z několika

možných znaků textu šifrového (např. písmeno a otevřeného textu zašifrujeme

písmenem m, znakem $ nebo třeba číslicí 9 ). Počet znaků zašifrovaného textu pro

jeden znak otevřeného textu se může lišit - obvykle čím četnější znak, tím více mož-

ností zašifrování má (např. písmeno a, které tvoří cca 7% všech textů české abecedy,

se zašifruje až sedmi možnými způsoby). Díky tomu každý z těchto symbolů tvoří

po zašifrování asi 1 % šifrového textu.

Možnost zašifrování písmene různými možnostmi je podobná s polyalfabetickou šifrou

- rozdíl je však v tom, že u homofonní šifry se rozhoduje šifrant o tom, který

znak použije, kdežto u polyalfabetické subtituce je výběr znaku přesně dán dohodnut

ým systémem.

Podobnost s monoalfabetickou šifrou spočívá v tom, že jakmile je jednou ustavena

šifrová abeceda, zůstává po celý proces šifrování stejná. Homofonní šifra se nedá

rozluštit tak snadno jako monoalfabetická šifra, nicméně při dostatečně dlouhém

textu lze i to. Název šifry je odvozen z řeckých slov homos (znamená þstejnýÿ) a

20

phonos (znamená þzvukÿ) a je tedy zřejmé, že každý symbol odpovídající nějakému

písmenu reprezentuje vlastně þstejný zvukÿ, tedy je homofonní.

Další možností subtituce je náhrada nikoliv jednotlivých znaků, ale jejich skupin

(dvojic, trojic. . .). Taková šifra se nazývá obecně polygramová. V případě náhrady

bigramů (dvojic) je to konkrétně bigramová, u trojic trigramová atd. Příkladem

takové bigramové šifry je systém nazývaný Playfair. Jeho výhodou je větší odolnost

vůči luštění metodami účinnými na monoalfabetickou šifru. Tato šifra byla s

úspěchem používána až do období 2.světové války [1].

1.2.2 Transpozice

Transpozice je obecně přeuspořádání pořadí písmen otevřeného textu podle nějak

ých pravidel, výsledkem čehož je šifrový text. Používá se např. jako součást modern

ích algoritmů (DES, AES). Protože jednotlivé znaky otevřeného textu se ničím

nenahrazují, zůstává při této šifrovací metodě zachována četnost hlásek. Naopak nezachov

ávají se vazby mezi hláskami (bigramy - dvojhlásky a trigramy - trojhlásky).

Jednoduchá transpozice

Nejjednodušším transpozičním systémem je jednoduchá sloupcová transpozice (ně-

kdy nazývaná krátce jednoduchá transpozice). Pochází z 16.stol. a vytvořil ji kardinál

Richelieu, první ministr francouzského krále Ludvíka XIII. Richelieu dokonce údajně

založil šifrovací oddělení, které se zabývalo šifrováním předávaných informací.

Vlastní šifrování spočívá ve výběru klíče a následně vytvoření transpoziční tabulky,

do které se vepíše po řádcích otevřený text. Poté se zamění pořadí sloupců tabulky,

podle zvoleného klíče.

Klíčem je v případě této šifry skupina čísel, která znamenají pořadí sloupců. Je tedy

možné zvolit si přímo řadu čísel jako klíč (např. 6 4 1 3 2 5), nicméně pro snazší zapamatovatelnost

je lépe zvolit si nějakou frázi. Může to být například slovo luštění,

které je třeba zbavit diakritických znamének, tedy LUSTENI. Jednotlivá písmena

klíče se očíslují tak, jak odpovídá pořadí písmen pořadí jejich výskytu v abecedě.

V našem případě tedy písmenu E přiřadíme číslo 1, písmenu I přiřadíme číslo 2,

písmenu L přiřadíme číslo 3 atd. Výsledkem je klíč 3756142. Tomuto způsobu získaní

klíče se říká tzv. permutační vyčíslení. Pokud se některá písmena ve frázi opakují,

přiřazují se jim čísla vzestupně dle pořadí ve frázi. Pokud se opakují přímo dvě písmena

za sebou, druhé se obvykle vynechává - nicméně tyto konvence lze po dohodě

s druhou stranou samozřejmě změnit. V praxi je vhodné volit klíč alespoò o délce

20 [1].

Z délky klíče vyplývá počet sloupců, které bude mít šifrovací tabulka - v případě klíče

LUSTENI jich tedy bude 7. Následující příklad (tab.1.7) demonstruje zašifrování

21

otevřeného textu þdiplomová práceÿ. Text se vepíše do tabulky o sedmi sloupcích,

nad níž je zapsán permutační klíč.

3 7 5 6 1 4 2

D I P L O M O

V A P R A C E

Tab. 1.7: Otevřený text před zašifrováním jednoduchou transpozicí

V dalším kroku se vymění pořadí sloupců tak, aby odpovídalo pořadí čísel klíče

(tab.1.8). Výsledný šifrový text se získá čtením znaků tabulky po sloupcích a v

tomto případě je to tedy OAOEDVMCPPLRIA. Při šifrování lze samozřejmě vynechat

krok výměny pořadí sloupců v tabulce a šifrový text rovnou zapisovat dle

pořadí klíče. Tento text se ještě obvykle dělí na menší skupiny znaků, např. po pěti

(což je pozůstatek telegra cké konvence), takže výsledek by potom vypadal OAOED

VMCPP LRIA.

V případě, že se otevřený text nedá rozdělit přesně podle počtu sloupců, nabízí se

dvě možnosti. V prvním případě se doplní potřebný počet míst v tabulce o různé -

předem domluvené - znaky. Jedná se o tzv. jednoduchou transpozici s úplnou tabulkou.

Naopak, pokud tabulka na konci šifrování těmito znaky doplněna není, jedná

se o jednoduchou transpozici s neúplnou tabulkou. Pro šifrování a dešifrování se při

systému s neúplnou tabulkou nic nemění, ovšem pro luštění je náročnější druhá varianta.

Důvodem je obtížnější určení rozměrů tabulky, což je prvním krokem při

luštění této šifry.

Jednoduchou transpozici lze dále modi kovat, aby byla vůči luštění odolnější - napří-

klad je možné použít ji dvakrát za sebou: otevřený text se zapíše do úplné tabulky

a je přeuspořádán dle permutačního klíče. Výsledek je potom znovu zapsán do -

tentokrát již neúplné - tabulky, a opět dojde k přeházení sloupců dle jiného domluven

ého klíče. Tento systém se nazývá dvojitá neúplná transpozice a její prolomení

je velmi nesnadné (nikoliv však nemožné).

Pro dešifrování jednoduché transpozice musí druhá strana znát klíč. Ten určuje po-

čet sloupců tabulky a zároveò jejich pořadí. Pokud se počet znaků šifrového textu

vydělí počtem sloupců (odvozených z klíče), dešifrant získá informaci o počtu řádků

1 2 3 4 5 6 7

O O D M P L I

A E V C P R A

Tab. 1.8: Výměna sloupců při transpozici dle zvoleného klíče

22

- a tím pádem zná rozměr transpoziční tabulky. Do ní se pak po sloupcích zapíše

šifrový text, který se po přeuspořádání podle klíče čte po řádcích.

Další transpoziční systémy

Úhlopříčkově - sloupcová transpozice byla používána nejvíce během 1.světové války

a to po dobu tří let, což byla na jeden šifrovým systém nevídaná doba. Otevřený

text se - stejně jako u jednoduché transpozice - vepíše po řádcích do transpoziční

tabulky, vytvořené podle klíče. Rozdíl však spočívá v tom, že šifrový text se z tabulky

nevyčítá po sloupcích, ale nejprve po vybraných úhlopříčkách a až poté po

sloupcích.

Fleissnerova otočná mřížka je pojmenovaná po svém autorovi, Fleissnerovi von

Wostrovitz, který ji vytvořil r.1881. Pro šifrování touto metodou je zapotřebí pom

ůcka - velký čtverec s vyznačenou sítí malých čtverců (viz obrázek 1.2). Některé

malé čtverce se označí - tak, aby při postupném otáčení velkého čtverce o 90 malé

označené čtverce postupně pokryly celý velký čtverec). Tímto způsobem získáme

otočnou mřížku. Šifrování je pak poměrně jednoduchá záležitost - text postupně

Obr. 1.2: Fleissnerova otočná mřížka

vepisujeme do označených čtverečků; ve chvíli, kdy je zaplníme, otočíme velký čtverec

o 90 a pokračujeme tímto způsobem dále. Pro dešifrování je zapotřebí vlastnit

stejnou šablonu, která postupně odhaluje otevřený text.

Transpozice plukovníka Roche spočívá v rozdělení textu do nestejně dlouhých bloků.

Nejprve je třeba zvolit klíč - pro jednoduchost číselný, např. 53124. Tento klíč určuje

velikost bloků, do kterých bude původní text rozdělen. Pro tento konkrétní příklad

budou vypadat následujícím způsobem:

5 3 1 2 4

XXXXX XXX X XX XXXX

Otevřený text (pro příklad zvolena fráze diplomová práce) se vpisuje do těchto bloků

23

- postupně každé písmeno do jednoho bloku. Jakmile dojdeme k poslednímu bloku,

posunujeme se opět na začátek k prvnímu (ale na druhou pozici) a postup opakujeme,

dokud nezašifrujeme celý otevřený text: DMPCX IOR P LV OAAE. Ten

se přeskupí do skupin po pěti znacích, šifrovaný text tedy bude vypadat DMPCX

IORPL VOAAE. Dešifrování probíhá následovně: ze znalosti klíče se určí počet a

délka jednotlivých bloků, do kterých se rozdělí šifrový text. Ten potom lze postupně

číst - první pozice bloků, druhé pozice a tak dále.

1.3 Základní metody luštění šifer

Aby byl luštitel schopný šifru rozluštit, musí s šifrovým textem obvykle provést ně-

kolik základních kroků. Pomocí indexu koincidence se pokusí zjistit, zda jde o šifru

polyalfabetickou (která je charakteristická vyrovnáním rozdílu četnosti jednotlivých

znaků v textu) nebo jednoduchou substituci či záměnu. V případě jednoduché substituce

a transpozice se zároveò pokusí určit, v jakém jazyce byl psán otevřený text.

Pro další luštění se používá metoda frekvenční analýzy, která si všímá znakových

vazeb charakteristických pro daný jazyk.

Následující metody vycházejí z předpokladu, že otevřený text je psán mezinárodní

abecedou.

1.3.1 Index koincidence

Luštitel obvykle na začátku stojí před úkolem zjistit, jakým způsobem je šifrový text

zašifrován. V případě klasických šifer lze s úspěchem použít tzv. index koincidence

(IC). Autorem této techniky je William Frederick Friedman (1891 - 1969), který

působil jako kryptolog u americké armády.

Index koincidence je de nován jako pravděpodobnost, že dva znaky náhodně vybran

é z šifrového textu budou stejné. Vypočítá se podle následujícího vztahu:

IC =

X c

i=1

n i (n i �� 1)

N (N �� 1) =c

(1.3)

V tomto vzorci N znamená celkový počet znaků textu, ze kterého je IC počítán, c

označuje počet znaků abecedy a n i je počet znaku s indexem i, kde i 2 f 0; 1::25 g

- tedy pro mezinárodní abecedu n 1 je počet všech znaků a v celém textu, n 2 počet

všech znaků b atd.). čitatel zlomku vyjadřuje počet dvojic obsahujících dvě stejná

písmena, jmenovatel vyjadřuje počet všech dvojic písmen v analyzovaném textu [4].

Z uvedeného vzorce vyplývá, že čím větší jsou rozdíly v četnosti výskytu jednotliv

ých písmen u daného jazyka, tím větší je jeho index koincidence a naopak - v

případě analýzy náhodně vygenerovaného sledu znaků by byl IC malý (blížil by se

24

hodnotě 0,0385).

Každý jazyk má tedy svůj index koincidence, který hodnotí kolísání četností znaků

šifrového textu. Tabulka 1.3.1 ukazuje hodnotu tohoto indexu pro některé vybrané

typy jazyků (vždy počítán z mezinárodní abecedy, pouze u ruštiny se jedná o 32

znaků). IC pro náhodný text je vypočítán jako hodnota 1/26.

jazyk hodnota IC

Němčina 0,0824

Francouzština 0,0801

Španělština 0,0769

Italština 0,0754

Angličtina 0,0676

Slovenština 0,0581

čeština 0,0577

Ruština 0,0470

Náhodný text 0,0385

Tab. 1.9: Index koincidence pro vybrané druhy jazyků

Následující obrázek 1.3 znázoròuje využití IC pro určení typu šifry.

Obr. 1.3: Využití indexu koincidence

Jak již bylo řečeno v předchozích kapitolách (1.2.1 a 1.2.2), monoalfabetická šifra a

jednoduchá transpozice zachovávají rozložení četnosti znaků. V případě, že se vypo-

čítaný IC šifrového textu blíží některé z hodnot v tabulce 1.3.1, je pravděpodobné,

že se bude jednat o jednoduchou substituci nebo transpozici s otevřeným textem v

příslušném jazyce.

25

Pro rozlišení, zda se jedná o substituci nebo transpozici, pak stačí spočítat pravdě-

podobnost výskytu jednotlivých znaků v šifrovém textu: pokud jsou pravděpodobnosti

shodné s pravděpodobností výskytu znaků v jazyce určeném pomocí IC, jedná

se pravděpodobně o transpozici, naopak pokud jsou pravděpodobnosti pro totožné

znaky odlišné, jde o substituci.

Polyalfabetická substituce vyhlazuje rozdíly mezi četností znaků v dané abecedě, to

znamená že IC pro takový šifrový text bude nižší než příklady uvedené v tabulce

1.3.1, pravděpodobněji se bude blížit hodnotě IC pro náhodný text (tj. 0,0385).

čím delší šifrový text je k dispozici, tím lépe bude IC fungovat - samozřejmě jen v

případě, že nepůjde o otevřený text záměrně napsaný tak, aby nesplòoval základní

statistické charakteristiky příslušné danému jazyku.

1.3.2 Frekvenční analýza

Základ frekvenční analýze položili kolem r.750 n.l. arabští učenci a úředníci, kteří

pro své účely potřebovali bezpečný komunikační systém - nejlépe šifrovaný. Obvykle

používali šifrovou abecedu, která vznikla pouhým přeuspořádáním otevřené abecedy.

Byl tak položen základ monoalfabetické substituční šifře (viz kapitola 1.1). Kromě

šifrování a dešifrování však tito učenci dokázali tyto šifry také luštit - dá se na ně

tedy pohlížet jako na zakladatele kryptoanalýzy. Ta však nemohla vzniknout dříve,

než se v dostatečné míře rozvinuly některé další vědní disciplíny - matematika, statistika

nebo lingvistika [1].

Základ pro luštění šifer metodou frekvenční analýzy byl položen v teologických škol

ách, které zkoumaly zjevení proroka Muhammada sepsaná v Koránu. Teologové se

snažili jednotlivá zjevení chronologicky uspořádat, a použili k tomu velmi důmyslnou

metodu: všímali si četnosti slov v textech jednotlivých zjevení. Vycházeli přitom

z předpokladu, že některá slova se vyvinula poměrně nedávno na rozdíl od jiných

- takže pokud daný text taková slova obsahoval, zřejmě byl novější než ostatní.

Arabští učenci však při analýze textů zašli ještě dál, a to až na úroveò jednotlivých

hlásek - všímali si jejich četnosti v textu. Od tohoto byl už jen malý krok k luštění

šifer: první známý popis frekvenční analýzy v souvislosti s luštěním šifry pochází od

arabského učence, v Evropě známého pod jménem Alkindus, z 9.století n.l. V době

rozmachu arabského umění šifrování a luštění prožívala Evropa v tomto směru zcela

dobu temna. Jediné výjimky představovaly kláštery, ve kterých mniši studovali Bibli

a snažili se odkrýt utajené významy v jejím textu.

Metoda frekvenční analýzy tedy spočívá v aplikaci statistiky na šifrový text. Každý

jazyk (anglický, český. .) je charakteristický některými významnými rysy, jako jsou

například průměrná četnost jednotlivých hlásek (případně skupin hlásek) nebo vazby

mezi samohláskami atd. Při luštění je tedy výhodné znát jazyk otevřeného textu (k

26

čemuž může být nápomocný index koincidence, viz 1.3.1). Tabulka 1.10 zobrazuje

první z důležitých vlastností - četnost jednotlivých hlásek v českém jazyce.

znak počet 1 % četnost znak počet 1 % četnost znak počet 1 % četnost

a 357907 6,698% i 244242 4,571% s 246867 4,62%

á 113756 2,129% í 165786 3,103% š 43636 0,817%

b 88974 1,665% j 105955 1,983% t 296779 5,554%

c 85538 1,601% k 200479 3,752% ť 2057 0,038%

č 54341 1,017% l 218906 4,097% u 167322 3,131%

d 193038 3,613% m 174323 3,262% ú 7736 0,145%

ï 1040 0,019% n 356743 6,676% ů 30430 0,569%

e 418434 7,831% ò 3926 0,073% v 233960 4,378%

é 62945 1,178% o 442617 8,283% w 3843 0,072%

ě 79674 1,491% ó 1704 0,032% x 4942 0,092%

f 21055 0,394% p 184548 3,454% y 93620 1,752%

g 18319 0,343% q 308 0,006% ý 50312 0,942%

h 69236 1,296% r 212533 3,977% z 113450 2,123%

ch 53802 1,007% ř 63395 1,186% ž 54602 1,022%

Tab. 1.10: Frekvence písmen české abecedy

Protože se však obvykle šifruje (a tedy i luští) text zbavený diakritických znamének,

tabulka 1.11 zobrazuje četnost hlásek české abecedy, zbavené diakritiky (četnost

výskytu písmene i je rovna součtu četnosti výskytu písmen i a í) 2 [5] . Následuje

výčet některých statistických údajů českého jazyka, které mohou být při luštění

monoalfabetické šifry velmi užitečné [1].

frekvence znaků - vybereme ty nejčetnější znaky vyskytující se v šifrovém textu

a přeložíme je dle tabulky 1.11

ve slovech se samohlásky se souhláskami téměř pravidelně střídají

poměr souhlásek a samohlásek v českém textu je přibližně 60:40 (přesněji

58,56:41,44).

2 samohlásky uprostřed slova se vedle sebe téměř nevyskytují

v souhláskových vazbách se písmeno R chová jak samohláska

1 Jedná se o celkový výskyt znaku v českých slovech

2 Různé zdroje se v těchto statistických údajích mohou mírně lišit

27

znak počet 1 % četnost znak počet 1 % četnost znak počet 1 % četnost

a 471663 8,740% j 105955 1,963% s 290503 5,383%

b 88974 1,649% k 200479 3,715% t 298836 5,537%

c 143722 3,589% l 218906 4,056% u 205488 3,808%

d 194078 3,596% m 174323 3,230% v 233960 4,335%

e 561053 10,396% n 360669 6,683% w 3843 0,071%

f 21055 0,390% o 444321 8,233% x 4942 0,092%

g 18319 0,340% p 184548 3,420% y 143932 2,667%

h 73079 2,280% q 308 0,006% z 168052 3,114%

i 410028 7,580% r 275928 5,113%

Tab. 1.11: Frekvence písmen základní abecedy (26 znaků)

nejčastěji vyskytující se písmena na začátku (českých) slov jsou: p (12,50%), s

(9,72%), v (9,19%), z (8,95%), n (7,64%), o (5,56%); obecně samohlásky tvoří

počátek slov pouze z 15,49%, zbytek tvoří souhlásky

nejčastěji vyskytující se písmena na konci (českých) slov jsou: e (16,67%), i

(13,96%), a (10,94%), o (8,93%), u (7,94%), y (7,03%); obecně souhlásky tvoří

počátek slov pouze z 34,53%, zbytek tvoří samohlásky

důležitými bigramy jsou ST, PR, SK, CH, DN, TR (frekvence výskytu v česk

ém jazyce viz tabulka 1.12)

bigram CH: písmeno H má (dle tabulky) jen o něco nižší frekvenci než C; CH

se často vyskytuje na konci slov a předchází ho samohláska; naopak, pokud ho

předchází souhláska, samohláska obvykle následuje (schod)

bigram PR: často stojí na začátku slov; R má přibližně dvojnásobnou frekvenci

výskytu oproti P; obrácený bigram RP se téměř nevyskytuje;

bigram ST: obvykle se vyskytuje na konci i uprostřed slova; písmena S a T

mají přibližně stejnou četnost výskytu;

existují také často se vyskytující trigramy (viz tabulka 1.13): STR (to je nej-

častější trigram), PRO, UNI, OST, STA, ANI, OVA, YCH, STI, PRI, PRE,

OJE, REN, IST, EHO, TER, RED, ICH

průměrná délka slova v textu činí 5,54 písmene

Je důležité uvědomit si, že frekvenční analýzu nelze používat zcela mechanicky. Tabulka

četnosti výskytu hlásek v abecedě představuje pouze průměr a nemusí zcela

28

pořadí bigram počet 3 pořadí bigram počet 3 pořadí bigram počet 3

1. st 74285 15. ra 37531 29. ce 28280

2. ní 60525 16. to 36355 30. va 27987

3. po 56239 17. ou 35191 31. př 27885

4. ov 53818 18. no 32612 32. at 27603

5. ro 51961 19. la 32336 33. ře 27181

6. en 50645 20. li 31952 34. er 27168

7. na 46737 21. ho 31442 35. ti 26858

8. je 42433 22. do 30665 36. em 26818

9. pr 42099 23. os 30530 37. in 26427

10. te 40393 24. se 30454 38. sk 26085

11. le 38926 25. ta 30177 39. lo 25981

12. ko 38688 26. al 29682 40. ně 25739

13. ne 38671 27. ed 29622

14. od 38393 28. an 29326

Tab. 1.12: Nejčastější bigramy českého jazyka

pořadí trigram počet 4 pořadí trigram počet 4 pořadí trigram počet 4

1. pro 21322 15. nos 8557 29. ové 6810

2. ost 18722 16. ick 8387 30. nov 6783

3. sta 12746 17. ová 8139 31. pol 6704

4. pře 12057 18. při 7878 32. spo 6686

5. ter 11936 19. sou 7541 33. vat 6489

6. ení 11917 20. ist 7505 34. ním 6439

7. ova 11822 21. edn 7429 35. jak 6330

8. pod 10168 22. ské 7349 36. val 6256

9. kte 9603 23. pří 7348 37. dní 6251

10. pra 9521 24. odn 7251 38. sto 6189

11. ého 9475 25. tel 7231 39. tak 6175

12. sti 9121 26. ání 7224 40. lov 6139

13. řed 9103 27. ent 7114

14. kon 9017 28. str 6903

Tab. 1.13: Nejčastější trigramy českého jazyka

29

přesně odpovídat poměru výskytu v konkrétním zašifrovaném textu. Zcela záměrně

lze totiž vytvořit takový otevřený text, který nebude splòovat průměrné charakteristiky

daného jazyka. Obecně čím delší šifrový text je analyzován, tím lépe, protože

s největší pravděpodobností bude lépe fungovat statistika a výše popsané poznatky

tedy lze spolehlivěji využít. Naopak čím kratší šifrový text, tím je pravděpodobn

ější, že výskyt hlásek nebude odpovídat tabulce četnosti. Za hranici použitelnosti

je považován text o délce minimálně 100 znaků [1].

1.4 Luštění

Kryptoanalytik se vždy na počátku snaží odhalit, jaký šifrovací sytém byl použit.

Tato fáze se nazývá identi kace. Použije k tomu nejen nástroje jako je třeba index

koincidence, ale také veškeré dostupné informace o autorovi šifry (jaké šifry použí-

val v minulosti atd.). V případě, že je zachycená zpráva příliš krátká, těžko se na ni

uplatní statistické testy - je tedy třeba získat nějakou další.

Nejobtížnější fází luštění je prolomení. Jednoduché šifrovací systémy, jimiž se zabývá

tato páce, se obvykle dají prolomit ručně. Moderní šifrovací metody jsou dnes již

natolik výpočetně složité, že se luštitel neobejde bez techniky. I tak může prolomení

trvat týdny, měsíce a nebo k němu nemusí vůbec dojít.

Pro luštění šifrového textu lze využít několika různých metod, v závislosti na mož-

nostech, kterými kryptoanalytik disponuje [1].

Luštění na základě znalosti šifrového textu Pokud má kryptoanalytik k dispozici

více šifrových textů zašifrovaných stejným systémem, může se pokusit odvodit

na základě luštění klíč, nebo přímo rozluštit tyto zprávy. Tato situace nastává nej-

častěji, ale je také nejobtížnější.

Luštění na základě znalosti otevřeného textu V případě, že má kryptoanalytik

k dispozici jak šifrový text, tak jeho otevřenou předlohu, může se pokusit o

odhalení klíče, případně šifrovacího algoritmu.

Útok hrubou silou V tomto případě přichází obvykle na řadu výpočetní technika.

Kryptoanalytik zkoumá všechny možnosti šifrování textu a vyhodnocuje, jestli

byl nalezen ten správný. Ne vždy se však všechny možnosti dají otestovat v reálném

čase, takže tento postup zůstává sice teoreticky, nikoliv však vždy prakticky možný.

3 Jedná se o celkový výskyt bigramu v českých slovech

4 Jedná se o celkový výskyt trigramu v českých slovech

30

Útok postranními kanály Tímto způsobem se kryptoanalytik obvykle snaží získat

klíč nebo přímo otevřený text. Informace mohou unikat pomocí elektromagnetick

ého vyzařování, měřením spotřeby proudu a času apod.

Korupční kryptoanalýza V případě korupční kryptoanalýzy dojde k úniku informac

í (klíčů, algoritmů, otevřeného textu. .) na základě selhání lidského faktoru -

to znamená, že díky podplácení, krádežím atd. má kryptoanalytik k dispozici pot

řebné údaje, na jejichž základě rozluští šifrový text.

Výše popsané metody luštění lze ještě jemněji dělit podle určitých kritérií, pro prvotn

í přiblížení je však tento výčet dostatečný. Následující text popisuje postup při

luštění šifer na základě znalosti šifrového textu.

1.4.1 Obecný postup luštění klasických šifer

Obrázek 1.4 demonstruje možný obecný postup při luštění klasických šifer.

Obr. 1.4: Obecný postup při luštění klasických šifer

Nejprve je třeba vypočítat index koincidence upraveného šifrového textu (tj. zbaven

ého mezer). Pomocí něj se provede prvotní odhad typu šifry, případně jazyka

otevřeného textu (viz obrázek 1.3). V případě monoalfabetické substituce a jednoduch

é transpozice se dále provede srovnání četnosti výskytu jednotlivých znaků

šifrového textu a očekávaného jazyka otevřeného textu. Pokud je četnost znaků šifrov

ého textu a předpokládaného jazyka otevřeného textu stejná, zřejmě se bude

31

jednat o transpozici - v opačném případě o substituci.

V případě polyalfabetické šifry je třeba určit délku šifrovacího klíče - podle něj se

provede rozdělení na šifru Vigénere nebo Vernamovu šifru (která je obecně nerozlu

štitelná).

1.4.2 Luštění monoalfabetické substituce

Vzhledem k tomu, že pro abecedu o velikosti 26 znaků existuje 4 10 26 možností,

ani pro současnou výpočetní techniku není reálné vyzkoušet je všechny v rozumném

čase. Jak již však bylo řečeno v kapitole 1.1, jednoduchá záměna je charakteristická

některými statistickými rysy. V případě, že luštitel určí (např. za pomocí indexu

koincidence), že daná šifra je pravděpodobně jednoduchou záměnou, lze pro získání

otevřeného textu využít metodu frekvenční analýzy (viz 1.10).

Nejprve je třeba určit frekvenci výskytu jednotlivých hlásek šifrové abecedy (což

již pravděpodobně bylo učiněno při rozpoznávání typu šifry). Dále se vyberou nej-

četnější znaky šifrového textu a mapují se na nejčetnější znaky očekávané abecedy

otevřeného textu. Vzhledem k tomu, že v českém jazyce je nejčetnějším písmenem e

(viz tabulka 1.11), obvykle se začíná právě s ním - je třeba vysledovat samohláskové

vazby: dvě samohlásky se vedle sebe vyskytují jen výjimečně, obvykle se střídá samohl

áska se souhláskou. Úkolem kryptoanalytika je tedy přiřadit co nejvíce písmen

šifrové abecedy abecedě otevřené, přičemž k tomu využívá poznatky popsané v kapitole

1.10.

Pro luštění jednoduché substituce je samozřejmě nutné mít dostatečně dlouhý text

- obvykle by měl mít alespoò 200 znaků, jako úplné minimum (které však nemusí

mít jednoznačné řešení) se považuje text o délce 50 znaků [8].

1.4.3 Luštění polyalfabetické substituce

Prvním úkolem při luštění tohoto typu šifry je určení délky klíče. Má-li kryptoanalytik

k dispozici dostatečně dlouhý text, začne v něm hledat opakující se polygramy

(čím delší, tím lepší, začíná se obvykle na bigramech). Pokud jejich výskyt není

náhodný a odpovídá stejnému otevřenému textu, musí být vzdálenost těchto polygram

ů rovna násobku délky klíče. Pro jednotlivé opakující se polygramy se určí

jejich vzdálenost. Skutečná délka klíče pak bude s největší pravděpodobností nejv

ětším společným dělitelem těchto vzdáleností. Při tomto postupu je třeba mít na

vědomí, že opakované bigramy mohou v šifrovém textu vzniknout i náhodně, a ne

všechny vzdálenosti opakovaných bigramů musí být násobkem délky klíče (delších

polygramů se to v drtivé většině případů netýká).

V tuto chvíli již je známá délka klíče, zbývá určit jeho podobu. Myšlenka spočívá v

32

tom, že pro délku klíče x bude posunutí o x 1 aplikováno na skupiny znaků 1, x+1,

2x+1 atd., posunutí o x 2 bude aplikováno na skupiny znaků s pořadovým číslem 2,

x+2, 2x+2 atd. - přičemž x 1 značí posun o tolik pozic, kolik je pořadí v abecedě

prvního písmena klíče, x 2 je posun o tolik pozic, kolik je pořadí druhého písmena

klíče atd. Tento fakt je vysvětlen na následujícím příkladě: třípísmenným klíčem sen

je zašifrovaný text diplomová práce - výsledkem je řetězec vmcdszgznhvnui. Z toho

vyplývá, že písmena otevřeného textu d, l, o, p, c jsou posunuta o stejný parametr

(konkrétně o 18, což je pozice prvního písmena klíče). Dále písmena i, o, v, r, e jsou

posunuta o 4 a zbylá písmena o 13 (k určení pozice může být nápomocná tabulka

1.6). Šifrový text se nám tedy rozdělil do tří skupin (obecně do tolika, kolik znaků

obsahuje klíč). Každá tato skupina je charakteristická konkrétním posunem - dá

se tedy na ní nahlížet jako na monoalfabetickou šifru s jednoduchým posunem (v

podstatě je to varianta Ceasarovy šifry, pouze parametr posunu nemusí být roven

třem). Postup luštění takové šifry byl přiblížen v kapitole 1.4.2. Dokonce je o něco

jednodušší - protože se jedná o posun, stačí správně určit jeden znak otevřeného

textu. Další už se potom zjistí aplikací posunu - pro kontrolu se obvykle srovnává,

zda frekvence znaků otevřeného textu přibližně odpovídá. Tímto způsobem se tedy

vyluští každá skupina zvlášť, přičemž je také zjištěno heslo.

Výše popsaná metoda se nazývá Kasiského metoda. Je pojmenovaná podle pruského

důstojníka Fridricha W. Kasiského, který ji zavedl již roku 1863. Za pomoci této metody

luštění je možné prolomit text o délce 50 krát délka klíče (a to v případě, že

je znám pouze šifrový text). Pokud kryptoanalytik zná zároveò i otevřený text, k

určení klíče mu stačí text o délce dvou klíčů [9].

Pro zjištění velikosti klíče se dá také použít index koincidence (viz 1.3.1). Jak již bylo

řečeno, při použití polyalfabetické šifry se text rozpadá do několika skupin (tolika,

kolik je délka klíče). Každá taková skupina má přibližně stejný index koincidence,

jako je IC jazyka otevřeného textu. Aritmetický průměr všech IC jednotlivých skupin

se tak právě blíží IC použitého jazyka. Zná-li útočník jazyk otevřeného textu,

stačí vyzkoušet všechny pravděpodobné možnosti velikosti klíče a pro každou z nich

spočítat průměry jednotlivých indexů koincidence. Klíč bude mít nejpravděpodobn

ěji takovou délku, pro kterou se průměrný IC nejvíce blíží IC jazyka otevřeného

textu [9].

1.4.4 Luštění jednoduché transpozice

V případě, že luštitel pomocí indexu koincidence a statistického rozložení znaků

určí, že šifrový text byl vytvořen pomocí jednoduché transpozice, dalším krokem je

odhadnutí rozměrů původní tabulky.

Šifra obvykle vypadá jako běžný text - řádky s mezerami, rozdělené na slova atd.

33

Nejprve je třeba tento text zbavit mezer (šifrový text OAOED VMCPP LRIA - viz

šifrování kapitola 1.2.2 - bude po úpravě vypadat OAOEDVMCPPLRIA). Následně

se spočítají všechny znaky textu. Tento počet (v tomto případě 14) se rozloží na

součin prvočísel, ze kterých se poté odhaduje rozměr šifrové tabulky. číslo 14 lze

rozložit pouze dvěma možnostmi: 1x14 a 2x7. Více pravděpodobná se jeví být varianta

2x7, v prvním případě by délka permutačního klíče byla rovna jedné, a to je

poměrně netypická varianta (tuto možnost sice nelze zcela vyloučit, ale s ohledem

na pravděpodobnost se obvykle analyzuje až jako druhá v pořadí).

Pro lepší ilustraci ještě jeden příklad: šifrový text o délce 60 znaků se dá rozložit

na prvočíselný součin: 60 = 2 2 3 5. V úvahu tedy připadají tabulky 1x60, 60x1,

2x30, 30x2, 3x20, 20x3, 4x15, 15x4, 5x12, 12x5, 6x10, 10x6, celkem tedy 12 variant.

Některé z nich se však dají rovnou vyloučit (nebo alespoò odsunout na pozdější

testování pro případ, že by jiné varianty neuspěly) - a to 1x60, 2x30, 3x20, 4x15.

Permutační klíč je totiž u těchto tabulek poměrně krátký a lze předpokládat, že

autor šifrového textu použil delší, þbezpečnějšíÿ klíč. Naopak varianty 60x1 a 30x2

jsou velmi netypické - první z nich by znamenala permutační klíč o stejné délce,

jako je samotný otevřený text. Těmito úvahami lze vyloučit hned polovinu možných

rozměrů tabulek.

Zachycený šifrový text se dále vepisuje po sloupcích do jednotlivých tabulek. Jako

další pomůcka může sloužit jedna z vlastností jednoduché záměny - protože transpozice

otevřeného textu dle permutačního klíče probíhá na úrovni řádků, měl by v

nich zůstat zachován poměr samohlásek a souhlásek tak, jak je běžné v textu (pro

český jazyk je to 40:60). Tabulka, která tento poměr splòuje nejlépe, je nejpravd

ěpodobnější variantou. V následujícím kroku však nezbývá než zkoušet možnosti

přeházení sloupečků tak, aby z nich vznikl otevřený text - obvykle za pomocí pravidel

frekvenční analýzy (bigramové a trigramové vazby atd.).

34

4 ZÁVĚR

Cílem této práce bylo prostudovat a stručně vysvětlit problematiku kryptoanalýzy

vybraných klasických šifer. Za tímto účelem bylo vybráno několik základních druhů

klasických šifer - monoalfabetická a polyalfabetická substituce a jednoduchá transpozice.

Každá z nich byla stručně charakterizována a dále byly popsány základní

metody luštění těchto šifrových systémů.

Dále byl připraven návrh interaktivního gra ckého softwaru, který umožní student

ům pochopit princip výše uvedených šifer - šifrování otevřených textů a jejich luš-

tění. Tento software by mohl být v budoucnu použit při výuce klasické kryptoanal

ýzy, např. jako jedna z laboratorních úloh.

42

LITERATURA

[1] VONDRUŠKA, P. Kryptologie, šifrování a tajná písma. 1.vydání. Praha: Albatros

nakladatelství, a.s., 2006. Edice OKO. ISBN 80-00-01888-8

[2] Singh, S. Kniha kódů a šifer: utajování od starého Egypta po kvantovou kryptogra

i. 2.vydání. Praha: Dokořán; Argo, 2009. Edice Aliter; sv.9. ISBN 978-

80-7363-268-7

[3] ZELENKA, J., čAPEK, J., FRANCEK, J., JANÁKOVÁ, H. Ochrana dat:

kryptologie. 1.vydání. Hradec Králové: GAUDEAMUS, 2003. ISBN 80-7041-

737-4

[4] Index of coincidence - Wikipedia, the free encyclopedia [online]. 2009, posledn

í aktualizace 10.12.2009 10:49. [cit. 1. 12. 2009]. Dostupné z URL:

<http://en.wikipedia.org/wiki/Index of coincidence>.

[5] Statistické charakteristiky češtiny - Centrum NLP [online]. [cit. 1. 12. 2009].

Dostupné z URL: <http://nlp. .muni.cz/cs/stat cestiny>.

[6] Frekvence písmen, bigramů, trigramů, délka slov - Centrum

NLP [online]. [cit. 1. 12. 2009]. Dostupné z URL:

<http://nlp. .muni.cz/cs/Frekvence pismen bigramu trigramu delka slov>.

[7] TůMA, J. Kapitola 1: základní pojmy [online]. [cit. 1. 12. 2009]. Dostupné

z URL: <http://www.karlin.m.cuni.cz/~tuma/nciphers/nciphers1.pdf>.

[8] TůMA, J. Kapitola 2: jednoduchá záměna [online]. [cit. 1. 12. 2009]. Dostupné

z URL: <http://www.karlin.m.cuni.cz/~tuma/nciphers/nciphers2.pdf>.

[9] TůMA, J. Kapitola 3: periodický klíč [online]. [cit. 1. 12. 2009]. Dostupné

z URL: <http://www.karlin.m.cuni.cz/~tuma/nciphers/nciphers3.pdf>.

[10] Dr. Tomáš Rosa - Kryptologie pro praxi [online]. poslední

aktualizace 2.11.2009. [cit. 1. 12. 2009]. Dostupné z URL:

<http://crypto.hyperlink.cz/cryptoprax.htm>.

[11] Ing. Tomáš Vaněk - Monoalfabetické substituční šifry [online]. [cit. 1. 12. 2009].

Dostupné z URL: <http://www.comtel.cz/ les/download.php?id=4091>.

43

SEZNAM SYMBOLů, VELIčIN A ZKRATEK

IC index koincidence

OT otevřený text

ST šifrový text

MS monoalfabetická šifra

PS polyalfabetická šifra

JT jednoduchá transpozice