it-swarm.dev

Sicurezza SHA256: cosa significa che gli attacchi hanno interrotto "46 dei 60 round di SHA256"?

Rapporti di Wikipedia

Attualmente, i migliori attacchi pubblici interrompono 46 dei 64 round di SHA-256 o 46 degli 80 round di SHA-512.

Che cosa significa questo e quanto si prevede che SHA-256 sarà in un futuro concepibile? Per un laico, 46 ​​su 64 possono sembrare circa il "72% rotto". Dato che Bitcoin si affida a SHA-256, è probabile che rimanga sicuro?

31
Random Random

Molti algoritmi crittografici (funzioni hash, crittografia simmetrica ...) sono organizzati come una sequenza di "round", che sono più o meno simili tra loro. È stato empiricamente notato che per una data struttura di algoritmo, di solito, più round implicano più sicurezza; precisamente, alcune classi di attacchi (ad es. differenziale e crittoanalisi lineare ) vedono la loro efficienza diminuire più o meno esponenzialmente con il numero di round.

Quando i crittografi non sanno come interrompere un algoritmo completo, provano a interrompere le versioni ridotte dello stesso algoritmo, con alcune funzionalità rimosse; in particolare meno round, per algoritmi che hanno round. Quando si dice che SHA-256 viene interrotto "fino a 46 round", ciò significa che un'altra funzione hash, ottenuta prendendo SHA-256 ma rimuovendo gli ultimi 18 round, può essere attaccata (almeno in un "modo accademico": l'attacco non deve essere realistico, deve solo essere meno impossibile che attaccare la piena funzione); ma rimuovere solo gli ultimi 17 round produce una funzione che, per quanto ne sappiamo, è buona quanto l'intera cosa. I crittografi si sentiranno più sicuri se il numero massimo di round attaccati è sostanzialmente inferiore al numero effettivo di round nell'intero algoritmo.

Poiché il comportamento dell'efficienza dell'attacco tende ad essere esponenziale nel numero di round, non lineare, questo non può (e non deve) essere tradotto, neppure intuitivamente, in: "può interrompere l'80% dei round -> algoritmo interrotto all'80%". Analogia: supponi di voler aumentare la tua fortuna, raddoppiandola dieci volte. Inizi con un dollaro; dopo dieci raddoppi, avresti 1024 dollari; questo è il tuo obiettivo. Dopo otto doppi, hai 256 dollari. Otto duplicati su dieci: questo è l'80% del lavoro, giusto? Allora come mai hai solo 256 dollari e non l'80% di 1024 dollari (che sarebbe 819,2 dollari)?

Per riassumere , non dovresti provare a leggere troppo in queste asserzioni. Sono risultati scientifici interessanti per gli scienziati, ma facilmente interpretabili.

33
Tom Leek

In primo luogo, per affrontare la parte "72%":

No. Sono più o meno allo stesso livello di sicurezza.

Diamo un'occhiata a un'altra citazione su la pagina :

Esistono due attacchi preimage incrociati nel mezzo contro SHA-2 con un numero ridotto di round. Il primo attacca SHA-256 da 41 colpi su 64 colpi con una complessità temporale di 2253,5 e complessità spaziale di 216e 46 round SHA-512 su 80 round con il tempo 2511,5 e spazio 23. Il secondo attacca SHA-256 a 42 colpi con una complessità temporale di 2251,7 e complessità spaziale di 212e 42 round SHA-512 con il tempo 2502 e spazio 222.

SHA-256 ha una complessità temporale di 2256 rompere normalmente. Riducendolo a 2253,5 è una differenza trascurabile, e sarebbero necessari secoli di tali cambiamenti prima che il cracking SHA sarebbe fattibile.


A proposito di "round":

SHA-256 e SHA-512 sono sostanzialmente una funzione particolare (con costanti diverse per i due algoritmi) applicata più e più volte su un numero. Ogni volta che lo applichi, viene chiamato "round". Ciò che questi ricercatori sembrano aver fatto è stato preso dagli algoritmi SHA per un numero ridotto di round, e crackati che .

8
Manishearth