Seznam kapitol
Dnes vám přiblížíme pojmy šifrování a biometrie. Oba úzce souvisí s bezpečností IT a obsahují několik technik, kterým se budeme věnovat. Popíšeme si základní pojmy kryptografie, moderní metody šifrování, biometrické systémy a mnoho dalšího. Pojďme na věc.
Symetrické šifrování
Samotný princip fungování jsme si již osvětlili, a tak přejdeme rovnou k vybraným zástupcům. Těmi jsou proudová šifra
RC4
(Rivest Cipher 4) a blokové šifry
DES
(Data Encryption Standard),
AES
(Advanced Encryption Standard).
U proudových šifer je operací pro šifrování a dešifrování funkce XOR příslušného bitu otevřeného textu s odpovídajícím bitem proudu klíče. První zmíněnou navrhl v roce 1987
Ronald Linn Rivest
, jeden z autorů algoritmu RSA. Její popis se objevil poprvé v roce 1994 jako krátký zdrojový kód anonymního hackera.
	
	Ucelená definice chráněná obchodním tajemstvím společnosti RSA Data Security (dnes jedna z divizí EMC) se prostřednictvím Internetu rázem rozšířila do celého světa. Šifra používá volitelnou délku klíče až 256 bytů, ale v praxi je možné se setkat s hodnotami 40 a 128 bitů. Na vstupu je daný klíč, z něhož se vytvoří permutace, která je následně zamíchána pomocí určité posloupnosti. Jedná se o streamové řešení, kde není jednoznačně určena délka bloku.
V případě blokových šifer se otevřený text rozdělí do bloků stejné délky a každý z nich se šifruje zvlášť za použití stejného klíče. Historické kořeny normy
DES
sahají do roku 1974, kdy byl vyvinut společností
IBM
algoritmus Lucifer. Jejím autorem byl
Horst Feistel
. Za necelé tři roky byl tento standard přijat pro ochranu citlivých neutajovaných dat ve veřejné správě. Používá 64bitový klíč, přičemž každý osmý bit je kontrolní - efektivní délka je 56 bitů.
	
- Základní schéma DES -
Jde o iterované řešení, kdy je původní 64bitový blok otevřeného textu postupně kryptován pomocí operace zašifrování. Jeden takový proces se nazývá runda. Bity původního klíče se posouvají a upravují na 16 rundovních klíčů o délce 48 bitů za pomoci expanzní funkce. Z obrázku je také patrná počáteční a inverzní permutace sloužící k úpravě textů. Existují čtyři základní módy operací:
- ECB - Electronic Code Book
 - CBC - Cipher Block Chaining
 - OFB - Output Feedback
 - CFB - Cipher Feedback
 
Největší slabinou této šifry je krátká délka klíče. Dokumentovány jsou teoretické (1990-94) i praktické útoky (1998-99). Vzhledem k dnešním normám a potřebám se začal využívat standard
Triple DES
alias TDES, 3TDES s 168bitovým klíčem (vícenásobná aplikace předchozího, na stejný blok dat jsou použity tři klíče). Zajišťuje vyšší bezpečnost než například CAST (autoři Carlisle Adams a Stafford Tavares) nebo IDEA (James L. Massey a Xuejia Lai). Nevýhodou je jeho značné zpomalení.
	
- Názorné schéma metody TDES (K1, K2, K3 jsou klíče, M představuje blok textu a C je konečný výstup) -
Pánové
Vincent Rijmen
a
Joan Daemen
jsou autory šifry
AES
publikované v letech 1998. Ta vznikla na základě celosvětové soutěže o návrh blokové šifry nové generace. Původní název algoritmu zní
Rijndael
a vychází od jmen svých tvůrců. Základy jsou přebrány z normy DES a navíc podporuje tři délky klíčů - 128, 192 a 256 bitů. Aplikace připadá v úvahu na data s pevně daným rozsahem například 128 bitů. Reálná hrozba na prolomení je možná ze strany kvantových počítačů, o nichž si může obyčejný smrtelník nechat pouze zdát.
	
- První fáze: SubBytes -
Samotné šifrování probíhá ve čtyřech krocích a začíná se jednoduchou substitucí
SubBytes
, kdy je každý byte nahrazován jiným podle předem daného klíče. Vše se provádí pomocí 8bitového substitučního boxu, kdy b
ij
= S (a
ij
). Díky této operaci je zajištěna nelineárnost šifry. Tím je zabráněno útokům, které jsou založeny na nesložitých algebraických vlastnostech.
	
