Puncte:1

Ce este un atac diferențial asupra unei funcții hash? Cum ar ataca un algoritm SHA și ce s-ar realiza?

drapel cn

În prezent, am fost desemnat să atac o versiune redusă a SHA-1. Ce încercăm să realizăm? Cum îl atacăm?

kelalaka avatar
drapel in
Căutare mică [Atacul diferențial de ordin superior la Reducere SHA-256](https://eprint.iacr.org/2011/037.pdf) și definiții există...
drapel cn
@kelalaka Am citit această lucrare. Din păcate, mi-a fost prea greu să înțeleg. M-am gândit că cineva ar putea explica pe scurt. Multumesc pentru ajutor!
Puncte:1
drapel in

Raspunsul nu este usor, insa, un bun punct de plecare este Lucrarea lui Florent Chabaud și Antoine Joux despre SHA-0 și SHA-1

Introducere simplă

În MD4, SHA-0, SHA-1 și SHA-2 există o funcție de compresie. $$C:\{0,1\}^\ell \to :\{0,1\}^n$$ Unde $n$ este dimensiunea de ieșire și $\ell$ este lungimea blocului de procesat.

Funcția de compresie $C$ poate fi privit ca un cifru bloc în care cheia este mesajul, acest lucru este semnificativ deoarece singura parte este intrarea.Și, SHACAL este numit cifrul bloc al SHA-1 și, în mod similar, SHACAL-2 pentru SHA-2.

Acum, avem un cifru bloc și avem intrarea (valorile inițiale $H_i$s și valoarea de ieșire (hash - digest). Trebuie să găsim cheia. Dacă putem găsi cheia, avem atacuri și coliziuni pre-imagine. Acest lucru ar putea conduce să considerăm că atacăm ca în atacurile diferențiale, nu tocmai, ci într-un mod similar.

Autorii au început mai întâi cu SHA-1 slăbit (SHI1) în care expansiunea de intrare nu este luată în considerare și ADD este convertit în X-sau astfel încât să nu existe o parte neliniară. Cu perturbații pe un singur bit și corecții la intrări, ei au arătat că găsesc coliziuni cu o mască.

introduceți descrierea imaginii aici

Mai târziu, singurul ADD convertit la X-sau (SHI2) pentru a extinde atacul. Ei găsesc o masca diferentiala $\mathcal{M}$ care poate fi aplicat textului simplu (input) pentru a găsi coliziuni.

   lookRandomCollision(h, bloc):
      m = ramdom_message(1-bloc).
      h = Hash(m)
      m' = masca (m)
      h' = Hash(m')
      Dacă h=h':
         întoarcere (m)
      altceva: 
         întoarce -1

    în timp ce (1):
        aspect de succesRandomCollision(SHA-1, 512)
        dacă seccess != -1:
            print("Perechea de coliziune este - ", m, mask(m))

Succesul atacului este probabilitatea de succes a măștii $\mathcal{M}$ a introduce coliziuni. Dacă probabilitatea de succes a măștii este $1/t$ apoi în jur $c\cdot t$ perechi aleatoare se vor găsi ciocnirea.

După acestea, se uită la SHA-0 și SHA-1 real pentru a găsi o astfel de mască. Găsesc unul pentru SHA-0 cu $2^{61}$-timp de complexitate. Masca pe care au găsit-o pentru SHA-1 nu are o complexitate bună decât coliziunea generică, adică are complexitate $> 2^{80}$.

Articolul este bine scris din înțelegerea atacului de la funcția de compresie de nivel scăzut (fără parte neliniară) la funcția de nivel superior care include neliniaritatea.

Și, cu mare probabilitate, NSA era conștientă de acest lucru, așa că au modificat extinderea intrării lui SHA-0 pe SHA-1 cu o introducere a rotației.

De ce este periculos

Luați în considerare cazul în care SHA-1 este rupt, avem un(e) bloc(e) de prefix $P$ și blocuri de sufix $S$ și căutăm o coliziune

$$Hash(P\mathbin\| m \mathbin\|S) = Hash(P\mathbin\| m' \mathbin\|S)$$

Dacă putem găsi o mască diferențială bună $\mathcal{M}$ cu probabilitate bună atunci putem executa atacul asupra blocului $m$. Dacă o parte a fișierului face parte din redundanță ca în fișierele PDF, atunci se pot crea două PDF-uri diferite care au aceleași valori hash. Un pericol real, desigur, necesită mai mult decât atât. Schimbarea în $m'$ are un avantaj pentru semnatar. Acest lucru poate fi, de asemenea, realizabil.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.