Sunteți pe pagina 1din 41

Universitatea din Bucureşti

Facultatea de Matematică şi Informatică

Criptanaliză liniară

Alexandru SOFRONIA

Coordonator:
Prof. Dr. Adrian ATANASIU

Bucureşti, Ianuarie 2009


Criptanaliză liniară i

ABSTRACT
Cuvinte cheie: criptanaliză liniară, sisteme de criptare bloc
Keywords: linear cryptanalysis, block ciphers

Criptanaliza liniară reprezintă unul din atacurile de bază utilizate contra


sistemelor de criptare bloc. A fost descrisă pentru prima dată ı̂n 1992, de Mit-
suru Matsui, ı̂ntr-un atac ı̂mpotriva sistemului de criptare FEAL. Ulterior,
Matsui a publicat un atac similar asupra sistemului DES, prima criptanaliză
experimentală prezentată public asupra unui sistem de criptare bloc.
Lucrarea de faţă prezintă principiile generale ale sistemelor de criptare
bloc şi principiile criptanalizei liniare cu aplicaţie asupra unei versiuni sim-
plificate a cifrului AES.
Cuprins

Cuprins ii

Listă de figuri iv

1 Introducere 1
1.1 Principii de proiectare, modelul Shannon . . . . . . . . . . . . 1
1.2 Tipuri de atac . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Distanţa de unicitate . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Clasificarea rezultatelor criptanalizei . . . . . . . . . . . . . . 4
1.5 Atacuri generale asupra sistemelor de criptare . . . . . . . . . 5
1.6 Estimarea complexităţii unui atac . . . . . . . . . . . . . . . . 6

2 Sisteme de criptare bloc 7


2.1 Retele de Substituţie-Permutare - SPN . . . . . . . . . . . . . 8
2.2 Cifruri Feistel . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 Rezultate teoretice . . . . . . . . . . . . . . . . . . . . 10
2.3 Scurtă comparaţie a celor două tipuri de sisteme de criptare
bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Criptanaliză liniară 12
3.1 Atacuri iterate . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Descrierea unui atac liniar . . . . . . . . . . . . . . . . . . . . 13
3.3 Lema ı̂ngrămădirii - ”piling-up” . . . . . . . . . . . . . . . . . 14
3.4 Căutarea celei mai bune aproximări - Matsui/DES . . . . . . . 15
3.5 Efectul de carcasă liniară - ”linear hull effect” . . . . . . . . . 16

4 Atac liniar asupra unei versiuni simplificate de AES 17


4.1 AES simplificat . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.1 S-box . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

ii
Criptanaliză liniară iii

4.1.2 Chei . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.3 Algoritmul AES simplificat - sAES . . . . . . . . . . . 19
4.1.4 Observaţie asupra decriptării . . . . . . . . . . . . . . . 21
4.2 Criptanaliză liniară asupra unei runde sAES . . . . . . . . . . 22
4.2.1 Ecuaţii pentru S-box . . . . . . . . . . . . . . . . . . . 22
4.2.2 Notaţii pentru biţi . . . . . . . . . . . . . . . . . . . . 22
4.2.3 Găsirea ecuaţiilor . . . . . . . . . . . . . . . . . . . . . 25
4.2.4 Atac liniar . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.5 Complexitatea atacului liniar asupra sAES . . . . . . . 27
4.3 Consideraţii asupra AES . . . . . . . . . . . . . . . . . . . . . 28

5 Securitate ı̂mpotriva criptanalizei liniare 29


5.1 Demonstrarea securităţii ı̂mpotriva criptanalizei liniare . . . . 29
5.2 Teoria decorelării . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3 Extensii ale criptanalizei liniare . . . . . . . . . . . . . . . . . 31

6 Referinţe 33
Lista de figuri

2.1 Aplicarea funcţiei de rundă . . . . . . . . . . . . . . . . . . . . 8


2.2 Aplicarea funcţiei de rundă pentru cifruri Feistel . . . . . . . . 9

4.1 AES simplificat - S-box - pasul doi . . . . . . . . . . . . . . . 18


4.2 AES simplificat - S-box . . . . . . . . . . . . . . . . . . . . . . 18
4.3 AES simplificat - Stări . . . . . . . . . . . . . . . . . . . . . . 19
4.4 AES simplificat - Funcţia NR . . . . . . . . . . . . . . . . . . 19
4.5 AES simplificat - Funcţia SR . . . . . . . . . . . . . . . . . . . 20
4.6 AES simplificat - Funcţia MC ı̂n GF (16) . . . . . . . . . . . . 20
4.7 AES simplificat - Funcţia MC - efect pe biţi asupra unei coloane 20
4.8 AES simplificat - Funcţia N S −1 - primul pas . . . . . . . . . . 21
4.9 AES simplificat - Funcţia M C −1 . . . . . . . . . . . . . . . . . 21
4.10 sAES - 6 ecuaţii de probabilitate 0, 75 . . . . . . . . . . . . . . 22
4.11 sAES - I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.12 sAES - II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.13 sAES - III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.14 sAES - IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.15 sAES - IVb . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.16 sAES - 8 ecuaţii derivate din echivalenţa stării IV . . . . . . . 25
4.17 sAES - 4 ecuaţii derivate . . . . . . . . . . . . . . . . . . . . . 25
4.18 sAES - 14 ecuaţii de probabilitate 0, 625 . . . . . . . . . . . . 26

iv
Capitolul 1

Introducere

Un sistem de criptare (cifru) este un sistem compus dintr-un algoritm


de criptare, un algoritm de decriptare şi un triplet de spaţii corespunzând
textelor clare, textelor criptate, respectiv cheilor de criptare. Pentru o cheie
de criptare dată, algoritmul de criptare asociază (ı̂n general ı̂n mod unic)
unui text clar dat o valoare numită text criptat. Pentru cheia de criptare
corespunzătoare, algoritmul de decriptare asociază (ı̂n general ı̂n mod unic)
respectivului text criptat textul clar iniţial.
Proprietatea de securitate perfectă, definită de Shannon se defineşte ast-
fel: pentru orice text clar x şi text criptat y are loc P r(x) = P r(x|y). Cu
alte cuvinte, un text criptat y nu oferă nici o informaţie despre textul clar.
Cifrul Vernam (”one time pad”) este un cifru care are această proprietate. În
acest cifru, caracterele din textul clar sunt adunate cu caracterele unei chei
secrete independente pentru a obţine textul criptat. Din păcate, aplicaţiile
practice ale unui astfel de cifru cu securitate perfectă sunt limitate, ı̂ntrucât
necesită tot atâtea caractere pentru cheia secretă câte caractere are textul
clar. Prin urmare, este necesară o metodă de folosire a unei singure chei
pentru criptarea de texte mult mai mari decât lungimea cheii.

1.1 Principii de proiectare, modelul Shannon


Sistemele de criptare folosesc ı̂n general două principii de proiectare in-
formale sugerate de Shannon:

1. Confuzia: Statistica textelor criptate trebuie să depinda de statistica


textelor clare ı̂ntr-un mod prea complicat pentru a putea fi exploatat

1
Criptanaliză liniară 2

de un criptanalist.

2. Difuzia: Fiecare caracter/cifră a textului clar şi fiecare caracter/cifră


a cheii secrete trebuie să influenţeze cât mai multe caractere/cifre ale
textului criptat.

Shannon a mai propus ı̂ncă două principii de proiectare a sistemelor de


criptare.

1. Dificultate: Securitatea sistemului trebuie să poată fi redusă la o


problemă cunoscută ca fiind dificilă.

2. Adaptabilitate: Sistemul trebuie să fie sigur ı̂mpotriva oricărui atac


cunoscut.

