atac de naștere

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Un atac de naștere este un tip de criptografic de atac utilizat pentru criptanaliza algoritmilor de criptare; este așa - numita deoarece exploatează principiile matematice ale paradoxului ziua de naștere în teoria probabilităților .

Atacul ziua de nastere poate fi rezumat după cum urmează: având în vedere o funcție f, scopul atacului este de a găsi 2 numere astfel încât . O astfel de pereche de valori se numește o coliziune . Metoda utilizată pentru a găsi o coliziune este pur și simplu pentru a evalua funcția f pentru diferite de intrare valori care pot fi alese în mod aleatoriu sau pseudo-aleatoriu , până se obține același rezultat. Datorită paradoxului ziua de nastere aceasta metoda poate fi foarte eficient: în mod specific, în cazul în care o funcție returnează valorile gamei sale cu probabilitate identică și mărimea gamei (Adică numărul de valori posibile) este suficient de mare, după evaluarea funcției de aprox argumente diferite, există o șansă de 50% de a obține o pereche de valori distincte Și pentru care este în valoare de .

principii matematice

Pictogramă lupă mgx2.svg Același subiect în detaliu: Zi de nastere paradox .

Să considerăm următorul experiment. Dintr-un set de valori noi alegem valori uniform la întâmplare, astfel, de asemenea, permițând repetiții ale aceleași. Sa spunem probabilitatea ca cel puțin o valoare este aleasă mai mult decât o dată în timpul experimentului. Probabilitatea poate fi aproximată la

Să presupunem că acum ca cel mai mic număr de valorile pe care le-am ales, astfel încât probabilitatea ne putem aștepta să găsească o coliziune este de cel puțin . Răsturnând expresia de mai sus, vom găsi următoarele aproximarea

și atribuirea probabilitatea de a găsi o coliziune la 0,5 vom ajunge la

.

Sa spunem cum ar fi numărul așteptat de valori noi trebuie să aleagă înainte de a găsi prima coliziune. Numărul poate fi aproximată prin

Ca un exemplu, în cazul în care un 64- bit este utilizat hash, există aproximativ 1,8 x 10 19 rezultate diferite. Dacă acestea sunt toate la fel de probabile (cel mai bun), atunci va dura aproximativ „doar“ 5.1 × 10 9 încercări de a genera o coliziune folosind forta bruta . Această valoare se numește constrângere pentru ziua de naștere și coduri de biți n- poate fi calculată ca [1] . Alte exemple sunt următoarele:

Pic Posibil
rezultate
(H)
probabilitate dorită de coliziune aleatorii (p)
10 −18 10 −15 10 −12 10 −9 10 −6 0,1% 1% 25% 50% 75%
32 4,3 × 10 9 2 2 2 2.9 93 2,9 x 10 3 9,3 x 10 3 5,0 x 10 4 7,7 x 10 4 1,1 × 10 5
64 1.8 × 10 19 6.1 1,9 x 10 2 6,1 x 10 3 1,9 x 10 5 6,1 x 10 6 1,9 x 10 8 6,1 × 10 8 3,3 × 10 9 5,1 x 10 9 7,2 × 10 9
128 3.4 × 10 38 2,6 x 10 10 8,2 × 10 11 2,6 x 10 13 8,2 × 10 14 2,6 x 10 16 8,3 × 10 17 2,6 x 10 18 1.4 × 10 19 2.2 × 10 19 3,1 × 10 19
256 1.2 x 10 77 4.8 x 10 29 1,5 × 10 31 4.8 x 10 32 1,5 × 10 34 4.8 x 10 35 1,5 x 10 37 4.8 x 10 37 2,6 x 10 38 4,0 × 10 38 5,7 x 10 38
384 3.9 x 10 115 8,9 × 10 48 2,8 × 10 50 8.9 × 10 51 2,8 × 10 53 8,9 x 10 54 2,8 × 10 56 8,9 × 10 56 4.8 x 10 57 7,4 × 10 57 1,0 × 10 58
512 1.3 x 10 154 1,6 × 10 68 5,2 x 10 69 1,6 x 10 71 5,2 x 10 72 1,6 × 10 74 5,2 x 10 75 1,6 × 10 76 8,8 × 10 76 1,4 x 10 77 1.9 x 10 77
Arată tabelul numărul hashes n (p) este necesar pentru a obține probabilitatea specificată de succes, presupunând că toate hashes sunt egal posibile. Ca o comparație, rata nerectificabile bit eronată a unui hard disk variază de la 10 -18-10 -15 [1] . În teorie, MD5 , cu hash de 128 de biți lung, ar trebui să intre în acel interval de până la 820 de miliarde de documente, cu toate că rezultatele sale posibile sunt mult mai mult.

