Professional Documents
Culture Documents
5. Criptografia modern
5.1 Algoritmi simetrici de tip bloc
Algoritmii de tip bloc cripteaz mesajul n blocuri de 64 sau 128 de bii. Se aplic o
funcie matematic ntre un bloc de bii ai mesajului n clar i cheie (care poate varia ca mrime),
rezultnd acelai numr de bii pentru mesajul criptat. Funcia de criptare este realizat astfel
nct s ndeplineasc urmtoarele cerine:
- tiind un bloc de bii ai textului n clar i cheia de criptare, sistemul s poat genera rapid
un bloc al textului criptat;
- tiind un bloc de bii ai textului criptat i cheia de criptare/decriptare, sistemul s poat
genera rapid un bloc al textului n clar;
- tiind blocurile textului n clar i ale textului criptat, sistemului s-i fie dificil s genereze
cheia.
Acest tip de algoritmi este foarte folosit n criptografia modern; de aceea n acest capitol
vom prezenta civa algoritmi care au fcut carier, dup prezentarea modurilor criptografice
care stau la baza funcionrii algoritmilor de tip bloc.
Algoritmul DES (Data Encryption Standard) a fost dezvoltat pentru guvernul Statelor Unite
i pentru folosin public. El a fost dezvoltat plecnd de la algoritmul Lucifer conceput n
Laboratoarele IBM. n mai 1973, revista Federal Register a sintetizat principiile care trebuie s
stea la baza proiectrii unui algoritm criptografic standard:
- algoritmul trebuie s asigure un nalt nivel de securitate;
- algoritmul trebuie s fie complet specificat i simplu de neles;
- securitatea algoritmului trebuie s fie asigurat de cheie i nu trebuie s depind de
pstrarea secret a algoritmului;
- algoritmul trebuie s fie disponibil tuturor utilizatorilor;
- algoritmul trebuie s fie adaptabil pentru diverse aplicaii;
78
Capitolul 5 Criptografia modern
79
Capitolul 5 Criptografia modern
Intrare
permutare iniial
Substituie Cheia
Permutare
Ciclul 1
Substituie Cheia
Permutare
Ciclul 2
Substituie Cheia
Permutare
Ciclul 16
Ieire
80
Capitolul 5 Criptografia modern
La intrarea datele sunt mprite n blocuri de 64 bii, care sunt transformate folosind cheia
de 64 de bii. Cei 64 de bii sunt permutai prin permutarea iniial. n continuare, urmeaz
operaiile ce constituie un ciclu. Blocul de 64 de bii este separat n dou, jumtatea stng i
jumtatea dreapt, fiecare de 32 de bii. Cheia este deplasat la stnga cu un numr de bii i
permutat: ea se combin cu partea dreapt care apoi se combin cu partea stng; rezultatul
devine noua parte dreapt; vechea parte dreapt devine noua parte stng (vezi fig. 5.2).
Date permutate
Cheie
permutat
Noua jumtatea
stng (vechea Noua jumtatea
jumtate dreapt) dreapt
81
Capitolul 5 Criptografia modern
n fiecare ciclu practic au loc patru operaii separate. nti partea dreapt este expandat de
la 32 la 48 bii; apoi este combinat cu o form a cheii; rezultatul este substituit i condensat n 32
bii, cei 32 bii sunt permutai i apoi combinai cu partea stng pentru a da o nou parte dreapt
(fig. 5.4).
D S Cheia
32 bii 32 bii 28 bii 28 bii
Permutare Deplasare Deplasare
expandat
permutare aleasa de
58 bii
48 bii
82
Capitolul 5 Criptografia modern
Cheia dintr-un ciclu este combinat printr-o funcie sau exclusiv cu partea dreapt
expandat. Rezultatul este operat n 8 cutii-S care efectueaz substituia. O cutie-S este o
tabel n care 6 bii de date sunt nlocuii de 4 bii.
Permutrile sunt efectuate de tabele numite cutii-P.
83
Capitolul 5 Criptografia modern
n august 1998 NIST a selectat cinci finaliti pe criterii de securitate, eficien, flexibilitate i
cerine de memorie. Finalitii au fost:
1. Rijndael (Joan Daemen i Vincent Rijmen, 86 de voturi)
2. Serpent (Ross Anderson, Eli Biham, Lars Knudsen, 56 voturi)
3. Twofish (echipa condus de Bruce Schneier, 31 voturi)
4. RC6 (RSA Laboratories, 23 voturi)
5. MARS (IBM, 13 voturi)
n octombrie 2000 NIST a stabilit ctigtorul. Acesta este algoritmul Rijndael, dezvoltat de
doi tineri cercettori belgieni, Joan Daemen i Vincent Rijmen i care devine standard
guvernamental al SUA. Se sper ca Rjindael s devin standardul criptografic dominant n lume
pentru urmtorii 10 ani.
Rijndael permite lungimi de chei i mrimi de blocuri de la 128 de bii la 256 de bii, n pai
de cte 32 de bii. Lungimea cheii i lungimea blocului pot fi alese n mod independent, dar n
practic se vor folosi dou variante: bloc de 128 bii cu cheie de 128 bii i bloc de 128 bii cu
cheie de 256 bii. Standardul comercial va deveni cel mai probabil varianta 128/128. O cheie de
128 bii permite un spaiu al cheilor de 2128 chei.
Preliminarii matematice
Rijndael se bazeaz pe teoria cmpului Galois, n sensul c anumite operaiuni sunt definite
la nivel de octet iar octeii reprezint elemente n cmpul finit GF(28).
1
National Institute of Standards and Technology SUA
2
Advanced Encryption Standard Standard de Criptare Avansat
84
Capitolul 5 Criptografia modern
Cum toate reprezentrile cmpului finit GF(28) sunt izomorfe, se poate alege reprezentarea
clasic polinomial, cu impact pozitiv asupra complexitii implementrii.
Octetul b, format din biii b7, b6, b5, b4, b3, b2, b1 i b0, este considerat ca fiind un polinom de
gradul 7 cu coeficieni 0 sau 1:
b7 x7 + b6 x6 + b5 x5 + b4 x4 + b3 x3 + b2 x2 + b1 x + b0
Operaiunea de adunare este definit ca suma a dou polinoame n care coeficienii se
adun modulo 2 i care corespunde operrii XOR a celor doi octei corespondeni. Sunt
ndeplinite axiomele grupului abelian: operaia este intern, asociativ, comutativ, exist
element neutru i element invers
Operaiunea de nmulire corespunde produsului a dou polinoame modulo, un polinom
ireductibil de grad 8 i care pentru AES este
m(x) = x8 + x4 + x3 + x + 1
nmulirea este intern (rezultatul este un polinom de grad strict mai mic ca 8), asociativ i
exist element neutru. Elementul invers se determin cu algoritmul lui Euclid, iar distributivitatea
celor doua operaii se verific.
Concluzia este c mulimea celor 256 de valori posibile ale unui octet, mpreun cu cele
dou operaiuni definite mai sus formeaz un corp algebric finit, respectiv GF(28).
Proiectarea AES
n proiectarea AES s-a inut cont de trei criterii:
- rezistena mpotriva tuturor atacurilor cunoscute;
- viteza i compactitatea codului pe un mare numr de platforme;
- simplicitatea proiectrii.
Descrierea AES
n algoritmul AES rezultatul cifrat intermediar este numit vector state, care poate fi
reprezentat ca un tabel cu patru linii i patru coloane, acestea fiind numerotate ncepnd de la 0.
85
Capitolul 5 Criptografia modern
Vectorul state se iniializeaz cu blocul de 128 bii de text n clar (n ordinea coloanelor, cu
primii patru octei n coloana 0) i va fi modificat la fiecare pas al calculului, prin substituii,
permutri i alte transformri, rezultnd n final blocul de 128 bii de text cifrat.
Cheia de 128 de bii este expandat n 11 tabele 4x4 notate rk(0), rk(1),...., rk(10).
Expandarea este realizat prin rotiri repetate i operaii XOR asupra unor grupuri de bii din cheia
original.
nainte de a ncepe cele 10 runde, cheia rk(0) se opereaz XOR cu vectorul state.
Calculul principal const n execuia a 10 runde, folosind cheia rk(i) la iteraia i. Fiecare
rund const n patru pai.
Pasul 1 realizeaz o substituie octet cu octet asupra vectorului state folosind o cutie S.
Pasul 2 rotete la stnga fiecare din cele 4 rnduri ale vectorului state: rndul 0 este rotit cu
0 octei, rndul 1 este rotit cu 1 octet, rndul 2 este rotit cu 2 octei i rndul 3 este rotit cu 3
octei, realiznd difuzia datelor.
Pasul 3 amestec fiecare coloan din vectorul state independent de celelalte, prin nmulirea
coloanei cu o matrice constant, multiplicarea fiind realizat folosind cmpul finit Galois GF(28).
n fine, pasul 4 opereaz XOR cheia rk din runda respectiv cu vectorul state.
Deoarece fiecare pas este reversibil, decriptarea se poate realiza prin rularea algoritmului de
la coad la cap, sau prin rularea algoritmului de criptare nemodificat, dar folosind tabele diferite.
Avantaje AES
Avantajele AES relativ la implementare sunt:
- AES se poate implementa pe un procesor Pentium Pro i va rula cu o vitez mai
mare dect orice alt cifru bloc;
- AES se poate implementa pe un dispozitiv Smart Card, folosind un spaiu redus
de memorie RAM i un numr redus de cicluri;
- transformarea din cadrul unei runde este paralel prin proiectare, ceea ce
constituie un avantaj pentru viitoarele procesoare;
- AES nu folosete operaiuni aritmetice, ci doar operaii la nivel de iruri de bii.
86
Capitolul 5 Criptografia modern
Extensii:
- proiectarea permite specificarea de variante cu lungimi de blocuri i lungimi de
chei aflate ntre 128 i 256 bii, n pai de cte 32 de bii;
- dei numrul de runde n AES este fixat n specificaiile algoritmului, el poate
modificat ca un parametru n cazul unor probleme de securitate.
Limitrile AES
Limitrile AES sunt n legtur cu algoritmul de decriptare:
- algoritmul de decriptare este mai puin pretabil la implementarea pe un dispozitiv
Smart Card, deoarece necesit mai mult cod i mai multe cicluri;
- implementarea software a AES folosete cod i/sau tabele diferite pentru
algoritmul de criptare, respectiv decriptare;
- implementarea hardware a AES a algoritmului de decriptare refolosete doar
parial circuitele care implementeaz algoritmul de criptare.
87
Capitolul 5 Criptografia modern
Blowfish este optimizat pentru aplicaii n care cheia nu trebuie s se schimbe des, cum ar fi
legturi de comunicaie sau un criptor automat pentru fiiere. Este semnificativ mai rapid dect
DES cnd este implementat pe procesoare de 32 de bii dotate cu memorie cache mare, cum ar fi
Pentium. Blowfish nu este potrivit pentru comutarea de pachete, cu schimbri dese de cheie, ca
funcie hash one-way sau n aplicaii smart-card, unde memoria este insuficient.
88
Capitolul 5 Criptografia modern
Blowfish este o reea Feistel cu 16 cicluri. Intrarea este x, un element de 64 bii de date.
Pentru criptare:
For i = 1 to 16:
xL = xL Pi
xR = F(xL) xR
se schimb xL i xR ntre ele
End for
Decriptarea are loc similar cu criptarea, cu diferena c P1, P2, , P18 sunt folosite n
ordine invers.
89
Capitolul 5 Criptografia modern
n total, 521 de iteraii sunt necesare pentru a genera toate sub-cheile necesare. Aplicaiile
pot memora sub-cheile pentru a nu trebui s le calculeze de fiecare dat.
90
Capitolul 5 Criptografia modern
Cifrul RC4
RC4 este un cifru ir cu cheie de lungime variabil, dezvoltat n 1987 de ctre Ron Rivest
pentru RSA Data Security. n 1994 codul surs al algoritmului este fcut public pe Internet.
RC4 este un algoritm simplu de descris: irul cheie este independent de textul n clar. Are 8
x 8 cutii-S: S0, S1, ..., S255. Intrrile sunt permutri ale numerelor de la zero la 255, iar
permutarea este o funcie de o cheie de lungime variabil. Exist doi indici, i i j, iniializai cu
zero.
Pentru a genera un octet aleator se procedeaz astfel:
i = (i + 1) modulo 256
j = (j + Si) modulo 256
T = Si
Si = Sj
Sj = T
t = (Si + Sj) modulo 256
K = St
Octetul K este operat XOR cu textul n clar pentru a produce text cifrat sau operat XOR cu
textul cifrat pentru a obine textul n clar. Criptarea este aproape de 10 ori mai rapid dect
DES-ul.
Iniializarea cutiilor-S este simpl. Se iniializeaz liniar: S0 = 0, S1 = 1, , S255 = 255 i
un alt vector de 256 de octei cu cheia, repetnd cheia, dac este necesar, pentru a completa
vectorul cu componentele: K0, K1, , K255.
j=0
For i = 0 to 255:
j = (j + Si + Ki) modulo 256
se schimb Si cu Sj ntre ele
91
Capitolul 5 Criptografia modern
Nu exist rezultate publice ale criptanalizei. Se crede ca algoritmul este imun la analiza
diferenial i liniar; RC4 poate fi n aproximativ 2 1700 stri posibile. Cutiile-S evolueaz lent
n timpul ntrebuinrii: i asigur c fiecare element se schimb, iar j c aceste schimbri sunt
aleatoare.
RC4 are un statut special de export, acesta fiind permis doar pentru chei de pn la 40 de
octei. RC4 este implementat n multe produse comerciale, dintre care amintim Lotus Notes i
Oracle Secure SQL.
92
Capitolul 5 Criptografia modern
Un alt criptosistem bazat pe o problem dificil este algoritmul RSA, numit astfel dup
inventatorii si, Rivest, Shamir i Adelman. A fost publicat n 1978 [RSA78] i rmne un
algoritm foarte folosit i astzi, n ciuda eforturilor criptanalitilor de a-l sparge.
Introducere
Algoritmul de criptare RSA incorporeaz rezultate din teoria numerelor, combinate cu
dificultatea determinrii factorilor primi pentru un numr int. Ca n cazul algoritmului Merkle-
Hellman i algoritmul RSA opereaz cu aritmetica modulo n. Un bloc n text clar este tratat ca un
ntreg, iar pentru criptare i decriptare se folosesc dou chei, e i d, care sunt interschimbabile.
Blocul de text clar P este criptat ca Pe modulo n. Deoarece exponenierea este modulo n, este
foarte dificil s se factorizeze Pe pentru a descoperi textul original. Pentru aceasta, cheia de
decriptare d este astfel aleas nct (Pe)d = P modulo n. Astfel P este regsit fr a fi necesar
descompunerea n factori primi a lui Pe.
Problema pe care se bazeaz algoritmul de criptare este cea a factorizrii numerelor mari.
Problema factorizrii nu se cunoate a fi NP complet; cel mai rapid algoritm cunoscut este
exponenial n timp.
Descrierea detaliat
Cu algoritmul RSA, mesajul n text clar P este criptat n, mesajul n text cifrat C prin
intermediul cheii de criptare e:
C = Pe modulo n
Mesajul n text clar este regsit cu ajutorul cheii de decriptare d:
P = Cd modulo n
Din cauza simetriei din aritmetica modular, criptarea i decriptarea sunt mutual inverse i
comutative:
P = Cd modulo n = (Pe)d modulo n = (Pd)e modulo n
93
Capitolul 5 Criptografia modern
Alegerea cheilor
Cheia de criptare const n perechea de ntregi (e, n), iar cheia de decriptare este (d, n).
Punctul de plecare n gsirea cheilor pentru acest algoritm este selectarea unei valori pentru n.
Valoarea lui n trebuie s fie suficient de mare, dat de un produs a dou numere prime p i q. Att
p ct i q trebuie s fie ele nsele suficient de mari. n mod obinuit, p i q au aproximativ 100 de
cifre fiecare, astfel nct n are aproximativ 200 de cifre. Aceast lungime inhib ncercarea de a
factoriza pe n, pentru a afla pe p i pe q.
n continuare, se alege un ntreg e relativ mare, astfel nct e este relativ prim cu (p-1)(q-1).
Satisfacerea acestei condiii se face alegndu-l pe e ca un numr prim mai mare dect p-1 i q-1.
n final, se alege d astfel nct:
e d 1 modulo (p-1)(q-1)
94
Capitolul 5 Criptografia modern
1 daca r 1
2
J (r , p) J (r / 2, p) (1) ( p 1) / 8 daca r este par
J ( p modulo r, r) (1) ( r 1)( p1) / 4
daca r este impar si r 1
Dac un numr pare a fi prim, dar nu trece unul din aceste teste, n mod sigur nu este prim.
Dac ns satisface cele dou teste, numrul este prim cu o probabilitate de cel puin 1/2.
Problema n algoritmul RSA este de a gsi dou numere prime mari, p i q. Pentru a folosi
metoda de mai sus, se alege un posibil numr mare prim, p. Se genereaz aleator un numr r i se
calculeaz cmmdc(p,r) i J(r,p). Dac una din cele dou condiii nu este ndeplinit, p nu este
numr prim. Dac ambele teste se verific, probabilitatea ca p s nu fie prim este cel mult 1/2.
Procesul se repet pentru noi valori ale lui r alese aleator. Dac al doilea r verific ambele teste,
probabilitatea ca p s nu fie prim este cel mult 1/4. Dup repetarea procesului de k ori astfel nct
cele dou teste sunt verificate, probabilitatea ca p s nu fie prim este cel mult 1/2k.
95
Capitolul 5 Criptografia modern
mari) i atacul temporal. Analiza acestor atacuri duce la concluzia c nici unul nu are sori de
izbnd.
n pofida unor intense cercetri, au fost identificate doar probleme minore n comparaie cu
cele din cazul algoritmului rucsacului a lui Merkle i Hellman.
5.4 Concluzii
Criptografia cu chei simetrice i cea cu chei publice prezint diverse avantaje i dezavantaje
pe care le prezentm n continuare:
1. Algoritmii folosii permit gestionarea unor volume mari de date, cu vitez relativ
bun. n special atunci cnd este vorba de implementri hard.
2. ntr-o reea cu muli utilizatori numrul cheilor care trebuie gestionate devine o
problem major.
96
Capitolul 5 Criptografia modern
1. Dintre cele dou chei folosite n algoritmii cu chei publice doar una trebuie inut
secret.
4. ntr-o reea de dimensiuni mari numrul de chei necesare este considerabil mai mic
dect n cazul criptografiei simetrice.
1. Viteza algoritmilor cu chei publice (chiar i a celor mai performani) este de cteva
ori mai mic dect a celor cu chei secrete.
2. Dimensiunea cheilor folosite este mai mare (1024 pentru RSA n comparaie cu 64
sau 128 n cazul algorimilor de tip bloc).
Fie numrul ntreg x mesajul pe care vrem s-l transmitem i fie n=pq , unde p i q sunt dou
numere prime suficient de mari (n este un numr care poate fi fcut public, ns nu p i q). Se d
de asemenea cheia de criptare, e. RSA se bazeaz pe congruenele modulo n, astfel:
Expeditorul construiete y=x3 (mod n), numr care va fi fcut public (criptarea mesajului x).
97
Capitolul 5 Criptografia modern
Avem de artat c exist numerele e i d pe care le-am folosit n paragraful anterior. S observm
c a face operaiile modulo n este acelai lucru cu a lucra n inelul In, deci ne vom folosi de
proprietile sale algebrice. Dac j este funcia indicatoare a lui Euler, atunci In este un inel cu
j(n) elemente inversabile, adic, n cazul nostru particular, cu (p-1)(q-1) elemente inversabile.
Dac alegem e astfel nct (e, j(n))=1, atunci, conform algoritmului lui Euclid, va exista un numr
ntreg d i un numr k astfel nct de+k(n)=1, de unde va rezulta c xed=x , deci e i d
ndeplinesc proprietile necesare pentru a putea fi folosite drept cheie public i cheie secret n
algoritmul RSA.
Mai facem observaia c a afla d (care ar trebui s nu fie cunoscut dect de destinatar) este totuna
cu a factoriza n, lucru care am stabilit deja c este foarte dificil.
Dezavantajul algoritmului RSA, i n general al algoritmilor cu chei publice, este c sunt destul
de leni, n sensul c pentru a cripta i a decripta un mesaj (n condiiile n care avem cheile
public i secret) consumm o cantitate mare de timp. Din acest motiv, de multe ori, se folosesc
algoritmi combinai: cu chei secrete i chei publice.
Un prim domeniu unde ntlnim algoritmi de criptare, i n special RSA, este cel al
telecomunicaiilor: telefoane publice, cu cartele electronice, sau telefoanele mobile (protocoale de
autentificare a persoanei apelate). De asemenea, n domeniul sntii, prin intermediul cardurilor
electronice care s conin istoricul medical al unui individ. Securitatea naional: cri de
identitate, paapoarte, legitimaii magnetice. i s nu uitm economia: cardurile bancare,
comerul electronic, sau informatica: confidenialitatea potei electronice, a informaiilor de pe o
pagin de web, pe scurt, dreptul la intimitate.
Unde vom ntlni nevoia de semntur i identificare electronic, vom ntlni criptarea prin RSA.
98