Secure Hash Algorithm: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Messi in corsivo "(...) ''National Security Agency'' (...)" e "(...) '' '''Secure Hash Algorithm''' '' (...)" perché termini scritti in lingua inglese. |
m 1) Creato ipercollegamento per "(...) algoritmo (...)". 2) Messi tutti i termini "hash" e "hashing" in corsivo perché termini scritti in lingua inglese. |
||
Riga 1:
Con il termine '''SHA''' si indica una famiglia di cinque diverse funzioni [[crittografia|crittografiche]] di ''[[hash]]'' sviluppate a partire dal [[1993]] dalla ''[[National Security Agency]]'' (NSA) e pubblicate dal [[National Institute of Standards and Technology|NIST]] come [[Federal Information Processing Standard|standard federale]] dal governo degli [[Stati Uniti d'America|USA]]. La sigla SHA sta per '' '''Secure Hash Algorithm''' ''.
Come ogni [[algoritmo]] di ''hash'', l'SHA produce un ''message digest'', o "impronta del [[messaggio]]", di lunghezza fissa partendo da un messaggio di lunghezza variabile. La sicurezza di un algoritmo di ''hash'' risiede nel fatto che la funzione non sia reversibile (non sia cioè possibile risalire al messaggio originale conoscendo solo questo dato) e che non deve essere mai possibile che si riescano a creare ''intenzionalmente'' due messaggi diversi con lo stesso ''digest''. Gli algoritmi della famiglia sono denominati '''SHA-1''', '''SHA-224''', '''SHA-256''', '''SHA-384''' e '''SHA-512''': le ultime 4 varianti sono spesso indicate genericamente come '''SHA-2''', per distinguerle dal primo. Il primo produce un ''digest'' del messaggio di soli 160 [[bit]], mentre gli altri producono ''digest'' di lunghezza in bit pari al numero indicato nella loro sigla (SHA-256 produce un ''digest'' di 256 bit). L'SHA-1 è il più diffuso algoritmo della famiglia SHA ed è utilizzato in numerose applicazioni e protocolli.
La sicurezza di SHA-1 è stata in parte compromessa dai [[crittoanalisi|crittoanalisti]]. <ref>[http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html Crittoanalisi dell'SHA-1 (Schneier)]</ref> Sebbene non siano ancora noti attacchi alle varianti SHA-2, esse hanno un algoritmo simile a quello di SHA-1 per cui sono in atto sforzi per sviluppare algoritmi di ''hashing'' alternativi e migliorati.<ref>http://www.schneier.com/blog/archives/2005/11/nist_hash_works_4.html</ref><ref>http://www.heise-security.co.uk/articles/75686/2</ref>
Un concorso aperto per la realizzazione di una nuova funzione '''SHA-3''' è stato formalmente annunciato nel ''Federal Register'' il 2 novembre 2007.<ref>http://csrc.nist.gov/groups/ST/hash/documents/FR_Notice_Nov07.pdf</ref> "Il NIST sta avviando un concorso per lo sviluppo di uno o più algoritmi di ''hashing'' aggiuntivi attraverso una competizione pubblica, come per il processo di sviluppo dell'[[Advanced Encryption Standard|AES]]."<ref>http://www.csrc.nist.gov/pki/HashWorkshop/index.html</ref> Le iscrizioni si concluderanno il 31 ottobre 2008 e la proclamazione del vincitore e la pubblicazione del nuovo standard sono previste per il 2012.
==SHA-0 e SHA-1==
Riga 31:
==L'insieme SHA-2==
[[Immagine:SHA-2.svg|thumbnail|right|200px|Una iterazione della funzione di compressione negli algoritmi della famiglia SHA-2.]]
Nel [[2001]] il NIST pubblicò quattro funzioni di ''hash'' addizionali facenti parte della famiglia SHA, ognuna con un ''digest'' più lungo di quello originale, collettivamente denominate '''SHA-2''' (anche se questo termine non è mai stato ufficialmente standardizzato). Queste varianti sono note, come detto, con la lunghezza in bit del ''digest'' generato a seguire la sigla ufficiale dell'<nowki>''hash''</nowiki>: '''SHA-224''', '''SHA-256''', ''''SHA-384''' e '''SHA-512''', con, rispettivamente, ''hash'' di 224, 256, 384 e 512 bit. Da notare che gli ultimi tre algoritmi furono ufficializzati come standard nel [[2002]] mentre l'SHA-224 fu introdotto nel febbraio del [[2004]]: quest'ultimo presenta un ''hash'' di lunghezza identica a quella di 2 chiavi del [[Triple DES]].
Tutte queste varianti sono brevettate dal governo americano ma rilasciate con licenza libera.<ref>{{cite journal |title=Licensing Declaration for US patent 6829355.|url=https://datatracker.ietf.org/ipr/858/|accessdate=2008-02-17}}</ref>.
Gli algoritmi SHA-256 e SHA-512 lavorano, rispettivamente, con [[word]] di 32 e 64 bit rispettivamente: utilizzano un numero differente di rotazioni e di costanti addizionali ma la loro struttura è sostanzialmente identica. Gli algoritmi SHA-224 e SHA-384 sono semplicemente versioni troncate dei precedenti due, con ''hash'' calcolati con differenti valori iniziali.
Gli algoritmi SHA-2 non hanno ricevuto, a differenza dell'SHA-1, molta attenzione dalla comunità dei crittoanalisti per cui la loro sicurezza in campo crittografico non è stata del tutto provata. Gilbert e Handschuh ([[2003]]) hanno studiato queste nuove varianti e non hanno trovato vulnerabilità <ref>{{cite journal |title=Security analysis of SHA-256 and sisters |author=Henri Gilbert |coauthors=Helena Handschuh |journal=Lecture notes in computer science |publisher=Springer, Berlin |issn=0302-9743 |url=http://cat.inist.fr/?aModele=afficheN&cpsidt=15735289 |format=fee required |accessdate=2008-01-30}}</ref>.
Riga 78:
= 1f8a690b7366a2323e2d5b045120da7e93896f47
Anche una minima variazione nel messaggio genera, ineluttabilmente, un ''hash'' completamente differente a causa di una [[reazione a catena]] nota come ''effetto valanga''. Ad esempio, sostituendo <code>cantami</code> con <code>contami</code> otteniamo:
SHA1("C'''o'''ntami o diva del pelide Achille l'ira funesta")
|