În timp ce primul principiu a fost folosit ı̂n proiectarea sistemelor de criptare
cu cheie publică, nu ı̂nsă şi ı̂n proiectarea sistemelor de criptare cu cheie
secretă, al doilea principiu este unul din cele mai cunoscute principii folosite
ı̂n proiectarea sistemelor de criptare.
Modelul lui Shannon, descris ı̂n continuare, reprezintă un model stan-
dard ı̂n criptografie. Expeditorul şi destinatarul unor mesaje, se află ı̂n pos-
esia unei chei secrete K transmisă anterior pe un canal sigur. Expeditorul
criptează un text clar x folosind cheia secretă K şi trimite y = eK (x) pe
un canal nesigur către destinatar (unde eK (·) reprezintă funcţia de criptare).
Destinatarul poate reface textul iniţial x = dK (y) unde (dK (·) reprezintă
funcţia de decriptare.
Se presupune că un atacator al sistemului are acces la canalul consid-
erat nesigur şi poate intercepta toate textele criptate trimise. O serie de
presupuneri stau la baza modelului lui Shannon:

• (Shannon) Toate cheile secrete sunt egal probabile şi o cheie K este
aleasă cu o probabilitate uniformă.

• (Kerckhoffs) Criptanalistul (atacatorul) cunoaşte toate detaliile asupra


proceselor de criptare şi decriptare, cu excepţia cheii secrete K.

1.2 Tipuri de atac


Notând cu A atacatorul, atacurile posibile ı̂mpotriva unui sistem de
criptare se clasifică dupa cum urmează:
Criptanaliză liniară 3

1. Ciphertext-only Attack / Known Ciphertext Atack = COA -


Atac pe baza textului criptat - A interceptează o mulţime de texte
criptate cu aceeaşi cheie.

2. Known Plaintext Attack = KPA - Atac cu text clar cunoscut


- A obţine s perechi de texte clare ı̂mpreuna cu textul criptat core-
spunzător pentru o cheie fixată.

3. Chosen Plaintext Attack = CPA - Atac cu text clar ales - A


alege a priori s texte clare şi obţine ı̂ntr-un anumit mod textele criptate
corespunzătoare pentru o cheie fixată.

4. Adaptively Chosen Plaintext Attack = ACPA - Atac cu texte


clare alese adaptiv - A alege s texte clare (x1 · · · xs ) ı̂n mod inter-
activ pe masură ce obţine ı̂ntr-un anumit mod textele criptate core-
spunzătoare pentru o cheie fixată.

5. Chosen Ciphertext Attack = CCA1 - Atac cu texte criptate


alese - A alege a priori s texte criptate şi obţine ı̂ntr-un anumit mod
textele decriptate corespunzătoare pentru o cheie fixată.

6. Adaptively Chosen Ciphertext Attack = CCA2 - Atac cu texte


criptate alese adaptiv - A alege s texte criptate (y1 · · · ys ) ı̂n mod
interactiv pe masură ce obţine ı̂ntr-un anumit mod textele decriptate
corespunzătoare pentru o cheie fixată.
Doar pentru sistemele de criptare asimetrice - sistemele cu cheie publică,
are sens un alt tip de atac ı̂n care atacatorul ştie cheia de criptare (eK (·)) şi
ı̂ncearcă sa obţina cheia de decriptare (dK (·)).
De asemenea, se pot considera combinaţii ale atacurilor descrise mai sus.
Cel mai puternic atac este cel cu texte clare alese adaptiv, care ı̂nsă este de
puţine ori fezabil ı̂n aplicaţiile practice, dacă spaţiul textelor clare conţine
suficiente elemente de redundanţă. Astfel unui atacator ı̂i este mai dificil să
pacalească un destinatar să cripteze texte clare fără sens sau să decripteze
texte criptate care conduc către un text clar fără sens.
Dacă un sistem este sigur ı̂mpotriva atacurilor adaptive cu text clar/criptat
ales, atunci este sigur şi ı̂mpotriva celorlalte tipuri de atac. O situaţie
ideală ı̂n proiectarea sistemelor ar fi să se demonstreze că sistemul este sigur
ı̂mpotriva unui atac adaptiv cu texte clare alese, chiar dacă ı̂n realitate un
atacator nu va putea ı̂ncerca decât atacuri cu text criptat interceptat.
Criptanaliză liniară 4

1.3 Distanţa de unicitate


Distanţa de unicitate a unui sistem de criptare este cel mai mic număr
natural s astfel ı̂ncât orice selecţie aleatoare de s texte clare cu textele core-
spunzătoare criptate determină o unică valoare pentru cheia de criptare.
Distanţa de unicitate depinde atât de dimensiunea spaţiului cheilor cât si
de redundanţa spaţiului textelor clare. Distanţa nu oferă vreo indicaţie com-
putationala asupra efortului necesar pentru spargerea unui sistem, ı̂nsă oferă
o limită inferioară pentru numărul de textele criptate necesare ı̂ntr-un atac
COA (atac pe baza textului criptat) pentru a oferi, cel puţin ı̂n teorie, posi-
bilitatea identificării unei chei.
Folosind definiţiile din cap 2, pentru un sistem de criptare bloc cu chei
de lungime k şi blocuri de lungime n, de redundanţă rL pentru care cheile
sunt alese aleator cu probabilitate uniformă:

• Pentru atacuri cu text criptat - COA - distanţa de unicitate este nU =


k
(nrL )

• Pentru atacuri cu text clar cunoscut sau ales - KPA sau CPA - distanţa
de unicitate este nV = [ nk ]. (textele clare fiind cunoscute, redundanţa,
din punctul de vedere al atacatorului, este 100%)

1.4 Clasificarea rezultatelor criptanalizei


Rezultatele efortului de criptanaliză al unui atacator A pot fi clasificate
ierarhic astfel:

1. Total break - Spargerea totală - A gaseşte cheia K.

2. Global deduction - Deducţia globală - A gaseşte un algoritm F


echivalent cu eK (·) sau dK (·), care poate fi folosit pentru criptarea /
decriptarea tuturor textelor criptate cu cheia K, fără ı̂nsa a afla cheia.

3. Local deduction - Deducţia locală - A obţine un text clar/criptat,


pereche a unui text criptat/clar interceptat, (ı̂n general fără a avea
informaţii ı̂n plus pentru a efectua aceeaşi operaţie asupra unei alte
perechi criptate cu aceeaşi cheie!)
Criptanaliză liniară 5

4. Distinguishing algorithm - Algoritm de recunoaştere - A poate


distinge ı̂ntre un sistem de criptare folosit cu o cheie aleasă aleator şi
o permutare aleasă aleator.

1.5 Atacuri generale asupra sistemelor de criptare


Următoarele atacuri generice se pot aplica la toate sistemele de criptare,
putând fi ı̂ncadrate ı̂n unul sau mai multe din cele 6 tipuri de atac definite
anterior.

Cautare exhaustiva a cheii (COA, KPA, CPA)


Acest tip de atac necesită calculul a aproximativ 2k criptari şi necesită
cel puţin nU texte criptate (COA - atac cu text criptat), respectiv nv perechi
text clar/text criptat (pentru atacurile cu text clar - KPA, respectiv text clar
ales - CPA), unde distanţele de unicitate sunt cele definite anterior.
În medie, ghicirea unei chei din N chei posibile este N 2+1 . Dacă sistemul
are N chei posibile, atunci probabilitatea de a ghici corect din prima ı̂ncercare
este N1 . Pentru a ghici din două ı̂ncercări trebuie să fi dat greş cu prima
ı̂ncercare şi apoi eliminând cheia care nu este corectă să incercăm altă cheie
din restul de N − 1 chei posibile. Deci probabilitatea de a ghici din două
ı̂ncercări este (1 − N1 ) (N 1−1) = N1 . Similar, probabilitatea de a ghici cheia
corectă ı̂n exact 3, · · · , N ı̂ncercări este N1 . Numărul mediu de ı̂ncercări se
obţine prin ı̂nmulţirea numărului m de ı̂ncercări cu probabilitatea de ghicire
a cheii corecte ı̂n m ı̂ncercări şi sumarea după m. Deci N 1
P
m=1 (m · N ) =
N (N +1) 1
2 N
= N 2+1

Atac bazat pe dicţionar


Se interceptează/generează şi se stochează toate perechile posibile text
clar/text criptat (indiferent de cheie). Orice text criptat interceptat poate fi
decriptat prin cautarea ı̂n dicţionar.

Atac bazat pe tabelă (CPA)


Se criptează ı̂n faza de preprocesare toate posibilităţile de criptare ale
unui text clar ales x şi se stochează toate textele criptate obţinute. Un atac
cu textul clar ales x oferă spargerea totală a sistemului.
Criptanaliză liniară 6

1.6 Estimarea complexităţii unui atac


Pentru a estima complexitatea unui atac, trebuie considerate 3 aspecte:
timpul necesar, datele necesare, şi spaţiul de stocare necesar.
Pentru sisteme de criptare bloc pe n biţi se considera trei măsuri de
complexitate:

• Data complexity Necesarul de date de intrare pentru atac, masurat ı̂n


blocuri de lungime n.

• Processing complexity Timpul necesar pentru desfăşurarea atacului,


masurat ı̂n numărul de criptări pe care le face atacatorul.

• Storage complexity Necesarul de spaţiu pentru stocarea datelor ı̂n tim-


pului unui atac, măsurat ı̂n blocuri de lungime n.

Complexitatea unui atac este ı̂n general definită ca maximul celor trei
complexităţi, ı̂nsa ı̂n cele mai multe scenarii practice atât cantitatea de date
criptate cu aceeaşi cheie cât şi spaţiul de stocare sunt limitate.
Capitolul 2

Sisteme de criptare bloc

Un sistem de criptare (cifru) bloc definit pe blocuri de n biţi şi cu o cheie


secretă de k biţi, reprezintă o mulţime conţinând 2k permutări peste mulţimea
tuturor blocurilor de n biţi. Pentru orice cheie K, cifru bloc specifică un
algoritm de criptare pentru calculul unui text criptat de n biţi pentru un
text clar de n biţi dat. Algoritmul de decriptare calculează n biţi de text
clar pentru un text criptat de lungime n. Numărul de permutări de blocuri
de lungime n este 2n !, sau folosind formula de aproximare a lui Sterling
√ n n √ n n n n
2π2n ( 2e )2 . Cum 2π2n ( 2e )2 < 2(n−1)2 , pentru n > 3, cu k = 2(n−1)2
se pot acoperi toate permutările posibile peste mulţimea blocurilor de n biţi.
Din considerente practice k este mult mai mic ı̂n sistemele de criptare bloc.
Marea majoritate a sistemelor de criptare bloc sunt cifruri iterate unde
ieşirea algoritmilor este calculată aplicând intrării ı̂n mod iterativ o funcţie
fixată r, dependentă de cheia de criptare. Un astfel de cifru se numeşte cifru
bloc iterat de runda r. Un astfel de cifru foloseşte de asemenea un algoritm de
diversificare a cheii (”key-schedule”) care preia cheia de lungime k şi produce
o mulţime de ”sub-chei”.
Fie g(·, ·) o funcţie inversabilă dacă primul argument este fixat. Atunci
secvenţa de sub-chei zi se defineşte recursiv prin zi = g(ki , zi−1 ), unde z0 este
textul clar, ki este subcheia numărul i iar zr este textul criptat. Funcţia g se
numeşte funcţie de rundă.
Cele mai multe sisteme de criptare bloc sunt de două tipuri: retele SP
(Substituţie-permutare) sau reţele Feistel. Cele mai importante două sisteme
de criptare din istoria criptografiei moderne sunt (ı̂n ordine cronologică):
Data Encryption Standard (DES) care este cifru Feistel şi Advanced
Encryption Standard (Rijndael/AES) care este reţea SP.

7
Criptanaliză liniară 8

Figura 2.1: Aplicarea funcţiei de rundă

2.1 Retele de Substituţie-Permutare - SPN


În reţelele de Substitutie-Permutare (”SP-Networks”), funcţia de rundă
g constă ı̂n straturi de substituţii (”S-boxes”) şi straturi de permutări pe
biţi(”P-boxes”). Un singur strat de substituţii urmat de o permutare oferă
o securitate destul de mică, dar oferă proprietăţi de mixare: substituţiile
oferă proprietatea de confuzie locală ı̂n timp ce permutarea dispersează con-
fuzia locală ı̂n sub-blocuri ı̂ndepărtate. Astfel, inversarea unui bit ı̂ntr-un
text de intrare afectează un bit de intrare ı̂ntr-un S-box care afecteaza lo-
cal m-biti de ieşire ale acelui S-box, care sunt dispersati ı̂n textul de iesire.
Pentru o reţea multistrat, efectul este dispersat de permutare ı̂n intrările
a m1 6 m S-boxuri modificând ieşirile pentru aceste S-boxuri. Astfel se
creează un efect de avalanşă ı̂n cifrurile iterate. La ieşirea unei reţele SP,
aproximativ jumătate din biţii de ieşire sunt inversaţi. Efectul provocat de
schimbarea unui singur bit la intrare (text clar) asupra ieşirii (text criptat)
devine astfel greu de prezis, şi cu atât mai greu de prezis dacă ı̂ntre runde se
foloseşte câte o subcheie secretă de runda (la aplicarea funcţiei g). În lipsa
unei chei secrete, reţelele SP reprezintă doar o funcţie complexă dar complet
deterministă asupra intrării.
Sistemele de criptare moderne folosesc ı̂n general aplicaţii liniare sau afine
ı̂n loc de permutări, pentru a obţine o difuzie bună ı̂n cât mai puţine iteraţii.
Astfel de reţele se numesc reţele de substituţie liniară (SLN), respectiv retele
de substituţie afină (SAN). Cel mai cunoscut sistem bazat pe retele SP,
standardul AES, este cifru SLN.

2.2 Cifruri Feistel


Celalalt tip de cifruri iterate sunt cifrurile Feistel, denumite după crip-
tograful german Horst Feistel şi folosite pentru prima oară ı̂n cifrul Lucifer,
construit de Feistel şi Don Coppersmith la IBM. Cifrurile Feistel sunt definite
dupa cum urmează, pentru un cifru care operează pe blocuri de n biţi, ı̂n r
Criptanaliză liniară 9

runde. Fie z0L şi z0R cele două jumatăţi ale textului clar, stângă (L), respectiv
dreaptă (R), de câte n2 biţi fiecare. Funcţia de runda g operează pe cele două
componente:
R
ziL = zi−1
R
ziR = f (ki , zi−1 L
) + zi−1
textul criptat obţinându-se prin concatenarea zrR şi zrL .

Figura 2.2: Aplicarea funcţiei de rundă pentru cifruri Feistel

Avantajul cifrurilor Feistel constă ı̂n faptul că funcţia f nu trebuie să fie
inversabilă şi poate fi oricât de complexă. Orice funcţie f , cu argumente un
bloc de n2 biţi si o cheie de rundă / sub-cheie ki şi cu ieşirea un bloc de n2
biţi, poate fi folosită. Ca operaţie ”+” se poate folosi orice operaţie de grup
comutativ pe mulţimea blocurilor de n2 biţi. Uzual se foloseşte operaţia ”sau
exclusiv” - XOR - adunare pe biţi modulo 2.
Dintre cifrurile Feistel celebre amintim sistemul american Data Encryp-
tion Standard (DES) care are 16 runde, respectiv varianta sovietică ”go-
sudarstvennyy standart 28147-89” (GOST), care are un număr dublu
de runde - 32. Numărul dublu de runde se datorează unui design mai sim-
plu a rundelor (GOST foloseste rotaţii ı̂n loc de permutări) şi lipsei unei
permutări de expansiune ı̂n cadrul funcţiei f (primul pas ı̂n funcţia Feistel
din DES - expansiunea de la 32 la 48 biţi prin duplicarea unor biţi), care
să ı̂i ofere un efect de avalansa bun (probabilitatea ca un bit de ieşire să se
modifice la modificarea unui bit de intrare să fie aproximativ egala cu 1/2).
Efectul de avalanşă se obţine totuşi, dar doar după un număr mare de runde.
Cifrurile Feistel admit variante ı̂n care cele 2 blocuri sunt de dimensiuni
Criptanaliză liniară 10

diferite (exemplu Skipjack), respectiv variante ı̂n care textele se descompun


ı̂n mai mult de 2 părţi.

2.2.1 Rezultate teoretice


Din punct de vedere teoretic, structura şi proprietăţile cifrurilor Feistel au
fost studiate de Michael Luby şi Charles Rackoff care au arătat ca ı̂n anumite
conditii un cifru Feistel aleator (i.e. cu funcţiile de rundă alese independent
şi aleator) ajunge să constituie o permutare pseudoaleatoare.
O familie de funcţii pseudoaleatoare (pseudorandom function family -
PRF) este o colecţie de funcţii eficient computabile, astfel ca nici un algoritm
eficient să nu poata distinge ı̂ntre o functie aleasă aleator din PRF şi un oracol
aleator (funcţie a carui ieşire este complet aleatoare). Spre deosebire de un
generator pseudoaleator (”pseudorandom generator” - PRG), care asigură ca
o ieşire apare aleator dacă intrarea (generator - ”seed”) a fost aleasa aleator,
funcţiile pseudoaleatoare garantează ca toate ieşirile apar aleator, indiferent
cum se alege intrarea, dacă modul de alegere a funcţiei din familia PRF este
aleator.
O permutare pseudoaleatoare (”pseudorandom permutation” - PRP) re-
prezintă un cifru bloc care nu poate fi distins de o permutare aleatoare (i.e.
aleasă cu probabilitate uniformă din mulţimea permutărilor pe blocuri de
aceeaşi dimensiune), cu mai puţin efort computational decât o limită spec-
ificată - parametrul de securitate al cifrului. Parametrul de securitate este
ı̂n general egal cu efortul necesar căutarii prin forţă brută prin ı̂ntreg spaţiul
cheilor posibile.
Din analiza construcţiei cifrurilor Feistel aleatoare, Lubyşi Rackoff (Luby-
Rackoff - 1988) au demonstrat că dacă funcţia de rundă este o funcţie pseu-
doaleatoare, sigură din punct de vedere criptografic, generatorul fiind cheia
de rundă ki , atunci 3 runde sunt suficiente pentru ca cifrul să fie o permutare
pseudoaleatoare (mai precis cifrul este sigur dacă numărul de texte m alese
n
ı̂n mod adaptiv este mai mic decât 2 2 ). În plus, 4 runde sunt suficiente pen-
tru a-i oferi unui cifru Feistel aleator calitatea de permutare pseudoaleatoare
”tare” (mai precis cifrul este sigur dacă numărul de texte m alese ı̂n mod
n
adaptiv este mai mic decât 2 2 ), ı̂n sensul ca rămâne pseudoaleatoare chiar
dacă un adversar obţine un oracol pentru permutarea inversă. În general,
(Patarin - 2003) s-a demonstrat că pentru orice  > 0, şi un număr de
texte m mai mic de 2n(1−) cifrurile Feistel aleatoare cu cel puţin 4 runde
Criptanaliză liniară 11

sunt sigure ı̂mpotriva atacurilor cu text clar cunoscut (KPA), cifrurile cu


cel puţin 7 runde sunt sigure ı̂mpotriva atacurilor cu text clar ales adaptiv
(ACPA), iar cele cu cel puţin 10 runde sunt sigure ı̂mpotriva atacurilor cu
texte clare şi criptate alese ı̂n mod adaptiv (CPCA).

2.3 Scurtă comparaţie a celor două tipuri de


sisteme de criptare bloc
Comparativ, pentru o rată de confuzie şi difuzie fixă, reţelele SP oferă
mai mult paralelism, deci implementari mai rapide pe calculatoarele capabile
să efectueze calcule ı̂n paralel decât cifrurile Feistel. Din punct de vedere
istoric designul cifrurilor Feistel le face mult mai uşor de implementat folosind
hardware-ul calculatoarele anilor 1970. În acest moment, cifrurile Feistel
sunt mult mai lente ı̂n implementari software şi sunt depasite chiar şi ı̂n
implementări hardware, deşi sunt folosite ı̂n continuare pe scara largă - spre
exemplu ı̂n industria plăţilor electronice - DES /Triple DES este ı̂n continuare
singurul algoritm criptografic simetric folosit ı̂n standardul EMV (Europay,
MasterCard, VISA), care se aplică tuturor cardurilor de plata bazate pe
circuite integrate.
Capitolul 3

Criptanaliză liniară

Cele mai cunoscute tipuri de atacuri asupra sistemelor de criptare bloc


sunt: criptanaliza diferenţiala şi criptanaliza liniară, cea din urmă fiind
tratată ı̂n cadrul acestei lucrări.
Criptanaliza liniară este un atac de tip KPA - atac cu text clar cunoscut
- ı̂n care atacatorul studiază relaţii probabilistice liniare, numite aproximări
liniare, ı̂ntre biţii de paritate din textul clar, textul criptat şi cheia secretă.
Folosind o aproximare de probabilitate mare şi cunoscând biţii de paritate ai
textului clar, respectiv criptat cunoscut, se obţine o estimare asupra bitului
de paritate a cheii secrete. Folosind tehnici auxiliare, atacul poate fi extins
pentru a afla mai multi biţi ai cheii secrete.
Criptanaliza liniară este o metodă puternică de criptanaliză introdusă
de Matsui ı̂n 1993 ca atac teoretic şi aplicată ı̂ntr-un atac asupra DES -
Data Encryption Standard. O variantă anterioara a criptanalizei liniare,
dezvoltată de Matsui şi Yamagishi, a fost folosită pentru a ataca cu succes
cifrul FEAL ı̂n 1992.

3.1 Atacuri iterate


Fie x textul clar şi y textul criptat cu un sistem de criptare bloc iterativ.
În atacurile asupra sistemelor moderne de criptare iterative, atacatorul repetă
atacul pentru toate valorile posibile ale unor biţi ai ultimei chei de runda.
Ideea este că atunci când se ghicesc valorile corecte pentru biţii ultimei chei,
se pot calcula valorile unor biţi corespunzători ai textului criptat ı̂nainte de
ultima rundă, iar atunci cand valorile biţilor ultimei chei sunt ghiciţi incorect,

12
Criptanaliză liniară 13

acesti biţi corespund unor biţi ı̂n textul criptat criptaţi cu o altă cheie. Daca
se poate distinge ı̂ntre aceste 2 cazuri, atunci se pot găsi biţi ai ultimei chei
de runda.
Ipoteza randomizării cheilor greşite (”wrong key randomization”), pre-
supune că atunci când un atacator ghiceşte incorect o valoare a cheii, val-
orile rezultate sunt aleatoare şi uniform distribuite. Dacă atacatorul poate
determina valoarea ultimei chei de runda, atunci poate ı̂nlătura ultima rundă
a sistemului de criptare şi repeta atacul asupra unui sistem de criptare cu
un număr mai mic de runde, pentru a găsi astfel penultima cheie de rundă,
s.a.m.d. Uneori este mai avantajos pentru atacator să considere pentru atac
cheia primei runde, sau chiar ı̂n acelasi timp prima şi ultima cheie, depinzând
de structura particulară a sistemului de criptare.

3.2 Descrierea unui atac liniar


Folosind notaţia lui Matsui, fie A[i] al i-lea bit a lui A şi A[i1 , . . . , ik ] bitul
de paritate A[i1 ] ⊕ A[i2 ] ⊕ · · · ⊕ A[ik ]. Primul pas efectuat de atacator este să
găsească o aproximare liniară care se potriveşte sistemului. Pentru operaţii
simple - XOR cu cheia sau permutări de biţi - se pot găsi expresii liniare
simple care au loc cu probabilitate 1. Pentru elemente neliniare ale unui
sistem de criptare, cum ar fi S-boxurile, se incearca găsirea unor aproximaţii
liniare de probabilitate p care maximizează |p − 12 |.
Aproximările pentru operaţiile atomice ale unui cifru sunt combinate ı̂n
aproximari pentru fiecare rundă a cifrului. Concatenând aceste aproximări
de runda, ı̂n final se obţine o aproximare pentru ı̂ntreg cifrul, de tipul:

P [i1 , i2 , . . . , ia ] ⊕ C[j1 , . . . , jb ] = K[k1 , . . . , kc ] (3.1)

unde P este textul clar (”plaintext”), C este textul criptat iar K este cheia
secretă, iar i1 , i2 , . . . , ia , j1 , . . . , jb , k1 , . . . , kc sunt locaţii fixate de biti.
Astfel de aproximări sunt utile doar dacă probabilitatea p 6= 12 (care
reprezintă probabilitatea de verificare a relaţiei pentru valori aleatoare in-
dependente pentru toti biţii). Matsui a găsit pentru DES o aproximare de
probabilitate p = 21 + 2−24 . Folosind aceasta aproximare, un algoritm simplu
bazat pe metoda probabilităţii maxime poate fi folosit pentru recuperarea
unui bit de paritate K[k1 , . . . , kc ]:
Fiind date N texte clare aleatoare cunoscute, calculând T numărul de
Criptanaliză liniară 14

texte clare pentru care membrul stâng al ecuaţiei 3.1 este 0:

Algoritmul 3.1: Găsirea unui bit de paritate

if (T − N2 ) · (p − 21 ) > 0 then
K[k1 , . . . , kc ] = 0
else
K[k1 , . . . , kc ] = 1
end if

Pentru a obţine bitul de paritate K[k1 , . . . , kc ] cu o probabilitate accept-


abilă, Matsui a demonstrat că numărul de texte clare N trebuie să fie de
ordinul |p − 12 |−2 .

3.3 Lema ı̂ngrămădirii - ”piling-up”


Primul pas ı̂n criptanaliza liniară este reprezentat de găsirea unor aproxi-
mari acceptabile pentru cifrul dat, sau ı̂n demonstrarea că nu există aproximări
acceptabile (ceea ce este mult mai dificil de obţinut ı̂n practică). Pentru
o componentă de tip S-box, se poate găsi aproximarea liniară cu cea mai
mare tendinţă (”bias”), printr-o cautare exhaustivă. Extrapolarea metodei
la ı̂ntregul sistem de criptare este ceva mai dificilă.
Prima problemă care apare o reprezintă calculului probabilităţii unei
aproximări liniare. În principiu, criptanalistul ar trebui să treaca prin toate
combinaţiile de text clar şi chei, soluţie care este evident nefezabilă. Soluţia
la aceasta problemă este dată de acceptarea unor presupuneri şi aproximarea
probabilităţii folosind lema de ı̂ngrămădire (”Piling-up Lemma”):

Lema 3.1:
Fiind date n variabile independente uniforme pe {0, 1}, X1 , . . . , Xn , tendinţa
(bias)  = p − 12 sumei X = X1 ⊕ X2 ⊕ · · · ⊕ Xn este:
n
Y
 = 2n−1 j (3.2)
j=1

unde i este tendinţa variabilei Xi .


Criptanaliză liniară 15

Notând cu c = 2 corelaţia (”imbalance”) unei expresii, se obţine o ecuaţie


mai simplă:
Yn
c= cj (3.3)
j=1

Pentru estimarea probabilităţii unei aproximări liniare folosind lema piling-


up, aproximarea se scrie ca un lanţ de aproximări liniare conectat acoperind
bucăţi din cifru. Un astfel de lanţ de aproximări partiale conectate se numeşte
caracteristica liniara. Presupunând ca tendinţele acestor aproximări parţiale
sunt statistic independente şi uşor de calculat, folosind ecuaţia 3.2 se poate
calcula tendinţa totală.
Deşi lema de ı̂ngramădire produce estimări foarte bune ı̂n multe cazuri
practice, chiar şi atunci când aproximările nu sunt independente, există posi-
bilitatea producerii unor efecte neaşteptate atunci când presupunerea de
independenţă nu este satisfacută, tendinţa reală putând fi mult mai mică,
sau dimpotrivă mult mai mare decât tendinţa calculată cu ajutorul lemei.

3.4 Căutarea celei mai bune aproximări - Mat-


sui/DES
Lema ı̂ngramădirii (3.1) oferă doar posibilitatea estimării puterii unei
aproximări odată ce aceasta a fost gasită. Rămâne problema găsirii celei mai
puternice aproximari pentru un cifru dat.
Pentru DES, Matsui a propus ı̂n 1994 un algoritm practic de cautare,
bazat pe un raţionament recursiv. Dându-se probabilităţile celor mai bune
caracteristici corespunzătoare sistemului cu i runde, 1 6 i 6 n − 1, algo-
ritmul calculează cea mai bună caracteristică pentru n runde. Algoritmul
traversează un arbore, oprindu-se ı̂n adâncime de ı̂ndată ce probabilitatea
aproximării partial construite nu mai poate depaşi o estimare iniţiala asupra
caracteristicii optime.
Algoritmul lui Matsui poate fi aplicat mai multor cifruri bloc, cu variaţii
destul de mari ı̂n ceea ce priveşte eficienţa. În primul rand, timpul de rulare
depinde de estimarea iniţiala (estimări mici cresc dimensiunea arborelui iar
estimări mari pot conduce la un raspuns negativ al algoritmului). În plus,
proprietăţile specifice ale S-boxurilor afectează eficienţa algoritmului.
Pentru DES, Matsui a obţinut estimări destul de bune printr-o căutare
Criptanaliză liniară 16

prin caracteristicile care trec printr-un singur S-box ı̂n fiecare rundă, ceea ce
nu produce estimări la fel de bune pentru alte cifruri bloc. Viteza de rulare
este de asemenea diminuată dacă tendinţa maximă a unui S-box se obţine ı̂n
mai multe aproximări diferite (cazul AES-ului), spre deosebire de DES care
are vârfuri de tendinţă distincte.

3.5 Efectul de carcasă liniară - ”linear hull


effect”
Estimarea tendinţelor aproximărilor prin construcţia de aproximări liniare
este foarte utilă, dar ı̂n unele cazuri, valoarea derivată ı̂n acest fel diverge
ı̂n mod semnificativ de tendinţa reală. Cauza principală o reprezintă efectul
denumit de Nyberg ı̂n 1994 - ”linear hull effect” - efectul de carcasă liniară.
Efectul are loc atunci când corelaţia dintre biţii textului clar şi cei ai textului
criptat, descrisă de o aproximare liniară specifică, poate fi explicată prin
mai multe caracteristici liniare, fiecare caracteristică având o tendinţă ne-
neglijabilă şi folosind alţi biţi ai cheii. O astfel de mulţime de caracteristici
liniare cu masca de intrare, respectiv iesire fixată, se numeşte carcasă liniară
- linear hull.
Depinzând de valoarea cheii, caracteristici diferite vor interfera fie con-
structiv, fie distructiv, fie se vor anula complet. Dacă mulţimea cheilor
folosite ı̂n caracteristici liniare diferite este independentă, atunci acest efect
reduce tendinţa medie a expresiei, deci reduce şansele atacului simplu de
criptanaliză liniară descris.
Nyberg arată totuşi că atacurile mai eficiente descrise de Matsui asupra
DES beneficiază ı̂n general de pe urma efectului de carcasă liniară.
Capitolul 4

Atac liniar asupra unei versiuni


simplificate de AES

În această secţiune vom descrie o versiune simplificată de AES, concepută


de Musa, Schaefer şi Wedig (2003), pentru a ilustra criptanaliza liniară.
Fie corpul finit GF (2) construit pe mulţimea {0, 1} unde toate operaţiile
sunt modulo 2. Fie GF (2)[x] mulţimea polinoamelor cu coeficienţi ı̂n GF (2).
Definim GF (16) = GF (2)[x]/(x4 +x+1) - polinoamele cu coeficienţi ı̂n GF (2)
modulo x4 + x + 1 (care este polinom ireductibil peste GF (2)[x]). Corpul
GF (16) este format din 16 polinoame de grad < 4 unde toate operaţiile sunt
modulo x4 + x + 1. Se observă că x4 + x + 1 = 0 , x4 = x + 1 (adunarea şi
scaderea sunt identice modulo 2), x5 = x2 + x, etc. GF (16) este corp finit.
Un nibble reprezintă o jumătate de byte, un şir de 4 biţi. Unui nibble
b0 b1 b2 b3 ı̂i este asociat un element b0 · x3 + b1 · x2 + b2 · x + b3 din GF (16).
Pentru 2 nibbles N0 şi N1 notam byte-ul obţinut prin concatenare N0 N1 .

4.1 AES simplificat


4.1.1 S-box
Un S-box reprezintă o aplicaţie inversabilă, neliniară, care asociază unui
nibble un alt nibble. Primul pas din S-box este inversarea nibble-ului ı̂n
GF (16), (asociind lui 0000 pe el ı̂nsuşi deoarece nu este inversabil). Ieşirii
b0 b1 b2 b3 ı̂i este asociat N (y) = b0 ·y 3 +b1 ·y 2 +b2 ·y+b3 ı̂n GF (2)[y]/(y 4 +1) (care
nu este corp ı̂ntrucât y 4 +1 = (y +1)4 ). Fie a(y) = y3 +y2 +1 şi b(y) = y3 +1.
Al doilea pas al S-boxului este asocierea lui N (y) cu a(y)N (y) + b(y).

17
Criptanaliză liniară 18

Echivalent pasul 2 poate fi exprimat sub forma unei aplicaţii afine:

Figura 4.1: AES simplificat - S-box - pasul doi

Întregul S-box poate fi exprimat ca acţiune sub forma unui tabel in-
trare/ieşire, respectiv sub o formă matricială peste 16.

Figura 4.2: AES simplificat - S-box

4.1.2 Chei
Versiunea simplificata de AES are chei de 16 biţi, notate K0 = k0 . . . k1 5.
Cifrul va avea 2 runde, deci cheia trebuie expandată la o cheie de 48=16*3 biţi
k0 . . . k4 7 = K0 K1 K2 . Expandarea se va face folosind funcţiile RC, RCON,
RotNib,SubNib, după cum urmează:
Notăm RC[i] = xi+2 ∈ GF (16) şi constanta de runda RCON [i] =
RC[i]0000 (byte). Se definesc funcţiile RotN ib(N0 N1 ) = N1 N0 ) şi SubN ib(N0 N1 ) =
S − box(N0 )S − box(N1 ). Fie K0 , K1 , K2 cele 3 chei ca mai sus. Pentru
0 6 i 6 2 se calculează Ki = W [2i]W [2i + 1], unde pentru 2 6 i 6 5
Criptanaliză liniară 19

