Sunteți pe pagina 1din 19

Capitolul 4 – Metode de atac criptografice

4. Metode de atac criptografice

În criptografie se consideră atac orice încercare prin care un atacator încearcă să treacă de
barierele de securitate ale unui sistem. Candidaţii la ”titulatura” de atacator, împreună cu o
caracterizare a lor, sunt enumeraţi în tabelul 4.1.
Un atac poate distruge, altera sau să facă inutilizabile datele dintr-un sistem. Nu ne
propunem deocamdată să evaluăm ce înseamnă un astfel de atac pentru un mediu economic!
Succesul unui atac depinde de vulnerabilitatea sistemului şi de eficienţa (sau absenţa) măsurilor
de apărare.
Într-un limbaj cotidian terminologia folosită este de “a sparge” un sistem sau un algoritm.
Spargerea unui sistem criptografic înseamnă, în limbajul specific, obţinerea textului în clar din
cel criptat fără a avea cheia secretă; de fapt succesul real este dat de obţinerea cheii de criptare
care asigură atacatorul (sau criptanalistul) că va putea decripta şi următoarele mesaje.
Determinarea sau reconstituirea algoritmului folosit pentru a cripta un mesaj nu este un
obiectiv criptografic (implicit nici pentru un atac). Motivaţia este dată de faptul că majoritatea
algoritmilor folosiţi astăzi sunt cunoscuţi, datorită faptului că este greu să ţii un algoritm secret,
iar pe de altă parte adevărata validare a securităţii unui algoritm nu poate veni decât din partea
comunităţii criptografice.
În aceste condiţii cerinţa minimală de securitate pentru un sistem consider că este: oricine
are acces la textul criptat şi cunoaşte algoritmul de criptare (şi decriptare folosit) să nu poată
reconstitui în întregime textul clar.
Deşi literatura de specialitate nu abundă în detalii la capitolul atacuri, în acest capitol voi
face o trecere în revistă a unei liste a metodelor de atac (listă care nu are nici o pretenţie de a fi
completă) împreună cu câteva exemplificări. Am renunţat la o clasificare propriu-zisă pentru că
în practică este foarte greu să alegi o categorie de atacuri atunci când vrei să încerci
vulnerabilitatea unui sistem.
Una dintre problemele interesante (în general neglijată în literatura de specialitate) este
cine este interesat să “spargă” un sistem criptografic. Candidaţii, împreună cu obiectivelor pe care

59
Capitolul 4 – Metode de atac criptografice

şi le propun, nivelul lor de cunoştinţe în domeniul criptografiei , resursele tehnice şi financiare de


care dispun şi motivarea lor, îi găsim în tabelul următor:

Candidaţi Nivel Obiective Resurse Motivare


Specialişti din Mediu - Medii - Medii - Financiară, avantaje competitive
Corporaţii avansat avansate mari
Guverne Avansat Mediu - Mari Interes naţional
(agenţii avansate
guvernamentale)
Angajaţi Mediu Avansate Medii Financiară, răzbunare
(oameni care au
acces la sistem din
interiorul companiei)
Terorişti Avansat Medii Medii - Religioasă, scopuri politice
mari
Criminali Mediu - Medii Medii Financiară, control/putere
Avansat
Hackeri novici Scăzut Neimportante Scăzute Intelectuală,
OBS: au mult timp şi curiozitate, recunoaştere, distracţie
sunt periculoşi
pentru că nu ştiu ce
fac
Hackeri profi Mediu - Avansate Medii Recunoaştere, îmbunătăţirea unor
Avansat sisteme de securitate pentru bani
Hackeri de ”bune Mediu - Fără Medii Îmbunătăţesc sisteme de securitate
maniere” Avansat doar pentru a-şi etala cunoştinţele
dar uneori scriu utilitare pentru
novici
Specialiştii în Mediu - Fără Medii- Îmbunătăţesc sisteme de securitate
criptografie Avansat mari

Tabelul 4.1 Posibilii atacatori ai unui sistem de securitate

60
Capitolul 4 – Metode de atac criptografice

4.1 Criptanaliza

Analiza criptografică este ramura care studiază metodele prin care încercăm să aflăm
informaţii despre textul în clar folosind frânturi de text clar şi de text cifrat (nu este o regulă);
metoda prioritară este “atacul”.
Un atac asupra unui sistem criptografic este o metoda criptografică, ce pornind de la nişte
informaţii minimale asupra unor bucăţi de text clar şi corespondentul său cifrat folosindu-se chei
(necunoscute), încearcă să deducă mai multe informaţii despre textul clar; în limbajul comun se
foloseşte terminologia de ”a sparge un cifru” cu înţelesul de a deduce textul clar folosind doar
informaţii despre textul cifrat.
În criptografie regulile sunt mai lejere: ”a sparge” un cifru înseamnă a găsi o slăbiciune a
cifrului (algoritmului) care să poată fi exploatată ulterior cu metode pentru care e suficient ca
timpul de căutare să fie evident mai mic decât pentru un atac care caută exhaustiv toate
combinaţiile posibile (care va fi definit în continuare ca atac de tip forţa brutală = ”brute-force”).
În criptologie este consacrat faptul că nici un sistem criptografic nu este considerat sigur
100%.
Convenţional spunem că un sistem criptografic este sigur dacă orice atac cunoscut asupra
sistemului este prea lent pentru a fi practic; dacă putem demonstra aceasta propoziţie atunci
putem avea încredere în acel sistem.

Atac cu text cifrat1


Acest tip de atac se bazează pe informaţii referitoare doar la secvenţe de text cifrat. Atacul
cu text cifrat este unul dintre cele mai dificile metode criptografice din cauza informaţiei foarte
sumare pe care o avem pe baza căreia trebuie să deducem informaţii despre textul clar sau despre
chei.

