Sunteți pe pagina 1din 33

Temă de casă

Reţele de Calculatoare şi Internet

Procedee de cifrare uzuale în Internet

Student: Zamfir Narcis


grupa de master
postuniversitar ISC

1
Cuprins:
 Introducere........................................................................................pag 1

 Aspecte de bază a securităţii în Internet.............................................pag 1


o Filtrarea adreselor MAC...........................................................pag 1

o Firewall....................................................................................pag 2

o Protecţia transmisiunilor prin criptare......................................pag 7

 Criptare cu chei private(simetrice) .....................................................pag 8


o DES..........................................................................................pag 9

o S-DES......................................................................................pag 12

o TripleDES................................................................................pag 12

o AES ........................................................................................pag 13

o Blowfish.................................................................................pag 16

o IDEA.......................................................................................pag 16

 Criptare cu chei publice....................................................................pag 18


o RSA........................................................................................pag 20

o PGP........................................................................................pag 22

 Exemplu de spargere a codurilor (DES) ............................................pag 25


o Atacul de forta bruta..............................................................pag 25

o Atacuri mai rapide decat forta bruta......................................pag 26

 Exemplu de spargere a codurilor (RSA) ............................................pag 27


 Concluzii...........................................................................................pag 32

2
1.Introducere.

Nu putem vorbi în zilele noastre despre transmisia datelor prin


intermediul reţelelor de telecomunicaţii fără să vorbim şi de aspectele legate de
securitate. Odată cu creşterea vitezelor de transfer şi creşterii numarului de
oameni care au acces la o conexiuni de date partajate cu alţi utilizatori se pune
problema dacă metodele de criptare folosite pentru asigurarea spaţiului privat
sunt cu adevărat eficiente. De aceea imi propun ca prin acest scurt referat să
prezint câteva noţiuni de bază de criptografie, tehnologiile de la baza securităţii
ethernet si nu în ultimul rând să trec în revistă tehnicile de acces folosite în
reţelele fără fir de tip Wi-Fi.

2.Aspecte de bază a securităţii în Internet.


Cele mai simple metode de asigurare a securităţii se bazează la cel mai
jos nivel la limitarea accesului. Acesta este cazul tehnologiei firewall sau a
filtrării adreselor MAC care va fi prezentat in subcapitolele următoare. Dar
deoarece în majoritatea cazurilor reţeaua folosita pentru comunicare poate fi
partajată cu alţi utilizatori sau siguranţa ei fizică nu poate fi asigurată mereu se
folosesc si metode de criptare pentru limitarea accesului la conţinutul
informaţiei transmise; chiar dacă aceasta este interceptată conţinutul ei nu poate
fi aflat decât prin procedee foarte complexe sau chiar deloc.

2.1. Filtrarea adreselor MAC

În reţelele de calculator, filtrare MAC (sau filtrare EUI, sau adresa


filtrarea adreselor ptr nivelul 2 de adresare) se referă la o metodă de control de
securitate prin care adresa de 48 de biţi asociată la fiecare placă de reţea este
utilizată pentru a stabili accesul la reţea. Protocolul de comunicare de date
Media Access Control (MAC), de asemenea cunoscut sub numele de controlul
accesului la mediu , este o parte a stratului de legături de date specificate în
modelul OSI (nivelul 2). O placă de reţea, sau NIC (Network interface
3
controller = controler interfaţă de reţea) este o bucată de hardware concepută
pentru a permite computerelor să comunice într-o reţea de calculatoare.
Adresele MAC sunt unic atribuit fiecărei plăci de reţea, folosind astfel filtrare
MAC pe o reţea de permise şi refuză accesul la reţea la dispozitive specifice,
prin utilizarea unor liste negre şi liste albe. Chiar dacă restricţia de acces la reţea
prin utilizarea listelor este simplă, o persoana fizică nu este identificată printr-o
adresa MAC, mai degrabă este identificat un singur dispozitiv, astfel încât o
persoană autorizată va trebui să aibă o intrare din lista albă pentru fiecare
dispozitiv pe care el sau ea ar trebui să utilize în reţea.
În teorie, filtrare MAC permite unui administrator de reţea sa permită sau
a refuze accesul la reţea la gazde asociat cu adresa MAC, deşi, în practică,
există metode pentru a eluda această formă de control al accesului prin
modificarea adresei ("spoofing") sau schimbul fizic al plăcii de reţea între
gazde. Deşi iniţial nu se putea modifica adresa MAC la plăcile de reţea wireless
Wi-Fi acest lucru s-a schimbat între timp şi acuma nu este o idee bună de a
folosi ca mijloc unic de protejare a reţelei, filtrarea adreselor MAC.

2.2. Firewall
Termenul firewall provine din industria construcţiilor civile. Multe din
clădirile moderne au în structura lor firewalls - pereţi special construiţi,
rezistenţi la foc care, în cazul izbucnirii unui incendiu, au rolul de a împiedica
sau încetini răspândirea focului, până la sosirea pompierilor. Termenul a migrat
şi în constructia de masini, unde un firewall separă compartimentul motorului
unei maşini de habitaclu, pentru a proteja pasagerii.
Pentru ştiinţa calculatoarelor, probabil că cel mai usor este sa descriem,
mai intai, ceea ce un firewall nu este: un firewall nu este un simplu router sau
un calculator gazda care asigura securitatea unei retele. in linii mari, un firewall
(numit uneori si pasarela de securitate) este un sistem care impune o politica de
control al accesului intre doua retele. Un firewall reprezinta implementarea
acestei politici in termeni de configurare a retelei, unul sau mai multe sisteme
gazda si router-e cu functiuni speciale, alte masuri de securitate, cum ar fi
autentificarea prin metode criptografice a clientilor.

4
Fig. 1. Dispunerea unui firewall
Cu alte cuvinte, un firewall este un mecanism folosit pentru a proteja o
retea sigura din punctul de vedere al securitatii de una nesigura, in care nu
putem avea incredere.
In mod tipic, una din retele este cea interna unei organizatii (sigura, de
incredere), in timp ce cealalta este internet-ul (in care nu avem incredere din
punctul de vedere al securitatii). Dat fiind numarul si mai mare de utilizatori
internet multi dintre acestia avand, din nefericire, statutul de hacker (cracker sau
vandal) folosirea unui firewall are sens, deoarece probabilitatea "izbucnirii unui
foc" undeva in internet este foarte mare.
Crearea unei politici firewall este, în esenţă, destul de simplă:

 trebuie stabilit ce este permis să iesă din reţeaua locală, dar mai ales ce
este permis să intre în ea ( ce tipuri de pachete ?)
 trebuie stabilite serviciile pe care o să le ofere firewall şi la cine o să
ofere aceste servicii
 trebuie descrise tipurile de atacuri potenţiale pe care firewall-ul trebuie
să le oprească.

Tipuri de firewall-uri

Există două tipuri de firewall-uri:

5
1. Firewall-uri de filtrare – care blochează anumite pachete specifice

System (LAN) | (HUB)

firewall
internet calculator

(DMZ)
(HUB)

Fig. 2. Firewall de filtrare

2. Servere Proxy – care stabilesc conexiuni de reţea în exterior pentru


calculatoarele din interiorul LAN-ului

System (LAN) | (HUB)


proxy/
firewall calculator
internet

proxy server

Fig. 3. Firewall cu proxy server