• dacă i = 0(mod2) atunci W [i] = W [i−2]⊕RCON (i/2)⊕SubN ib(RotN ib(W [i−


1]))

• dacă i = 1(mod2) atunci W [i] = W [i − 2] ⊕ W [i − 1]

4.1.3 Algoritmul AES simplificat - sAES


Algoritmul AES simplificat (sAES) operează cu texte clare de 16 biţi
şi generează texte criptate de 16-biţi, folosind cheia expandată de 48 biţi.
Algoritmul de criptare constă ı̂n compunerea a 8 funcţii aplicate textului
clar: AK2 ◦ SE ◦ N S ◦ AK1 ◦ M C ◦ SR ◦ N S ◦ AK0 (AK0 fiind aplicată prima).
Fiecare funcţie opereaza asupra unei stări de 16 biti = 4 nibble, reprezentaţi
ca ı̂n figura următoare (prima şi ultima stare reprezintă textul clar respectiv
criptat, cea din mijloc fiind una din stările intermediare):

Figura 4.3: AES simplificat - Stări

Funcţia AKi - ”add key”


Funcţia AKi XOR-eaza pe biţi starea curentă cu cheia de rundă Ki (un
bit din cheie se XOR-eaza cu bitul stării de indice egal modulo 16).

Funcţia N S - ”nibble substitution”