Atac adaptiv cu text cifrat2


Acest tip de atac este o forma interactivă a atacului de tip text cifrat în care se trimit mai
multe secvenţe de text clar pentru a fi decriptate şi apoi se folosesc secvenţele obţinute pentru a

1
Ciphertext-only attack
2
Adaptive ciphertext attack

61
Capitolul 4 – Metode de atac criptografice

alege acele secvenţe de text clar + text criptat care dau informaţii revelatoare despre textul cifrat
sau despre cheile folosite pentru decriptare.
Conceptul a fost considerat multă vreme un concept doar teoretic (până în 1998) când
Daniel Bleicherbacher de la Bell Laboratories a demonstrat practic în lucrările sale [BKS98] şi
[Ble98] posibilităţile acestui tip de atac împotriva unui sistem care folosea algoritmul de criptare
RSA în asociere cu PKCS#1 v1 ca funcţie de criptare care includea şi o versiune de protocol SSL
folosit de mii de web servere din lume la acea data; în practică a trimis milioane de texte cifrate
către echipamentul de decriptare (web serverul echipat cu SSL) şi din analiza datelor gradual a
reuşit să obţină informaţii despre mesajul criptat cu RSA.
Prevenirea atacurilor
Pentru a preveni un astfel de tip de atac este necesară folosirea unui algoritm de criptare
care limitează maleabilitatea textului cifrat; o soluţie folosită în multe cazuri este folosirea pe
termen scurt a cheilor de criptare;

Atac cu text clar ales3


Acest tip de atac presupune că avem posibilitatea de a alege texte clare arbitrare pentru a fi
criptate şi obţinem textele criptate corespondente; scopul atacului este de a obţine informaţii
suplimentare, de regulă asupra cheilor de criptare.
Deşi la prima vedere pare a fi un model departe de realitate, practica criptografiei moderne
a arătat că datorită implementărilor hard sau soft a algoritmilor de criptare pentru variate tipuri de
aplicaţii, obţinerea unor astfel de şiruri de informaţii este plauzibilă astfel încât un astfel de tip de
atac este fezabil.
În practica criptografică se folosesc două forme diferite ale atacului:
- atac de tip batch – în care analistul alege toată seria de texte în clar înainte de fi criptate;
- atac de tip adaptiv – în care analistul îşi alege textul pentru criptare funcţie de
informaţiile pe care le are din precedentele criptări.
Acest tip de atac se pretează bine pentru algoritmii simetrici unde cheile se folosesc atât
pentru criptare cât şi pentru decriptare (vezi analiza criptografică a algoritmilor de criptare de tip
bloc în capitolul 5).
Un exemplu clasic este tehnica folosită de aliaţi în cel de-al doilea război mondial pentru
a descifra Enigma.

3
Chosen-plaintext attack

62
Capitolul 4 – Metode de atac criptografice

Atacul cu chei alese4


În acest caz atacatorul nu posedă informaţii complete despre chei ci doar câteva informaţii
disparate despre relaţiile dintre nişte chei; este un atac foarte puţin folosit şi aproape
impracticabil.

Atac în forţă
Multe sisteme criptografice nu au puncte vulnerabile cunoscute (cel puţin până acum); în
această situaţie singura modalitate rămâne un astfel de atac care constă în încercarea tuturor
codurilor posibile, a combinaţiilor sau a cheilor pentru a găsi pe cea corectă şi a decripta mesajul.
Acest mod de lucru se dovedeşte foarte dificil în multe cazuri datorită mai multor factori:
• lungimea cheilor;
• câte valori pot lua cheile;
• cât va dura derularea încercărilor.

O întrebare naturală care se ridică este: cât va dura un astfel de atac? Răspunsul depinde nu
numai de factorii enunţaţi anterior (lungimea cheilor şi spaţiul valorilor posibile) ci şi de puterea
de calcul disponibilă atacatorului (sau criptanalistului). Deoarece atunci cînd proiectăm un sistem
criptografic, dorim să-l facem utilizabil pentru mulţi ani, trebuie să estimăm evoluţia puterii de
calcul. Ajutorul vine din partea lui Gordon Moore, unul din fondatorii firmei Intel, care a estimat
că viteza de calcul se dublează la fiecare 18 luni (iar costul se înjumătăţeşte). Această estimare s-
a dovedit reală şi a devenit cunoscută ca ”legea lui Moore”.
Un astfel de atac presupune trecerea prin tot spaţiul cheilor fără a selecta în vreun fel cheile
neobişnuite care nu merită testate; în acest sens există atacuri care folosesc diferite tipuri de
selecţii (a se vedea atacul de tip dicţionar). Atacul în forţă garantează acoperirea tuturor
posibilităţilor şi deci în final un succes (abstracţie făcând de timpul necesar!)
Exemplu de calcul
Dacă un atac în forţă asupra unui document criptat folosind o cheie de 56 biţi necesită 265
zile (0.68 ani), conform proiectului RC5, atunci timpul necesar pentru a decripta un document
criptat pe 6144 biţi se obţine prin multiplicare cu 26144-56. Aceasta înseamnă că timpul necesar

4
Chosen key attack

63
Capitolul 4 – Metode de atac criptografice

pentru a reuşi un astfel de atac în forţă este de 0.68 * 26088 ani. Acest rezultat este o imagine reală
a şanselor de reuşită a unui astfel de atac,

Atacul de tip dicţionar5


