Vyvíjela se v období před rozmachem výpočetní techniky, tedy cca. do roku 1950. Většinou využívá jednoduchých pravidel, jako nahrazení znaků ve vstupním řetězci jinými znaky dle určitého klíče či v přehazování pořadí jednotlivých znaků.
Kryptosystém představuje ucelený celek pravidel a postupů potřebných pro úspěšnou realizaci dané šifry.
Afinní šifraJedná se o základní substituční šifru. Přepis znaků probíhá podle jednoduchého předpisu lineární transformace.
Caesarova šifraPředstavuje jednu z nejjednodušších a vůbec prvních používaných substitučních šifer. Znaky se posouvají dle umístění v abecedě.
Je notně více komplexnější, šifrování probíhá pomocí násobení matic a k dešifrování se využívá inverzní matice.
Šifra ADFGVXTato šifra se skládá z více jednoduchých kroků. Využívali Němci během první světové války. K přenosu využívala Morseovu abecedu.
Představuje specifický typ šifer. Jednotlivé znaky ve vstupním řetězci se prohazují v pořadí dle zadaného klíče.
Vigenèrova šifraJe typem polyalfabetické šifry, v podstatě se jedná o substituční šifru. Využívá kódové slovo a tzv. Vigenèrův čtverec.
Níže jsou představeny některé základní pojmy potřebné v rámci výkladu kryptologie.
| Pojem | Význam |
|---|---|
| Abeceda (alphabet) | Představuje konečnou množinu znaků, nemusí se jednat pouze o alfanumerické znaky (A - Z a 1 - 9). Například morseovka obsahuje v rámci abecedy dva znaky (pomlčku: - a tečku: . ). Obvykle se značí velkými řeckými písmeny. |
| Slovo nad abecedou (word) | Slovo nad abecedou znamená řetězec znaků z dané abecedy - nehledí se na jejich smysl. Například mějme abecedu znaků (a,e,1,$,%), pak slovem nad touto abecedou je například: $a%ee%%$. |
| Kódování (encode) | Představuje proces převodu vstupního slova nad vstupní abecedou na výstupní slovo nad výstupní abecedou (ne nutně shodnou se vstupní abecedou). Podstatné je, že na rozdíl od šifrování nejde primárně o snahu znepřístupnit vstup neoprávněným osobám. Používá se například pro zlepšení vlastností zprávy při přenosu (s ohledem na detekci chyb) či při komprimaci zprávy. |
| Šifrování (encryption) | Liší se od kódování v tom, že primárním cílem je znemožnit získání vstupního slova neoprávněným osobám (tj. osobám bez znalosti klíče). |
| Kryptografie (cryptology) | Nauka o šifrách, předmětem je vývoj šifer a vymýšlení nových kryptosystémů. Na rozdíl od kryptoanalýzy neřeší primárně prolamování existujících kryptosystémů. |
| Kryptoanalýza (cryptanalysis) | Nauka o prolamování šifer. Řeší způsoby, jak se dostat ke vstupnímu slovu z výstupního slova bez znalosti klíče. |
| Substituční šifra | Nahrazuje dle určitého přepisu znaky vstupní abecedy za znaky výstupní abecedy. |
| Monoalfabetická šifra | Druh substituční šifry. Zaměňuje jednoduše jeden znak vstupní abecedy za přesně určený znak výstupní abecedy (a to vždy stejný pro daný vstupní znak). Například Caesarova šifra. |
| Polyalfabetická šifra | Jeden znak vstupní abecedy může být nahrazen více znaky výstupní abecedy (například v závislosti na hodnotě klíče). |
| Homofonní šifra | Jeden znak vstupní abecedy může být nahrazen více slovy výstupní abecedy (nepoužívá klíč). Například a → 1 nebo 2; b → 6 nebo 4 atd. |
| Polygrafická šifra | V podstatě substituční šifra pracující se skupinou znaků. |
| Otevřený text (plaintext) | Vstup kryptosystému, který má být zašifrován. V podstatě data před zašifrováním. |
Některé základní pojmy z diskrétní matematiky důležité pro zavedení některých kryptosystémů jsou k dispozici ZDE.
Frekvenční analýza představuje základní způsob prolamování tradičních kryptosystémů (především substitučních šifer). Vychází z jednoduchého předpokladu, že incidence (četnost výskytu) jednotlivých znaků v rámci abecedy přirozeného jazyka není rovnoměrná. Například znaky a a e se v anglické abecedě vyskytují mnohem častěji, než jiné znaky.
Obecný princip lze demonstrovat na případě monoalfabetických šifer. Pokud máme dostatečně dlouhou zprávu, nalezneme nalezneme znaky s nejčastějším výskytem. U nich máme důvod předpokládat, že se za nimi skrývá písmeno a či e. Takto lze postupně pokračovat, až se podaří zprávu rozluštit celou.
Ani frekvenční analýza však není všemožná. Při trochu složitějších šifrách vyžaduje pro úspěšné prolomení vstup o určité délce, pokud není k dispozici, není možné ani provést kryptoanalýzu dané šifry.
Naprogramujte kryptoanalýzu Caesarovy šifry a rozluštěte následující řetězec: VZYQFNTFD CPVW D VLYZYPX YL VZXLCL YPNSZO.
Jak postupovat? Nejdříve si udělejte analýzu četnosti jednotlivých znaků ve vstupním slově, ASCII tabulka má 256 znaků, tudíž lze vyřešit například polem s 256 znaky. Dále udělejte cyklus, kde v každé iteraci budete odečítat hodnotu od vstupu, tím vznikne nový znak, který vypište - dávejte pozor na přetečení.