Functia N S ı̂nlocuieşte fiecare nibble dintr-o stare cu S-boxul corespunzător,
fără a schimba ordinea.

Figura 4.4: AES simplificat - Funcţia NR


Criptanaliză liniară 20

Funcţia SR - ”Shift Row”


Funcţia SR permută al doilea rând dintr-o stare.

Figura 4.5: AES simplificat - Funcţia SR

Funcţia M C - ”mix columns”


Functia MC acţionează pe coloane. O coloană [Ni , Nj ] a unei stări e
considerată a fi elementul Ni z + Nj ∈ GF (16)[z]/(z 2 + 1) (care nu este corp
pentru că (z 2 + 1) = (z + 1)2 ). Funcţia MC multiplică fiecare coloana cu
polinomul c(z) = x2 z + 1.
Funcţia MC poate fi vizualizată matricial ı̂n două moduri:

Figura 4.6: AES simplificat - Funcţia MC ı̂n GF (16)

Figura 4.7: AES simplificat - Funcţia MC - efect pe biţi asupra unei coloane

Runde
Există 2 runde constând din compunerea AKi ◦ M C ◦ SR ◦ N S. Înainte
de prima rundă are loc o AK suplimentară şi ı̂n ultima runda nu are loc
M C (deoarece nu s-ar mai putea implementa decriptarea ca fiind aceeaşi
succesiune de paşi, cu cheile de runda aplicate ı̂n ordine inversă).
Criptanaliză liniară 21