Atacul de tip dicţionar este o metodă criptanalitică în care atacatorul pregăteşte şi
memorează un tabel cu corespondenţe text clar-text criptat de tipul perechilor (PiCi=EKi(P),Ki)
sortate după Ci; pentru textele în clar se folosesc cuvinte foarte probabile (exemple: parola,
login), iar cheile acoperă toate variantele posibile.
Ulterior atacatorul monitorizează comunicaţia şi în momentul în care va găsi un text criptat
Cj care se regăseşte în tabelul său va găsi imediat cheia de criptare Kj.
Acest termen de atac de tip dicţionar se mai foloseşte şi în domeniul găsirii parolelor, cu o
semnificaţie puţin diferită; în acest caz el se dovedeşte destul de eficient (mai eficient decât un
atac în forţa) în special în cazul încercărilor de a găsi parole de acces (tendinţa este de a folosi
cuvinte pentru parole); în cazul sistemelor care folosesc fraze în locul cuvintelor cu rol de parolă
eficienţa atacului devine neglijabilă. În practică se folosesc două metode pentru a mări eficienţa
atacului:
• prima metodă recomandă folosirea mai multor dicţionare care măresc şansa de a găsi
parola corectă (dicţionare de limbi străine, tehnice, etc.);
• a doua metodă recomandă operaţiuni asupra şirurilor de caractere din dicţionar: testarea
cuvintelor scrise pe dos (parola – alorap), înlocuirea unor litere cu cifre (ex: p4ar0la),
folosirea unor litere mari (ex: parola – Parola, PAROLA).

Atacul zilei de naştere6


Atacul zilei de naştere se bazează pe cunoscutul paradox al ”zilei de naştere” şi a
variantelor sale; paradoxul poate fi enunţat astfel: fie r numărul de elevi dintr-o clasă şi fie p(r)
probabilitatea ca cel puţin doi copii să aibă aceeaşi zi de naştere; care este valoarea minimă a lui r
astfel încât p(r) să fie mai mare sau egal cu ½; răspunsul corect este 23, o valoare mult mai mică
decât ne-ar indica intuiţia noastră !.
Explicaţia stă în modul de calcul matematic a probabilităţii unei coliziuni (coincidenţa zilei
de naştere pentru doi elevi); dacă x este numărul elevilor (respectiv numărul elementelor alese din

5
Dictionary attack
6
Birthday attack

64
Capitolul 4 – Metode de atac criptografice

N), iar N este numărul total de elemente (în cazul nostru cele 365 zile dintr-un an) atunci
probabilitatea unei coliziuni se calculează astfel:

x*(x-1)/(2*N)
Consecinţa imediată este că dacă x ≥ N atunci probabilitatea ≥ 50%.

Traducerea concluziei în cazul încercărilor binare este că trebuie 2k/2 ( 2 k ) încercări din
cele 2k valori posibile înainte de a ne aştepta la o coliziune.
O variantă a paradoxului poate fi enunţată astfel: fie r numărul elevilor din două clase
diferite şi fie p(r) probabilitatea ca doi copii din clase diferite să aibă aceeaşi zi de naştere; care
este valoarea minimă a lui r astfel încât p(r) să fie mai mare sau egal cu ½? Răspunsul corect în
acest caz este 17.
Generalizarea problemei: dacă o funcţie f : A → B poate lua oricare din cele n valori din
mulţimea B cu probabilităţi egale (n fiind suficient de mare) atunci după calculul funcţiei pentru
n valori diferite este foarte posibil să găsim o pereche de argumente x1 şi x2 astfel încât
f(x1)=f(x2), eveniment denumit coliziune; conform observaţiilor lui Bellare şi Kohno [BeK04]
pentru funcţii distribuite impar coliziunea poate apărea şi mai devreme.
Semnătura digitală este susceptibilă de a fi supusă unui astfel de atac.
Concluziile atacului zilei de naştere pot fi folosite pentru calculul logaritmilor discreţi;
presupunem x şi y elemente dintr-un grup şi y este o putere a lui x; vrem să aflăm puterea la care
ridicat x să dea y. Un atac de tipul precedent calculează xr pentru multe valori întregi r şi yx-s
pentru alte valori s. După o vreme vom găsi o pereche r,s astfel încât xr=yx-s adică y=xr+s.
Dacă grupul are n elemente atunci metoda intuitivă de a încerca toţi exponenţii ar însemna o
medie de n/2 paşi; atacul zilei de naştere este mult mai rapid având o medie de doar 2 n paşi.
Un exemplu de aplicare este lucrarea [Bel04] a lui Mihir Bellare.

Atacul omului de la mijloc7


În criptografie atacul omului de la mijloc descrie situaţia când un atacator are posibilitatea
să citească şi să modifice mesajele schimbate între doi corespondenţi fără ca cele două părţi să
sesizeze faptul că metoda de comunicare între ei a fost compromisă.

7
Man-in-the-middle attack

65
Capitolul 4 – Metode de atac criptografice

Un astfel de atac se pretează pentru cheile publice; el se derulează în felul următor:


Presupunem doi corespondenţi A şi B, iar AT este atacatorul care doreşte să urmărească
conversaţia şi chiar să trimită mesaje modificate către unul din cei doi; dacă B îi trimite lui A
cheia lui publică pentru a începe comunicarea şi AT o interceptează atunci atacul omului de la
mijloc poate începe. AT trimite către A în locul cheii publice a lui B propria lui cheie publică
pentru care are corespondentul de cheie privată. A, crezând că este cheia publică a lui B o
foloseşte pentru criptarea mesajului pe care-l trimite apoi către B; AT interceptează din nou
comunicarea şi decriptează mesajul cu propria cheie privată după care îl recriptează folosind de
această dată cheia publică a lui B pe care a primit-o anterior (eventual modifică conţinutul); când
B primeşte mesajul cifrat el va crede că provine de la A.
Posibilitatea unui astfel de atac rămâne o problemă serioasă pentru sistemele bazate pe chei
publice.
O soluţie foarte folosită pentru apărarea împotriva atacului este folosirea semnăturii digitale
pentru chei; astfel de chei fac parte din măsurile primare folosite pentru securizarea traficului în
WWW (ex: HTTPS SSL); oricum neglijenţele în verificarea identităţii în astfel de sisteme
rămâne o problemă majoră.
Acest atac poate fi privit ca o problemă generală în cazul folosirii oricărei formă de
intermediere între un client şi partea cealaltă.