Desi cele mai multe firewall-uri sunt, in mod curent, interpuse intre retelele
interne si internet, conceptul de firewall nu vizeaza numai acest aspect, existand
suficiente motive pentru folosirea firewall-urilor in oricare internet, inclusiv in
retelele cu arie larga (WAN) ale diferitelor companii. Deoarece un firewall este
dispus la intersectia dintre doua retele, acesta poate fi folosit si in alte scopuri
decat acela de control al accesului:
1. pentru a monitoriza comunicatiile dintre o retea interna si o retea externa.
De exemplu, un firewall poate jurnaliza (monitoriza, inregistra) seviciile
folosite si cantitatea de date transferata prin conexiuni TCP/IP intre
propria organizatie si lumea exterioara;
2. un firewall poate fi folosit pentru interceptarea si inregistrarea tuturor
comunicatiilor dintre reteaua interna si exterior
3. daca o organizatie are mai multe retele, separate din punct de vedere
geografic, fiecare avand cate un firewall, exista posibilitatea programarii
acestor firewall-uri pentru a cripta automat continutul pachetelor
6
transmise intre ele. in acest fel, pe suportul internet, organizatia isi poate
realiza propria retea virtuala privata.

2.3. Protecţia transmisiunilor prin criptare

După cum se ştie, calculatoarele trimit mesaje de date(majoritatea


transmisiunilor prin protocol TCP/IP) prin Internet sub forma de pachete. Într-o
reţea interceptarea transmisiunilor repezintă unul dintre cele mai mari riscuri de
securitate la adresa persoanelor fizice şi a firmelor. Pentru protecţia împotriva
atacurilor prin interceptarea pachetelor, toate transmisiunile efectuate trebuie
criptate. O transmisiune criptată este o transmisiune ce conţine date aşezate
dezordonat, care pot fi reordonate numai prin aplicarea cheii criptografice
corecte. Cate lucruri de bază care trebuiesc menţionate:
- Calculatoarele realizează criptarea prin multimplicarea şi
împărţirea valorilor transmise cu numere mari, decriptarea fiind efectuată prin
aplicarea unui număr mare corelat datelor transmise.
- Cele două tipuri esenţiale de criptare sunt criptarea cu cheie unică,
cunoscută sub numele de criptare cu cheie simetrică, şi criptare cu cheie
publică, sau criptare cu cheie asimetrică. Criptarea cu cheie unică foloseşte o
singură cheie, partajată de ambele părţi şi folosită la criptare şi decriptare .
Criptarea cu cheie publică foloseşte pentru criptarea şi decriptarea o cheie
cunoscută disponibilă pe scară largă (cheia publică) şi o cheie pe care nu o
cunoaşte nimeni cu excepţia utilizatorului (cheia privată).
- La criptarea unui document, în mod obişnuit se criptează numai o
porţiune a acestuia, cunoscută sub numele de esenţa mesajului.(message
payload)
- Anumite locaţii WEB, cunoscute sub numele de inele de chei
publice, conţin multe asemenea chei.
3. Criptare cu chei private(simetrice)

Securitatea criptării simetrice (cu cheie secretă) depinde de protecţia


cheii; managementul acestora este un factor vital în securitatea datelor şi
cuprinde următoarele aspecte:
- generarea cheilor. Pot fi folosite, cu o tabelă de conversie, proceduri manuale
(datul cu banul, aruncarea zarurilor), dar numai pentru generarea cheilor master
7
(folosite pentru cifrarea cheilor). Pentru cheile de sesiune sau de terminal sunt
necesare proceduri automate, de generare (pseudo) aleatoare, care se pot baza pe
amplificatoare de zgomot, funcţii matematice şi diverşi parametri (numărul
curent al apelurilor sistem, data, ora etc).
- distribuţia cheilor. Cu privire la transportul cheii secrete, problema este în
general rezolvată prin folosirea unei alte chei, numită cheie terminal, pentru a o
cripta. Cheile de sesiune - generate numai pentru o comunicaţie - sunt
transportate criptat cu cheile terminal care, de asemenea, pot fi protejate (când
sunt memorate) cu altă cheie, numită cheie master.
- memorarea cheilor. Utilizarea algoritmilor simetrici, în cazul a N entităţi care
doresc să comunice, implică N(N-1)/2 chei de memorat într-un mod sigur. în
realitate, nu toate legăturile bidirecţionale se stabilesc la acelaşi timp; este
motivul pentru care se utilizează cheile de sesiune. Cheile terminal, care
criptează numai date foarte scurte (chei de sesiune), sunt foarte dificil de atacat.
Când sunt folosite chei publice, X500 pare cea mai bună soluţie pentru
managementul cheilor. Cheile publice sunt păstrate în directoare X500, ca
certificate semnate cu o semnătură digitală a Autorităţii de certificare
(Certificate Authority).

Fig. 4. Modelul simplificat al criptării convenţionale

Întâlnim următoarele tipuri de sisteme de criptare cu algoritmi cu cheie secretă:


- cifrul DES (DES simplu, DES cu sub-chei independente, DESX, DES
generalizat GDES, DES cu cutii S alternative, DES cu cutii S dependente de
cheie, precum si alte variaţiuni ale DES);
- cifrul IDEA;
- cifrul FEAL;
- cirful LOKI;
8
- cifrul RC2
- altele

3.1. DES (Data Encryption Standard)

Data Encryption Standard, sau DES este un cifru (o metoda de criptare a


informatiilor) ce a ajuns cifrul oficial FIPS al Statelor Unite in 1976,
raspandindu-se apoi in intreaga lume. Algoritmul a fost initial subiectul multor
controverse, multe parti find secrete si avand o cheie destul de scurta, insa in
cele din urma a ajutat la intelegerea ideii de cifru bloc si a dus la criptanaliza sa.
Astazi, DES este considerat a fi nesigur in multe situatii, in special din
cauza cheii sale de 56 biti, care este prea scurta. Astfel de chei DES au fost
sparte in mai putin de 24 de ore. De asemenea exista rezultate analitice care
dovedesc anumite slabiciuni teoretice ale cifrului, insa care nu apar adesea in
practica. Algoritmul pare sa fie sigur in forma sa “Triple DES”, desi pot aparea
si aici slabiciuni in situatii de atac. In ultimii ani cifrul a fost detronat de
Advanced Encryption Standard (AES). In unele documentatii, DES este referit
ca DEA (Data Encryption Algorithm).
In 17 Martie 1975, algoritmul propus ca Standard de Criptare a Datelor
(DES) a fost publicat in Registul Federal. Au fost cerute compentarii publice, iar
in anul umrator s-au deschis doua grupuri de discutii pentru standardul propus.
Au fost cateva critici din diverse parti, incluzand pe Martin Hellman si Diffie
Whitfield, pionierii criptografiei cu cheie publica. Acestia spuneau ca cifrul are
o cheie prea scurta si ca NSA a slabit algoritmul ca sa poata citi mesajele
criptate. Alan Konheim, unul din proiectantii DES spunea: “am trimis cutii de
substitutie la Washington si au venit inapoi total modificate”. S-au facut
cercetari cu privire la implicarea NSA in dezvoltarea algoritmului, rezultatul
fiind publicat in 1978: “In dezvoltarea DES, NSA a convins IBM ca o cheie de
marime mai mica ar fi suficienta, au asistat apoi indirect la construirea structurii
cutiilor de substitutie, in cele din urma declarand fals ca algoritmul DES final
este ferit de orice slabiciune statistica sau matematica”.
Totusi s-a gasit si ca “NSA nu s-a implicat in dezvoltarea algoritmului
propriu-zis, ci IBM a considerat ca o cheie mai scurta ar fi suficienta pentru
cerintele actualelor sisteme”. Chiar unul din membrii DES, Walter Tuchman