Decriptarea
Fiecare AKi este involuţie i.e. AKi = A−1Ki . Similar SR este involuţie, dar
păstrăm notaţia SR, ı̂ntrucât corespondentul din AES nu este involuţie.
Decriptarea este dată de operaţiile AK0 ◦ N S −1 ◦ SR−1 ◦ M C −1 ◦ AK1 ◦
N S −1 ◦ SR−1 ◦ AK2 .
Pentru a obţine N S −1 , inversăm pasul 2 de la NS, prin aplicaţia descrisă
ı̂n următoarea figura, apoi inversăm nibble-ul de ieşire ı̂n GF (16).

Figura 4.8: AES simplificat - Funcţia N S −1 - primul pas

Pentru a obţine M C −1 , multiplicăm cu c(z)−1 = xz+(x3 +1) in GF (16)[z]/(z 2 +


1) - aplicaţia matricială următoare:

Figura 4.9: AES simplificat - Funcţia M C −1

4.1.4 Observaţie asupra decriptării


Se observă că N S −1 ◦ SR−1 = SR−1 ◦ N S −1 . În plus, notând o stare cu
St obţinem:

M C −1 (AKi (St)) = c(z)−1 (Ki ⊕St) = c(z)−1 (Ki )⊕c(z)−1 (St) = Ac(z)−1 Ki (M C −1 (St))