Atac cu întâlnire la mijloc8


Acest tip de atac este similar cu atacul zilei de naştere, cu excepţia faptului că în acest caz
analistul are o flexibilitate mai mare; în loc să aştepte coincidenţa a două valori intr-o singură
mulţime de date, analistul poate căuta o intersecţie a două mulţimi.
Pentru exemplificare, să presupunem că analistul are informaţii sumare despre textele în
clar trimise de câţiva expeditori (care folosesc chei de 64 de biţi); analistul va construi prima din
cele două mulţimi (de fapt un tabel), calculând cele 232 unice rezultate ale aplicării funcţiei hash
pentru acelaşi text în clar folosind aceeaşi funcţie hash ca şi expeditorul. După aceasta analistul
va verifica existenţa valorii hash criptată în tabelul său; dacă se obţine o coliziune atunci s-ar
putea să fie posibil ca şi cheia corespondentă din tabel să fie corectă ceea ce ar crea inevitabil
oportunitatea analistului de a-şi insera propriul mesaj.

8
Meet-in-the-middle attack

66
Capitolul 4 – Metode de atac criptografice

Matematic, dacă avem N valori şi o mulţime are X elemente, iar cea de-a doua Y (astfel
încât: X+Y ≤ N ), atunci există X*Y perechi posibile de elemente astfel încât fiecare are 1/N şansă
de coliziune; probabilitatea coliziunii creşte cu cât mai aproape este (X*Y)/N de 1. Practic, pentru
eficienţă, analistul va folosi X valori dintr-o mulţime şi Y din cealaltă astfel încât
X*Y ≈ N sau de fapt X ≈ Y ≈ N
Prima aplicare se datorează lui de Merkle şi Hellman în 1981 în încercarea de a ataca o
dezvoltare a unui cifru bloc; dezvoltarea presupunea îmbunătăţirea securităţii algoritmului prin
folosirea a două chei independente pentru criptarea datelor de două ori; concluzia intuitivă ar fi că
securitatea se dublează prin folosirea unui algoritm de dublă criptare. Merkle şi Hellman au
dezvoltat o strategie care decriptează noul algoritm într-un timp doar dublu faţă de algoritmul
simplu. Atacul funcţionează prin criptare de la un capăt şi decriptare de la celălalt până la
întâlnirea la mijloc.
Presupunând că atacatorul cunoaşte o mulţime de texte în clar P şi texte criptate C cu cheile
k1 şi k2; atunci poate calcula EK(P) pentru toate cheile posibile K şi să memoreze rezultatele; apoi
poate calcula DK(C) pentru fiecare K şi să compare cu rezultatele memorate; dacă va găsi o
coincidenţă este ca şi cum ar fi găsit cele două chei şi poate verifica direct pe textul în clar şi cel
criptat. Dacă dimensiunea cheii este n, atacul va folosi doar 2n+1 criptări în contrast cu un atac
clasic (naiv în acest caz) care ar avea nevoie de 22n criptări.

Atacul în reluare9
Un atac în reluare, aşa cum este el descris de Schneier şi Menezes în [Sch98] şi respectiv
[MOV97] este un atac în care atacatorul memorează o sesiune de comunicare în ambele sensuri
(mesajele schimbate de ambii corespondenţi) sau bucăţi din sesiune.
Scopul înregistrării este de a retrimite, la o dată ulterioară, mesajul în forma care a fost
înregistrat aceluiaşi destinatar sau altuia; ideea atacului nu este de a decripta o sesiune de
comunicare ci de a crea confuzii şi mesaje false (exemplu: repetarea unui transfer bancar)

Atacul cu chei relaţionate10


Acest tip de atac a fost dezvoltat independent de Biham şi Knudsen [Bih94] şi [Knu93],
iar termenul de chei relaţionate a fost definit de Biham în [Bih94] .

9
Replay atack
10
Related keys attack

67
Capitolul 4 – Metode de atac criptografice

Ideea fundamentală a acestui tip de atac este că atacatorul descoperă o relaţie între un set de
chei şi are acces la funcţiile de criptare cu astfel de chei relaţionate. Scopul declarat este de a găsi
chiar cheile de criptare. Atacul pare destul de solid din punct de vedere teoretic, dar destul de
greu de pus în practică. Acest tip de atac a pus în evidenţă slăbiciuni în cazul unor algoritmi (a se
vedea [KSW96] şi [KSW97] ): IDEA,GOST, 3-WAY,SAFER, DES-X,RC2 şi TEA.
O varianta a acestui tip de atac propusă mai recent este atacul de tip atac prin alunecare în
care se exploatează o relaţie a cheii cu ea însăşi.

Atacul prin alunecare11


Acest tip de atac a fost dezvoltat de Biryukov şi Wagner şi descris în [BiW99] şi [BiW00];
el poate fi văzut ca o variantă a atacului cu chei relaţionate în care relaţiile sunt definite pe
aceeaşi cheie; atacul este eficient în cazul unor procese iterative sau recursive (algoritmi simetrici
de tip şir sau bloc) care prezintă grade de similitudine între cicluri succesive ale procesului
iterativ. Această particularitate duce la o concluzie interesantă pentru algoritmii care sunt
vulnerabili la un astfel de atac: complexitatea atacului este independentă de numărul de cicluri ai
algoritmului.
O desfăşurare sumară a atacului ar fi următoarea:
Fie o transformare printr-un algoritm clasic de criptare de tip şir care păstrează cheia a unui
text clar de n-biţi Po pentru a obţine textul criptat Ci folosind funcţia F următoarea :

