it-swarm-eu.dev

Che cos'è SHA-3 e perché l'abbiamo cambiato?

Il 2 ottobre il NIST ha deciso che SHA-3 è il nuovo algoritmo di hashing standard, questo significa che dobbiamo smettere di usare SHA-2 perché non è sicuro?

Che cos'è comunque questo SHA-3?

60
Lucas Kauffman

La competizione di hash SHA- è stata un processo aperto attraverso il quale il NIST ha definito una nuova funzione di hash standard (standard per gli usi federali statunitensi, ma le cose sono tali che probabilmente diventerà un mondo de di fatto standard). Il processo è stato avviato nel 2007. A quel tempo, erano stati rilevati una serie di punti deboli e attacchi ai predecessori delle funzioni SHA-2 (SHA-256, SHA-512 ...), vale a dire MD5 e SHA-1, quindi si temeva che SHA-256 sarebbe presto stato "rotto" o almeno indebolito. Poiché la scelta e la specifica di una primitiva crittografica richiede tempo, NIST ha iniziato il processo SHA-3, con l'intenzione non espressa ma chiaramente compresa di trovare un sostituzione per SHA-2.

SHA-2 si è rivelato più robusto del previsto. Non sappiamo davvero perché; ci sono alcuni argomenti a metà (l'espansione del messaggio non è lineare, la funzione accumula il doppio delle operazioni elementari rispetto a SHA-1 ...) ma c'è anche il sospetto che SHA-256 sia rimasto illeso perché tutti i ricercatori erano impegnati lavorando sui candidati SHA-3. Ad ogni modo, con SHA-2 Doom apparentemente rimandato indefinitamente, NIST ha spostato i suoi obiettivi e invece di scegliere un sostituzione, hanno definito un piano di backup: una funzione che può essere conservato in un armadio di vetro, da utilizzare in caso di emergenza. Di conseguenza, performance ha perso gran parte della sua rilevanza.

Ciò evidenzia la scelta di Keccak : tra i finalisti del concorso, la funzione era la più diversa sia da SHA-2 che da AES; così ridusse il rischio che tutti gli algoritmi crittografici standard venissero interrotti simultaneamente e che il NIST fosse metaforicamente catturato con il loro kilt giù.

Non essere frettoloso: non solo SHA-2 sta ancora bene (sia ufficialmente che scientificamente), ma SHA-3 è solo annunciato: ci vorranno ancora alcuni mesi prima di poter ottenere una specifica (sebbene possiamo preparare implementazioni basate su ciò che è stato presentato per la competizione). Cosa deve essere fatto ora (e avrebbe dovuto essere fatto un decennio fa, in realtà) è preparare protocolli e applicazioni per agilità algoritmo , ovvero la possibilità di cambiare funzione in caso di necessità (nello stesso modo in cui SSL/TLS ha "suite di crittografia").

58
Thomas Pornin

C'è almeno un utilizzo per cui SHA-2 è apparentemente migliore di SHA-3 e cioè key stretching .

SHA-3 è stato progettato per essere molto efficiente nell'hardware ma è relativamente lento nel software. SHA-3 impiega circa il doppio del tempo rispetto a SHA-2 per l'esecuzione nel software e circa un quarto del tempo per l'esecuzione nell'hardware.

Poiché SHA-3 impiega il doppio del tempo per l'esecuzione nel software, se si desidera lo stesso tempo di gestione della password sul server, è necessario eseguire la metà del numero di iterazioni. Ma gli aggressori possono utilizzare un'implementazione hardware per decifrare le password. A causa di ciò, gli aggressori possono decifrare le password con hash SHA-3 otto volte più velocemente delle password con hash SHA-2 - 2 volte più veloci perché dobbiamo dimezzare il numero di iterazioni di hash e 4 volte più veloci perché l'hardware SHA-3 è più veloce di SHA-2 hardware.

10

Il 2 ottobre 2012, il NIST ha deciso quale algoritmo sarebbe stato utilizzato per eseguire l'hash. Questo era l'algoritmo di Keccak.

L'algoritmo di Keccak si basa su strategia della spugna ermetica . È il nuovo algoritmo standard. Utilizziamo standard per garantire una migliore compatibilità.

Keccak è stato progettato da Guido Bertoni, Joan Daemen (uno dei creatori di AES), Michaël Peeters e Gilles Van Assche. Lo hanno costruito in base al loro algoritmo di Radiogatùn .

Questo significa che SHA-2 non è sicuro? Nessuno SHA-2 è ancora considerato sicuro, sappiamo solo che in futuro non sarà più sicuro e abbiamo bisogno di garanzie che ci sarà un'alternativa disponibile. Inoltre, non vogliamo passare da un giorno all'altro, quindi hanno già standardizzato un nuovo algoritmo di hashing, in modo che le persone possano avere il tempo di cambiare e che sappiamo di avere un algoritmo sicuro quando ne abbiamo bisogno.

6
Lucas Kauffman

Un vantaggio che vedo di SHA-3 su SHA-1 e SHA-2 è che non è sensibile agli attacchi di estensione. Ciò significa che i protocolli basati su di esso (ad es. MAC) sono intrinsecamente più robusti.