Glossario

Cos'è SHA-256?

SHA-256 (Secure Hash Algorithm a 256 bit) è una funzione hash crittografica della famiglia SHA-2 che prende un input di lunghezza arbitraria e produce un digest fisso a 256 bit (32 byte), progettata come funzione unidirezionale in cui l'output non rivela nulla sull'input.

Noto anche come: SHA-2, Secure Hash Algorithm

Una funzione hash crittografica deve soddisfare tre proprietà: resistenza alla preimmagine (dato un hash, è computazionalmente impossibile trovare l'input originale), resistenza alla seconda preimmagine (dato un input, è computazionalmente impossibile trovare un input diverso con lo stesso hash) e resistenza alle collisioni (è computazionalmente impossibile trovare due input distinti qualsiasi che producano lo stesso hash). SHA-256 soddisfa tutte e tre ed è rimasto inviolato dalla sua pubblicazione da parte del NIST nel 2001.

SHA-256 produce un output a 256 bit indipendentemente dalla dimensione dell'input — eseguire l'hash di un singolo carattere e di un file da gigabyte producono entrambi un digest da 32 byte. L'effetto valanga garantisce che cambiare anche un solo bit dell'input produca un hash completamente diverso senza alcuno schema riconoscibile. Questo rende SHA-256 utile per la verifica dell'integrità: archivia l'hash di un file, poi ri-esegui l'hash in seguito per confermare che non sia stato modificato.

SHA-256 non è un algoritmo di cifratura — l'hashing è un'operazione unidirezionale senza corrispondente decifratura. Viene usato come building block in molte costruzioni crittografiche: HMAC-SHA256 per l'autenticazione dei messaggi, PBKDF2-SHA256 per la derivazione delle chiavi, fingerprint dei certificati, proof-of-work blockchain e schemi di firma digitale. La sua adozione diffusa tra protocolli e piattaforme lo rende una delle primitive più importanti nella crittografia moderna.

Come Vaulted usa SHA-256

SHA-256 è la funzione hash alla base del processo di derivazione delle chiavi di Vaulted. Quando viene usata una passphrase per proteggere un segreto, PBKDF2 applica HMAC-SHA256 iterativamente (100.000 round) per derivare una chiave di wrapping dalla passphrase e da un salt casuale. SHA-256 è anche la funzione hash usata nel calcolo HMAC che genera i token delle pagine di stato, garantendo che solo il creatore del segreto possa accedere alla pagina di stato del proprio segreto.