2012-04-08 8 views
15

SHA384 è una versione troncata di SHA512. Ma perché qualcuno dovrebbe usarlo? E il corollario: se lo SHA384 è buono come SHA512, c'è qualche razionale nell'usare la versione a 512 bit?Perché scegliere SHA512 su SHA384?

Sto pianificando di utilizzare uno degli algoritmi per verificare l'integrità del file, quindi sono principalmente interessato alla sicurezza di colision.

Sarei felice di sapere come qualcuno utilizza i digest SHA2 in pratica e perché scegliere una versione rispetto all'altra.

+2

SHA224 è una versione troncata di SHA256. Wikipedia elenca SHA224 come "corrispondente alla lunghezza della chiave del DES triplo a due chiavi". Non riesco a trovare una dichiarazione per SHA384, anche se sospetto qualcosa di simile. – Mysticial

risposta

19

Per scopi pratici e per il futuro prevedibile, sia SHA384 che SHA512 sono sufficienti per quasi tutte le immaginabili applicazioni di resistenza alle collisioni. Generalmente, il fattore determinante primario di quale hash si dovrebbe usare, una volta che superiamo i 256 bit e la resistenza alla collisione è infinito per scopi pratici, è solo quanti bit di output avete bisogno. Ad esempio, se hai bisogno dell'hash per generare sia una chiave HMAC a 256 bit che una chiave di crittografia a 128 bit, SHA384 è una scelta naturale. Se hai bisogno del massimo di output possibile per il costo computazionale, ad esempio per l'output di un PRNG o come padding casuale, SHA512 ha senso.

18

SHA256 SHA1 e MD5 sono vulnerabili a length extension attack. SHA224, SHA384 e SHA512 non hanno più un output ridotto allo stato interno, SHA3 non è vulnerabile. Tenendo presente questo, SHA512 e SHA384 sono entrambi una buona funzione di hashing resistente alle collisioni crittografiche.

+0

SHA512 è anche vulnerabile a un attacco di estensione della lunghezza. Da SHA-2 solo SHA224 e SHA834 non lo sono. – Marqin

6

certificati firmati con SHA512 non sembrano lavorare con TLS 1.2 su Windows (see here)

Pertanto, sarò ricreare la mia catena di certificati utilizzando SHA-384 (o Suppongo che potrei usare SHA-256) .

Mentre fortunatamente, non ho ancora rilasciato alcun certs, il thread nella pagina collegata propone una soluzione alternativa a chi è bloccato con SHA-512.

HTH!

Problemi correlati