Dalla verifica dei file ISO fino alle firme digitali su blockchain, le funzioni hash crittografiche costituiscono il fondamento matematico per la sicurezza e l’integrità dei dati.
1. Cos’è una Funzione Hash?
Una funzione hash crittografica è un algoritmo matematico che riceve in input dati di dimensione arbitraria e li comprime in una stringa esadecimale di lunghezza fissa (es.: 256 bit / 64 caratteri hex per SHA-256).
2. Le 4 Proprietà Fondamentali di Sicurezza
- Deterministica: Lo stesso identico input produce sempre lo stesso identico digest.
- Resistenza alla Pre-immagine (Unidirezionalità): È computazionalmente impossibile risalire all’input originale partendo dall’hash.
- Resistenza alla Seconda Pre-immagine: Dato
m1, è impossibile trovarem2tale chehash(m1) == hash(m2). - Resistenza alle Collisioni: Nessuna coppia di input diversi deve generare il medesimo hash.
3. L’Effetto Valanga Visualizzato
I moderni algoritmi crittografici esibiscono un pronunciato effetto valanga: la variazione di un singolo carattere altera più del 50% dei bit dell’hash finale:
4. SHA-256 vs SHA-512 vs MD5
Algoritmi storici come MD5 e SHA-1 presentano collisioni note e sono compromessi. Lo standard industriale attuale poggia sulla famiglia SHA-2 (SHA-256, SHA-512) e sulla famiglia SHA-3 (Keccak).
5. Casi d’Uso Reali
Gli hash sono essenziali per il salvataggio sicuro di password (con salt tramite Argon2 o bcrypt), per i commit Git, per le firme digitali e per le memorie indirizzabili per contenuto.