Documente Academic
Documente Profesional
Documente Cultură
As Doctorat Referat2 CriptanalizaLiniara
As Doctorat Referat2 CriptanalizaLiniara
Criptanaliză liniară
Alexandru SOFRONIA
Coordonator:
Prof. Dr. Adrian ATANASIU
ABSTRACT
Cuvinte cheie: criptanaliză liniară, sisteme de criptare bloc
Keywords: linear cryptanalysis, block ciphers
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
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
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
6 Referinţe 33
Lista de figuri
iv
Capitolul 1
Introducere
1
Criptanaliză liniară 2
de un criptanalist.
Î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ă.
• 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%)
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
7
Criptanaliză liniară 8
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 .
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
Criptanaliză liniară
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.
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
if (T − N2 ) · (p − 21 ) > 0 then
K[k1 , . . . , kc ] = 0
else
K[k1 , . . . , kc ] = 1
end if
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
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.
17
Criptanaliză liniară 18
Întregul S-box poate fi exprimat ca acţiune sub forma unui tabel in-
trare/ieşire, respectiv sub o formă matricială peste 16.
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
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).
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))
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ă.
Folosind faptul că operaţia XOR este comutativă şi folosind relaţiile an-
terioare, putem reformula relatia (IV) ı̂n (IVb).
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:
Î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
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.
Securitate ı̂mpotriva
criptanalizei liniare
29
Criptanaliză liniară 30
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
Referinţe
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
Criptanaliză liniară
33
Criptanaliză liniară 34
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
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
32. EMV - 2008 - EMVCo. EMV 4.2, Book 2 - Security and Key Man-
agement, Annex B Approved Cryptographic Algorithms, Iunie 2008