Implicații în criptografie

Este ușor de observat că, dacă ieșirile functiei sunt distribuite inegal, atunci o coliziune poate fi găsit mult mai rapid. Noțiunea de echilibrare o funcție hash cuantifică rezistența la funcția de la atacuri de ziua de naștere și ne permite să se estimeze vulnerabilitatea populare hash - uri , cum ar fi MDX și SHA ( Bellare și Kohno, 2004 ).

Semnăturile digitale pot fi vulnerabile la un atac ziua de nastere. Un mesaj acesta este, în general, semnat înainte de a calcula , unde este este o funcție criptografică de hashing , și apoi folosind unele cheie secretă pentru semn . Să presupunem că Oscar vrea să păcălească Bob în semnarea unui contract fraudulos. Oscar pregătește un contract corectă și unul necinstit. Oscar găsește apoi un număr de puncte în contract pentru care acesta poate fi modificat fără a schimba sensul, de exemplu, prin introducerea virgule, linii goale, una sau două spații după o propoziție, înlocuind sinonime, etc. Prin combinarea acestor modificări, Oscar poate crea un număr semnificativ de variații ale care sunt, practic, toate contractele corecte. În mod similar, se creează, de asemenea, un număr mare de variante ale contractului fraudulos . În cele din urmă, Oscar hashes toate aceste variante până când găsește o variantă a contractului corectă și o variantă a celui fraudulos, care au aceeași valoare hash, adică . În acest moment, Oscar prezintă Bob cu versiunea corectă pentru semnare. După ce Bob îl semnează, Oscar ia semnătura și acordă-o la contractul fraudulos. Acum semnătura „dovedește“ că Bob a semnat contractul fraudulos.

Acest mod de funcționare diferă puțin de paradoxul ziua de naștere original ca Oscar câștigă nimic de la obtinerea două contracte de drepturi sau două contracte frauduloase cu același hash. strategia optimă Oscar este aceea de a genera perechi formate dintr-un corectă și un singur contract fraudulos. Oscar compară fiecare pereche nou generat cu toți ceilalți, adică compară hash copia corect cu hash de toate copiile frauduloase anterioare, și noul contract fraudulos cu rosturi ale lemnului tuturor contractelor corecte anterioare (fără a se deranja să compare hash contract de frauduloase generate cu toate contractele de rosturi ale lemnului frauduloase anterioare, nici hash contractului corect generate cu toate contractele de rosturi ale lemnului corecte anterioare). Ecuațiile paradox ziua de nastere aplica cu n luând valoarea numărului de perechi (numărul de hashes care Oscar trebuie să genereze este 2n).

Pentru a evita acest atac, lungimea ieșirii unei funcții hash utilizate într - o schemă de semnătură digitală trebuie să fie suficient de mare , astfel încât atacul ziua de nastere devine computațional impracticabil: de obicei, suntem pe ordinea de două ori numărul de biți necesari pentru a preveni o clasic atac brute force.

Algoritmul rho Pollard este un exemplu de un algoritm care utilizează un atac de ziua de nastere pentru a calcula logaritmi discreți .

Notă

  1. ^ Jacques Patarin, Audrey Montreuil: Benes și Fluture scheme Revisited - 2005

Bibliografie

Elemente conexe

linkuri externe