SkyNet, a. s. - Vaše bezpečná komunikace

Úvod do šifrování

Kryptografie má dlouhou historii a široké uplatnění v praktickém životě, a to jak v profesionálním, tak i v soukromém. Manažeři potřebují posílat e-mailem tajné dokumenty týkající se strategických plánů firmy, informace o platech a odměnách jednotlivých zaměstnanců nebo potřebují chránit informace na PC a noteboocích. Příjemce e-mailu chce důkaz, že došlý e-mail je skutečně od uvedeného odesílatele. Domácí uživatel potřebuje chránit svá data o rodinné finanční situaci a lékař potřebuje chránit informace o svých pacientech, které má uložené na pracovním PC. Na vše výše uvedené je potřeba použít kryptografie a PGP je opravdu to pravé k zabezpečení všech dat.

Už za dávných časů Julia Caesara se posílaly tajné dokumenty. Stačilo zaměnit písmena zprávy za jiná, např. takto: "A" bylo nahrazeno písmenem "E", "B" bylo nahrazeno písmenem "F", "C" bylo nahrazeno písmenem "G", atd., takže se celá abeceda posunula o 4 znaky. Ze zprávy "Ahoj" se stalo "Eltn" a zpráva byla utajená. Procesu, který z "Ahoj" udělá "Eltn" se říká obecně šifrování (v anglických textech encryption) a procesu, který zprávu rozšifruje se říká dešifrování (decryption). Původní zpráva ("Ahoj") se nazývá (plaintext), zašifrované části ("Eltn") se říká zašifrovaný text (ciphertext).

Symetrická kryptografie Symetrická kryptografie

"Konvenční" nebo-li "Symetrická" kryptografie (Conventional cryptography) využívá tzv. klíč. Klíč spolu s holým textem vstupují do procesu šifrování, jehož výstupem je zašifrovaný text. Pro dešifrování zprávy je potřeba zašifrovaný text a opět klíč. Z výše uvedeného příkladu si můžeme představit, že proces šifrování bude "posunutí písmene v abecedě" a klíč bude číslo 4. Klíč může být i větší. Např. 2|13|5, tj. Text "AHOJAHOJ" se bude šifrovat takto:

A H O J A H O J = C U T L N M R W
2 13 5 2 13 5 2 13  

Vstupní text je tedy "rozsekán" na kousky po 3 písmenech (délka klíče je 3), každý kousek je zašifrován zvlášť (první písmeno "posuneme" o 2 znaky, druhé o 13, třetí o 5) a zašifrované kousky jsou následně opět spojeny. Dešifrování probíhá velice podobně, viz. obrázek.

symetrická kryptografie

Tajnost klíče
Pokud je tajnost zprávy závislá na utajení algoritmu šifrování, je to VŽDY špatně. Pokud by někdo zjistil, jak šifruje Julius Caesar ("posouvá abecedu o 4 znaky"), musel by Julius Caesar hledat jiný způsob šifrování. Současné algoritmy šifrování jsou obecně známé a tajnost zprávy závisí pouze na tajnosti klíče. Délka klíče. Zatímco v prvním případě (klíč je 4, jeho délka je tedy 1) se písmeno "A" zašifruje vždy stejně (stane se z něho "E"), v druhém případě to tak není. Ve slově "AHOJAHOJ" se první "AHOJ" zašifrovalo jako "CUTL", druhé "AHOJ" jako "NMRW".

Kryptoanalýza se zabývá rozbíjením šifer. Pokud přibližně ví, co hledá (zdrojový kód programu v daném jazyce, text v angličtině, text české písně), dokáže na základě četnosti výskytu jednotlivých písmen nebo slov a statistických údajů pro daný jazyk šifru rozbít (vyluštit). Znamená to, že pokud zašifrujete text "bflmpsvz", tak ani kryptoanalýza takový text nerozluští. Na druhou stranu je i Vám takový text úplně k ničemu. Takže vlastnost, že se stejné části vstupního textu zakódují jinak, znesnadní kryptoanalýzu. Jinak řečeno, čím je klíč delší, tím je lepší.

