{"id":13,"date":"2026-06-10T09:13:44","date_gmt":"2026-06-10T09:13:44","guid":{"rendered":"https:\/\/shattered.io\/it\/2026\/06\/10\/sha-256\/"},"modified":"2026-06-10T13:35:45","modified_gmt":"2026-06-10T13:35:45","slug":"sha-256","status":"publish","type":"post","link":"https:\/\/shattered.io\/it\/sha-256\/","title":{"rendered":"SHA-256 spiegato: il cuore della famiglia SHA-2"},"content":{"rendered":"<h2 id=\"che-cose-sha-256\">Che cos&#8217;\u00e8 SHA-256<\/h2>\n<p>SHA-256 \u00e8 una funzione hash crittografica che appartiene alla famiglia SHA-2, l&#8217;insieme di algoritmi standardizzati dal NIST come successori di SHA-1. Il numero nel nome indica la lunghezza dell&#8217;impronta prodotta: 256 bit, ovvero 64 caratteri esadecimali. \u00c8 oggi una delle funzioni hash pi\u00f9 utilizzate al mondo e rappresenta una scelta di riferimento ogni volta che serve un digest sicuro.<\/p>\n<p>A differenza di SHA-1, che genera un&#8217;impronta da 160 bit ed \u00e8 stato infranto nella pratica dal progetto SHAttered, SHA-256 offre un margine di sicurezza considerevolmente pi\u00f9 ampio e non presenta collisioni note. Per questo \u00e8 diventato lo standard de facto in moltissimi protocolli e applicazioni.<\/p>\n<h2 id=\"sha-256-dentro-la-famiglia-sha-2\">SHA-256 dentro la famiglia SHA-2<\/h2>\n<p>SHA-2 non \u00e8 un singolo algoritmo ma un gruppo di varianti che differiscono per la lunghezza del digest e per alcuni parametri interni. Le pi\u00f9 note sono SHA-224, SHA-256, SHA-384 e SHA-512. Il numero corrisponde sempre ai bit dell&#8217;impronta in uscita: pi\u00f9 bit significano uno spazio di output pi\u00f9 grande e, di conseguenza, una resistenza teorica pi\u00f9 elevata alla ricerca di collisioni.<\/p>\n<p>SHA-256 occupa una posizione di equilibrio all&#8217;interno della famiglia. L&#8217;impronta da 256 bit \u00e8 abbastanza ampia da garantire margini di sicurezza solidi per gli usi attuali, ma abbastanza compatta da risultare efficiente da calcolare e da memorizzare. Le varianti a 384 e 512 bit lavorano internamente con parole pi\u00f9 lunghe e offrono digest ancora maggiori, utili in contesti che richiedono margini extra, ma per la grande maggioranza delle applicazioni SHA-256 rappresenta il giusto compromesso tra sicurezza e praticit\u00e0.<\/p>\n<p>\u00c8 importante notare che, pur condividendo una linea di progettazione con SHA-1, SHA-2 non eredita la vulnerabilit\u00e0 che ha colpito il predecessore. Le sue dimensioni maggiori e le scelte costruttive lo mantengono tuttora considerato sicuro contro gli attacchi pratici noti.<\/p>\n<p>Sul piano della struttura interna, senza scendere nei singoli passaggi, \u00e8 utile sapere che SHA-256 elabora il messaggio a blocchi: i dati vengono suddivisi in segmenti di dimensione fissa e processati uno dopo l&#8217;altro, aggiornando di volta in volta uno stato interno che alla fine produce il digest. Questa lavorazione a blocchi spiega perch\u00e9 l&#8217;algoritmo gestisca con la stessa efficienza input piccoli e file molto grandi. La famiglia SHA-2 si articola inoltre in due gruppi: SHA-224 e SHA-256 operano internamente con parole da 32 bit, mentre SHA-384 e SHA-512 usano parole da 64 bit. La scelta tra le varianti dipende quindi sia dalla lunghezza di digest desiderata sia dalle caratteristiche della piattaforma su cui l&#8217;algoritmo viene eseguito.<\/p>\n<h2 id=\"come-si-comporta-sha-256\">Come si comporta SHA-256<\/h2>\n<p>Senza entrare nei singoli passaggi interni dell&#8217;algoritmo, \u00e8 utile descriverne il comportamento osservabile, ovvero le propriet\u00e0 che contano per chi lo usa.<\/p>\n<h3 id=\"deterministico\">Deterministico<\/h3>\n<p>SHA-256 \u00e8 deterministico: lo stesso input produce sempre la stessa impronta, su qualsiasi macchina e in qualsiasi momento. Questa propriet\u00e0 \u00e8 ci\u00f2 che rende possibile verificare l&#8217;integrit\u00e0 di un file. Si pubblica il digest atteso e chiunque pu\u00f2 ricalcolarlo per confermare che il dato non sia cambiato. Se l&#8217;algoritmo restituisse valori diversi a ogni esecuzione, nessun controllo di questo tipo sarebbe possibile.<\/p>\n<h3 id=\"effetto-valanga\">Effetto valanga<\/h3>\n<p>Una caratteristica fondamentale \u00e8 l&#8217;effetto valanga. Modificare anche un solo bit dell&#8217;input cambia il digest in modo radicale e apparentemente casuale, alterando in media circa met\u00e0 dei bit in uscita. Due file quasi identici, che differiscano per un singolo carattere, producono impronte completamente diverse e prive di qualsiasi somiglianza riconoscibile. \u00c8 proprio questa sensibilit\u00e0 a rendere lo strumento adatto a rilevare manomissioni: qualsiasi alterazione, per quanto piccola, si traduce in un&#8217;impronta del tutto differente.<\/p>\n<h3 id=\"resistenza-alla-preimmagine\">Resistenza alla preimmagine<\/h3>\n<p>SHA-256 \u00e8 progettato per essere a senso unico. Dato un digest, deve essere praticamente impossibile risalire a un input che lo abbia generato. Questa resistenza alla preimmagine \u00e8 ci\u00f2 che permette, per esempio, di confrontare valori senza rivelare i dati originali. Non esiste un metodo pratico per invertire la funzione: l&#8217;unica strada sarebbe provare un numero astronomico di input, cosa irrealizzabile con la lunghezza di output di 256 bit.<\/p>\n<h3 id=\"resistenza-alle-collisioni\">Resistenza alle collisioni<\/h3>\n<p>La resistenza alle collisioni \u00e8 la garanzia che sia irrealizzabile trovare due input diversi con la stessa impronta. \u00c8 esattamente la propriet\u00e0 che SHA-1 ha perso con SHAttered. Per SHA-256 non sono note collisioni, e lo spazio di output da 256 bit rende la ricerca a forza bruta di una coppia che collida ben oltre le capacit\u00e0 di calcolo immaginabili oggi. \u00c8 questa solidit\u00e0 a giustificare la fiducia riposta nell&#8217;algoritmo.<\/p>\n<h2 id=\"dove-si-usa-sha-256-nella-pratica\">Dove si usa SHA-256 nella pratica<\/h2>\n<p>SHA-256 non \u00e8 un esercizio teorico: regge alcune delle infrastrutture digitali pi\u00f9 diffuse.<\/p>\n<h3 id=\"certificati-tls\">Certificati TLS<\/h3>\n<p>Le connessioni sicure HTTPS si basano su certificati digitali firmati. SHA-256 \u00e8 oggi la funzione hash standard usata in questi certificati per produrre il digest su cui viene applicata la firma dell&#8217;autorit\u00e0 di certificazione. La migrazione da SHA-1 a SHA-256 nei certificati TLS \u00e8 stata uno degli effetti pi\u00f9 visibili dell&#8217;abbandono del vecchio algoritmo, e ha reso le connessioni cifrate pi\u00f9 affidabili.<\/p>\n<h3 id=\"firma-del-software\">Firma del software<\/h3>\n<p>Quando si distribuisce un programma, una firma digitale garantisce che il file non sia stato manomesso e provenga davvero dallo sviluppatore. Anche qui la firma viene applicata al digest del file, e SHA-256 \u00e8 la scelta tipica per calcolarlo. Senza una funzione hash resistente alle collisioni, un attaccante potrebbe tentare di far passare un eseguibile malevolo per uno legittimo.<\/p>\n<h3 id=\"prova-di-lavoro-di-bitcoin\">Prova di lavoro di Bitcoin<\/h3>\n<p>Bitcoin impiega SHA-256 al centro del proprio meccanismo di prova di lavoro. I miner cercano un valore che, combinato con i dati del blocco e passato attraverso SHA-256, produca un&#8217;impronta che soddisfi una certa condizione di difficolt\u00e0, in genere un digest che inizi con un certo numero di zeri. Poich\u00e9 l&#8217;effetto valanga rende impossibile prevedere l&#8217;output, l&#8217;unico modo per trovare un risultato valido \u00e8 provare un&#8217;enorme quantit\u00e0 di tentativi, modificando ogni volta il valore variabile e ricalcolando l&#8217;impronta. La verifica, al contrario, \u00e8 immediata: chiunque pu\u00f2 ricalcolare un singolo hash e constatare che la condizione \u00e8 rispettata. Questa asimmetria tra la difficolt\u00e0 di trovare una soluzione e la facilit\u00e0 di verificarla \u00e8 ci\u00f2 che rende la prova di lavoro un&#8217;ancora di sicurezza. \u00c8 questo lavoro computazionale a proteggere il registro e a renderne costosa la manomissione, perch\u00e9 riscrivere la storia richiederebbe di rifare l&#8217;intero sforzo accumulato.<\/p>\n<h3 id=\"verifica-dellintegrita-dei-file\">Verifica dell&#8217;integrit\u00e0 dei file<\/h3>\n<p>Molti progetti software pubblicano accanto ai propri download il digest SHA-256 atteso. Dopo aver scaricato un file, l&#8217;utente pu\u00f2 calcolarne l&#8217;impronta e confrontarla con quella ufficiale: se coincidono, il file \u00e8 integro; se differiscono, qualcosa \u00e8 andato storto durante il download o il contenuto \u00e8 stato alterato. \u00c8 uno dei modi pi\u00f9 semplici e diffusi per garantire che ci\u00f2 che si riceve sia esattamente ci\u00f2 che \u00e8 stato pubblicato.<\/p>\n<h3 id=\"identificatori-e-deduplicazione\">Identificatori e deduplicazione<\/h3>\n<p>Un uso meno evidente ma diffusissimo riguarda l&#8217;identificazione dei contenuti. Molti sistemi di archiviazione e di gestione del codice usano il digest SHA-256 come nome univoco di un dato: due file con la stessa impronta sono trattati come lo stesso oggetto, il che consente di evitare duplicati e di riconoscere immediatamente se un contenuto \u00e8 gi\u00e0 presente. La resistenza alle collisioni \u00e8 ci\u00f2 che rende affidabile questa scelta, perch\u00e9 garantisce che due file diversi non finiscano per condividere lo stesso identificatore. \u00c8 proprio la fragilit\u00e0 di SHA-1 su questo fronte ad avere spinto diversi sistemi a passare a funzioni della famiglia SHA-2 per i propri identificatori interni.<\/p>\n<h2 id=\"perche-sha-256-resta-una-scelta-solida\">Perch\u00e9 SHA-256 resta una scelta solida<\/h2>\n<p>SHA-256 combina un&#8217;impronta sufficientemente ampia, un comportamento deterministico, un forte effetto valanga e l&#8217;assenza di collisioni note. Queste qualit\u00e0 lo rendono adatto a contesti molto diversi, dalla sicurezza del web alle criptovalute. La storia di SHA-1 insegna che nessun algoritmo \u00e8 eterno e che le scelte crittografiche vanno monitorate nel tempo, ma allo stato attuale SHA-256 rappresenta una base affidabile su cui costruire integrit\u00e0 e fiducia.<\/p>\n<div class=\"shat-sources\">\n<h2 id=\"fonti\">Fonti<\/h2>\n<ul>\n<li><a href=\"https:\/\/csrc.nist.gov\/pubs\/fips\/180-4\/upd1\/final\" rel=\"noopener\" target=\"_blank\">NIST FIPS 180-4: Secure Hash Standard<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc6234\" rel=\"noopener\" target=\"_blank\">RFC 6234: US Secure Hash Algorithms<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"shat-related\">\n<h2 id=\"articoli-correlati\">Articoli correlati<\/h2>\n<ul>\n<li><a href=\"https:\/\/shattered.io\/it\/cryptography\/collisione-sha1\/\">La collisione SHA-1 di SHAttered: come \u00e8 stata infranta una funzione hash<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/it\/cryptography\/firme-digitali\/\">Firme digitali: come funzionano e perch\u00e9 le collisioni le minacciano<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/it\/cryptography\/funzioni-hash\/\">Funzioni hash crittografiche: propriet\u00e0, differenze e usi<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/it\/cryptography\/\">Crittografia: funzioni hash, SHA e fiducia digitale<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Che cos&#8217;\u00e8 SHA-256 SHA-256 \u00e8 una funzione hash crittografica che appartiene alla famiglia SHA-2, l&#8217;insieme di algoritmi standardizzati dal NIST come successori di SHA-1. Il numero nel nome indica la\u2026<\/p>\n","protected":false},"author":2,"featured_media":22,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-13","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cryptography"],"_links":{"self":[{"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/posts\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/comments?post=13"}],"version-history":[{"count":2,"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/posts\/13\/revisions"}],"predecessor-version":[{"id":44,"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/posts\/13\/revisions\/44"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/media\/22"}],"wp:attachment":[{"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/media?parent=13"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/categories?post=13"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shattered.io\/it\/wp-json\/wp\/v2\/tags?post=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}