unde Fi este rezultatul intermediar al blocului după i cicluri de criptare; notaţia corectă ar fi
Ci=Fi (Ci-1, ki), dar pentru simplificare, ţinând cont de consecvenţa cheii, am notat Fi.
În aceste condiţii un exemplu de alunecare ar fi următorul:

Dacă această premiză, necesară acestui tip de atac, este îndeplinită pentru o astfel de
pereche, adică F1(P0, K1)=P1, atacatorul va deduce prin inducţie Fr(C0, Kr)=C1 (datorită
alunecării) şi va deduce cheia de sesiune. În tehnica atacului o astfel de pereche (de text clar
împreună cu corespondentul său criptat) (P, C) şi (P”, C”) o numim pereche glisată dacă şi
numai dacă F(P)=P” şi F(C)=C”.

11
Slide attack

68
Capitolul 4 – Metode de atac criptografice

În continuare, cu aceste observaţii, atacatorul va proceda în felul următor: va folosi 2n/2


perechi (Pi, Ci) cunoscute şi va căuta perechi glisate: conform paradoxului zilei de naştere şansa
este mare să găsim cel puţin o pereche glisată; din fiecare pereche obţinută se obţin secvenţe din
cheia parţială. Dacă funcţia ROUND este slabă putem obţine întreaga cheie fără eforturi foarte
mari. Dacă cheia este mai lungă de n biţi folosim o căutare exhaustivă pentru restul biţilor din
cheie sau folosim câteva perechi glisate în plus.
În lucrările de specialitate astfel de slăbiciuni au fost relevate în algoritmul Feistel sau mai
recent astfel de perechi glisate au fost evidenţiate pentru SHA-1 de către Saarinen în [Saa03].

Atacul de corelaţie12
La prezentarea din capitolul 5.2 a cifrurilor şir bazate pe generatoare de tip LFSR (Linear
Feedback Shift Register) se afirmă că aceste generatoare sunt teoretic vulnerabile la atacul de
corelaţie. Atacul convenţional se efectuează asupra generatorului de filtrare (funcţia nonliniară
care având ca argumente biţi ai LFSR-ului generează bitul cheie de ieşire) în două faze. În prima
fază se determină o funcţie între şirul de biţi cheie generat şi biţii registrului de deplasare; o astfel
de funcţie există întotdeauna, chiar şi în cazul generatorului de filtrare cu memorie. Şirul de chei
este interpretat ca o versiune afectată de zgomot a şirului generat de LFSR.
Siegenthaler a dezvoltat versiunea originală a atacului de corelaţie care presupune o căutare
exhaustivă aplicată în toate fazele LFSR-ului pentru a găsi cel mai înalt grad de corelaţie [Sig85].
Meier şi Staffelbach au arătat ulterior că tehnicile de reconstrucţie iterative sunt mult mai rapide,
în special când funcţia de combinare este un polinom de grad mic [MeS89], iar Mihaljevic şi
Golic stabilesc condiţiile în care acest tip de atac rapid de corelaţie converge [MiG92].
Dacă funcţia de combinare polinomială f(x) este densă, se poate căuta un subşir de chei al
cărui polinom are un număr redus de coeficienţi folosind tehnici de întâlnire la mijloc [MeS89];
dacă f(x) are gradul n, numărul de operaţiuni necesare este de (n/2) 2n/2. van Oorschot şi Wiener
au arătat că este posibilă construcţia unui hardware specializat de căutarea a coliziunilor pentru
valori ale lui n până la 128. Astfel securitatea generatoarelor de filtrare nonliniare se reduce la
posibilitatea de a găsi corelaţii între şirul de chei şi biţii generaţi de LFSR. Această posibilitate
este garantată de rezultatele menţionate anterior, care afirmă existenţa acestor corelaţii, dar
condiţionată de construcţia unui algoritm care să găsească corelaţia maximă pe care un atacator o
poate spera. Un astfel de algoritm împreună cu limitele de convergenţă teoretice va stabili dacă
cifrul este vulnerabil la atacul de corelaţie rapidă.
12
Correlation attack

69
Capitolul 4 – Metode de atac criptografice

Dacă h(x) este funcţia nonliniară care dintr-un semnal arbitrar (zgomot aleator) generează
şirul de chei Ki, problema este să se determine cantitatea de informaţie despre semnalul arbitrar
care se poate deduce din h(x) şi Ki. Soluţia acestei probleme rezidă în natura nonliniară a funcţiei
h(x): dacă Ki = Si + Si + 1, cunoaşterea lui Ki nu aduce nici o informaţie asupra valorii lui Si, în
timp ce dacă Ki = Si Si + 1, atunci Ki = 1 implică Si = 1. Luând în considerare că atacul asupra
unui generator de filtrare conduce întotdeauna la o funcţie liniară, prin considerarea unor faze
diferite ale registrului de deplasare, este de real interes determinarea maximului de informaţie
relevată de h(l(x)) în spaţiul funcţiilor liniare l(x).

Atacul de corelaţie rapidă13