Samozřejmě algoritmus "posouvání písmen" se pro šifrování rozhodně nehodí. Příklad: Alice a Bob spolu komunikují šifrovaným kanálem (tj. zprávy šifrují klíčem, který si předem vyměnili a nikdo jiný než oni dva klíč nezná). Ovšem existuje třetí osoba, Udo, který chce vědět, jaké informace si posílají. Pro Uda nemusí být příliš obtížné získat konkrétní e-mailovou zprávu a její zakódovanou podobu. Např. pošle Bobovi zprávu a chce, aby ji Bob poslal Alici, ale v utajené podobě. Pak poslouchá kanál mezi Alicí a Bobem a zašifrovanou zprávu si odchytí. Navíc zná algoritmus šifrování (ten je obecně známý). Na první pohled je vidět, že pokud by Alice s Bobem používali algoritmus "posouvání písmen", Udo by ze znalosti původní zprávy a zašifrované zprávy jednoduše obdržel klíč.

Naštěstí existují jiné funkce, u kterých platí, že je výpočtem velice obtížné získat klíč při znalosti původní zprávy a zašifrované zprávy (záleží na délce klíče). Při současných možnostech by to trvalo např. 1000 000 000 let. Délka klíče 128 bitů (dnes asi 10 na třicátou devátou let) stačí i pro daleko rychlejší stroje než dnešní) a zároveň platí, že šifrování a dešifrování (když je k dispozici klíč) je rychlé. Mezi tyto algoritmy patří DES, 3DES, CAST, IDEA, jejichž principy fungování jsou popsány ve většině knížek o kryptografii.

Výhody a nevýhody symetrické kryptografie
Výhodou je její rychlost. Dá se dobře využít pro šifrování dat, která se nikam neposílají (zašifrují se dokumenty na počítači, aby je nikdo nemohl číst). Největší nevýhodou je, že pokud chceme s někým tajně komunikovat, musíme si předem bezpečným kanálem předat klíč. To někdy může být obrovský problém. Druhá nevýhoda je počet klíčů. Organizace, ve které chce každý s každým komunikovat tajně, aby je nikdo třetí nemohl odposlouchávat a tato organizace má 10 000 členů, potřebuje mít 5 milionů klíčů. Při existenci internetu a 5 miliard lidí na světě by bylo potřeba 12 500 000 000 000 000 000 klíčů.

Asymetrická kryptografie Asymetrická kryptografie

Existuje ještě další způsob kryptografie, a tím je "Asymetrická kryptografie" (Public key cryptography). Asymetrická je proto, že využívá jiného klíče pro šifrování a jiného pro dešifrování (narozdíl od symetrické), viz. následující obrázek.

symetrická kryptografie

Tato dvojice klíčů je v anglické literatuře nazývána jako keypair - pár klíčů. Klíč, pomocí kterého se šifruje, se nazývá veřejný klíč (public key) a klíč, kterým se dešifruje, se nazývá soukromý klíč (privátní klíč, private key). Princip fungování je následující. Bob má svůj pár klíčů. Jeden soukromý a jeden veřejný. Jeho veřejný klíč znají všichni, soukromý klíč zná jen Bob. Kdokoliv mu chce poslat tajnou zprávu, zašifruje ji jeho veřejným klíčem. Jediný, kdo tu zprávu může rozluštit je Bob, dokonce ani odesílatel ji nerozšifruje.

Výhody a nevýhody
Hlavní výhodou je to, že lidé si nemusí před zahájením vyměnit klíče neodposlouchávaným komunikačním kanálem. Veřejný klíč mohou znát všichni. Je potřeba méně klíčů. Kdokoliv chce posílat tajné věci Bobovi, použije Bobův veřejný klíč.

