Che cos’è un algoritmo hash sicuro?

Un algoritmo di hash sicuro, spesso noto semplicemente come “SHA”, è un algoritmo di hashing considerato crittograficamente sicuro. In generale, le funzioni di hashing vengono utilizzate per ordinare e organizzare i dati digitali in pacchetti più piccoli e più categorizzati. Gli algoritmi sono i programmi che guidano le funzioni e la sicurezza di questi algoritmi è importante in quanto controlla la facilità con cui i dati possono essere sbloccati e riorganizzati. Quanto devono essere sicure le cose di solito dipende dalle circostanze. Molti sviluppatori di software e codice vogliono algoritmi impenetrabili perché i loro metodi per ordinare gli argomenti e disegnare le connessioni sono proprietari e li usano per fare soldi. In altri casi i dati stessi sono altamente sensibili, come spesso accade con cose come cartelle cliniche o certi documenti governativi. I meccanismi effettivi degli SHA tendono ad essere molto complicati e di solito è richiesto almeno un certo grado di esperienza tecnica per comprendere appieno come funzionano e come sono sviluppati. Come la maggior parte delle cose tecnologiche, c’è stata anche un’evoluzione verso l’alto nello sviluppo; i modelli precedenti sono stati in gran parte sostituiti e vengono introdotti quasi costantemente design più recenti e più sicuri.

Comprensione degli algoritmi hash in generale

Il moderno panorama digitale contiene centinaia di milioni di punti dati, che occupano tutti una rete di interconnessione e punti in comune, sia attraverso i siti Web che nella sfera sociale quando si tratta di messaggi e post generati dagli utenti. L’hashing è un modo per amalgamare dati simili o correlati in modo tale da formare una sorta di compendio o un “web all’interno di un web” più piccolo e più correlato. Gli algoritmi di hashing sicuri cercano di farlo organizzandosi in modo efficiente e sicuro.

I dati originali, una volta hash da un SHA, in genere non possono essere ricostruiti senza un’enorme quantità di potenza di calcolo. Gli algoritmi sicuri vengono spesso utilizzati in combinazione con altri algoritmi per autenticare i messaggi, comprese le firme digitali.

Come sono implementati

Alcuni router e firewall di rete implementano gli SHA direttamente nel loro hardware. Ciò consente di autenticare i pacchetti di dati con un impatto limitato sul throughput. Il software appositamente progettato è un’altra opzione, incluse molte implementazioni open source. Ad esempio, il National Institute of Standards and Technology (NIST) degli Stati Uniti e il Canadian Communications Security Establishment (CSE) gestiscono congiuntamente il programma di verifica del modulo crittografico (CMVP). Questo programma ufficiale certifica il corretto funzionamento di implementazioni di algoritmi sicuri per applicazioni sensibili.
Standardizzazione
Il governo degli Stati Uniti ha standardizzato almeno sei algoritmi hash sicuri. SHA-0 e SHA-1 sono stati i primi modelli sviluppati negli anni ‘1990. 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, il che è davvero utile in termini di evitare collisioni di hash.
Le prime iterazioni
L’algoritmo SHA-0, pubblicato per la prima volta nel 1993 dal NIST, è stato rapidamente interrotto dopo che è stata trovata una debolezza significativa. È stato sostituito da SHA-1 nel 1995, che include un passaggio computazionale aggiuntivo che affronta i problemi non divulgati di SHA-0. Entrambi gli algoritmi eseguono l’hashing di un messaggio fino a 264-1 bit in un “digest” di 160 bit. Entrambi utilizzano una dimensione di blocco di 512 bit e una dimensione di parola di 32 bit nel loro funzionamento.
SHA-1 è utilizzato in alcuni comuni protocolli Internet e strumenti di sicurezza. Questi includono IPsec, PGP, SSL, S/MIME, SSH e TLS. SHA-1 è anche in genere utilizzato come parte dello schema di protezione per i documenti governativi non classificati. Alcune parti del settore privato utilizzano questo algoritmo anche per alcune informazioni sensibili. È stato formalmente ritirato dall’uso delle amministrazioni pubbliche nel 2010, tuttavia.
Evoluzione e sviluppo continuo
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 le stesse dimensioni di blocco, parola e messaggio di input massimo 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 2128-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 gravi difetti non siano stati divulgati pubblicamente in SHA-2, il NIST ha aperto un concorso per sviluppare il prossimo algoritmo di hash sicuro. Questo nuovo algoritmo, che si chiamerà SHA-3, sarà probabilmente scelto da una raccolta di voci pubbliche. Dovrebbe essere un nuovo design, non basato sugli algoritmi esistenti.