Prin urmare decriptarea se poate scrie AK0 ◦ SR−1 ◦ N S −1 ◦ Ac(z)−1 K1 ◦


M S −1 ◦ SR−1 ◦ N S −1 ◦ AK2 , ı̂n care fiecare operaţie apare ı̂n aceeaşi ordine
Criptanaliză liniară 22

ca la criptare, cheile de runda fiind aplicate ı̂n ordine inversă. În cazul AES-
ului real, acest lucru poate fi exploatat ı̂n implementare pentru creşterea
paralelismului, ceea ce nu s-ar ı̂ntampla dacă M C ar apărea ı̂n ultima rundă.

4.2 Criptanaliză liniară asupra unei runde sAES


Aplicăm criptanaliza liniară asupra sistemului sAES cu o singură rundă.
Astfel dacă atacatorul gaseşte n aproximări liniare diferite şi liniar indepen-
dente, ı̂i raman 216−n chei posibile de incercat prin forţă brută. Prima rundă
de sAES este AK1 ◦ M C ◦ SR ◦ N S ◦ AK0 .

4.2.1 Ecuaţii pentru S-box


Singura funcţie neliniară din sAES este S-boxul. Căutând ecuaţiile liniare
care relaţioneaza biţii de intrare de cei de ieşire si au cea mai mare proba-
bilitate, pentru sAES se găsesc 30 de ecuaţii de probabilitate maximă 0, 75.
Exemplificăm 6 dintre ele unde S − box(a0 a1 a2 a3 ) = b0 b1 b2 b3 :

Figura 4.10: sAES - 6 ecuaţii de probabilitate 0, 75

4.2.2 Notaţii pentru biţi


Notăm mi şi ni biţii de ieşire din S-box, care apar ı̂n algoritmul de criptare
respectiv decriptare. Notăm cu (I) starea dupa operaţia AK0 :
Notăm S − box(p0 p1 p2 p3 ⊕ k0 k1 k2 k3 ) = m0 m1 m2 m3 , ş.a.m.d. ı̂n funcţie
de care putem exprima următoarele stări. Notăm (II) starea dupa aplicarea
N S, (III) starea dupa aplicarea SR şi (IV) starea dupa aplicarea M C
Criptanaliză liniară 23

Figura 4.11: sAES - I

Figura 4.12: sAES - II

Figura 4.13: sAES - III

Figura 4.14: sAES - IV


Criptanaliză liniară 24

Folosind faptul că operaţia XOR este comutativă şi folosind relaţiile an-
terioare, putem reformula relatia (IV) ı̂n (IVb).

Figura 4.15: sAES - IVb

Din secţiunea anterioară, obţinem următoarea relaţie pentru biţii care


apar ı̂n expandarea cheii, W [2] = W [0]⊕RCON (0)⊕SubN ib(RotN ib(W [1])).
Prin urmare k16 . . . k23 = k0 . . . k7 ⊕ 10000000 ⊕ S − box(k12 k13 k14 k15 )S −
box(k8 k9 k10 k11 ).
Notând cele două ieşiri din S-boxuri, S − box(k12 k13 k14 k15 ) = n0 n1 n2 n3
respectiv S − box(k8 k9 k10 k11 ) = n4 n5 n6 n7 , obţinem k16 . . . k23 = k0 . . . k7 ⊕
10000000 ⊕ n0 n1 n2 n3 n4 n5 n6 n7 deci k16 = k0 ⊕ n0 ⊕ 1 şi pentru orice 17 6 i 6
23, ki = ki−16 ⊕ ni−16 .
Tot din secţiunea anterioară W [3] = W [1] ⊕ W [2], deci pentru orice 24 6
i 6 31, ki = ki−16 ⊕ ki−8 .
Criptanaliză liniară 25

4.2.3 Găsirea ecuaţiilor


Rearanjând ecuaţiile obţinute, obţinem pentru i = 24, . . . , 31 ki−8 ⊕ ki =
ki−16 , care pentru i = j + 8 se rescriu: j = 16, . . . , 23 kj ⊕ kj+8 = kj−8 ,
ceea ce permite eliminarea nj -urile necunoscute. Folosind echivalenţa (IV) -
(IVb) obţinem 16 ecuaţii corespunzătoare fiecărei egalităţi de biţi. Adunăm
(XOR) ecuaţiile corespunzătoare bitilor de pe poziţii care diferă prin 8 i.e.
poziţia 0 cu 8, 1 cu 9, etc. Obţinem următoarele 8 ecuaţii:

Figura 4.16: sAES - 8 ecuaţii derivate din echivalenţa stării IV

Observăm că biţii din partea dreaptă a ecuaţiei (7) se repetă ı̂n ecuatia
(13). Similar perechile (10,12), (11,9), (14,8). Adunând perechile de ecuaţii
menţionate şi folosind a ⊕ a ⊕ x = 0 ⊕ x = x, obţinem 4 ecuaţii:

Figura 4.17: sAES - 4 ecuaţii derivate

În continuare folosim starea (I) ca intrare ı̂n S-box i.e. a0 a1 a2 a3 şi starea
(II) ca ieşire din S-box i.e. b0 b1 b2 b3 , pentru a ı̂nlocui expresiile de tip mi ⊕ mj
Criptanaliză liniară 26

din cele 4 ecuaţii (15-18) cu aproximări de probabilitate mai mare ca 12 .


Considerăm ecuaţia (16), ı̂n care trebuie inlocuit m0 ⊕ m8 cu expresii
folosind pi şi ki de probabilitate mai mare ca 12 . Dar m0 şi m8 corespund
bitului b0 din S-box, care apare ı̂n ecuaţiile 1 şi 2. Dacă folosim ecuaţia
1 de două ori, obţinem p3 ⊕ k3 ⊕ m0 = 1 şi p11 ⊕ k11 ⊕ m8 = 1, fiecare
de probabilitate 0, 75. Prin urmare p3 ⊕ p11 ⊕ k3 ⊕ k11 ⊕ m0 ⊕ m8 = 0 cu
probabilitatea (0, 75)2 + (0, 25)2 = 0, 625 (deoarece membrul stâng este 0
dacă p3 ⊕ k3 ⊕ m0 = 1 şi p11 ⊕ k11 ⊕ m8 = 1, care are probabilitatea (0, 75)2
sau sunt ambele 0 ceea ce are probabilitatea (0, 25)2 ). Rescriem sub forma
p3 ⊕ p11 ⊕ k3 ⊕ k11 = m0 ⊕ m8 cu probabilitate 0, 625. Combinând cu ecuaţia
(16) obţinem p3 ⊕ p11 ⊕ c3 ⊕ c5 ⊕ c11 ⊕ c13 = k3 ⊕ k13 cu probabilitate 0, 625.
Aceasta este prima ecuaţie necesară pentru criptanaliza liniară.
Aplicând ı̂n schimb ecuaţia (1) pentru m0 şi ecuatia (2) pentru m8 se
obţine p3 ⊕ k3 ⊕ m0 = 1 şi p8 ⊕ k8 ⊕ p9 ⊕ k9 ⊕ m8 = 1, fiecare de probabilitate
0, 75. Combinând obţinem p3 ⊕p8 ⊕p9 ⊕c3 ⊕c5 ⊕c11 ⊕c13 = k3 ⊕k8 ⊕k9 ⊕k11 ⊕k13
cu probabilitate 0, 625. Folosind ecuaţia (2) pentru ambele, obţinem analog
p0 ⊕ p1 ⊕ p8 ⊕ p9 ⊕ c3 ⊕ c5 ⊕ c11 ⊕ c13 = k0 ⊕ k1 ⊕ k8 ⊕ k9 ⊕ k11 ⊕ k13 , ı̂n timp ce
dacă folosim ecuaţia (2) pentru m0 şi ecuaţia (1) pentru m8 se obţine aceeaşi
informaţie conţinută ı̂n combinaţia celorlate trei aproximări găsite.
Se obţin similar 14 ecuaţii de probabilitate 0, 625:

Figura 4.18: sAES - 14 ecuaţii de probabilitate 0, 625


Criptanaliză liniară 27

Asociind membrilor drepti câte un vector de lungime 16, spre exem-


plu pentru ecuaţia (19) [0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0], obţinem 14 vec-
tori liniari independenţi, prin urmare sistemul de aproximări obţinut nu are
informaţie redundantă. Toate ecuaţiile omise sunt dependente de aceste 14
ecuaţii.

4.2.4 Atac liniar


