Documente Academic
Documente Profesional
Documente Cultură
5. Criptografia modern
Momentul istoric n care criptografia a devenit tiinific ramur individualizat a
matematicii, a fost n anul 1949 cnd a fost publicat articolul "Communication Theory of Secrecy
Systems". Aceast lucrare a pus bazele criptosistemelor simetrice.
Dezvoltarea societii informaionale, care a dus la o cretere impresionant a volumului
de informaie preponderent economic vehiculat n reelele de calculatoare, a accelerat
dezvoltarea i mai ales utilizarea instrumentelor criptografiei moderne. Rolul criptografiei
moderne este de a asigura prin mijloace matematice specifice, att n teorie ct i n practic, cele
patru caracteristici fundamentale ale informaiei: confidenialitatea, integritatea, autenticitatea i
non-repudierea.
Criptografia modern utilizeaz n principiu aceeai algoritmi ca i criptografia
tradiional (transpoziia i substituia), dar accentul cade pe complexitatea algoritmilor.
Obiectivul criptografic din actuala perioad este de a concepe algoritmi de criptare att de
compleci i de ireversibili nct chiar i n situaia n care atacatorul (sau criptanalistul) avnd la
dispoziie cantiti mari de text criptat la alegerea sa, el s nu poat face nimic fr cheia secret.
n criptografia modern un sistem criptografic (criptosistem) este definit ca o structur
cu cinci componente:
P = { t / t T* } care este spaiul textelor n clar, scrise pentru un alfabet nevid T (n mod
obinuit T={0,1})
P , Dk = { dk / dk(ek( t )) = t t P }
78
DES a fost oficial adoptat ca standard federal n 23 noiembrie 1976, iar n 1977
specificaiile sale au fost fcute publice.
Privire general asupra algoritmului
Algoritmul DES este o combinaie complex folosind dou blocuri fundamentale n
criptografie: substituia i permutarea (transpoziia). Acest cifru bloc accept un bloc de 64 de bii
la intrare i genereaz un bloc cifrat de 64 de bii. DES este un algoritm simetric. Acelai algoritm
i aceeai cheie sunt folosii att la criptare ct i la decriptare.
Algoritmul este constituit din 16 cicluri repetate ale blocurilor fundamentale. Textul iniial
este descompus n blocuri de 64 de bii. Cheia este de 64 bii din care doar 56 sunt efectivi,
ceilali fiind bii de paritate. Folosirea substituiei provoac confuzie prin sistematica substituire a
unor bii cu alii. Transpoziiile provoac difuzie prin re-ordonarea biilor.
Algoritmul folosete numai operaii clasice aritmetice i logice cu numr de pn la 64 de
bii, ceea ce face relativ uor de implementat att software ct mai ales hardware: unul din
scopurile declarate ale algoritmului fiind uoara lui implementare hardware ntr-un cip
specializat.
80
Substituie
Cheia
Permutare
Ciclul 1
Substituie
Cheia
Permutare
Ciclul 2
Substituie
Cheia
Permutare
Ciclul 16
Jumtatea stng
Cheie
deplasat
Jumtatea dreapt
Cheie
permutat
Noua jumtatea
stng (vechea
jumtate dreapt)
Noua jumtatea
dreapt
Permutare
Permutare aleas
Permutare expandat
82
32 bii
32 bii
Cheia
28 bii
Permutare
expandat
Deplasare
28 bii
Deplasare
permutare aleasa de
58 bii
48 bii
1
2,48
9
12,14
17
24,26
2
3
10
15
18
27
3
4
11
16
19
28
4
5,7
12
17,19
20
29,31
5
6,8
13
18,20
21
30,32
6
9
14
21
22
33
7
10
15
22
23
34
8
11,13
16
23,25
24
35,37
25
36,38
26
39
27
40
28
41,43
29
42,44
30
45
31
46
32
47,1
(1)
D j S j 1 ( ) f ( D j 1 ,k j )
(2)
unde (+) este operaia sau exclusiv, f este funcia rezultat din operaiile dintr-un ciclu.
Aceste ecuaii arat c rezultatul fiecrui ciclu depinde numai de ciclul precedent.
Descriind ecuaiile pentru D j-1 i S j-1 avem :
Dj 1 S j
(3)
S j 1 D j ( ) f ( D j 1 ,k j )
(4)
(5)
Ecuaiile (3) i (5) arat c aceleai valori pot fi obinute n cicluri ulterioare. Aceast
proprietate face algoritmul DES reversibil.
Deci putem face codificarea unor date i decodificarea lor folosind acelai algoritm fcnd
observaia c la decodificare cheia se ia n ordine invers.
Datorit lungimii cheii de lucru i a operaiilor elementare pe care le folosete algoritmul,
nu se ridic probleme deosebite ntr-o implementare software; singura observaie este c, datorit
modulului de lucru (cu secvene de date, cu tabele) practic algoritmul este lent ntr-o
implementare software. Modul de concepere l face ns perfect implementabil hard (ntr-un cip)
ceea ce s-a i realizat, existnd multiple variante de maini hard de codificare.
Criptanaliza
Dei DES a fost cel mai celebru algoritm al secolului XX este considerat la aceast or
nesigur pentru multe aplicaii. Pare paradoxal, dar aceasta este consecina mririi considerabile a
puterii de calcul de la confirmarea DES ului ca un standard criptografic i pn in anul 2000.
84
Anul
Evenimentul
15 mai
1973 NBS public prima cerere pentru un algoritm standard pentru criptare
27 august
1974 NBS public a doua cerere pentru un algoritm standard pentru criptare
17 martie
august
septembrie
noiembrie
15 ianuarie
22 ianuarie
30 decembrie 1993 DES este reconfirmat pentru a treia oar ca FIPS 46-2
1994
iunie
1997
iulie
ianuarie
1999
25 octombrie 1999 DES este reconfirmat pentru a patra oar ca FIPS 46-3 cu specificaia
1
2
85
26 iulie
2004
87
3
4
88
90
transformarea din cadrul unei runde este paralel prin proiectare, ceea ce
constituie un avantaj pentru viitoarele procesoare;
lungimile de bloc de 192 i 256 bii permit construirea unei funcii hash iterative
folosind AES ca funcie de compresie.
Extensii:
-
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;
91
92
2.
3.
4.
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.
Descrierea algoritmului Blowfish
Blowfish este un cifru bloc care opereaz cu blocuri de 64 de bii si are cheie de lungime
variabil. Algoritmul const n dou pri: expandarea cheii i criptarea datelor. Expandarea cheii
convertete o cheie de pn la 448 de bii n mai multe matrice de sub-chei totaliznd 4168 de
bii.
Criptarea datelor rezid ntr-o funcie simpl iterat de 16 ori. Fiecare ciclu este format
dintr-o permutare dependent de cheie i o substituie dependent i de cheie i de date. Toate
operaiile sunt adunri i operri XOR pe cuvinte de 32 de bii. Singurele operaii suplimentare
sunt patru cutri ntr-un tabel indexat, pe ciclu.
Blowfish folosete un numr mare de sub-chei. Aceste sub-chei trebuie precalculate nainte
de orice criptare sau decriptare de date.
Tabelul P este format din 16 chei de 32 de bii:
P1, P2, , P18
Patru cutii-S de 32 de bii are 256 de intrri fiecare:
S1,0, S1,1, . , S1,255
93
3.
4.
5.
6.
7.
Se continu procesul, nlocuind toate elementele din tabelul P i apoi cele patru
cutii-S n ordine, cu ieirea algoritmului Blowfish.
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.
Securitatea algoritmului Blowfish
n cazul algoritmului Blowfish cu cutii-S cunoscute i r cicluri, tabelul P poate fi
determinat cu 28r+1 texte n clar alese. Atacul funcioneaz doar pe variantele cu un numr redus
de cicluri i este complet ineficient n cazul algoritmului Blowfish cu 16 cicluri.
n caz contrar, blocul de text cifrat rezultat dintr-o dubl criptare ar trebui s fie mult mai
greu de decriptat folosind cutarea exhaustiv. n loc de 2 n ncercri (unde n este lungimea n bii
a cheii), vor fi necesare 22n ncercri. Dac algoritmul are chei de 64 de bii, vor fi necesare 2 128
ncercri pentru a gsi cheia.
n cazul atacului cu texte n clar cunoscute, Merkle i Hellman au demonstrat c schema cu
dubl criptare poate fi spart n 2n+1 criptri i nu n 22n. Atacul se numete ntlnire la mijloc; el
funcioneaz prin criptarea de la un capt, decriptarea la captul cellalt i potrivirea rezultatelor
n mijlocul textului criptat.
n acest atac, criptanalistul cunoate P1, C1, P2 i C2, astfel nct
C1 = EK2 (EK1 (P1))
C2 = EK2 (EK1 (P2))
Pentru fiecare K posibil, se calculeaz EK(P1) i se memoreaz rezultatul. Dup terminarea
tuturor calculelor, se calculeaz DK(C1) pentru fiecare K i se caut un rezultat identic n
memorie. Dac se gsete un astfel de rezultat, fie K2 cheia curent i K1 cheia folosit pentru
rezultatul din memorie. Se cripteaz P2 cu K1 i K2; dac se obine C2 este aproape sigur (cu o
probabilitate de 1 din 22m-2n, unde m este mrimea blocului), c cele dou chei sunt valide. Dac
nu, se continu cutarea. Numrul maxim de cutri este 2 x 2n, adic 2n+1.
Acest atac necesit un spaiu mare de memorie: 2n blocuri. Pentru un algoritm de 56 de bii,
aceasta nseamn 256 blocuri de 64 de bii, adic 10 17 octei. Este o cantitate considerabil de
memorie, dar demonstreaz c dubla criptare nu duce la dublarea securitii. n cazul ns al unei
chei de 128 de bii, cantitatea de memorie necesar este de 10 39 octei, ceea ce nseamn c un
atac de tip ntlnire la mijloc nu este fezabil.
O alt metod de dubl criptare, numit Davies-Price, este o variant de CBC:
Ci = EK1 (Pi EK2(Ci-1))
Pi = DK2 (Ci ) EK2(Ci-1))
care prezint aceeai vulnerabilitate fa de un atac de tip ntlnire la mijloc.
5.1.18 Tripla criptare
96
3.
4.
Probabilitatea de succes este p/m, unde p este numrul de texte n clar cunoscute i
m este mrimea blocului. Dac nu se gsesc elementele cutate la pasul 3, se alege
o nou valoare pentru a i se reia de la pasul 1.
Acest atac necesit 2n+m/p timp operaional i p spaiu de memorie. Pentru DES, aceasta
nseamn 2120/p. Pentru p mai mare ca 256, acest atac este mai rapid dect cutarea exhaustiv.
Tripla criptare cu trei chei
Aceast variant presupune o lungime total a cheii mai mare, dar memorarea cheii nu
constituie o problem.
C = EK3 (DK2(EK1 (P)))
P = DK1(EK2 (DK3 (C)))
Cel mai bun atac cere 22n pai i 2n blocuri de memorie si este de tip ntlnire la mijloc.
Tripla criptare cu trei chei independente este echivalent din punct de vedere al securitii,
cu dubla criptare.
98
99
plasarea de markeri speciali sau dac textul n clar conine suficient redundan i
se ncearc toate deplasrile posibile ale irului de chei.
-
Nepropagarea erorii un bit de text cifrat care este modificat n timpul transmisiei
nu trebuie s afecteze decriptarea celorlali bii cifrai.
Un cifru ir asincron sau autosincronizabil este unul care genereaz irul de chei ca o
funcie de cheie i un numr de bii din textul cifrat anterior. Funcia de criptarea n acest caz
poate fi descris de urmtoarele ecuaii:
Si = (ci-t, ci-t+1, , ci-1),
zi = g (Si, k),
ci = h (zi, mi),
unde S0 = (c-t, c-t+1, , c-1), este starea iniial (nesecret), k este cheia, g este funcia care produce
irul de chei z, iar h este funcia de ieire care combin irul de chei cu textul n clar mi pentru a
obine textul cifrat ci.
Proprietile cifrurilor ir asincrone
-
Auto-sincronizarea este posibil dac bii din textul cifrat sunt terse sau
adugate, deoarece decriptarea depinde doar de un numr determinat de bii cifrai
100
Atacuri active limitarea propagrii erorii face ca orice modificare a textului cifrat
de ctre un adversar activ s aib ca i consecin decriptarea incorect a altor bii
cifrai, ceea ce poate mri posibilitatea ca atacul s fie observat de ctre decriptor.
Pe de alt parte, datorit auto-sincronizrii este mai dificil dect n cazul cifrurilor
ir sincrone s se detecteze inserarea, tergerea sau modificarea unor bii n textul
cifrat. Trebuie deci s se foloseasc mecanisme suplimentare de autentificare a
expeditorului i de garantare a integritii datelor.
Difuzia statisticilor textului n clar deoarece fiecare bit de text clar influeneaz
toi biii cifrai urmtori, proprietile statistice ale textului n clar sunt dispersate n
textul cifrat. Ca o consecin, cifrurile ir asincrone trebuie s fie mai rezistente
dect cifrurile ir sincrone fa de atacurile bazate pe redundana textului n clar.
5.2.3 Proiectarea i analiza cifrurilor ir
Majoritatea cifrurilor ir folosite n practic sunt proiectate folosind LFSR-uri 5, care sunt
simplu de implementat software sau hardware. Problema este c aceste implementri sunt
ineficiente din punct de vedere al vitezei. Pentru a rezista atacului de corelaie, funcia de
feedback trebuie s fie un polinom dens, ceea ce presupune multe calcule, care produc la ieire un
singur bit, deci trebuie repetate des. Totui, cele mai multe sisteme de criptare militare se bazeaz
pe LFSR.
Proiectarea cifrurilor ir
Construcia cifrurilor ir poate fi privit din perspective diferite [Rue92] :
-
101
criterii statistice;
confuzia fiecare bit generat trebuie s fie o transformare complex a biilor cheii;
102
Cifrul A5
A5 este un cifru ir folosit pentru a cripta fluxul de date GSM (Group Special Mobile),
reprezentnd standardul non-american pentru telefonia mobil celular. A5 cripteaz linia dintre
telefon i celula de baz, restul legturii rmnnd necriptat. A5 este format din trei LFSR-uri,
care au regitri de lungime 19, 22 i respectiv 23. Toate polinoamele de feedback sunt cu un
numr redus de coeficieni8. Ieirea este obinut prin operarea XOR a celor trei LFSR-uri. A5
folosete un clock control variabil. Fiecare registru face un clocking bazat pe bitul central, care
este operat XOR cu inversa funciei prag (threshold function) a biilor de la mijlocul celor trei
regitri. n mod normal, dou din LFSR-uri sunt clock-ate la fiecare iteraie.
Exist un atac trivial care necesit 240 criptri: se ghicete coninutul primelor dou
LFSR-uri, apoi se determin al treilea din irul generat. n ciuda acestui fapt, A5 este bine
proiectat i este extrem de eficient. El trece cu succes toate testele statistice cunoscute i singura
sa slbiciune rezid n faptul c regitrii sunt scuri, ceea ce face posibil o cutare exhaustiv.
Variantele A5 cu regitri lungi i polinoame feedback dense au un grad de siguran sporit.
sparse (eng.)
104
Dac, coeficienii a, b, c, m sunt alei n mod corect, perioada generatorului este cel puin
egal cu 2n 1. Una din condiiile cerute pentru coeficieni este ca cel mai puin semnificativ bit
s formeze un LFSR de lungime maxim.
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
105
106
107
108
a
i 1
vi T
ak a j
j 1
Soluia rucsacului supercresctor (numit i rucsacul simplu) este uor de gsit. Se ncepe
cu T, care se compar cu cel mai mare ntreg din S. Dac acesta este mai mare dect T, nu este
termen al sumei, deci valoarea corespunztoare din V este 0. Dac acest cel mai mare ntreg din S
este mai mic sau egal cu T, el este termen al sumei, deci valoarea corespunztoare din V este 1.
Relum algoritmul pentru T din care scdem sau nu termenul analizat (conform cu valoarea din
V) i pentru ntregii rmai.
Tehnica de criptare
Tehnica de criptare Merkle-Hellman este un criptosistem cu cheie public. Fiecare utilizator
are o cheie public, care poate fi distribuit oricui i o cheie privat, care se pstreaz secret.
Cheia public este mulimea ntregilor din problema rucsacului (nu unul supercresctor); cheia
privat este rucsacul supercresctor corespondent. Contribuia lui Merkle i Hellman a fost s
proiecteze o tehnic de conversie a rucsacului supercresctor ntr-unul normal, prin schimbarea
numerelor de o manier reversibil.
109
2
J (r , p) J (r / 2, p) (1) ( p 1) / 8
J ( p modulo r, r) (1) (r 1)( p 1) / 4
daca r 1
daca r este par
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.
Criptanaliza metodei RSA
Teoretic sunt trei posibiliti de abordare a unui atac n cazul algoritmului RSA: atacul n
for, atacul bazat pe metode matematice (ncercarea factorizrii produsului a dou numere prime
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.
112
5.4 Concluzii
Criptografia cu chei simetrice i cea cu chei publice prezint diverse avantaje i dezavantaje
pe care le prezentm n continuare:
(i) Avantaje ale criptografiei cu chei simetrice
1.
Algoritmii folosii permit gestionarea unor volume mari de date, cu vitez relativ
bun. n special atunci cnd este vorba de implementri hard.
2.
3.
4.
2.
ntr-o reea cu muli utilizatori numrul cheilor care trebuie gestionate devine o
problem major.
3.
Dintre cele dou chei folosite n algoritmii cu chei publice doar una trebuie inut
secret.
113
3.
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).
3.
4.
114
Nr. Sistem
1
Caracteristici
PCT (Private
Communications
Technology)
SSL (Secure Socket
Layer)
CyberCash
Ipsec, Ipv5
Kerberos
10
S/MIME Secure
Multipurpose Internet Mail
Extension
11
Principalii
algoritmi
RSA
RC4
MD5
RSA
RC4
MD5
RSA
DES
RSA
MD5
RC2
RSA
MD5
RC2
DiffieHellman
RSA
MD5
DES
RSA
DiffieHellman
Des
Triple DES
Specificaii
utilizator
MD5
IDEA
RSA
115