Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Šifrování a biometrie pod drobnohledem

20.2.2009, Michal Koláček, článek
Šifrování a biometrie pod drobnohledem
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.
Kapitoly článku:

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 bij = S (aij). 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 = xe (mod m), kde "e" je kryptovací klíč. V případě, že chceme data dešifrovat, použijeme vztah x = yd (mod m), kde "d" je privátní tajný klíč. Následně pro všechny hodnoty "x" platí vztah x = yd = 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í -