Documente Academic
Documente Profesional
Documente Cultură
Sisteme de Criptare Fluide 4
Sisteme de Criptare Fluide 4
41
Dac c1c2 ...ct i c1c2 ...ct sunt dou mesaje cifrate produse de aceeai cheie k1k2 ...kt ,
atunci ci = mi ki , ci = mi ki , de unde rezult ci ci = mi mi , 1 i t. Cheia nu
mai este necesar n acest caz, ci doar lungimea (criptanaliza se bazeaz pe redundana
ultimei relaii).
Din punct de vedere teoretic, one time pad este imposibil de spart. Dac un adversar
deine un text criptat c1c2 ...ct cu o cheie aleatoare fluid, folosit o singur dat, el nu
poate gsi textul clar, pentru c acesta poate fi orice ir binar de t bii. S-a demonstrat c
pentru a obine un sistem imposibil de spart trebuie utilizat o cheie aleatoare de aceeai
lungime cu mesajul. Aceasta ns reduce caracterul practic al sistemului n majoritatea
situaiilor, el devenind impracticabil. Se spune c, pn de curnd, comunicaiile ntre
Moscova i Washington erau securizate cu one time pad, transportul cheilor fiind realizat prin curieri de ncredere.
Sistemele fluide au fost dezvoltate n ideea de acionare a one time pad-ului. n acest
sens, pentru a reduce dificultatea distribuirii cheii fluide i a managementului acesteia,
cheia fluid este generat pseudoaleator dintr-o cheie mic secret, cu scopul de a prea
aleatoare unui adversar. Sistemele actuale, cu toate c nu asigur securitatea teoretic a
one time pad-ului, sunt cel puin practice.
1. Clasificarea sistemelor fluide de criptare
1 i m
k
zi = i
zi m i m + 1
Procesul de criptare cu un sistem fluid sincron poate fi reprezentat ca un automat
descris de relaiile:
qi +1 = (qi , k ), zi = g (qi , k ), ci = h( zi , mi ),
42
unde q0 este starea iniial (care poate fi determinat din cheia k), este funcia de
tranziie a strilor, g este funcia care produce cheia fluid zi , iar h este funcia de ieire
care produce textul criptat ci pe baza textului clar mi i a cheii fluide zi .
qi
qi +1
mi
qi
qi +1
zi
ci
ci
h 1
zi
Criptare
mi
Decriptare
Generator
chei fluide
zi
ci
ci
Criptare
Generator
chei fluide
zi
mi
Decriptare
43
unde q0 = (c t , c t +1 ,..., c1 ), este starea iniial (cunoscut), k este cheia, g este funcia de
generare a cheii fluide, iar h este funcia de ieire care cripteaz textul clar mi .
iii
iii
mi
iii
g
zi
ci
iii
ci
g
zi
h 1
mi
Decriptare
Criptare
Deci textul criptat este (14, 8, 10, 4, 21, 25, 17, 10, 18) sau, n litere: OIKEVZRKS.
Pentru decriptare, vom avea:
m1 = D13 (c1 ) = 14 13 1 (mod 26), m2 = D14 (c2 ) = 8 14 20 (mod 26), etc.
Se observ c textul decriptat poate fi obinut de oricine, aproape n totalitate, fr a
cunoate nici o cheie (aceasta fiind necesar doar pentru decriptarea primului caracter).
Deci gradul su de securitate este nul.
Ceva mai dificil este sistemul n care generarea cheii fluide se realizeaz cu relaia:
zi = mi 1 , i 2.
n acest caz, BUCURESTI se cripteaz n OVWWLVWLB (pentru K = 13).
Nici acest sistem de criptare cu auto-cheie nu este sigur, deoarece, evident, sunt
posibile doar 26 chei.
Proprieti ale sistemelor fluide asincron:
44
f ( B, C , D ) = ( B C ) ( B D ); g ( B, C , D ) = ( B C ) ( B D ) (C D );
h( B, C , D) = B C D;
A B : concatenarea lui A cu B;
45
y3 = 0x8f1bbcdc, y 4 = 0xca62c1d6.
2. Funcia de generare a tabelei.
(Se iniializeaz 80 de cuvinte de 32 bii X 0 , X 1 ,... X 79 )
X 0 i,
for j 1 to 15 do X j 0 x 00000000;
for j 16 to 79 do X j
(( X
j 3
X j 8 X j 14 X j 16 ) 1 ;
( A, B, C , D, E ) ( H 0 , H1 , H 2 , H 3 , H 4 ) .
(Se execut 4 runde de 20 de pai, apoi se actualizeaz; t este o variabil
temporar)
(Runda 1): for j 0 to 19 do
t ( ( A 5 ) + f ( B, C , D ) + E + X j + y1 ) ;
( A, B, C , D, E ) ( t , A, B 30, C , D ) ;
(Runda 2): for j 20 to 39 do
t ( ( A 5 ) + h ( B , C , D ) + E + X j + y2 ) ;
( A, B, C , D, E ) ( t , A, B 30, C , D ) ;
(Runda 3): for j 40 to 59 do
t ( ( A 5 ) + g ( B, C , D ) + E + X j + y3 ) ;
( A, B, C , D, E ) ( t , A, B 30, C , D ) ;
(Runda 4): for j 60 to 79 do
t ( ( A 5 ) + h ( B , C , D ) + E + X j + y4 ) ;
( A, B, C , D, E ) ( t , A, B 30, C , D ) ;
(Se actualizeaz valorile nlnuite)
( H 0 , H1 , H 2 , H 3 , H 4 ) ( H 0 + A, H1 + B, H 2 + C , H 3 + D, H 4 + E ) ;
(completare) Valoarea lui Ga (i ) este irul de 160 bii H 0 H1 H 2 H 3 H 4 .
Generarea tabelei, primul pas din algoritmul urmtor, folosete funcia de comprimare
SHA 1 pentru a extinde cheia secret a n tabele mari, T, S i R. Aceste tabele pot fi precalculate, dar numai dup stabilirea cheii secrete a. Tabelele T i S au dimensiunile de 2K
i 1K bii. Dimensiunea tabelei R depinde de lungimea dorit n bii, L, a cheii fluide (fiecare 1K byte al irului cere 16 bii din R).
46
A n R [4 l ];
B ( n 8 ) R [ 4 l + 1] ;
C ( n 16 ) R [ 4 l + 2] ; D ( n 24 ) R [ 4 l + 3] .
b. for j 1 to 2 do
P A 0 x00007 fc, B B + T [ P / 4], A ( A 9 ) ,
P B 0 x00007 fc, C C + T [ P / 4], B ( B 9 ) ,
P C 0 x00007 fc, D D + T [ P / 4], C ( C 9 ) ,
P D 0 x 00007 fc, A A + T [ P / 4], D ( D 9 ) ,
( n1 , n2 , n3 , n4 ) ( D, A, B, C ) ;
3
4
A ( A 9) ,
P A 0 x00007 fc,
B B + T [ P / 4],
P B 0 x00007 fc,
C C + T [ P / 4],
P C 0 x00007 fc,
D D + T [ P / 4], C ( C 9 ) ,
P D 0 x 00007 fc,
A A + T [ P / 4],
B ( B 9) ,
D ( D 9) ,
47
A ( A 9) ;
P ( P + A) 0 x 00007 fc,
B B + T [ P / 4],
Q (Q + B) 0 x 00007 fc,
C C + T [Q / 4],
P ( P + C ) 0 x 00007 fc,
D D + T [ P / 4], C ( C 9 ) ;
Q (Q + D ) 0 x00007 fc,
A A + T [Q / 4],
B ( B 9) ;
D ( D 9) ;
Sistemul RC4 (Rivest Code #4) a fost creat n 1987 de Ron Rivest pentru societatea
RSA Data Security Inc (astzi RSA Security). Destinat scopurilor comerciale, el a fost
secret, fiind accesibil numai dup semnarea unui protocol de confidenialitate. n
septembrie 1994 ns, un anonim public codul su surs pe o list de discuii, dup care
se rspndete rapid strnind o serie de polemici referitoare la drepturile intelectuale. Se
consider c astzi exist mai multe implementri ilegale.
RC4 este un sistem aditiv fluid de criptare.
Printre sistemele care folosesc RC4 se pot aminti SQL (Oracle), Lotus Notes, AOCE
(Apple Computer), WEP WPA CipherSaber Secure Sockets Layer (opional) sau Secure
shell (opional, adic sistemul de criptare este una din variantele oferite pentru
implementare). RC4 este utilizat pentru criptarea fiierelor n protocoale cum ar fi RSA
SecurPC sau n standarde de comunicaii (WEP, WPA pentru carduri, criptarea traficului
de date sau a site-urilor de web bazate pe protocolul SSL). De asemenea, el face parte din
Cellular Digital Packet Data specification.
La acest sistem, pentru generarea cheii fluide se folosete o stare intern (secret)
format din dou componente:
Un tablou de 256 octei: S [0], S [1],..., S [255], numit S box.
Doi pointeri de cte 8-bii (notai i respectiv j).
S box-ul este iniializat cu o cheie de lungime variabil de obicei ntre 40 i 256
bii, folosind un algoritm numit KSA (key-scheduling algorithm).
n faza a doua, cheia fluid este generat folosind algoritmul PRGA (pseudo-random
generation algorithm).
48
i
S [i ] + S [ j ]
0 1 2
S
...
254 255
...
...
...
swap( S [i ], S[ j ] )
Implementarea sistemului RC4 este foarte simpl: ea lucreaz cu octei i necesit 256
pentru S box, n octei de memorie pentru cheie, plus trei variabile ntregi i, j, k.
Operaiile folosite sunt XOR i AND (sau pe unele platforme simpla adunare pe bii,
fr transport).
Securitatea RC4
Conform cu anumite studii fcute, sistemul are circa 2562 256! = 21700 stri posibile;
el este rezistent la criptanaliza diferenial i liniar, iar ciclurile sunt mai mari de 10.100.
Totui, securitatea RC4 este slab din mai multe puncte de vedere i criptografii nu
recomand sistemul pentru aplicaiile actuale.
49
Cheia fluid generat are o uoar preferin pentru anumite secvene de octei.
Aceasta a permis construirea unui atac (Fluhrer i McGrew) care separ cheia fluid
dintr-o secven aleatoare de maxim 1 GB.
n 2001, Fluhrer, Mantin i Shamir descoper c din toate cheile RC4 posibile, primii
octei de ieire nu sunt aleatori, oferind informaii importante despre cheie.
La majoritatea sistemelor de criptare, o msur de securitate ncesar este alegerea
unui numr aleator nou (nonce, new number) care s fie folosit pentru criptarea fiecrui
mesaj. n acest fel, criptarea de dou ori a aceluiai mesaj va genera texte diferite. O
solue sigur (care funcioneaz pentru orice sistem de criptare) este de a folosi o cheie
pe termen lung din care, prin amestec cu un nonce (dup un algoritm prestabilit) se obine
cheia necesar unei criptri. Multe aplicaii ns care folosesc RC4 fac o simpl
concatenare a cheii cu nonce. Aceast slabiciune este exploatat de Fluhrer, Mantin i
Shamir pentru a sparge ulterior sistemul de criptare WEP (wired equivalent privacy)
folosit pe reelele fr fir 802.11.
Ulterior, implementrile sistemului RC4 s-au aprat eliminnd primii octei (uzual
1024) din cheia fluid, nainte de a o folosi.
50