9
spunea ca “noi am dezvoltat algoritmul DES folosind doar membrii echipei
IBM. NSA nu a atins nici macar un fir de ata”.

Fig. 5. Algoritmul DES

DES criptează și decriptează datele în blocuri de 64 biți, folosind o cheie


de lungime 64 biți. Din cei 64 de biți ai cheii, doar 56 sunt folosiți propriu-zis
de algoritm, restul de 8 fiind folosiți ca biți de paritate. Blocul de text în clar de
la intrare este de 64 biți, rezultând la ieșire un bloc de 64 biți de text cifrat.
Datorită faptului că operează pe blocuri de aceeași dimensiune și folosește atât
permutarea cât și substituția, DES este considerat în egală măsură un cifru bloc
și un cifru produs (un cifru bloc care iterează mai multe operații simple în urma
cărora rezultă un cifru mai puternic).
DES este alcătuit din 16 pași identici de procesare, numiți runde, care
produc textul cifrat. În urma studiilor s-a concluzionat că numărul de runde este
exponențial proporțional cu timpul necesar aflării cheii secret folosind atacul de

10
tip forță brută. Pe măsură ce crește numărul de runde, securitatea algoritmului
crește exponențial.

Pașii de procesare:
1. Textul în clar este împărțit în blocuri de 64 biți.
2. Din cheia de 56 biți se generează 16 chei de 48 biți. Cheia de 56 biți
folosită pentru criptare este în realitate folosită doar la generarea primei sub-
chei și nu este folosită în mod direct pentru criptarea datelor.
3. Textul în clar, o dată împărțit în blocuri, este supus unui proces de
permutare bazat pe un table care specifică modul în care biții sunt permutați:
bitul unul este mutat pe poziția bitului 40, bitul 2 pe poziția 23 etc.
4. După realizarea permutării, biții sunt trecuți prin cele 16 runde,
folosind câte una din cele 16 sub-chei generate.
5. Cei 64 biți creați la pasul 3 sunt pasați unei runde, unde sunt împărțiți
în 2 blocuri de câte 32 biți și procesați cu cheia corespunzătoare rundei
respective.
6. Pasul 4 este repetat de 16 ori. Rezultatul unei runde este livrat
următoarei runde.
7. După terminarea celei de-a 16-a runde, cele 2 jumătăți de câte 32 biți
sunt lipite, rezultând un bloc de 64 biți.
8. Blocul de 64 biți este din nou permutat, folosind funcția inversă celei
de la pasul 3.

3.2. Simple DES (S-DES)


Datorită complexităţii ridicate a algoritmului DES standard, în continuare
vă prezentăm varianta simplificat„ a algoritmului DES, Simple-DES, care
foloseşte blocuri de 8 biţi de date.

Algoritmul DES simplificat poate fi exprimat ca o compunere de cinci funcţii:


•o permutare iniţial„ IP, care permută biţii blocului de intrare;

11
•o funcţie f, care depinde de o subcheie k1 a unei chei de criptare K;
funcţia este foarte complexă şi acţionează asupra jumătăţii stîngi a blocului de
date rezultat la pasul anterior;
•o permutare SW, care interschimbă cele dou„ jumătăţi ale blocului de
date rezultat la pasul anterior. Dacă blocul de date este d = d1d2d3d4d5d6d7d8,
atunci acesta devine d5d6d7d8d1d2d3d4, unde şi reprezintă al i-lea bit din
blocul d;
•aceeaţi funcţie f, care foloseşte o altă subcheie (k2) a cheii de criptare K;
•inversa permutării IP, IP-1.
Formula matematică ce stă la baza algoritmului de criptare este:
Y = Ek(X) = IP-1(fk2(SW(fk1(IP(X))))), unde EK este funcţia de criptare
care foloseşte cheia de criptare K şi se aplică asupra blocului de intrare X,
rezultînd blocul criptat Y; fk1 şi fk2 reprezintă funcţia f aplicată asupra unui
bloc de date, folosind subcheile k1, respectiv k2.
În cazul acestui algoritm fiecare bloc de intrare are 8 biţi şi cheia de
criptare, care este partajată între emiţător şi receptor, are lungimea de 10 biţi.
Cheia de criptare este folosită pentru a crea două subchei avînd fiecare 8 biţi.

3.3. Triple DES (3DES)


Când s-a constatat că cheile de 56 biți folosite de DES nu sunt suficiente
pentru a proteja datele împotriva atacurilor de tip forță brută, 3DES a fost
soluția pentru mărirea spațiului cheilor fără a schimba algoritmul. 3DES, numit
și Triple DES, este un cifru bloc care aplică de 3 ori DES.
Utilizarea celor trei pași este importantă pentru a evita atacurile “meet-in-
the-middle”.

12
Fig. 6. Algoritmul 3DES

Triple DES, cu 3 chei diferite de 56 biți are o lungime a cheii de 168 biți.
Datorită atacurilor “meet-in-the-middle”, securitatea efectivă este doar de 112
biți. Cel mai eficient atac asupra 3DES cu trei chei necesită aproximativ
aproximativ 232 texte clare cunoscute, 2113 paşi, 290 criptări DES individuale,
şi 288 unități de stocare. (3)

3.4. AES(Advanced Encryption Standard)


AES (de la Advanced Encryption Standard - în limba engleză, Standard
Avansat de Criptare), cunoscut şi sub numele de Rijndael, este un algoritm
standardizat pentru criptarea simetrică, pe blocuri, folosit astăzi pe scară largă în
aplicaţii şi adoptat ca standard de organizaţia guvernamentală americană NIST.
[1] Standardul oficializează algoritmul dezvoltat de doi criptografi belgieni,
Joan Daemen şi Vincent Rijmen şi trimis la NIST pentru selecţie sub numele
Rijndael.
Deoarece DES devenise vulnerabil din cauza lungimii prea mici a cheii,
NIST a recomandat utilizarea 3DES, un algoritm care constă în esenţă în
aplicarea de trei ori a DES. Deşi 3DES s-a dovedit a fi un algoritm puternic, el
este relativ lent în implementările software,[2] motiv pentru care NIST a lansat
în 1997 o cerere de propuneri pentru un algoritm care să-l înlocuiască. S-a
pornit de la 21 de propuneri acceptate iniţial, apoi prin eliminări numărul lor a
fost redus la 15, şi apoi la 5, din care a fost ales în cele din urmă algoritmul
propus de doi criptografi belgieni, Joan Daemen şi Vincent Rijmen. La votarea
finală, algoritmul, denumit de autorii săi Rijndael, a învins la vot patru alte
propuneri, printre care şi algoritmul RC6, propus de o echipă de criptografi în
care se afla şi reputatul informatician Ron Rivest.
Criteriile pe baza cărora au fost evaluate propunerile pentru AES au fost
securitatea (rezistenţa la atacuri criptanalitice), costurile (eficienţa
computaţională, complexitatea spaţială, precum şi licenţierea liberă şi gratuită)
şi particularităţile algoritmului (flexibilitatea, simplitatea, şi uşurinţa de
realizare a implementărilor atât software cât şi hardware).[3]

