Criptanaliza diferențială este o metodă de criptoanaliza a cifrurilor bloc simetrice (și a altor primitive criptografice , în special, funcțiile hash și cifrurile de flux ).
Criptanaliza diferențială se bazează pe studiul transformării diferențelor dintre valorile criptate în diferite runde de criptare . Ca diferență, de regulă, se utilizează operația de însumare pe biți modulo 2 , deși există atacuri cu calculul diferenței modulo . Este un atac statistic. Aplicabil pentru spargerea DES , FEAL și a altor cifruri, de regulă, dezvoltate mai devreme de începutul anilor 90. Numărul de runde de cifruri moderne ( AES , Camellia etc.) a fost calculat ținând cont de securitate , inclusiv de criptoanaliza diferențială.
Criptanaliza diferențială a fost propusă în 1990 de experții israelieni Eli Biham și Adi Shamir pentru a sparge criptosisteme precum DES. În munca lor, ei au arătat că algoritmul DES s-a dovedit a fi destul de rezistent la această metodă de criptoanaliza și orice cea mai mică modificare a structurii algoritmului îl face mai vulnerabil.
În 1994, Don Coppersmith de la IBM a publicat un articol [1] în care afirmă că metoda de criptoanaliza diferențială era cunoscută de IBM încă din 1974, iar unul dintre obiectivele dezvoltării DES a fost protejarea împotriva acestei metode. IBM avea secretele sale. Coppersmith a explicat:
Designul a profitat de anumite metode criptoanalitice, în special metoda „criptanaliza diferențială”, care nu a fost publicată în literatura de specialitate. După discuții cu NSA , s-a decis că dezvăluirea procesului de proiectare ar dezvălui și o metodă de criptoanaliza diferențială a cărei putere ar putea fi folosită împotriva multor cifruri. Acest lucru, la rândul său, ar reduce avantajul SUA față de alte țări în domeniul criptografiei.
DES sa dovedit a fi rezistent din punct de vedere criptografic la criptoanaliza diferențială, spre deosebire de alte cifruri. Deci, de exemplu, cifrul FEAL s -a dovedit a fi vulnerabil . Un FEAL-4 cu 4 runde poate fi spart cu doar 8 texte clare alese și chiar și un FEAL cu 31 de runde este vulnerabil la atac.
În 1990, Eli Biham și Adi Shamir , folosind criptoanaliza diferențială, au găsit o modalitate de a sparge DES care era mai eficientă decât forța brută. Lucrând cu perechi de texte cifrate ale căror texte clare au anumite diferențe, oamenii de știință au analizat evoluția acestor diferențe pe măsură ce textele clare trec prin etapele DES .
Metoda de bază a criptoanalizei diferențiale este atacul de text simplu ales adaptiv , deși are o extensie pentru atacul de text clar . Pentru a efectua atacul, se folosesc perechi de texte clare legate printr-o anumită diferență. Pentru sistemele DES și asemănătoare DES, este definit ca SAU exclusiv (XOR) . La decriptare, este necesară doar valoarea perechilor de text cifrat corespunzătoare.
Diagrama prezintă funcția Feistel . Fie și o pereche de intrări care diferă cu . Ieșirile corespunzătoare acestora sunt cunoscute și egale cu și , diferența dintre ele este . Permutația cu extensie și -bloc sunt de asemenea cunoscute, prin urmare, și sunt , de asemenea, cunoscute . și sunt necunoscute, dar știm că diferența lor este , deoarece diferențele c și sunt neutralizate. Singurele elemente neliniare din circuit sunt blocurile. Pentru fiecare -bloc, puteți stoca un tabel, ale cărui rânduri sunt diferențele la intrarea blocului -, coloanele sunt diferențele la ieșire, iar la intersecție - numărul de perechi care au dat intrare și ieșire. diferențe și undeva unde să stocați aceste perechi în sine.
Deschiderea tastei rotunde se bazează pe faptul că, pentru o anumită valoare, nu toate valorile sunt la fel de probabile, dar combinația dintre și ne permite să asumăm valorile și . Pentru cunoscut și acest lucru ne permite să determinăm . Cu excepția tuturor informațiilor necesare pentru ultima rundă, sunt conținute în perechea finală de texte cifrate.
După determinarea cheii rotunde pentru ultimul ciclu, devine posibilă decriptarea parțială a textelor cifrate și apoi utilizarea metodei de mai sus pentru a găsi toate cheile rotunde.
Pentru a determina posibilele diferențe ale textelor cifrate primite la runda a I-a, se folosesc caracteristicile rotunde .
Caracteristica N-rundă este un tuplu , compus din diferențe de text simplu , diferențe de text cifrat și un set de diferențe în rezultatele de criptare intermediare pentru fiecare rundă trecută.
Caracteristicii i se atribuie o probabilitate egală cu probabilitatea ca o pereche aleatorie de texte clare cu o diferență ca urmare a criptării cu chei aleatoare să aibă diferențe rotunde și diferențe de text cifrat care se potrivesc cu cele specificate în caracteristică. O pereche de texte deschise corespunzătoare caracteristicii se numește „corect” . Perechile de texte deschise care nu corespund caracteristicii sunt numite „incorecte” .
Să luăm valoarea diferenței de texte la ieșirea penultimului ciclu, utilizată la determinarea posibilei subchei a ultimei runde, . Într-un astfel de caz, perechea „corectă” de texte determină cheia corectă, în timp ce perechea „greșită” determină o cheie aleatorie.
Într-un atac, mai multe caracteristici sunt de obicei utilizate simultan. Structurile sunt utilizate în mod obișnuit pentru a conserva memoria.
Pentru toate opțiunile cheie, puteți crea contoare, iar dacă vreo pereche sugerează această opțiune ca o cheie validă, vom crește contorul corespunzător. Cheia care corespunde celui mai mare numărător are o mare probabilitate de a fi corectă.
Pentru schema noastră de calcul, raportul dintre numărul de perechi corecte S și valoarea medie a contorului N va fi numit raport semnal-zgomot și va fi notat cu .
Pentru a găsi cheia corectă și a vă asigura că sunt prezente perechile corecte, trebuie să:
Numărul de perechi necesare este determinat de:
Lăsați dimensiunea cheii să fie k biți, atunci avem nevoie de contoare. În cazul în care un:
atunci valoarea medie a contorului N este:
Dacă este probabilitatea caracteristicii, atunci numărul de perechi corecte S este egal cu:
Atunci raportul semnal-zgomot este:
Rețineți că pentru schema noastră de proiectare, raportul semnal-zgomot nu depinde de numărul total de perechi. Numărul de perechi valide necesare este, în general, o funcție a raportului semnal-zgomot . Sa stabilit experimental că dacă S/N=1-2 , sunt necesare 20-40 de apariții ale perechilor corecte. Dacă raportul este mult mai mare, atunci chiar și 3-4 perechi corecte pot fi suficiente. În sfârșit, când este mult mai mic, numărul de perechi necesar este enorm.
S/N | Numărul de perechi necesar |
---|---|
mai putin de 1 | Veliko |
1-2 | 20-40 |
mai mult de 2 | 3-4 |
Odată cu creșterea numărului de runde, complexitatea criptoanalizei crește, dar rămâne mai mică decât complexitatea căutării exhaustive atunci când numărul de cicluri este mai mic de 16.
Dependență de numărul de runde | |
---|---|
Numărul de runde | Complexitatea atacului |
Designul S-box-urilor afectează, de asemenea, în mod semnificativ eficiența criptoanalizei diferențiale. Cutiile DES S, în special, sunt optimizate pentru rezistența la atac.
În timp ce DES complet cu 16 runde a fost proiectat inițial pentru a fi rezistent la criptoanaliza diferențială, atacul s-a dovedit de succes împotriva unui grup larg de cifruri asemănătoare DES [2] .
Criptanaliza diferențială este aplicabilă și împotriva funcțiilor hash .
După publicarea lucrărilor despre criptoanaliza diferențială la începutul anilor 1990, cifrurile ulterioare au fost concepute pentru a fi rezistente la acest atac.
Metoda criptoanalizei diferenţiale este în mare măsură o realizare teoretică. Aplicarea sa în practică este limitată de cerințe mari de timp și volum de date.
Fiind în primul rând o metodă de atac aleasă în text simplu, criptoanaliza diferențială este dificil de implementat în practică. Poate fi folosit pentru a ataca cu text clar cunoscut, dar în cazul unui DES cu 16 runde, acest lucru îl face chiar mai puțin eficient decât un atac cu forță brută.
Metoda necesită o cantitate mare de memorie pentru a stoca cheile candidate. Eficiența metodei depinde, de asemenea, puternic de structura cutiilor S ale algoritmului piratat.