Další funkcí, kterou je možné realizovat pomocí asymetrické kryptografie, je tzv. digitální podpis. Existují funkce (např. MD5), kterým se říká hash funkce. Hash funkce dělají tzv. otisk zprávy (message digest). Hash funkci dáme na vstup libovolné zprávy (libovolně dlouhé) a na výstupu obdržíme její otisk, který má pevnou délku (128 nebo 160 bitů). Pokud bychom ve zprávě změnili byť i jediné písmeno, dostaneme na výstupu úplně jiný otisk. Hash funkce jsou známé a kdokoliv si může z jakékoliv zprávy takový otisk udělat. Navíc platí, že je výpočetně velice obtížné vytvořit k libovolné zprávě jinou zprávu, která má stejný otisk. (Asi tak stejně obtížné jako rozšifrovat zprávu bez klíče). Tento otisk se zašifruje soukromým klíčem a dostaneme žádaný digitální podpis, který připojíme na konec původní zprávy.

Např. Alice podepíše zprávu svým soukromým klíčem. Nikdo jiný než Alice takový podpis nevytvoří, protože jen Alice zná svůj soukromý klíč. Samozřejmě, nějaký útočník může zase podpis ze zprávy umazat, ale nemůže podvrhnout jinou zprávu a podepsat ji jako Alice. Jak pozná Bob, že zprávu podepsala Alice? Rozšifruje podpis veřejným klíčem Alice a dostane otisk. Zavolá hash funkci (stejnou jako Alice - vstupem bude holá zpráva) a dostane pravý otisk zprávy. Pak pravý otisk porovná s otiskem, který si rozkódoval veřejným klíčem Alice. Pokud se rovnají, pak Bob ví, že zprávu mohla podepsat jen Alice. Dokonce ani Alice nemůže tvrdit, že to není její podpis a že zprávu nepodepsala.

Proč se vlastně šifruje otisk zprávy a ne celá zpráva? Pokud by Alice zašifrovala celou zprávu a připojila ji na konec zprávy původní, pak by zprávu zdvojnásobila. Ale připojením otisku (samozřejmě zašifrovaného) se zpráva zvětší jen o pár bytů.

Asymetrická kryptografie má také své nevýhody. Je asi 1000 x pomalejší než kryptografie symetrická. Další nevýhodou asymetrické kryptografie je pravost klíče. Musíte vědět na 100 %, že klíč patří opravdu dané osobě, tj. vědět , že není podvržený (pokud Vám ho daný člověk osobně nepředal do ruky).

PGP využívá asymetrickou kryptografii. Umožňuje šifrovat, podpisovat, dešifrovat a ověřit podpis Vaší zprávy. Pokud chce uživatel posílat šifrované zprávy konkrétním příjemcům (kteří taky musí mít PGP), potřebuje k tomu následující věci: svůj pár klíčů, tj. soukromý klíč (pro podepisování vlastních zpráv a dešifrovaní přijatých zpráv) a veřejný klíč (pro příjemce, aby mohli ověřovat podpis a šifrovat zprávy pro uživatele jeho klíčem ) a veřejné klíče příjemců (aby mohl šifrovat zprávy, které posílá ostatním a ověřovat jejich podpisy).

Soubor, ve kterém jsou uchovány zmiňované klíče, se nazývá PGP KEYRING, tj. kroužek klíčů. V PGP jsou dva takové soubory. Soubor s veřejnými klíči a soubor se soukromými klíči. Můžete mít i více svých párů klíčů. Každý můžete používat pro jiné účely, jeden například pro komunikaci s přáteli, druhý (silnější) pro utajování firemních dokumentů a korespondence. PGP chrání soukromý klíč navíc heslem (passphrase). Heslo by mělo být delší, nejlépe několik slov, např. "Maminka mě nemá ráda"), pro případ, že by Váš klíč někdo získal z Vašeho počítače (heslo musíte zadávat při dešifrování a podepisování).

Tisknout tuto stránku