13
Acest standard precizează algoritmul Rijndael, un cifru simetric de tip
bloc care poate procesa blocuri de date de 128 biti, folosind chei cu lungimi de
128, 192 sau 256 biți. În publicația FIPS nr. 197 (4), operațiile sunt definite sub
forma unor operații pe matrice.
Pasii algoritmului:
-Pasul SubBytes -Pasul SubBytes este un cifru cu substituţie, fără punct fix,
denumit Rijndael S-box, care rulează independent pe fiecare octet din state.
Această transformare este neliniară şi face astfel întreg cifrul să fie neliniar,
ceea ce îi conferă un nivel sporit de securitate.
-Pasul ShiftRows- Pasul ShiftRows operează la nivel de rând al matricii de stare
state. Pasul constă în simpla deplasare ciclică a octeţilor de pe rânduri, astfel:
primul rând nu se deplasează; al doilea rând se deplasează la stânga cu o poziţie;
al treilea rând se deplasează la stânga cu două poziţii; al patrulea se deplasează
la stânga cu trei poziţii.[10] Rezultatul acestui pas este că fiecare coloană din
tabloul state rezultat este compusă din octeţi de pe fiecare coloană a stării
iniţiale. Acesta este un aspect important, din cauză că tabloul state este populat
iniţial pe coloane, iar paşii ulteriori, inclusiv AddRoundKey în care este folosită
cheia de criptare, operaţiile se efectuează pe coloane.
-Pasul MixColumns-În acest pas, fiecare coloană a tabloului de stare este
considerată un polinom de gradul 4 peste corpul Galois . Fiecare coloană,
tratată ca polinom, este înmulţită, modulo x4 + 1 cu polinomul
a(x) = 3x3 + x2 + x + 2.
Rezultatul are proprietatea că fiecare element al său depinde de toate
elementele de pe coloana stării dinaintea efectuării pasului. Combinat cu pasul
ShiftRows, acest pas asigură că după câteva iteraţii, fiecare octet din stare
depinde de fiecare octet din starea iniţială (tabloul populat cu octeţii mesajului
în clar). Aceşti doi paşi, împreună, sunt principala sursă de difuzie în algoritmul
Rijndael. Coeficienţii polinomului a(x) sunt toţi 1, 2 şi 3, din motive de
performanţă, criptarea fiind mai eficientă atunci când coeficienţii sunt mici. La
decriptare, coeficienţii pasului corespunzător acestuia sunt mai mari şi deci
decriptarea este mai lentă decât criptarea. S-a luat această decizie pentru că
unele din aplicaţiile în care urma să fie folosit algoritmul implică numai criptări,
şi nu şi decriptări, deci criptarea este folosită mai des.
-AddRoundKey -În pasul AddRoundKey, se efectuează o operaţie de sau
exclusiv pe biţi între octeţii stării şi cei ai cheii de rundăPasul AddRoundKey

14
este pasul în care este implicată cheia. El constă într-o simplă operaţie de „sau”
exclusiv pe biţi între stare şi cheia de rundă (o cheie care este unică pentru
fiecare iteraţie, cheie calculată pe baza cheii secrete). Operaţia de combinare cu
cheia secretă este una extrem de simplă şi rapidă, dar algoritmul rămâne
complex, din cauza complexităţii calculului cheilor de rundă (Key Schedule),
precum şi a celorlalţi paşi ai algoritmului.

Fig. 7. Algoritmul AES

3.5. Blowfish