- Druhá fáze: ShiftRows -
V druhém kroku dochází k posunutí jednotlivých řad
ShiftRows
- hovoříme o cyklickém přesouvání bytů v každém řádku směrem doleva, přičemž první zůstává nezměněn. Z obrázku je dále patrné, že počet řádků označuje krok posunutí (o jeden, dva, tři atp.). Tento offset se v případě jiných variant může mírně lišit.
	
- Třetí fáze: MixColumns -
Další operací je
MixColumns
. Zde můžeme pozorovat procházení jednotlivých sloupců, kde jsou za pomoci regulární lineární transformace kombinovány čtveřice bytů každého z nich. Dochází k násobení pevným polynomem c(x).
	
- Čtvrtá fáze: AddRoundKey -
V posledním kroku
AddRoundKey
dochází ke kombinaci bytů pomocí funkce XOR. Z klíčové tabulky se pro každou úroveň odvozuje podklíč. Výslednou šifru tvoří kombinace bytu subklíče s příslušným bytem otevřeného textu. Pro doplnění zmíníme, že výše uvedená soutěž čítala 15 účastníků, kdy do finále postoupilo pět algoritmů: RC6, Twofish, MARS, Serpent a uvažovaný Rijndael (pozdější vítěz). Na přiloženém ilustrativním obrázku pod textem je znázorněna rychlost metody v závislosti na délce použitého klíče s hodnotami 128 (barva modrá), 192 (červená) a 256 bitů (zelená).
	
- Ilustrativní ukázka rychlosti AES v závislosti na délce klíče -
Asymetrické šifrování
Jeho počátky se datují do roku 1975 a svoji slávu získalo díky dvojici
Whitfield Diffie
a
Martin Hellman
. Oba jsou považováni za tvůrce metody kryptografie veřejného klíče. Mezi tyto nejvýznamnější kryptosystémy řadíme
Elgamal
(autorem Tahel Elgamal),
DSA
(David Kravitz) související se standardem pro digitální podpis a
RSA
(Ronald L. Rivest, Adi Shamir, Leonard Adleman). Poslední jmenovaný byl vypracován v letech 1977 a využívá Fermatovu větu a modulární aritmetiky.
	
	
	
- Ronald L. Rivest, Adi Shamir a Leonard Adleman -
Ta je definována na konečné množině, kdy se provádí celočíselné dělení a výsledkem je zbytek. Vše je postaveno na předpokladu, že rozložit obrovské číslo na součin prvočísel je složitý úkol (n představuje veřejný klíč a je roven p × q). Vyřešit problém faktorizace velmi vysokých čísel je v reálném čase zvlášť obtížná úloha. RSA klíče jsou typicky dlouhé 1 024 až 2 048 bitů. Platí zde nepřímá úměra - čím větší klíč, tím menší riziko prolomení. Teoretický popis problému by mohl vypadat následovně.
Mějme výše uvedený vztah n = p × q. Veřejný klíč bude dvojice celých kladných čísel (e, m) a soukromý (d). Pro zašifrování otevřeného textu zprávu rozdělíme na bloky o velikosti 0 až m-1 a využijeme vztahu y = x
e
(mod m), kde "e" je kryptovací klíč. V případě, že chceme data dešifrovat, použijeme vztah x = y
d
(mod m), kde "d" je privátní tajný klíč. Následně pro všechny hodnoty "x" platí vztah x = y
d
= x
de
(mod m). Postup výpočtu dešifrovacího klíče "d" je dobře pochopitelný na konkrétním příkladu.
Hybridní šifrování
Následující odvětví spojuje výhody obou předchozích a snaží se eliminovat jejich problémy - složitost přenosu klíče a náročnost na výpočetní výkon. Nejpoužívanějším systémem je
PGP
(Pretty Good Privacy). Jeho autorem je
Paul Zimmermann
ze společnosti Pretty Good Software a první verze spatřila světlo světa v roce 1991. Používá se pro bezpečnou elektronickou poštu a umožňuje správu klíčů, šifrovat a dešifrovat zprávy, digitálně je podepisovat nebo ověřovat identitu odesilatelů. Princip funkce je následující.
	
