Criptografia traditionala si securitatea datelor referat



Criptografia traditionala

Istoria criptografiei este lunga si pitoreasca. Se spune ca la dezvoltarea procedeelor de criptare (codificare) au contribuit: armata, corpurile diplomatice, persoanele care au tinut jurnale si indragostitii. Evident, dezvoltarea tehnicilor de criptare a constiuit o prioritate pentru organizatiile militare, care utilizau frecvent asemenea procedee. Inainte de aparitia calculatoarelor, volumul mare de mesaje criptate sau transmise a fost gestionat de un numar mare de functionari 'codori'. Evident, tehnicile folosite erau limitate de capacitatea codorilor de realizare a transformarilor necesare si de insusirea de catre acestia a unor tehnici criptografice noi. Totusi, pericolul de capturare a codurilor de catre 'inamici' facea necesara schimbarea periodica a metodei de criptare.



Modelul clasic de criptare presupune transformarea unui text sursa ('plain text') printr-o functie dependenta de o cheie ('key'), transformare in urma careia rezulta textul cifrat ('ciphertext'). Inainte de aparitia retelelor de calculatoare, acesta era transmis printr-un curier sau prin radio. In cazul interceptarii mesajelor cifrate, ele nu puteau fi decodificate prea usor in absenta cheii de criptare. Uneori, 'intrusii' puteau nu numai sa asculte canalele de comunicatie (intrusi pasivi), ci si sa inregistreze mesajele si sa le retransmita mai tarziu, sa introduca propriile mesaje sau sa modifice mesajele legitime inainte ca ele sa ajunga la receptor (intrus activ).

Domeniul care se ocupa de spargerea (decodificarea) cifrurilor se numeste criptanaliza ('cryptanalysis') iar conceperea cifrurilor (criptografia) si spargerea lor (criptanaliza) sunt cunoscute global sub numele de criptologie ('cryptology').

Intr-o incercare de formalizare matematica a proceselor de criptare si decriptare, se pot folosi urmatoarele notatii: S - textul sursa, CK - functia de criptare, dependenta de o cheie K, R - codul rezultat si DK - functia de decriptare. Cu aceste notatii, criptarea este exprimata prin formula

R = CK(S) iar decriptarea - prin S = DK(R).

Se observa ca DK(CK(S)) = S.

O regula de baza in criptografie stabileste necesitatea cunoasterii metodei generale de criptare de catre orice criptanalist. Acest principiu are la baza constatarea ca pentru a inventa, testa si instala o noua metoda de criptare este necesara o cantitate prea mare de efort pentru ca acest procedeu sa fie practic. In consecinta, cel mai important element devine cheia de criptare.
Cheia consta intr-un sir de caractere care defineste / selecteaza una sau mai multe criptari potentiale. Spre deosebire de metoda generala, care, in mod traditional, se schimba doar la cativa ani, cheia putea fi schimbata oricat de des era necesar.

In concluzie, modelul de baza al criptarii foloseste o metoda generala cunoscuta, care este parametrizata cu o cheie secreta, ce poate fi schimbata usor. In mod paradoxal, publicarea algoritmului de criptare, prin faptul ca da posibilitatea unui numar mare de criptologi sa sparga sistemul, ii poate dovedi stabilitatea, in caz ca dupa cativa ani nici unul din specialistii care au incercat sa-l sparga nu a reusit.

Componenta secreta a criptarii este, in consecinta, cheia, a carei lungime devine foarte importanta. In mod evident, cu cat cheia este mai lunga lunga, cu atat elementele ei sunt mai greu de determinat. De exemplu, pentru o secventa de n cifre (0,,9), exista 10n posibilitati de a o crea. Astfel, pentru determinarea unei secvente de 6 cifre ar trebui parcurse 1 milion de posibilitati. In cazul in care cheile ar contine litere, numarul de alternative creste fiindca in alfabet exista 26 de litere. Se poate deduce ca lungimea cheii produce cresterea exponentiala a volumului de munca al criptanalistului. O cheie care sa poata tine la distanta adversari profesionisti ar trebui sa aiba cel putin 256 de biti (cel putin 32 de cifre), in timp ce uzual se pot folosi chei de 64 de biti (in jur de 8 cifre).