Blowfish este un cifru simetric bloc care poate înlocui DES sau IDEA. El
necesită o cheie de lungime variabilă, între 32 și 448 biți. Blowfish a fost
conceput în 1993 de către Bruce Schneier, ca o alternativă gratuită și rapidă la
algoritmii de criptare existenți. Blowfish este nepatentat, nu necesită
cumpărarea unei licențe și este disponibil gratuit pentru toți utilizatorii.
Articolul original care prezintă cifrul a fost prezentat la workshop-ul First
Fast Software Encryption de la Cambridge, UK (urmând să fie publicat de
Springer-Verlag, Lecture Notes in Computer Scrience #809,1994).
Blowfish este o rețea Feistel care iterează o funcție simplă de criptare de
16 ori. Fiecare ciclu este format dintr-o permutare dependentă de cheie și o
15
substituție dependentă și de cheie li de date. Dimensiunea blocului este de 64
biți, cheia are o lungime variabilă de până la 448 biți. Algoritmul constă în două
parți: expandarea cheii și criptarea datelor. În urma expandării cheii, o cheie de
până la 448 biți se transformă în mai multe matrici de sub-chei care totalizeaza
4168 biți. Toare operațiile sunt adunări și aplicari de funcții XOR pe cuvinte de
32 biți.

3.6 IDEA (International Data Encryption Algoritm)


IDEA (International Data Encryption Algoritm) este un cifru bloc
proiectat de Xuejia Lai și de James Massey în Elveția, în anul 1991. Scopul
algoritmul era de a înlocui standardul DES. IDEA este o versiune revizuită a
unui cifru mai vechi, PES(Proposed Encryption Standard). Inițial, IDEA a fost
numit IPES(Improved PES).
Cifrul a fost proiectat în cadrul unui contract de cercetare cu Fundația
Hasler, care a devenit parte din Ascom-Tech AG. Cifrul e patentat în mai multe
țări dar este disponibil gratuit pentru uz non-comercial. Numele IDEA este
marcă înregistrată. Brevetul va expira in 2010-2011.
IDEA operează pe blocuri de 64 biți, folosind o cheie de 128 biți și constă
într-o serie de 8 transformări (runde) identice și o transformare finală. Din cheia
de 128 biți sunt derivate 62 de sub-chei a câte 16 biți fiecare. Două dintre ele
sunt folosite în cadrul fiecărei runde, patru sunt folosite înaintea fiecărei runde
și după ultima rundă.
Blocul de text în clar este divizat în 4 sub-blocuri de 16 biți. Sunt folosite
3 operații pentru a combina două valori de 16 biți într-un rezultat de 16 biți:
adunare, XOR și înmulțire.
În diagrama de criptare (Fig. 9, Fig. 8) se folosesc următoarele simboluri:

16
Fig. 8,9. Diagremele de criptare ale alg. IDEA

4. Criptare cu chei publice


Un alt moment foarte important în evolutia criptografiei computationale
l-a constituit adoptarea unui principiu diferit de acela al cifrãrii clasice,
cunoscutã de mii de ani. Whitfield Diffie si Martin Hellman, de la Univeritatea
Stanford din California, printr-un articol celebru publicat în 1976, au pus bazele
criptografiei cu chei publice. În locul unei singure chei secrete, criptografia
asimetricã foloseste douã chei diferite, una pentru cifrare, alta pentru descifrare.
Deoarece este imposibilã deducerea unei chei din cealaltã, una din chei este
fãcutã publicã fiind pusã la dispozitia oricui doreste sã transmitã un mesaj cifrat.
Doar destinatarul, care detine cea de-a doua cheie, poate descifra si utiliza

17
mesajul. Tehnica cheilor publice poate fi folositã si pentru autentificarea
mesajelor, prin asa numita semnãturã digitalã, fapt care i-a sporit popularitatea.
Folosind algoritmi cu cheie publicã (asimetrici), se creazã criptosisteme cu douã
chei, în cadrul cãrora doi utilizatori (procese) pot comunica cunoscînd fiecare
doar cheia publicã a celuilalt.
În criptosistemele cu chei publice fiecare utilizator A, detine o
transformare de cifrare publicã, EA, care poate fi memoratã într-un registru
(fisier) public si o transformare de descifrare secretã, DA, ce nu este posibil sã
fie obtinutã din EA. Cheia de descifrare (secretã) este derivatã din cheia de
cifrare (publicã) printr-o transformare greu inversabilã (one-way). În sistemele
cu chei publice, protectia si autentificarea sunt realizate prin transformãri
distincte. Sã presupunem cã utilizatorul (procesul) A doreste sã emitã un mesaj,
M, unui alt utilizator (proces) B. Dacã A cunoaste transformarea publicã EB,
atunci A poate transmite M la B sub forma C=EB(M), asigurîndu-se astfel
functia de confidentialitate.
La receptie, B, va descifra criptograma C utilizînd transformarea secretã
DB, cunoscutã doar de el:
DB(C)=DB(EB(M))=M.
Schema nu furnizeazã facilitãti de autentificare, deoarece orice utilizator
(proces) are acces la transformarea publicã EB a lui B si îi poate trimite mesaje
false M' sub forma C'=EB(M').
Pentru autentificare se aplicã lui M transformarea secretã DA a lui A.
Ignorînd protectia pentru moment, A va emite C=DA(M) la B, care la receptie
va aplica transformarea publicã, EA a lui A:
EA(C)=EA(DA(M))=
Autentificarea este realizatã deoarece numai A poate aplica transformarea
DA. Acest concept poartã numele de semnãturã digitalã, fiind folosit pentru
recunoasterea sigurã a utilizatorilor sau proceselor. Fie B un receptor de mesaj
semnat de A. Semnãtura lui A trebuie sã satisfacã urmãtoarele proprietãti:
• B sã fie capabil sã valideze semnãtura lui A;
• sã fie imposibil pentru oricine, inclusiv B, sã falsifice semnãtura lui A;
• în cazul în care A nu recunoaste semnarea unui mesaj M, trebuie sã existe
un „judecãtor" care sã poatã rezolva disputa dintre A si B.
Protectia nu este asiguratã, întrucît este posibil ca mesajul M sã fie
obtinut de oricine, aplicînd transformarea publicã EA. Pentru a se realiza

18
simultan protectia si autentificarea informatiilor spatiului {M} trebuie sã fie
echivalent spatiului {C}, asa încît orice pereche (EA, DA) sã fie în mãsurã sã
opereze atît asupra textului clar, cît si asupra textului cifrat; în plus se cere ca
EA si DA sã fie mutual inverse, adicã:
EA(DA(M))=DA(EA(M))=M.
Emitãtorul de mesaj A va aplica mai întîi transformarea secretã a sa, DA,
mesajului M, semnându-l. Apoi A va cifra rezultatul - utilizînd transformarea
publicã a lui B, EB si va emite cãtre receptor criptograma:
C=EB(DA(M)).
Receptorul B îl obtine pe M aplicînd la început propria-i functie de
descifrare, DB, iar apoi transformare publicã a lui A, EA, cea care furnizeazã
autentificarea :
EA(DB(C))=EA(DB(EB(DA(M)))) =EA(DA(M)) =M.

Fig. 10. Principiu criptare cu chei publice


4.1 RSA (Rivest Shamir Adleman)
Cel mai cunoscut sistem cu chei publice este RSA al cãrui nume provine
de la de cei trei cercetãtori de la Massachusetts Institute of Technology care l-au
creat- Rivest, Shamir si Adleman. El este un adevãrat standard „de facto" în
domeniul semnãturilor digitale si al confidentialitãtii cu chei publice. Se bucurã
de o foarte mare apreciere atît în mediul guvernamental cît si în cel comercial,
fiind sustinut prin lucrãri si studii de comunitatea academicã. Sub diferite forme
de implementare, prin programe sau dispozitive hardware speciale, RSA este
astãzi recunoscutã ca cea mai sigurã metodã de cifrare si autentificare
disponibilã comercial. O serie de firme producãtoare de sisteme de programe si
echipamente ca DEC, Lotus, Novell, Motorola precum si o serie de institutii

19
importante (Departamentul Apãrãrii din SUA, National Aeronautics-SUA,
Boeing, reteaua bancarã internationalã SWIFT, guvernul Belgiei etc), folosesc
acest algoritm pentru protejarea si autentificarea datelor, parolelor, fisierelor,
documentelor memorate sau transmise prin retele.
Generarea cheilor:
1. Se selectează două numere întregi prime p şi q.
2. Se calculează produsul n=p*q.
3. Se calculează indicatorul lui Euler Φ(n)=(p-1)*(q-1).
4. Se selectează un număr întreg e astfel încât
c.m.m.d.c.(Φ(n),e)=1, 1<e<Φ(n).
5. Se calculează d astfel încât d = e-1 mod Φ(n).
6. Cheia publică este (e,n), iar cheia privată este d.

Algoritmul de criptare:
• Presupunem că un utilizator A are cheia publică (e,n) şi cheia privată d.
• Utilizatorul B criptează mesajul M pentru a fi transmis la A astfel:
1. Obține cheia publică (e,n) a lui A.
2. Transformă mesajul ce va fi criptat într-un număr întreg M în intervalul
[0,n-1].
3. Calculează C = Me (mod n).
4. Trimite textul cifrat C la utilizatorul A

Algoritmul de decriptare:
• Pentru a determina textul clar M din textul cifrat C, utiliz. A calc.:
M = Cd (mod n).
• Numai utilizatorul A cunoaste cheia privata d.

20
Fig. 11. Etapele principale algoritm RSA

Un prim domeniu unde întâlnim algoritmi de criptare, şi în special RSA,


este cel al telecomunicaţiilor: telefoane publice, cu cartele electronice, sau
telefoanele mobile (protocoale de autentificare a persoanei apelate). De
asemenea, în domeniul sănătăţii, prin intermediul cardurilor electronice care să
conţină istoricul medical al unui individ. Securitatea naţională: cărţi de
identitate, paşapoarte, legitimaţii magnetice. Şi să nu uităm economia: cardurile
bancare, comerţul electronic, sau informatica: confidenţialitatea poştei
electronice, a informaţiilor de pe o pagină de web, pe scurt, dreptul la intimitate.
Unde vom întâlni nevoia de semnătură şi identificare electronică, vom
întâlni criptarea prin RSA.

4.2 . PGP (Pretty Good Privacy)


Dezavantajul algoritmului RSA, şi în general al algoritmilor cu chei
publice, este că sunt destul de lenţi, în sensul că pentru a cripta şi a decripta un
mesaj (în condiţiile în care avem cheile publică şi secretă) consumăm o cantitate

21
mare de timp. Din acest motiv, de multe ori, se folosesc algoritmi combinaţi: cu
chei secrete şi chei publice. Un astfel de algoritm este implementat în PGP.
PGP este un program care ofera intimitate criptografica si
autentificare(procesul prin care un computer,un program pentru computer, sau
un user, incearca sa confirme ca acel computer, acel program pentru computer
sau acel user din partea caruia o a doua parte primeste "un comunicat" este, sau
nu este, acea parte care se pretinde a fi, sau a nu fi).PGP a fost initial dezvoltat
de catre Phil Zimmermann in 1991.Numele i-a fost sugerat de catre un magazin
prezent intr-un serial transmis la un program de radio.PGP a fost suficient de
influent incat sa fie facut un standard IETF ,cunoscut ca OpenPGP.Versiunile
mai recente ale PGP decat standardul sunt mai mult sau mai putin compatibile
cu standardul.Cand e folosit corespunzator, PGP e capabil de o foarte inalta
securitate.Observatori informati cred ca inclusiv agentiile guvernamentale
(precum NSA) sunt incapabile sa patrunda mesajele criptate corespunzator cu
PGP.PGP e mai usor de folosit decat multe criptosisteme,dar, la fel ca in cazul
altor criptografii ,implementarea si folosirea afecteaza enorm securitatea
obtinuta in realitate.

Fig. 12. Servicii oferite de PGP

Erorile de implementare sunt intotdeauna posibile,si uzul neatent poate


transforma texul protejat in text neprotejat.Orice sistem de criptare poate fi
nesigur, indiferent de cat de bine este conceput.In general ,uzul corespunzator
implica citirea si urmarea documentatiei user.In contrast cu protocoalele de
securitate precum SSL care doar protejeaza datele in tranzit ,PGP poate fi folosit
pentru protectia datelor stocate pe disc.Oricum, chiar si uzul corespunzator
poate duce la rezultate nedorite, accentuandu-se astfel distanta intre acest tip de
22
program si protectia absoluta, imposibil de gasit deocamdata.Programele de
spyware sunt o amenintare la adresa acestei tip de protectie.
Nici un criptosistem , inclusiv PGP ,nu poate proteja informatii care sunt
accesibile in alte moduri.Atacurile la care acest criptosistem este vulnerabil sunt
de multe ori ignorate .Securitatea autentica a informatiei necesita securitatea
operatorului precum si un design criptografic si o implementare criptografica de
inalta calitate, iar securitatea absoluta a informatiei probabil nu poate fi
atinsa.PGP poate cripta orice data sau fisier ,si e adesea folosit pentru e-mailuri
care nu au nici un sistem de securizare built-in implementat.PGP si S/MIME
sunt cele doua sisteme de protectie ale e-mailurilor care au curent statut de
programe standard NIST.Plug-in-uri care implementeaza functionalitate PGP
sunt disponibile pentru multe aplicatii e-mail(Outlook,Outlook Express,
Eudora,Evolution,Mozilla Thunderbird,Apple Mail,etc).Cateva sunt incluse cu
distributii PGP.Din punct de vedere al securitatii fiecare plug-in este
independent de PGP.Oricare poate avea erori de implementare ,sau sa
interactioneze nesigur cu PGP sau alt software.Utilizand astfel de plug-in-uri nu
ofera neaparat acelasi nivel de securitate cu folosirea de sine statatoare a
PGP.Distinctia intre aceste cazuri este importanta inclusiv pentru cei mai
priceputi si informati din punct de vedere criptogrrafic.Cel mai bun sfat pentru
utilizatorul obisnuit este sa testeze intreg sistemul trimitandu-si mesaje siesi sau
unui partener,periodic.In special, dupa fiecare update sau schimbare de
software.Cea mai sigura actiune operationala este criptarea manuala ,semnarea
mesajelor si trimiterea lor prin e-mail, de asemenea,manual.In orice caz , la fel
ca toate consideratiile de securitate,aceasta trebuie potrivita in functie de
cerintele celorlalte sisteme, constangerile lor,si nevoile userului.Dar, oricare ar
fi riscurile unui sistem de securitate, absenta lui este intotdeauna mult mai
riscanta.PGP foloseste criptografia "public-key" dar si criptografia "symmetric
key",si ,pana la un punct, foloseste si Public Key Infrastructure(PKI)(cu unele
similaritati ,si multe diferente ,cu certificatul standard X.509,care il
preceda).PGP foloseste "assymmetric key encryption" , modalitate in care
recipientul mesajului a generat anterior operatiei o pereche inrudita de
chei,cheia privata ,si cheia publica.

23
Fig 13. Etapa de criptarea in algoritmul PGP

Cheia publica a recipientului e folosita de expeditor pentru criptarea unei


chei impartasite de cei doi useri(cheie secreta,cheie conventionala) pentru un
algoritm de tip "symmetric cipher".Acea cheie e folosita apoi pentru criptarea
textul brut al mesajului.Multe chei publice PGP sunt disponibile pentru toti prin
intermediul "key serverelor" PGP din lume care se comporta ca site-uri mirror
reciproc.Recipientul unui mesaj protejat PGP decripteaza mesajul folosind
"session key" pentru algoritmul simetric.Acea cheie a fost inclusa in mesajul
trimis in forma criptata si a fost decriptat folosindu-se cheia privata a
recipientului.Folosirea a doua codificari este rationala datorita diferentei vitezei
de operare intre codificarile simetrice si cele asimetrice, cele simetrice fiind in
general mult mai rapizi.Sunt si vulnerabilitati in algoritmii "asymmetric key"
folositi de PGP cand sunt folositi ca sa cripteze direct mesajele.O strategie
similara este folosita pentru a detecta daca un mesaj a fost modificat de cand a
fost terminat sau daca a fost trimis de persoana care pretinde ca este
trimitatorul(daca trimitatorul este persoana care pretinde ca este).Ca sa se
determine acestea ,trimitorul foloseste PGP ca sa "semneze" mesajul ,fie cu
RSA sau DSA (algoritmi de signatura).Pentru a face asta, PGP computeaza un
"hash" din textul brut si apoi creaza semnatura digitala("digital signature") din
acel "hash" , folosind cheia privata a trimitatorului.Primitorul mesajlui
computeaza un "hash" din textul brut recuperat si apoi foloseste cheia publica a
trimitatorului si valorea "hash"-ului mesajului semnat cu algoritmul de
signatura.

24
Daca semnătura se potriveste "hash"-ul textului mesajului , se presupune
(cu indoieli minore) ca mesajul primit nu a fost trimis cu rea intentie deliberat
,sau accidental, din moment ce a fost semnat.Prezumtia se bazeaza pe un numar
de consideratii.Este destul de improbabil cu algoritmii si protocoalele folosite in
PGP ca cineva rau intentionat poate crea o signatura pentru un mesaj arbitrar si
astfel un mesaj primit care trece acest test trebuie sa fi fost trimis de catre
pretinsul trimitator.Oricum, oricine care are jumatatea privata a cheii de
semnare poate sa creeze cu usurinta o signatura corespunzatoare pentru orice.
Intr-o lume a e-mailurilor,virusurilor ,cailor troieni,si a altor forme de
malware termenul non-respingere(validarea unui mesaj ca apartinand
trimiatorului probabil) trebuie primit cu multa vigilenta si prudenta , pentru ca
cheile private pot fi uneori corupte clandestin. Dar asta se verifica pentru orice
criptosistem care foloseste algoritmi de tip "asymmetric key" pentru non-
respingere si semnatura digitala.PGP nu e in nici un sens extrem de vulnerabil
,dar Zimmerman a fost inteligent cand l-a numit "pretty good".

5.Exemplu de spargere a codurilor (DES)

Desi despre criptanaliza DES au fost publicate mai multe informatii decat
despre oricare alt cifru bloc, cel mai practic atac ramane cel de forta bruta. Se
cunosc multe proprietati criptanalitice care permit cel putin trei feluri de atac cu
complexitatea teoretica mai mica. Insa acestea au nevoie de un volum cam
nerealist de informatii decriptate ca sa functioneze, nefiind practice.

5.1 Atacul de forta bruta


Pentru orice cifru, metoda fundamentala de atac este forta bruta, adica
incercarea tuturor cheilor posibile, pe rand. Lungimea unei chei determina
numarul posibil de chei si deci complexitatea procesului. In ceea ce priveste
DES, s-au pus inca de devreme intrebari cu privire la lungimea cheii sale,
inainte chiar de a fi aprobat ca standard. Avand o cheie relativ scurta, se
prevedea necesitatea unui algoritm nou inca de atunci. Se stie ca NSA a
incurajat, daca nu chiar fortat IBM sa reduca cheia de la 128 la 64 de biti, iar

25
mai apoi la 56. Acesta este un indicator al faptului ca NSA dispunea de
calculatoare capabile sa sparga asemenea chei chiar in anii '70.
Masina construita sa sparga DES valora 250.000$ si continea peste
18.000 de chipuri menite sa “termine” o cheie DES in cateva zile. Au fost
propuse multe astfel de masini. In 1977, Diffie si Hellman au propus o masina
estimata a costa 20 de milioane de dolari, care putea gasi o cheie DES intr-o
singura zi. Prin 1993, Wiener a propus o masina de 1 milion de dolari ce gasea o
cheie in sapte ore. Vulnerabilitatea DES a fost demonstrata practic la sfarsitul
anilor '90. In 1997, RSA Securiry a sposorizat o serie de competitii care ofereau
10.000$ primei echipe care spargea un mesaj criptat cu DES. Conscursul final a
fost castigat de Proiectul Deschall, condus de Rocke Verser, Matt Curtin si
Justin Dolske, ce folosea timpii morti a mii de procesoare din Internet.
Vulnerabilitatea a fost si mai puternic pusa in evidenta in 1998, cand Electronic
Frontier Foundation (EFF) a construit o masina de 250,000$. EFF dorea sa
demonstreze ca DES poate fi spart atat in teorie, cat si in practica: “Sunt multi
oameni care nu cred un adevar pana ce nu il vad cu proprii ochi. Numai
construind o masina care sparge DES in cateva zile poate convinge pe acestia sa
nu se bazeze pe securitatea sa”. Masina “rezolva” o cheie DES in mai putin de
doua zile – cam in acelasi timp Departamentul de Justitie USA anunta ca DES
este imposibil de spart.

Fig 14. Timp necesar pentru a sparge algorimul DES prin forta brută

5.2 Atacuri mai rapide decat forta bruta

26
Exista trei atacuri care pot sparge cele saisprezece runde ale algoritmului
DES cu o complexitate mai mica decat forta bruta: criptanaliza diferentiala
(DC), criptanaliza liniara (LC) si atacul lui Davies. Insa atacurile de aceste
feluri sunt teoretice si destul de greu de implementat in practica, certificand
doar slabiciunile.
Criptanaliza diferentiala a fost descoperita pe la sfarsitul anilor '80 de Eli
Bihan si Adi Shamir, desi era cunoscuta deja de IBM. Ca sa sparga cele
saisprezece runde, criptanaliza diferentiala are nevoie de 247 texte cunoscute.
DES a fost construit ca sa reziste la acest fel de criptanaliza.
Criptanaliza liniara a fost descoperita de Mitsuru Matsui si are nevoie de
243 de texte cunoscute. Metoda a fost implementata si a fost primul experiment
de criptanaliza DES raportat. Nu reiese de nicaieri ca DES ar fi fost construit sa
reziste si unui astfel de atac. O generalizare a LC, analiza liniata multipla a fost
sugerata in 1994 de Kaliski si Robhashaw, fiind rafinata apoi de Bityukov in
2004. Rezultatele acestor analize arata ca pot fi folosite mai multe aproximari
liniare pentru reducerea cerintelor de date (241 in loc de 243).
Atacul lui Davies este o tehnica specializata pentru DES, sugerata la
inceput de Davies in anii '80, imbunatatita mai apoi de Biham si Biryukiv in
1997. Cea mai puternica forma a acestui atac are nevoie de 250 texte, are
complexitatea computationala de 250 si o rata a succesului de 51%.
Criptanaliza Diferential-Liniara propusa de Langford si Hellman in 1994
reduce necesarul de texte cunoscute la 215.8.

6.1 Exemplu de spargere a codurilor (RSA)


Din punct de vedere matematic, există 3 atacuri asupra RSA:
1. Factorizarea numărului n în factori primi p şi q. Se poate astfel
determina Φ(n) = (p-1)*(q-1), iar apoi d = e-1 (mod Φ(n)).
2. Determinarea lui Φ(n) direct, fără a determina mai întâi p şi q. Şi în
acest caz se poate determina apoi d = e-1 (mod Φ(n)).
3. Determinarea lui d în mod direct, fără a determina mai întâi Φ(n).
• Determinarea lui Φ(n) este echivalent cu factorizarea numărului n, iar
determinarea lui d (ştiind doar pe e şi n) se face într-un timp tot aşa de mare ca
şi factorizarea lui n.

27
• Securitatea RSA se bazează pe dificultatea factorizării unui număr
întreg în factori primi.
• RSA cu lungimea cheii de 1024 biți (aproximativ 300 cifre ) este
considerat destul de puternic pentru aplicațiile actuale.
Problema decriptării unui mesaj criptat cu RSA este denumită problema
RSA. Aceasta constă în obţinerea radicalului de ordin e modulo n, unde e şi n au
proprietatea că n este produsul a două numere prime mari p şi q, iar e este prim
cu produsul dintre p-1 şi q-1. În acest moment, cea mai eficientă metodă de a
realiza aceasta este descompunerea în factori primi a lui n, şi obţinerea astfel a
cheii secrete d pe baza lui e. Astfel, este demonstrat că dificultatea spargerii
unui mesaj criptat cu RSA nu este mai dificilă decât problema factorizării. Nu a
fost descoperită încă o altă soluţie generală a problemei RSA, dar nici nu s-a
demonstrat matematic că nu există o altă soluţie.

Fig 15. Graficul complexităţii celei mai bune metode de factorizare a întregilor
în funcţie de lungimea reprezentării binare a numărului factorizat

Graficul complexităţii celei mai bune metode de factorizare a întregilor în


funcţie de lungimea reprezentării binare a numărului factorizat (pe abscisă, log
n, adică numărul de cifre al numărului de factorizat; pe ordonată, ordinul de
mărime al duratei de factorizare). Se observă că această complexitate este
exponenţială, crescând foarte mult pentru numere mari

28
Factorizarea întregilor prin metodele comune ajută la găsirea soluţiilor în
timp util doar pentru numere mici. Pentru numere mari, algoritmii de
factorizare, cu complexitate exponenţială, dau soluţia după foarte mult timp.
Cea mai rapidă metodă de factorizare a întregilor, algoritmul general al ciurului

câmpurilor de numere, are o complexitate de Aici, c


este un număr ce ia valori în jur de 1,9 pentru numere de tipul lui n, adică
numere cu doi factori primi. Cel mai mare număr factorizat vreodată prin acest
algoritm, rulat în anul 2005, de către specialişti de la Agenţia Federală Germană
pentru Securitatea Tehnologiei Informaţiei, are 200 de cifre zecimale, iar
reprezentarea binară a factorilor primi obţinuţi ocupă 663 de biţi. Cheile de
criptare RSA cele mai sigure au lungimi de peste 1024 de biţi.
Atacul RSA prin metoda forţei brute, adică încercarea fiecărei chei
secrete posibile, consumă chiar mai mult timp decât factorizarea[.
Deşi securitatea algoritmului RSA constă în legătura dintre acesta şi
factorizarea întregilor, el trebuie folosit cu grijă în implementări, deoarece, în
caz de folosire eronată, sistemele bazate pe RSA pot fi atacate în anumite
maniere care ocolesc factorizarea efectivă a modulului, atacatorul ajungând să
obţină mesajul clar sau cheia secretă.
Atac cu text cifrat ales
În cazul atacului cu text cifrat ales, atacatorul dispune de cheia publică a
entităţii atacate (exponentul de criptare e şi modulul n), şi interceptează mesaje
cifrate trimise acestuia. Pentru a obţine mesajul clar m dintr-un mesaj cifrat c,
atacatorul poate proceda, de exemplu, astfel:
1. Calculează
2. Trimite entităţii atacate spre semnare pe x, obţinând y = xd(mod n)
3. Se observă că

4. Se rezolvă ecuaţia y = (2m)(mod n)


Atacatorul obţine astfel mesajul cifrat. Există mai multe feluri de atacuri
cifrate, dar sunt câteva moduri de apărare împotriva lor. Unele pot fi evitate
dacă pur şi simplu entitatea protejată cu chei secrete refuză să semneze texte
arbitrare trimise de terţi. Dacă acest lucru nu este posibil (ca de exemplu în
cazul unui notar public care trebuie să semneze documente electronice
prezentate de persoane străine), atunci atacul poate fi prevenit prin folosirea

29
unei perechi diferite de chei pentru criptare şi pentru semnătura electronică. De
asemenea, este necesar să se folosească şi un padding aleator pentru mesaj
înainte de criptare sau, în cazul semnăturii, să nu se semneze mesajul clar, ci un
hash al acestuia. De asemenea, atacul poate fi evitat şi dacă se impune o
anumită structură predefinită mesajelor primite spre semnare.
Mesaje necriptate
Întrucât RSA se bazează pe ridicarea la putere (modulo un număr n),
există anumite părţi de mesaje care nu sunt criptate, părţi rezultate în urma
împărţirii mesajului pe blocuri. Astfel de mesaje sunt mesajele m cu proprietatea
că m=mx (mod n) oricare ar fi x, ca de exemplu m=0, m=1, m=n-1. Numărul
exact al acestor mesaje decriptate este
[20]
, şi deci este de
minim 9 (deoarece e, p şi q sunt impare). Pentru a micşora numărul de astfel de
părţi de mesaj, este util să se folosească un exponent public e cât mai mic.
Exponentul de criptare mic
În unele aplicaţii, se foloseşte un exponent de criptare (public) mic, de
exemplu 3, pentru a mări performanţa, dar şi pentru a rezolva unele probleme de
securitate. Dacă mai multe entităţi care comunică folosesc acelaşi exponent
public (dar fiecare are propriul modul şi deci propria cheie secretă), atunci
acelaşi mesaj trimis mai multor destinatari are următoarele valori:
c1 = me(mod n1)
c2 = me(mod n2)
c3 = me(mod n3)
unde ni sunt modulele celor trei destinatari, e este exponentul comun
acestora iar m este mesajul trimis tuturor celor trei. Un atacator poate folosi
algoritmul lui Gauss pentru a descoperi o soluţie mai mică decât n1n2n3 a unui
sistem compus din următoarele ecuaţii:
x = me(mod n1)
x = me(mod n2)
x = me(mod n3)
Această soluţie este, conform teoremei chinezeşti a resturilor, cubul
mesajului m. Soluţia pentru această problemă este cea denumită sărarea
mesajului (din engleză: salting), adică adăugarea unui padding format din
numere pseudoaleatoare, padding diferit pentru fiecare expediere a mesajului.

30
Dacă exponentul de decriptare (cel secret) este mic, pe lângă faptul că
multe părţi din mesaj nu se criptează, aşa cum s-a arătat mai sus, există un
algoritm rapid de găsire a lui d, cunoscând informaţiile e şi n. Acest algoritm nu
este eficient dacă d este de acelaşi ordin de mărime cu n, deci dacă e este mic,
acesta fiind unul din motivele pentru care se alege în general e un număr mic,
pentru ca d să fie cât mai mare.
Recomandări pentru dimensiunea cheilor:
Recentele progrese făcute în factorizarea întregilor şi în procesarea
paralelă au dat naştere la necesitatea unor chei din ce în ce mai mari pentru
sistemele de criptare cu chei publice.
• Ultimele recomandări făcute de laboratoarele RSA Data Security pentru
alegerea dimensiunii cheilor de cifrare RSA sunt:

Fig 16. Recomandari laboratoareale RSA Data Security ptr lungimea cheilor

7. Concluzii
Ca o concluzie legată de performanţele alg. cu chei simetrice cred că cel
mai exemplificativ este următorul tabel din care riese că timpii de decriptare
31
sunt aproape identici indiferent de metoda dar la timpii de criptare AES este de
doua ori mai încet ca şi competitorii:

Fig.17. Exemplu de performanţe algoritm de criptare chei simetrice*


(*extras din bibliografie 3)

Cât despre aspectul cel mai important : securitatea datelor se poate spune
că AES este cel mai recomandat dintre toate urmat la scurta distanţă de
Blowfish. Sunt AES pe 256 biţi a fost spart doar cu forţă bruta dar din păcate
timpul necesar pentru a-l sparge in acest fel este direct proporţional cu lungimea
parolei; de aceea se recomanda ca pentru AES 256biţi sa se folosească o parolă
de cel puţin 64 de caractere.
Algoritmii cu chei publice sunt în general mai rapizi ca cei cu chei
simetrice(private) dar nu sunt neaparat mai siguri: RSA pe 1024 biţi a fost spart
recent (martie 2010) de către un grup de cercetători de la universitatea Michigan
În domeniul securităţii internet cel mai des folosite metode de criptarea
au ajuns sa fie cele bazate pe chei publice sau hibride(chei private + certificate).
Ca o concluzie pentru cele prezentate în această lucrare aş vrea să afirm că nici
o tehnologie de criptare nu garanteză securitate absolută ci doar faptul că efortul
de spargere a “criptării” este mult prea mare pentru a merita sa fie depus.
Bibliografie:
1) Securitatea in mediul internet [prof. Cezar A., Ed. Tehnica 2008]

32
2) Introducere in criptografie [prof. univ. dr. Constantin Popescu,
Universitatea Tehnica Oradea, 2009]
3) Tehnologii de securitatea alternative pentru aplicaţii îîn reţea
[Universitatea Tehnica din Cluj Napoca, Mircea F. V,2009]
4) Retele de calculatoare - Introducere in securitate
[Corneliu Buraga, Universitatea A.I.Cuza Iasi,2007]
5) Computation Algebra [prof. John C.,CALTech University, 2008]
6) Cryptography and Network Security [William Stallings,Lawrie Brown,
Idaho Institute of Technology,SUA, 2006 ]
7) Cryptography and Network Security
[Viorel Preoteasa, Abo Akademy.Finlanda,2009]
8) Wikipedia.org [din diferita tari]
9) networkcomputing.com [revista IT]
10) csoonline.com [revista IT]
11) searchsecurity.techtarget.com [site IT]
12) design-reuse.com[site IT]
13) garykessler.net/library/crypto.html [breviar teoretic criptografie]
14) cacr.math.uwaterloo.ca/hac/ [dictionar criptografie]]

Bibliografie figuri:
- Fig 1 – wikipedia.org (uk)
- Fig 2,3 – bibliografie 1)
- Fig 4 – bibliografie 3)
- Fig 5 – bibliografie 10)
- Fig 6 – wikipedia.org (us)
- Fig 7 – design-reuse.com
- Fig 8,9 – bibliografie 6)
- Fig 10 – bibliografie 4)
- Fig 11 – via.com.tw/en/
- Fig 12 – bibliografie 2)
- Fig 13 – zdnet.com
- Fig 14 – bibliografie 3)
- Fig 15 – wikipedia.org (ro)
- Fig 16 – bibliografie 2)
- Fig 17 – bibliografie 1)

33

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