- Paul Zimmermann -
Na začátku máme jako vždy otevřený text, jenž je v první fázi zkomprimován. Při tom se využívá volně dostupné utility PKZIP, kterou jako první vytvořil Phil Katz. Pro potřeby procesu šifrování dokumentu se generuje symetrický klíč - 128bitový IDEA či CAST nebo 168bitový TDES .Vše probíhá náhodně pomocí rychlosti stisku kláves a pohybu myši. Tím je pak datové zpráva zakódována. Dalším krokem je zašifrování onoho symetrického klíče jiným už veřejným symbolem.
	
- Základní princip utajení zprávy systémem PGP -
V této fázi se využívá algoritmů RSA či DSS (Digital Signature Standard) alias DSA. Výsledné části jsou následně spojeny v jedno tělo souboru a můžeme je považovat za šifrovaná PGP data. Dekódování probíhá inverzním způsobem. V případě výpočetní techniky, kdy bychom uvažovali zabezpečené spojení klienta a serveru, se pro dva počítače vytvoří relace, kdy dojde k předání symetrického klíče. O generování se stará vždy jeden z účastníků, ten druhý jej pouze přijímá. Odposlechnutí klíče třetí stranou není možné.
	
- Možný princip elektronického podpisu v systému PGP -
Druhým obrázkem se pomalu blížíme k hashovacím funkcím, ale nepředbíhejme. Výše je zachycen proces podepsání zprávy elektronickým podpisem uvažovaným systémem. O kryptografický kontrolní součet dokumentu se stará odesilatel a algoritmus MD5. Následuje zašifrování jeho soukromým klíčem pomocí RSA a zaslání elektronického podpisu příjemci společně se zprávou. Příjemce na straně druhé veřejným klíčem odesílatele dešifruje přijatý podpis a porovnává jej s původním kryptografickým kontrolním součtem.
Hashovací funkce
Mezi nejrozšířenější, chcete-li nejpoužívanější, hashovací funkce můžeme zařadit
MD5
(Message-Digest algorithm 5) a souhrnně označovanou
SHA
(Secure Hash Algorithm). Obecně jde o funkce, které vytváří ze vstupních dat výstupní otisk (hash) fixní délky. První uvedená se objevila v roce 1991, nabízela 128bitový výstup a prsty v tom měl opět Ronald L. Rivest.
Cílem bylo nahradit tehdy starší MD4, jež byla shledána jako nevyhovující. Její algoritmus se uplatnil v mnoha aplikacích, dobře poslouží k ověření integrity souborů, ukládání hesel nebo zajištění skutečnosti, že přenášená data byla doručena neporušena. Z minulosti jsou známé některé kolize/slabiny, a tak se doporučuje využívat jiných metod. Nástupcem je poměrně nové pokračování MD6.
	
- Bitová manipulace na 32bitových operandech alias MD4 v novém kabátu -
Za normou
SHA
stojí organizace NSA (National Security Agency), jež ji navrhla a NIST (National Institute of Standards and Technology), která ji vydala jako FIPS (Federal Information Processing Standard). Do českého jazyka přeloženo, Národní bezpečnostní agentura podala návrh týkající se SHA u Národního institutu pro standardy, a ten ji schválil jako americký federální standard. Zeměpisně se pohybujeme v USA. Abychom se oprostili od všemožných zkratek věnujme se raději jejímu vlastnímu popisu.
	
- Schéma iterace kompresní funkce z rodiny SHA-2 -
Původní SHA algoritmus byl uveden v roce 1993 pod názvem
SHA-0
. V krátkém čase o dva roky později byl nahrazen novou verzí
SHA-1
. Dalšími pokračovateli jsou
SHA-224
/
256
/
384
/
512
souhrnně označované jako SHA-2. Délka výstupu je proměnlivá, a to 160 (SHA-1), 224, 256, 384 a 512 bitů (SHA-2). Z neustálých debat o bezpečnosti uvažovaných metod byla formálně realizována otevřená soutěž o nalezení nového algoritmu. Vyhodnocení všech návrhů dle informací už probíhá a vyhlášení vítězů je plánováno na rok 2012.
Algoritmus  | Délka výstupního hashe (bitů)  | Velikost bloku (bitů)  | Velikost datové zprávy (bitů)  | 
SHA-0  | 160  | 512  | 264-1  | 
SHA-1  | 160  | 512  | 264-1  | 
SHA-224/256  | 224/256  | 512  | 264-1  | 
SHA-384/512  | 384/512  | 1 024  | 2128-1  | 
- Porovnání jednotlivých SHA funkcí -