Atacurile de corelaţie rapidă au fost propuse de Meier şi Staffelbach în 1998 în lucrarea
”Fast Correlation Attacks on Stream Ciphers” [MeS88]. Ele se aplică generatoarelor de chei
bazate pe LFSR, ca şi atacul de corelaţie, dar sunt mai rapide şi exploatează existenţa unei
corelaţii între şirul de chei şi ieşirea unui LFSR, numit LFSR ţintă, a cărui stare iniţială depinde
de anumiţi biţi ai cheii secrete. În atacul de corelaţie original starea iniţială a LFSR-ului este
descoperită printr-o căutare exhaustivă. Atacurile de corelaţie rapidă evită examinarea tuturor
iniţializărilor posibile ale LFSR-ului ţintă folosind anumite tehnici eficiente de corectare a erorii.
Pentru aceasta este necesară cunoaşterea unui şir mai lung de chei (în contextul unui atac cu texte
în clar cunoscute).
Ideea centrală a atacurilor de corelaţie rapidă constă în tratarea atacului ca o problemă de
decodificare. Dacă există o corelaţie între şirul de chei s şi ieşirea u a LFSR-ului ţintă, atunci
subşirul de chei (st)t<N poate fi privit ca rezultatul transmisiei şirului (ut)t<N printr-un canal
simetric binar cu probabilitatea de eroare p = Pr[st ≠ ut] < ½ (dacă Pr[st ≠ ut] > ½ se consideră
complementul binar al lui s). Toţi biţii şirului de ieşire u ai LFSR-ului depind liniar de starea sa
iniţială: u0, u1, u2, …, uL – 1 iar (ut)t<N este un cuvânt al unui cod liniar de lungime N şi
dimensiune L definit de către polinomul de feedback al LFSR-ului. Astfel, descoperirea stării
iniţiale a LFSR-ului constă în decodarea subşirului de chei relativ la codul LFSR-ului. Aceasta
idee a fost susţinută de T. Johansson şi F. Jonsson în lucrarile lor [JoJ99] şi [JoJ00].
Cu această formulare, atacul de corelaţie original propus de Siegenthaler rezidă în aplicarea
unui algoritm de decodare de similaritate maximă14 codului liniar definit de polinomul de

13
Fast correlation attack
14
maximum-likelihood

70
Capitolul 4 – Metode de atac criptografice

feedback al LFSR-ului. Algoritmul are complexitatea 2L, unde L este lungimea LFSR-ului ţintă.
Complexitatea poate fi redusă folosind algoritmi de decodare rapizi.
Tehnicile de decodare pentru atacuri de corelaţie rapidă folosesc algoritmi bazaţi pe
următoarele idei:
- Găsirea de relaţii numeroase de recurenţă liniară cu polinoame cu număr redus de
coeficienţi satisfăcute de şirul LFSR (aceste relaţii corespund unor multipli cu număr
redus de coeficienţi ai polinomialei de feedback) şi folosirea lor într-o procedură iterativă
de decodificare dedicată codurilor de verificare a parităţii (parity-check) de mică
densitate. Complexitatea acestui atac poate scădea semnificativ în cazul în care polinomul
LFSR-ului ţintă este cu număr redus de coeficienţi. În concluzie, folosirea polinoamelor
cu număr redus de coeficienţi trebuie evitată în generatoarele LFSR.
- Construirea unui cod convoluţional (sau turbo cod) din codul LFSR şi folosirea unui
algoritm de decodare corespunzător (algoritmul Viterbi).
- Construirea unui nou cod bloc liniar cu o dimensiune mai mică din codul LFSR şi
aplicarea unui algoritm de decodare similaritate maximă sau a unei tehnici de
reconstrucţie polinomială.

Atacul prin interpolare15


Atacul prin interpolare este o tehnică de atac asupra cifrurilor simetrice bloc construite din
funcţii algebrice simple. A fost introdus în analele criptologiei de T.Jakobsen şi L. Knudsen
[JaK97] în 1997 şi aplicat prima dată pe o variantă a algoritmului SHARK un predecesor al
algoritmului lui Rijndael.
Atacul este bazat pe un principiu cunoscut în matematică: fiind dat un polinom cu
coeficienţi necunoscuţi y=f(x), dacă gradul lui f(x) nu depăşeşte n-1, atunci coeficienţii
polinomiali pot fi calculaţi din n perechi distincte (xi, yi) cu yi=f(xi). Formula de interpolare a lui
Lagrange ne permite reconstrucţia polinomului:

Această consideraţie matematică are implicaţii eficiente dacă luăm în considerare un cifru
simetric de tip bloc cu o cheie fixă necunoscută. Dacă textul criptat este scris ca un polinom (cu
coeficienţi necunoscuţi) funcţie de elementele textului clar şi gradul polinomului este suficient de

15
Interpolation attack

71
Capitolul 4 – Metode de atac criptografice

mic, atunci un număr limitat de perechi de text clar, criptat sunt suficiente pentru determinarea
funcţiei de criptare. Acest lucru permite atacatorului să cripteze sau să decripteze blocuri de date
fără a recupera propriu zis cheia de criptare.
O proprietate interesantă a atacului este faptul că el nu este afectat de structura internă a
cifrului. O altă observaţie este legată de faptul că un grad mic al polinomului nu este strict
necesar pentru un atac eficient; este suficient dacă numărul coeficienţilor necunoscuţi este mic,
caz întâlnit pentru cifrurile optimizate împotriva atacurilor liniare şi diferenţiale (exemplu: cifrul
KN propus de Knudsen şi Nyberg).
Acest tip de atac poate fi generalizat în multe moduri. Jakobsen a demonstrat în lucrarea sa
[Jak98] ) că ideea interpolării poate fi aplicată şi în cazul în care polinoamele sunt probabilistice.

Atacuri ”divide şi cucereşte”16


Atacurile din această categorie (pentru că sunt o întreagă clasă de atacuri care fac parte din
această grupare), ca principiu, încearcă diviziunea cheilor în bucăţi mai mici, pentru a face
posibilă căutarea exhaustivă . Acest tip de atac este eficient în măsura în care este posibil să
determinăm bucăţi din chei separat; cu alte cuvinte trebuie să fie posibil, cu o probabilitate
rezonabilă să validăm sau să invalidăm o încercare de a găsi o bucată de cheie fără să avem
informaţii despre restul cheii; pornirea de la o bucată eronată invalidează întreaga construcţie
ulterioară. De aceea, detectarea şi corecţia erorilor este o parte foarte importantă în aceste cazuri.
Multe atacuri sunt incluse în această categorie cu diferenţieri mari între ele funcţie de importanţa
pe care o dau zonei de ”ghicire” a cheii parţiale sau părţii referitoare la detecţia erorilor.