Atacatorul poate acum să folosească textele clare şi corespondentele crip-
tate cunoscute si să evalueze membrii stângi ai celor 14 ecuaţii, notând pentru
fiecare ecualtie, care bit, 0 sau 1, apare mai frecvent. Sla presupunem cla
atacatorul obltine alegeri corecte pentru toate aceste 14 ecualtii. Obltine
deci 14 ecualtii independente (folosind membrul drept) cu 16 necunoscute
(k0 , . . . , k1 5. Prin urmare are de verificat 4 chei posibile! Spre exemplu,
extinderea cu vectorii k0 şi k4 oferă o bază de 16 vectori, prin urmare ataca-
torului ı̂i este suficient să facă alegeri arbitrare pentru k0 şi k4 şi să determine
restul de biţi de cheie folosind ecuaţiile.
Un calcul, folosind metode de teoria probabilităţilor, al numărului minim
n necesar de perechi cunoscute (text clar, text criptat) pentru a atinge o
marjă c de siguranţă, oferă următoarele valori pentru cazul de mai sus: pentru
c = 0, 95 sunt necesare n = 109 texte, iar pentru c = 0, 5 doar n = 42 de
texte.
;In caz de nereuşită, atacatorul poate fie să considere mai multe perechi
(text clar, text criptat), fie să schimbe una din cele 14 alegeri făcute, cea care
a apărut de cel mai puţine ori ı̂n cele n perechi ı̂ncercate.

4.2.5 Complexitatea atacului liniar asupra sAES


Dacă atacatorul are la dispoziţie doar o singură pereche (text clar, text
criptat), atunci poate ı̂ncerca toate cele 216 = 65536 chei pentru a o afla
pe cea corectă. Daca obţine mai multe chei posibile, le reverifică pe o altă
pereche (text clar, text criptat). În medie, atacul prin forţă brută are succes
până la jumătatea căutarii, deci după aproape 215 criptări.
Pentru ca atacul liniar să aiba succes cu probabilitate 95%, atacatorul tre-
P P
buie să calculeze valorile pentru 14 sume diferite de tip i ∈ S1 pi ⊕ j ∈ S2 cj
pentru fiecare din cele 109 perechi (text clar, text criptat), apoi trebuie să
faca un atac prin forţă brută asupra a 4 chei posibile.
Criptanaliză liniară 28

Atacul liniar asupra sAES cu o singura rundă pare foarte atractiv com-
parat cu forţa brută. Totuşi, prin adăugarea de runde, sunt necesare mai
multe adunări de ecuaţii pentru eliminarea necunoscutelor - biţii interme-
diari - ceea ce duce probabilităţile ecuaţiilor obţinute mult mai aproape de
0,5. Corespunzător, mai multe perechi (text clar, text criptat) sunt necesare
pentru a obţine acelaşi nivel de siguranţă privind ghicirea valorilor corecte
pentru biţii din cheie.

4.3 Consideraţii asupra AES


Pentru S-boxul din AES, există multe ecuaţii de probabilitate 0, 565 =
1/2 + 1/16, şi nici una de probabilitate mai mare. Pentru un S-box, aceasta
este cea mai bună limită posibilă (cf. Daemen şi Rijmen - 2002).
Pentru AES restrâns la 4 runde, numărul de perechi (text clar, text crip-
tat) pentru un atac liniar este de ordinul 2150 , cu mult mai mult efort decât
un atac prin forta bruta care foloseste cel mult 2 perechi (text clar, text
criptat) pentru a afla o cheie de 128 de biţi.
Până ı̂n acest moment, nu s-a descoperit un atac asupra algoritmului
Rijndael cu mai mult de 6 runde, care să fie mai rapid decât un atac prin
forţă brută.
Capitolul 5

Securitate ı̂mpotriva
criptanalizei liniare

5.1 Demonstrarea securităţii ı̂mpotriva crip-


tanalizei liniare
Existenţa unei singure caracteristice liniare cu tendinţa suficient de mare
este suficientă pentru a rula un atac liniar ı̂mpotriva unui sistem de criptare
bloc. Prin urmare, obiectivul principal al unui proiectant este să se asigure
că o astfel de caracteristica nu există. În practică, se aleg S-boxuri cu o
caracteristică cât mai non-lineară şi se argumentează că difuzia din sistemul
de criptare forţeaza toate caracteristicile să treaca printr-un număr mare de
S-boxuri active. O astfel de abordare oferă doar argumente euristice bune
pentru puterea unui cifru. Pentru a demonstra riguros securitatea ı̂mpotriva
criptanalizei liniare, proiectantul trebuie să ia ı̂n considerare fenomene mai
complexe, cum este efectul de carcasă liniară (”linear hull effect”).
Pentru cifruri de tip DES, demonstraţii de securitate au fost studiate de
Nyberg (Nyberg - 1994). Demonstraţii similare au fost găsite pentru retele
SP. Rezultatele au condus la proiectarea unor cifruri bloc cum ar fi MISTY
şi KASUMI, Rijndael/AES, Camellia.

5.2 Teoria decorelării


O teorie mai generală pentru securitate demonstrabilă ı̂mpotriva unei
clase de atacuri ce include criptanaliza liniară a fost introdusă de Vaude-

29
Criptanaliză liniară 30

nay (Vaudenay - 1998, 2003), bazată pe noţiunea de decorelare. Teoria


oferă sugestii pentru construcţia unui modul de decorelare care blochează
propagarea caracteristicilor liniare şi diferenţiale. Un astfel de modul oferă
securitate demonstrabilă ı̂mpotriva criptanalizei liniare, criptanalizei difer-
entiale şi chiar a unor tipuri de atacuri nedescoperite, care se conformează
unor criterii generale.
Pe baza acestei teorii, Vaudenay a construit o familie de sisteme din care
face parte sistemul COCONUT98 (Cipher Organized with Cute Operations
and N-Universal Transformation) căruia i-a demonstrat securitatea ı̂mpotriva
acestor tipuri de atacuri. Sistemele de tip COCONUT sunt de fapt un cifru
produs C1 ◦C2 ◦C3 , unde C2 este modulul de decorelare iar C1 şi C3 pot fi orice
cifruri bloc, posibil dependente ı̂ntre ele. Mai precis, Vaudenay demonstrează
securitatea ı̂mpotriva atacurilor de ordin mai mic sau egal cu 2 şi euristic sigur
ı̂mpotriva atacurilor directe de ordin mai mare asupra cifrurilor C1 si C3 .
Sistemul COCONUT98 a fost atacat 1 de David Wagner ı̂n 1999, care a
dezvoltat atacul boomerang, bazat pe criptanaliza diferenţiala. COCONUT98
a fost spart ı̂ntr-un atac neadaptiv, pur CPA, ı̂n 2002 de către Biham, Dunkel-
man şi Keller folosind criptanaliza diferenţial-liniară (atac de ordin 2). Am-
bele atacuri exploatează cifrurile C1 şi C3 propuse de Vaudenay pentru CO-
CONUT98, şi nu o slăbiciune a teoriei decorelării şi a familiei COCONUT.
Atacul bumerang (atac iterat de ordinul 4) a fost rafinat ı̂n două alte
tipuri de atacuri atacul bumerang amplificat - Kelsey, Kohno, Schneier -
2000 ı̂mpotriva MARS şi Serpent, Biryukov - 2004 ı̂mpotriva AES) şi atacul
dreptunghi - Biham, Dunkelman, Keller - 2001 ı̂mpotriva Serpent, Biham,
Dunkelman, Keller - 2003 ı̂mpotriva SHACAL-1.
Un alt sistem proiectat pe baza teoriei decorelării a lui Vaudenay, DFC:
Decorrelated Fast Cipher a fost proiectat de către o echipă a Şcolii Nor-
male Franceze, CNRS şi France Telecom, şi a candidat pentru a fi ales drept
standard la competiţia AES Vaudenay - DFC - 1998. Knudsen şi Rijmen au
publicat ı̂n 1999 un atac asupra DFC (aplicat cu succes pe versiunea simplifi-
cată cu 6 ı̂n loc de 8 runde), care arată că există atacuri (de tip CPA/CCA1)
diferenţiale asupra DFC, care nu contrazic teoria decorelării a lui Vaudenay.
Studiind istoria sistemelor de criptare bloc, adesea cifrurile cu securitate
demonstrabilă ı̂mpotriva unei clase restrânse de atacuri tind să fie vulnerabile
la alte tipuri de atac. Un alt exemplu, cifrul proiectat de Nyberg şi Knudsen
1
Atacul este ı̂n mare măsură pur teoretic, ı̂ntrucât este un atac de tip ACPA, necesitand
atât texte clare alese cât şi texte clare alese ı̂n mod adaptiv
Criptanaliză liniară 31

care rezistă la atacuri diferenţiale este vulnerabil la atacuri diferenţiale de


ordin mai mare, Shimoyama - 1999.

5.3 Extensii ale criptanalizei liniare


Tehnicile criptanalizei liniare au condus la dezvoltarea unor extensii.
Prima tehnică de extindere o reprezintă un atac combinat diferenţial-liniar,
propus de Langford şi Hellman.
Alte extensii includ:

• clasificarea cheilor (”key-ranking”) Junod - 2003, care permite un


compromis (”trade-off”) ı̂ntre complexitatea datelor necesare (numărul
N de texte clare) şi timpul analizei;

• criptanaliza prin partiţionare (”partitioning cryptanalysis”), Harpes -


1997, care studiază corelaţia dintre partiţii ale spaţiilor textelor clare,
respectiv criptate 2 ;

• χ2 - criptanaliza ”chi-squared”, aplicată cu succes pentru a găsi chei


slabe pentru Blowfish, Vaudenay - 1996, respectiv pentru a sparge o
varianta RC6 cu mai puţine runde, Knudsen - 2000.

• tehnici de aplicare a criptanalizei liniare ı̂ntr-un atac cu text clar ales


(CPA), definite de Knudsen şi Mathiassen ı̂n 2001;