Cand un criptanalist trebuie sa decodifice un text, el se confrunta cu una din urmatoarele probleme:

problema textului cifrat ('ciphertext only problem'), cand are la dispozitie o cantitate de text cifrat si nici un fel de text sursa;

problema textului sursa cunoscut ('known plaintext problem'), cand are la dispozitie un text sursa si textul cifrat corespunzator;

problema textului sursa ales ('chosen plaintext problem'), daca poate cripta la alegere zone din textul sursa (poate afla criptarea unui anumit text).

In multe situatii, criptanalistul poate ghici unele parti din textul sursa, chiar daca teoretic s-ar gasi in situatia de a rezolva o problema de text cifrat. (De exemplu, initierea unei sesiuni de lucru intr-un sistem multiutilizator va contine uzual cuvantul 'LOGIN'.) De aceea, pentru a asigura securitatea, criptograful trebuie sa se asigure ca metoda propusa este sigura, chiar daca inamicul sau poate cripta cantitati arbitrare de text ales.

Exista doua metode traditionale de criptare: cifruri cu substitutie si cifruri cu transpozitie. Aceste tehnici de baza sunt folosite, in forme evoluate, si in sistemele moderne de criptare.

Cifrurile cu substitutie. Intr-un asemenea cifru, fiecare litera sau grup de litere este inlocuit(a) cu o alta litera sau cu un grup de litere. Cel mai vechi exemplu este cifrul lui Cezar, prin care a devine D, b devine E, , z devine C. Prin generalizare, alfabetul poate fi deplasat cu k litere in loc de 3. In acest caz, k devine cheia pentru metoda generala a alfabetelor deplasate circular.

O alta metoda de substitutie este inlocuirea fiecarei litere din textul sursa cu o anumita litera corespondenta. Sistemul se numeste substitutie monoalfabetica si are ca si cheie un sir de 26 de litere. Pentru o persoana neavizata, acest sistem ar putea fi considerat sigur fiindca incercarea tuturor celor 26! de chei posibile ar necesita unui calculator 1013 ani alocand 1msec pentru fiecare solutie. Totusi, folosind o cantitate foarte mica de text cifrat, cifrul va putea fi spart cu usurinta.

Abordarea de baza porneste de la proprietatile statistice ale limbajelor naturale. Cunoscand frecventa statistica a fiecarei litere si a fiecarui grup de doua sau trei litere (de exemplu, in limba romana: ce, ci, ge, gi, oa, ua etc.) intr-o anumita limba, numarul mare de alternative initiale se reduce considerabil. Un criptanalist va numara frecventele relative ale tuturor literelor in textul cifrat si va incerca sa faca asocierea cu literele a caror frecventa este cunoscuta. Apoi va cauta grupurile de litere, incercand sa coroboreze indiciile date de acestea cu cele furnizate de frecventele literelor.

O alta abordare, aplicabila daca exista informatii despre domeniul la care se refera textul, este de a ghici un cuvant sau o expresie probabila (de exemplu, 'financiar' pentru un mesaj din contabilitate) si de a cauta corespondentul sau, folosind informatii despre literele repetate ale cuvantului si pozitiile lor relative. Abordarea se poate combina cu informatiile statistice legate de frecventele literelor.

Cifruri cu transpozitie. Spre deosebire de cifrurile cu substitutie, care pastreaza ordinea literelor din textul sursa dar le transforma, cifrurile cu transpozitie ('transposition ciphers') reordoneaza literele, fara a le 'deghiza'.

Un exemplu simplu este transpozitia pe coloane, in care textul sursa va fi scris litera cu litera si apoi citit pe coloane, in ordinea data de o anumita cheie. Ca si cheie se poate alege un cuvant cu litere distincte, de o lungime egala cu numarul de coloane folosite in cifru. Ordinea alfabetica a literelor din cuvantul cheie va da ordinea in care se vor citi coloanele.
Exemplu: Daca textul sursa este:

'acest curs isi propune sa prezinte facilitatile de comunicare oferite de retelele de calculatoare' iar cheia este 'PRECIS', atunci asezarea sa pe coloane va genera urmatorul text cifrat:

P

R

E

C

I

S

4

5

2

1

3

6

a

c

e

s

t

c

u

r

s

i

s

i

p

r

o

p

u

n

e

s

a

p

r

e

z

i

n

t

e

f

a

c

i

l

i

t

a

t

i

l

e

d

e

c

o

m

u

n

i

c

a

r

e

o

f

e

r

i

t

e

d

e

r

e

t

e

l

e

l

e

d

e

c

a

l

c

u

l

a

t

o

a

r

e

'sipptllm rieecaesoani ioarrllotsureieu ettduraupezaaei fdlcacrrsictcceeeat cineftdnoeeele'.

Spargerea unui cifru cu transpozitie incepe cu verificarea daca acesta este intr-adevar de acest tip prin calcularea frecventelor literelor si compararea acestora cu statisticile cunoscute. Daca aceste valori coincid, se deduce ca fiecare litera este 'ea insasi', deci este vorba de un cifru cu transpozitie.

Urmatorul pas este emiterea unei presupuneri in legatura cu numarul de coloane. Acesta se poate deduce pe baza unui cuvant sau expresii ghicite ca facand parte din text. Considerand sintagma 'saprezinte', cu grupurile de litere (luate pe coloane) 'si', 'an', 'pt', 're', se poate deduce numarul de litere care le separa, deci numarul de coloane. Notam in continuare cu k acest numar de coloane.

Pentru a descoperi modul de ordonare a coloanelor, daca k este mic, se pot considera toate posibilitatile de grupare a cate doua coloane (in numar de k(k-1) ). Se verifica daca ele formeaza impreuna un text corect numarand frecventele literelor si comparandu-le cu cele statistice. Perechea cu cea mai buna potrivire se considera corect pozitionata. Apoi se incearca, dupa acelasi principiu, determinarea coloanei succesoare perechii din coloanele ramase iar apoi - a coloanei predecesoare. In urma acestor operatii, exista sanse mari ca textul sa devina recognoscibil.

Unele proceduri de criptare accepta blocuri de lungime fixa la intrare si genereaza tot un bloc de lungime fixa. Aceste cifruri pot fi descrise complet prin lista care defineste ordinea in care caracterele vor fi trimise la iesire (sirul pozitiilor din textul de intrare pentru fiecare caracter din succesiunea generata).

Problema construirii unui cifru imposibil de spart a preocupat indelung pe criptanalisti; ei au dat o rezolvare teoretica simpla inca de acum cateva decenii dar metoda nu s-a dovedit fiabila din punct de vedere practic, dupa cum se va vedea in continuare.

Tehnica propusa presupune alegerea unui sir aleator de biti pe post de cheie si aducerea textului sursa in forma unei succesiuni de biti prin inlocuirea fiecarui caracter cu codul sau ASCII. Apoi se aplica o operatie logica - de tip Sau exclusiv (operatia inversa echivalentei: 0 xor 0 = 0, 0 xor 1 = 1, 1 xor 0 = 1, 1 xor 1 = 0) - intre cele doua siruri de biti. Textul cifrat rezultat nu poate fi spart pentru ca nu exista indicii asupra textului sursa si nici textul cifrat nu ofera criptanalistului informatii. Pentru un esantion de text cifrat suficient de mare, orice litera sau grup de litere (diftong, triftong) va aparea la fel de des.

Acest procedeu este cunoscut sub numele de metoda cheilor acoperitoare. Desi este perfecta din punct de vedere teoretic, metoda are, din pacate, cateva dezavantaje practice:

cheia nu poate fi memorata, astfel incat transmitatorul si receptorul sa poarte cate o copie scrisa a ei fiindca in caz ca ar fi 'capturati', adversarul ar obtine cheia;

cantitatea totala de date care poate fi transmisa este determinata de dimensiunea cheii disponibile;

o nesincronizare a transmitatorului si receptorului care genereaza o pierdere sau o inserare de caractere poate compromite intreaga transmisie fiindca toate datele ulterioare incidentului vor aparea ca eronate.