Atacul temporal17
Atunci când durata de execuţie a unui echipament hardware de criptare nu este constantă,
această durată poate da informaţii despre parametrii implicaţi; în consecinţă analiza atentă şi
măsurarea timpului de execuţie poate duce în anumite conjuncturi la recuperarea cheilor secrete.
Această idee a apărut în literatura de specialitate în 1996 în lucrarea lui Kocher [Koh96].
Pentru a putea realiza un astfel de atac, atacatorul are nevoie de un set de mesaje împreună
cu durata lor de procesare pe echipamentul criptografic. Metodele de măsurare a timpului sunt
diverse: monitorizarea activităţii procesorului, măsurarea timpului într-o secvenţă de interogare /
răspuns etc.

16
Divide and conquer attack
17
Timing attack

72
Capitolul 4 – Metode de atac criptografice

O ţintă privilegiată pentru atacurile temporale sunt smart cardurile; un smart card clasic (aşa
cum este definit de ISO 7816) nu este echipat cu un ceas intern, dar îşi ia tactul de la terminalul la
care este conectat. Buna funcţionare a ceasului intern al terminalului influenţează direct
acurateţea măsurării timpului de rulare.
Atacul temporal este un atac care foloseşte o strategie de tipul ”divide şi cucereşte”. Cheia
secretă este recuperată din bucăţi prin predicţii şi verificând corelaţii între o valoare parţială a
cheii şi timpul estimat de execuţie. Pentru fiecare bucată din cheie atacul se derulează astfel: la
început pornind de la o presupunere pentru o secvenţă de cheie, defineşte o estimare pentru
timpul de execuţie, apoi verifică dacă timpul real de execuţie se potriveşte: dacă nu, atunci se
consideră o încercare ratată şi se reia logica pentru o altă presupunere.
Atacul a fost aplicat algoritmului RSA [SQK01], unor algoritmi simetrici (ex: RC5 analizat
în lucrarea [HaH98] şi unor protocoale de internet de tipul SSL în lucrarea [CHV03] .
Ca măsuri de prevenire a unui astfel de atac în literatura de specialitate sunt prezentate
următoarele sugestii:

Încercarea de a uniformiza în timp calculele


Această soluţie implică o severă diminuare a performanţelor în special pentru algoritmii cu
chei publice deoarece uniformizarea s-ar face după operaţia cea mai lentă ! De aceea o astfel de
soluţie nu este de loc practică.

Adăugarea de întârzieri aleatoare pentru a ascunde timpii de execuţie


O altă soluţie care se dovedeşte insuficientă deoarece adăugarea de ”zgomote” la o sursă
poate în principiu să fie filtrată folosind mai multe seturi de mesaje.

Adăugarea de operaţii suplimentare, soluţie prezentată de Walter în [Wal99] , este mai


eficientă, dar mult mai puţin generică ea fiind particularizată pe un atac pentru RSA.
O clasă aparte de măsuri exemplificată de Kocher în [Koh96]. se referă la încercarea de a
ascunde starea internă a algoritmului pentru ca atacatorul să nu poată simula operaţiile interne.

Criptanaliza liniară
Criptanaliza liniară se aplică algoritmilor simetrici de tip bloc şi a fost introdusă de
M.Matsui la Eurocrypt 1993 [Mat93] ca un atac teoretic pentru DES , ca apoi să fie folosită cu
succes în criptanaliza practică a DES-ului [Mat94] .

73
Capitolul 4 – Metode de atac criptografice

Criptanaliza liniară încearcă să exploateze apariţiile cu mare probabilitate ale expresiilor


liniare ce implică biţi de text în clar, biţi de text cifrat şi biţi ai subcheilor. Este un atac cu texte în
clar cunoscute: o premisă constă în faptul că atacatorul cunoaşte un set de texte în clar şi textele
cifrate corespunzătoare. Totuşi atacatorul nu poate selecta perechile de texte clare şi cifrate
disponibile. În multe aplicaţii se presupune că atacatorul cunoaşte un set aleator de texte în clar şi
textele cifrate corespunzătoare.

Criptanaliza diferenţială
Criptanaliza diferenţială a fost prezentată prima dată de E.Biham şi A.Shamir la Crypto 90
şi apoi publicată în 1991 [BiS91]. Metoda a fost concretizată pentru DES şi rezultatele publicate
ulterior în [BiS93].
Criptanaliza diferenţială exploatează apariţiile cu mare probabilitate a diferenţelor din
textele în clar şi a diferenţelor în ultimul ciclu al cifrului. De exemplu, să considerăm un sistem
cu intrarea X = [X1 X2 ... Xn] şi ieşirea Y = [Y1 Y2 ... Yn]. Fie două intrări X’ şi X’’ cu ieşirile
corespunzătoare Y’ şi X’’ . Diferenţa între intrări este: ∆X = X’ ⊕ X’’unde "⊕" este funcţia
OR-exclusiv. Similar se notează ∆Y diferenţa între ieşirile corespunzătoare.
Probabilitatea ca o diferenţa de ieşire particulară ∆Y să apară, dându-se o diferenţă de
intrare particulară ∆X este de 1/2n, unde n este numărul de biţi ai lui X (în cazul unui cifru aleator
ideal).
Criptanaliza diferenţială caută să exploateze un scenariu în care probabilitatea de mai sus
este mult mai mare decât valoarea teoretică din cazul ideal. Criptanaliza diferenţială este un atac
cu texte în clar alese, adică atacatorul poate selecta intrările şi examina ieşirile în încercarea de a
deduce cheia.

Atacul de consistenţă liniară18


Atacul de consistenţă liniară este un atac care aplică o tehnica de tipul divide şi cucereşte
pentru o secvenţă cunoscută de text clar; se pretează la algoritmii de tip şir. Acest tip de atac a
fost introdus în 1989 de Zeng, Yang şi Rao; a fost aplicat la variate tipuri de generatoare de şiruri
de chei ca de exemplu generatorului Jenning [ZYR89], generatorului stop-and-go descris de Beth
şi Piper [ZYR89] şi algoritmului E0 folosit în Bluetooth [FuL01]. Atacul de consistenţă liniară se
aplică atunci când se poate izola o bucată K1 a cheii secrete pentru a forma un sistem Ax = b de

18
Linear consistency attack

74
Capitolul 4 – Metode de atac criptografice

ecuaţii liniare, unde matricea A depinde de K1 iar vectorul b este determinat de biţii cunoscuţi din
textul clar; în aceste condiţii poate fi făcută o căutare exhaustivă a lui K1; valoarea corectă a lui
K1 poate fi deosebită de una incorectă verificând dacă sistemul liniar este consistent sau nu. O
dată K1 recuperat soluţia x a sistemului ne poate furniza biţi suplimentari ai cheii secrete.

Atacul de tip bumerang19


Relativ recent, folosind flexibilitatea criptografiei diferenţiale David A. Wagner a propus
un nou tip de atac; denumit atacul de tip bumerang el permite folosirea a două caracteristici
necorelate pentru a ataca cele două jumătăţi ale unui cifru bloc.
Figura 4.1 arată cum ar putea funcţiona atacul intr-un caz favorabil pentru un bloc iniţial
particular.

Fig. 4.1 Modelul de lucru pentru atacul de tip bumerang

1. Pornim cu bloc oarecare de text clar; folosind caracteristica cunoscută pentru prima parte
a cifrului, dacă operăm XOR cu un vector d1 (00100000 în figură), rezultatul după
jumătate din ciclul de criptare a celor doua blocuri de text clar, înainte şi după XOR vor

19
Boomerang attack

75
Capitolul 4 – Metode de atac criptografice

diferi prin c1 (00110110 în figură), dacă ceea ce vrem să aflăm despre cheie ar fi
adevărat.
2. Dacă această caracteristică este valabilă doar pentru prima jumătate a cifrului, rezultatul
după criptareA întregului bloc nu va fi sugestiv. Să luăm cele două rezultate şi să facem
XOR pentru fiecare cu d2 (01001011 în figură), d2 fiind vectorul corespunzător
caracteristicii specifice celei de-a doua jumătate a cifrului. În fiecare caz, operând XOR
între d2 şi un bloc de text criptat se aşteaptă ca rezultatul să se schimbe după decriptare cu
c2 (00010000 în figură), dacă ipoteza despre cheie este corectă.
3. Cu două rezultate intermediare care diferă prin c1, după ce fiecare a suferit o transformare
XOR cu c2, cele două rezultate după XOR vor diferi în continuare prin c1. Dacă această
diferenţă va putea fi recunoscută în ieşirea finală este o dovadă a corectitudinii ipotezei
despre cheia de criptare.

Această metodă măreşte potenţialul efectiv al criptanalizei diferenţiale, pentru că poate


folosi caracteristici care nu se propagă prin întreg algoritmul de criptare.
Metoda are limitele ei producând rezultate doar în prezenţa ambelor caracteristici, ea
neputând lucra pentru fiecare caracteristică independent; chiar şi aşa o consecinţă directă ar fi
dublarea numărului de cicluri a unui cifru bloc pentru a fi considerat sigur.

4.2 Concluzii

Dacă ar fi să clasificăm posibilităţile de atac asupra sistemele după nivelul măsurilor de


securitate ar fi următoarea propunere:

Categoria uşoară (o problema de inspiraţie sau nu este o problemă):


• Fără parolă.
• Parola de acces se găseşte scrisă pe o hârtie la îndemână sau chiar lipită pe monitor.
• Parole formale de tip parola = nume utilizator.
• Parole uşor de dedus din numele utilizator (5-10% din cazuri).

Categoria mijlocie (cu oarecare consum de timp):


• Atac de tip dicţionar bazat pe:
1. numele colegilor;

76
Capitolul 4 – Metode de atac criptografice

2. dicţionar român sau englez;


3. filtre de substituţie ( de genul 0=O,1=!,for=4,to=2,E=3).
Exemple de modalităţi de a „ghici” parole sau fraze de acces:
DMW CrackIT
Crack v5.0
ftp://coast.cs.purdue.edu/pub/tools/unix/crck
LOpht Crack v2.0 for NT
NetBUS
FastZip Password Cracker
wfwcd - Word for Windows Password Cracker
Cracker
trmpcrak - Trumpet WInsock Password Cracker v1.0
Popcrack - Popmail Password Crackerv1.0
popcrack - PGPcrack
glide - cracking Windows'95 password
wincrack- Wincrack WinCrypt Cracker
nwpcrack - Novell Password Cracker
Screen Saver PSWRD Guessing

Categoria grea (necesită şi cunoştinţe şi resurse calculator):


• Atac în forţa – căutare exhaustivă în întreg spaţiul cheilor.
• Atacuri pentru algoritmi simetrici / asimetrici care necesită un timp foarte lung
dependent de lungimea cheii:
1. chei de 40 de biţi: timp de ordinul minutelor;
2. chei de 56 de biţi: timp de ordinul orelor/zilelor;
3. chei de 128 de biţi: mai bine renunţaţi !.

Categoria super- grea (necesită cunoştinţe ştiinţifice şi resurse serioase de tehnică de calcul)
• Analiză criptografică liniară
• Analiză criptografică diferenţială
• Atac cu text cifrat
• Atac cu text clar
• Atac cu text clar ales
• Atac adaptiv cu text clar ales
• Atac cu text cifrat ales
• Atac cu chei alese

77

S-ar putea să vă placă și