Folosirea unor aproximări neliniare a fost abordată atât de Matsui, cât şi
ı̂n lucrari mai recente Shimoyama - 1998, dar nu a adus decât ı̂mbunătăţiri
mici asupra criptanalizei liniare. O generalizare complet neliniară nu a fost
propusă pana ı̂n acest moment.
Folosirea mai multor aproximări a fost propusă de Kaliski şi Robshaw ı̂n
1994, dar problema estimării avantajelor sub forma informaţiei extrase din
multiple aproximări este ı̂ncă deschisă. În particular, Kaliski şi Robshaw au
derivat, ı̂ntr-un cadru ı̂n care au considerat probabilitatea maximală, formule
pentru calculul câstigului de informaţie obţinut de aproximările multiple. Fie
capacitatea unui sistem c̄2 unui sistem de m aproximări liniare cu tendinţele
1 , . . . , m ca c̄2 = 4 · m
P
j=1 j . Pentru un câstig fixat de informaţie obţinută
de atacator comparativ cu căutarea exhaustivă, complexitatea datelor (N )
2
această tehnică nu a condus pana ı̂n prezent la spargerea vreunui cifru existent
Criptanaliză liniară 32

necesare unui atac linear multiplu este proporţională cu capacitatea canalului


informaţional oferit de aproximările multiple - c̄2 . Kaliski şi Robshaw au
propus de asemenea algoritmi de obţinere si valorificare a acestor informaţii.
Capitolul 6

Referinţe

Secţiunea prezintă grupat pe sectiuni si ı̂n ordine cronologica articolele şi


cărtile studiate, conţinând rezultate primare citate ı̂n prezenta lucrare.

Criptanaliză
1. Heys - 2002 - Heys, Howard M. - A tutorial on linear and differen-
tial cryptanalysis - Cryptologia, vol XXVI(3), 2002, p189–221, United
States Military Academy

2. Tilborg - 2005 - Tilborg, Henk C.A. van (Ed.) - Encyclopedia of


Cryptography and Security, Springer, 2005

3. Atanasiu - 2008 - Atanasiu, A.- Securitatea informaţiei. Vol 1, Edi-


tura Infodata Cluj, 2008

Criptanaliză liniară

4. Matsui - 1992 - Matsui, M., A. Yamagishi - A new method for known


plaintext attack of FEAL cipher. Advances in CryptographyEURO-
CRYPT92, Lecture Notes in ComputerScience, vol. 658, ed. R.A.
Rueppel. Springer-Verlag, Berlin, 8191.

5. Matsui - 1993 - Matsui, M. - Linear cryptanalysis method for DES


cipher - Advances in Cryptology EUROCRYPT93, Lecture Notes in
Computer Science, vol. 765, ed. T. Helleseth. Springer-Verlag, Berlin,
386397.

33
Criptanaliză liniară 34

6. Kaliski, Robshaw - 1994 - Kaliski, B.S. , M.J. Robshaw. Lin-


ear cryptanalysis using multiple approximations. - Advances in Cryp-
tographyCRYPTO94, Lecture Notes in Computer Science, vol. 839,
Springer-Verlag, Berlin, 2639.

7. Matsui - 1994a - Matsui, M. - The first experimental cryptanalysis of


the data encryption standard. Advances in CryptographyCRYPTO94,
Lecture Notes in Computer Science, vol. 839, Springer-Verlag, Berlin,
111.

8. Matsui - 1994b - Matsui, M. - On correlation between the order


of S-boxes and the strength of DES. Advances in CryptologyEURO-
CRYPT94, Lecture Notes in Computer Science, vol. 950, Springer-
Verlag, Berlin, 366375.

9. Nyberg - 1994 - Nyberg, K. - Linear approximations of block ciphers


- Advances in CryptographyEUROCRYPT94, Lecture Notes in Com-
puter Science, vol. 950, Springer-Verlag, Berlin, 439444.

10. Biham - 1995 - Biham, E. - On Matsuis linear cryptanalysis - Ad-


vances in CryptologyEUROCRYRT94, Lecture Notes in Computer Sci-
ence, vol. 950, Springer-Verlag, Berlin, 341355.

11. Shimoyama - 1998 - Shimoyama, T., T. Kaneko. Quadratic relation


of S-box and its application to the linear attack of full round des - Ad-
vances in Cryptology CRYPTO98, Lecture Notes in Computer Science,
vol. 1462, Springer-Verlag, Berlin, 200211.

12. Knudsen - 2001 - Knudsen, L.R. and J.E. Mathiassen. A chosen-


plaintext linear attack on DES - Fast Software Encryption, FSE 2000,
Lecture Notes in Computer Science, vol. 1978, Springer-Verlag, Berlin,
262272.

13. Daemen, Rijmen - 2002 - Daemen, J. V. Rijmen, The Design of


Rijndael: AES - The Advanced Encryption Standard, Springer-Verlag,
Berlin, 2002.

14. Musa - 2003 - Musa, M.A, Schaefer E.F., Wedig S. - A Simplified AES
Algorithm and its Linear and Differential Cryptanalysis , Cryptologia,
vol. 27,. No. 2, pp. 148-177, 2003
Criptanaliză liniară 35

Criptanaliză sistemelor bloc

15. Luby-Rackoff - 1988 - Luby M., C. Rackoff. How to Construct Pseu-


dorandom Permutations and Pseudorandom Functions - SIAM J. Com-
put., vol. 17, 1988, pp. 373-386.

16. Vaudenay - 1996 - Vaudenay, S. On the weak keys of blowfish - Fast


Software Encryption, FSE96, Lecture Notes in Computer Science, vol.
1039, Springer-Verlag, Berlin, 2732.

17. Harpes - 1997 - Harpes, C., J.L. Massey. Partitioning cryptanalysis -


Fast Software Encryption, FSE97, Lecture Notes in Computer Science,
vol. 1267, Springer-Verlag, Berlin, 1327.

18. Vaudenay - 1998 - Vaudenay, S. - Provable Security for Block Ciphers


by Decorrelation - 15th Annual Symposium on Theoretical Aspects of
Computer Science (STACS 8): pp.249275, Paris: Springer-Verlag.

19. Vaudenay - DFC - 1998 - H. Gilbert, M. Girault, P. Hoogvorst, F.


Noilhan, T. Pornin, G. Poupard, J. Stern, S. Vaudenay - Decorrelated
Fast Cipher: an AES candidate”

20. Knudsen, Rijmen - 1999 - Knudsen Lars, Vincent Rijmen - On


the Decorrelated Fast Cipher (DFC) and Its Theory - 6th Interna-
tional Workshop on Fast Software Encryption (FSE 9): pp.8194, Rome,
Springer-Verlag

21. Shimoyama - 1999 - Shimoyama, T., S. Moriai, T. Kaneko, S.Tsujii


-Improved higher order differential attack and its application to Nyberg-
Knudsens designed block cipher. - IEICE Transactions on Fundamen-
tals, E82-A (9), 19711980.

22. Wagner - 1999 - Wagner D, The Boomerang Attack - 6th International


Workshop on Fast Software Encryption (FSE 9́9): pp.156170, Springer-
Verlag

23. Kelsey, Kohno, Schneier - 2000 - Kelsey J., Tadayoshi Kohno,


Bruce Schneier - Amplified Boomerang Attacks Against Reduced-Round
MARS and Serpent - FSE 2000: pp.7593, New York City, Springer-
Verlag
Criptanaliză liniară 36

24. Knudsen - 2000 - Knudsen, L.R. , W. Meier. Correlations in RC6


with a reduced number of rounds - Proceedings of Fast Software Encryp-
tionFSE 2000, Lecture Notes in Computer Science, vol. 1978, Springer-
Verlag, Berlin, 94108.

25. Biham, Dunkelman, Keller - 2001 - Biham E., Orr Dunkelman,


Nathan Keller - The Rectangle Attack Rectangling the Serpent - Ad-
vances in Cryptology, Proceedings of EUROCRYPT 2001: pp.340357,
Innsbruck, Springer-Verlag.

26. Biham, Dunkelman, Keller - 2003 - Biham E., Orr Dunkelman,


Nathan Keller - Rectangle Attacks on 49-Round SHACAL-1 - FSE 3:
pp.2235, Lund, Springer-Verlag.

27. Junod - 2003 - Junod, P., S. Vaudenay. Optimal key ranking pro-
cedures in a statistical cryptanalysis - Fast Software Encryption, FSE
2003, Lecture Notes in Computer Science, vol. 2887, Springer-Verlag,
Berlin

28. Patarin - 2003 - Patarin, J. Luby-Rackoff: 7 Rounds Are Enough for


Security - Lecture Notes in Computer Science, Volume 2729, Oct 2003,
Pages 513 - 529.

29. Vaudenay - 2003 - Vaudenay, S. - Decorrelation: A theory for block


cipher security. - Journal of Cryptology, 16(4), 249286.

30. Biryukov - 2004 - Biryukov, Alex - The Boomerang Attack on 5 and


6-Round Reduced AES - Advanced Encryption Standard AES, 4th
International Conference, AES 2004: pp.1115, Bonn, Springer-Verlag

31. Junod - 2004 - Junod, P. Statistical Cryptanalysis of Block Ciphers,


PhD Thesis, Ecole Polytechnique Federale de Lausanne

32. EMV - 2008 - EMVCo. EMV 4.2, Book 2 - Security and Key Man-
agement, Annex B Approved Cryptographic Algorithms, Iunie 2008

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