Che cos'è un algoritmo hash sicuro?
Un algoritmo di hash sicuro, noto anche con l'acronimo SHA, è un algoritmo di hashing considerato crittograficamente sicuro. I dati originali, una volta sottoposti a hash da un algoritmo di hash sicuro, in genere non possono essere ricostruiti con una quantità fattibile di potenza di calcolo. Gli algoritmi di hash sicuri vengono spesso utilizzati in combinazione con altri algoritmi per autenticare i messaggi, comprese le firme digitali.
Alcuni router e firewall di rete implementano algoritmi di hash sicuri direttamente nel loro hardware. Ciò consente di autenticare i pacchetti di dati con un impatto limitato sulla velocità effettiva. Esiste anche un software di algoritmo di hash sicuro, incluse molte implementazioni open source. Il National Institute of Standards and Technology (NIST) degli Stati Uniti e il Canadian Communications Security Establishment (CSE) gestiscono congiuntamente il Cryptographic Module Verification Program (CMVP). Questo programma ufficiale certifica il corretto funzionamento delle implementazioni di algoritmi di hash sicuri per applicazioni sensibili.
Il governo degli Stati Uniti ha standardizzato almeno sei algoritmi di hash sicuri. SHA-0 e SHA-1 furono le prime incarnazioni sviluppate negli anni '90. La serie SHA-2 sviluppata negli anni 2000 includeva SHA-224, -256, -384 e -512. Questi sono progettati in modo tale che due documenti con contenuti diversi generalmente producono due insiemi univoci di valori hash, evitando collisioni hash.
L'algoritmo SHA-0, pubblicato per la prima volta nel 1993 dal NIST, è stato rapidamente interrotto dopo che è stata rilevata una debolezza significativa. È stato sostituito da SHA-1 nel 1995, che include un ulteriore passo computazionale che affronta i problemi non divulgati di SHA-0. Entrambi gli algoritmi contengono un messaggio fino a 2 64 -1 bit in un "digest" a 160 bit. Entrambi utilizzano una dimensione del blocco di 512 bit e una dimensione della parola di 32 bit per il loro funzionamento.
SHA-1 è utilizzato in alcuni protocolli Internet e strumenti di sicurezza comuni. Questi includono IPsec, PGP, SSL, S / MIME, SSH e TLS. Lo SHA-1 viene anche generalmente utilizzato come parte del sistema di protezione per documenti governativi non classificati. Il settore privato utilizza questo algoritmo di hash sicuro anche per alcune informazioni sensibili. Si prevede che sarà ritirato dall'uso delle amministrazioni pubbliche nel 2010.
SHA-224, -256, -384 e -512 sono stati pubblicati dal NIST tra il 2001 e il 2004. Questi quattro algoritmi, noti anche come famiglia SHA-2, sono generalmente più robusti di SHA-1. SHA-224 e SHA-256 utilizzano lo stesso blocco, parola e dimensioni massime dei messaggi di input di SHA-1. Al contrario, SHA-224 produce un digest a 224 bit, mentre SHA-256 crea un digest a 256 bit. SHA-384 e SHA-512 aumentano la dimensione del blocco a 1024 bit, la dimensione della parola a 64 bit e la lunghezza massima del messaggio di input a 2 128 -1 bit. Il digest prodotto da SHA-384 è lungo 384 bit, mentre il digest SHA-512 contiene 512 bit.
Come SHA-0 e SHA-1, la famiglia SHA-2 è stata progettata dalla National Security Agency (NSA) degli Stati Uniti. Sebbene in SHA-2 non siano stati resi noti pubblicamente gravi difetti, NIST ha lanciato un concorso per sviluppare il prossimo algoritmo di hash sicuro. Questo nuovo algoritmo, che si chiamerà SHA-3, sarà probabilmente scelto nel 2012 da una raccolta di voci pubbliche. Si prevede che sarà un nuovo design, non basato sugli algoritmi esistenti.