Differenza tra crittografia SHA e SHA-1
SHA sta per Secure Hash Algorithm, standard di crittografia inventato dalla NSA e pubblicato dal NIST. L'algoritmo SHA originale aveva debolezze nei metodi di crittografia, ed è stato sostituito da SHA-1 per sicurezza più forte.
Secure Hash Algorithm
SHA è una funzione hash crittografica. Prende un testo iniziale non cifrato (plaintext) e produce un numero teoricamente unico che costituisce il messaggio cifrato. SHA crea un numero a 160 bit (tra 0 e 1,46 x 10^48). Non è possibile garantire unicità per tutti i plaintext possibili (teoricamente infiniti), ma le probabilità sono circa 2^80 (1,21 x 10^24) contro collisioni. Se accade, è una "collisione", che fornisce attacco matematico all'algoritmo, permettendo a un crittografo di decifrare il plaintext.
SHA-0 e SHA-1
Dopo la pubblicazione, furono scoperti difetti nell'SHA originale che permettevano attacchi crittografici per produrre collisioni hash, indebolendolo gravemente. Fu sviluppata una versione rivista, SHA-1, che produce gli stessi risultati a 160 bit senza i difetti originali. L'SHA originale fu rinominato retroattivamente SHA-0 per distinguere il suo uso da SHA-1.
Cambiamenti in SHA-1
I difetti originali in SHA-0 non sono mai stati pubblicati, poiché fornirebbero toolkit per attaccare messaggi con SHA-0. L'unica informazione pubblica: collisioni hash più probabili del caso casuale con SHA-0, eliminate con SHA-1. Poiché SHA-1 e SHA-0 producono risultati matematici stessa lunghezza, SHA-1 può sostituire SHA-0 nel software senza grandi riscritture.
SHA-2 e SHA-3
SHA-1 è più robusto di SHA-0, ma lascia spazio a miglioramenti. Un'analisi matematica di SHA-1 ha dimostrato un metodo per rompere la crittografia 2.000 volte più veloce del controllo teorico di tutte le 10^48 combinazioni. Un algoritmo ideale previene miglioramenti di questo tipo. SHA-2 evita questo attacco e aumenta la dimensione hash possibile a 512 bit (1,34 x 10^154). SHA-3, algoritmo ancora più potente, è in sviluppo.