Documente Academic
Documente Profesional
Documente Cultură
CIFR
CIFR
1
Cuprins:
Introducere........................................................................................pag 1
o Firewall....................................................................................pag 2
o S-DES......................................................................................pag 12
o TripleDES................................................................................pag 12
o AES ........................................................................................pag 13
o Blowfish.................................................................................pag 16
o IDEA.......................................................................................pag 16
o PGP........................................................................................pag 22
2
1.Introducere.
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
5
1. Firewall-uri de filtrare – care blochează anumite pachete specifice
firewall
internet calculator
(DMZ)
(HUB)
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.
9
spunea ca “noi am dezvoltat algoritmul DES folosind doar membrii echipei
IBM. NSA nu a atins nici macar un fir de ata”.
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.
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.
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)
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.
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.
16
Fig. 8,9. Diagremele de criptare ale alg. IDEA
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.
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
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.
23
Fig 13. Etapa de criptarea in algoritmul PGP
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".
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.
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ă
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.
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
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
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:
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