Criptanaliza integrală este o metodă de criptoanaliza care combină o serie de atacuri asupra algoritmilor criptografici bloc simetric . Spre deosebire de criptoanaliza diferențială , care ia în considerare efectul unui algoritm asupra unei perechi de texte clare, criptoanaliza integrală implică studiul mapării unui set de texte clare într-un text cifrat . Aplicat pentru prima dată în 1997 de către Lars Knudsen .
În articolele științifice, termenul de „ criptanaliza integrală ” a fost propus în 1999 în publicația Integral cryptanalysis of SAFER + (engleză) . Conceptul în sine a fost exprimat pentru prima dată de Lars Knudsen când a analizat cifrul Square în 1997. Din acest motiv, termenul „Square-like attacks” sau pur și simplu „Square-atack” este adesea folosit în literatură. Pentru 2011, nu există un progres revoluționar în ceea ce privește atacul Square în domeniul criptoanalizei integrale.
Fie un grup abelian finit . Apoi, luând blocul 1 ca ansamblu de texte cifrate posibile (în cazul general, acesta este determinat de alfabetul ales și dimensiunea blocului), putem considera un grup de forma următoare, cu aceeași operațiune de grup: . Mulțimea spațiului n-dimensional astfel construit este mulțimea tuturor textelor cifrate posibile. În consecință, elementul spațiu este un anumit text cifrat, componentele acestui vector sunt valoarea blocurilor de text cifrat. Presupunem că suma vectorilor este un vector ale cărui componente sunt egale cu sumele componentelor corespunzătoare ale termenilor. Integrala multime este suma tuturor vectorilor incluși în : .
Criptanaliza integrală de succes ar trebui să reducă numărul de iterații de estimare a cheii . Pentru a face acest lucru, încercăm să grupăm vectorii de text simplu, astfel încât, pe baza grupării, să poată fi găsite orice tipare. Este convenabil să studiezi algoritmii bazați pe următoarea partiție:
unde este un număr fix, (vector)
Următoarea teoremă [1] joacă un rol cheie :
Fie un grup abelian finit . Notați , iar ordinea lui g este egală cu 1 sau 2. Definiți . Apoi . În plus,
Este de remarcat un rezultat important al teoremei: dacă ), atunci , deoarece
Remarcăm o serie de notații care sunt adesea folosite în publicațiile despre atacuri bazate pe criptoanaliza integrală:
Luați în considerare modul în care integralele peste S se schimbă dacă toate elementele acestei mulțimi sunt alimentate la intrarea rețelei Feistel. Fie S un set de texte cifrate în care toate blocurile corespunzătoare, cu excepția unuia, sunt aceleași (pot diferi unul de celălalt). În exemplu, textul cifrat este de 16 blocuri dispuse în 2 linii. Pentru cifrurile precum AES , este de asemenea important să se ia în considerare faptul că textul cifrat este dat de o matrice, deoarece folosesc operații diferite pentru rânduri și coloane. Luați în considerare efectul celulelor Feistel în etape:
Chiar și aplicabil exemplului descris, este posibil să se reducă semnificativ numărul de iterații pentru selecție sau să se furnizeze informații suplimentare pentru diferite tipuri de criptoanaliza.
Ca și în cazul criptoanalizei diferențiale, atacurile bazate pe integrale pot fi clasificate ca un tip de atac bazat pe text simplu ales adaptiv .
Lars Knudsen a remarcat, de asemenea, asemănarea cu atacul diferențial trunchiat , care are ideea de a lua în considerare comportamentul nu a întregii diferențe, ca în criptoanaliza diferențială, ci a părților sale. Mai mult, criptoanaliza integrală are superioritate în capacitatea sa de a considera a treia stare a rezultatului - , în timp ce atacul diferenţialelor trunchiate distinge doar două.
Pentru a ataca diferențialele de ordin înalt , puteți vedea că în câmpul Galois, expresia pentru diferența de ordin al s -lea este similară cu integrala [3] . Astfel, se poate încerca să generalizeze unele metode de criptoanaliza diferențială la cele integrale.
Este de remarcat faptul că atacurile diferențialelor trunchiate și diferențialele de ordin înalt au fost, de asemenea, publicate pentru prima dată de Lars Knudsen în 1994, tot la conferința FSE [4]
Atacurile asupra cifrurilor asemănătoare AES ( Rijndael , SQUARE , CRYPTON ) pot fi generalizate prin primul pas - luarea în considerare a integralelor după a treia rundă de criptare. Pașii suplimentari sunt încercările de îmbunătățire a atacului prin creșterea numărului de runde, folosind diverse ipoteze care inevitabil crește numărul de iterații ale căutării, prin urmare și complexitatea ruperii.
Punctele cheie ale criptării matricei de octeți sunt transformarea neliniară, deplasarea rândurilor, transformarea coloanei, adăugarea de text (matricea de octeți intermediară) cu matrice de cheie rotundă.
Luați în considerare un text simplu de șaisprezece octeți . Fie ca criptoanalistul să aibă la dispoziție 256 de texte cifrate cu următoarea proprietate: ele sunt obținute din matrice de octeți în care toți octeții cu excepția unuia sunt aceiași în mulțimea acestor texte cifrate. Datorită numărului lor, putem spune că un octet „inegal” va prelua toate valorile posibile pe un anumit set. Astfel, putem merge la notația de mai sus:
Luați în considerare starea textului după fiecare rundă:
Deci, după prima rundă:
După a doua rundă:
Folosind rezultatul teoremei descrise în secțiunea de teorie, obținem valorile integralelor din fiecare octet
Deoarece în ultima rundă nu există o transformare a coloanei (conform specificației AES), iar transformările rămase sunt convertite în , atunci pentru schema cu patru runde, ca urmare a ultimei runde, valoarea integralei nu se modifică până la stadiul de adăugare binară cu o cheie rotundă. În acest caz, tot ce rămâne este ca fiecare octet să-și asume valoarea octetului corespunzător cheii rotunde, să obțină textul estimat al rundei a 3-a și să verifice dacă integrala blocului corespunzător este egală cu zero. Dacă este egal, atunci octetul cheie rotund poate fi considerat găsit.
Extinderi după numărul de rundeSchema poate fi extinsă la o schemă cu șapte runde, luând în considerare ce depinde transformarea integralei de un anumit octet. Totuși, chiar și în cazul a 7 runde, numărul de iterații necesar este mare, în acest caz legăturile dintre cheile rotunde sunt căutate prin analiza schemei de generare a codului. [5]
Îmbunătățiri ale resurselor criptografuluiReduceți semnificativ timpul necesar pentru căutarea cheilor, datorită organizării speciale a condițiilor de căutare, folosind vectori de trei octeți, permite introducerea așa-numitei sume parțiale. O astfel de modificare pentru un cifru cu șase runde reduce puterea de enumerare de la la . O altă abordare este să folosiți faptul că integrala peste seturi cu altele diferite dispare și după râvnita rundă a treia. Această metodă necesită o cantitate imensă de resurse de memorie și deținerea unei baze foarte mari de text simplu - text cifrat. [6]
Folosind sume parțiale, este posibil să se implementeze un hack al sistemului cu opt runde, dar complexitatea acestui hack este chiar mai mare decât cea a enumerarii exhaustive .
Atacul de bază asupra cifrului Square este practic același cu atacul în patru runde pe AES, de asemenea, vă permite să extindeți numărul de runde. Poate singura diferență semnificativă este prezența primei runde de criptare și, ca urmare, două metode de extindere (una spre ultima rundă, cealaltă către prima). Dezvoltatorii cifrului, în timp ce îl cercetau, au reușit să construiască un atac asupra criptării în șase runde .
Au fost publicate următoarele rezultate [7] :
Atac | Numărul de texte deschise | Timp | Costul memoriei |
Pentru 4 runde | Puțini | ||
Pentru 5 runde în primul mod | puţini | ||
Pentru 5 runde în a 2-a cale | |||
Pentru 6 reprize |