Calcolo dell'hash SHA-3 (Keccak) (Gratuito)

Strumento gratuito: calcola in tempo reale nel browser l'hash SHA-3 (Keccak) del testo inserito. È la funzione hash di nuova generazione standardizzata dal NIST nel 2012 e adotta la «costruzione a spugna», radicalmente diversa da quella di SHA-2.

Copiato!

Che cos'è l'hashing SHA-3?

L'hashing SHA-3 converte la stringa inserita in un valore fisso di 256 bit (32 byte). SHA-3 è la generazione più recente di funzione di hash, standardizzata dal NIST nel 2012: lo stesso input dà sempre lo stesso hash, mentre risalire alla stringa originale partendo dall'hash è computazionalmente impossibile — la cosiddetta unidirezionalità. Questo strumento calcola l'hash SHA-3 nel vostro browser in tempo reale, mentre digitate nel campo.

Il tratto distintivo di SHA-3 è l'adozione di un progetto radicalmente diverso da SHA-2 (SHA-256, SHA-512 e così via), la cosiddetta « costruzione a spugna ». Se un giorno venisse trovata una vulnerabilità in SHA-2, si ritiene che SHA-3 ne resterebbe pressoché immune perché il principio progettuale è diverso: per questo è considerato un'assicurazione crittografica. Il calcolo avviene interamente nel vostro browser e la stringa inserita non viene mai inviata a un server.

Come si usa il calcolatore di hash SHA-3

  1. Inserite la stringa da sottoporre a hash Digitate nel campo ciò di cui volete un hash: una password, il contenuto di un file e così via.
  2. Leggete l'hash SHA-3 Mentre digitate, l'hash SHA-3 a 256 bit compare in tempo reale come stringa esadecimale.
  3. Copiatelo se vi serve Premete « Copia » e l'hash mostrato passa negli appunti, pronto per essere incollato così com'è nel codice di test o in un confronto.

Consigli per sfruttarlo al meglio

  • SHA-3 si basa sull'algoritmo Keccak, vincitore del concorso internazionale indetto dal NIST fra il 2007 e il 2012. Come SHA-2 prevede più lunghezze di output; questo strumento usa quella a 256 bit.
  • Mentre SHA-2 adotta la costruzione di Merkle–Damgård, SHA-3 segue una filosofia completamente diversa, la «costruzione a spugna». È pensata come riserva nel caso in cui in futuro venga trovato un attacco contro SHA-2.
  • Per SHA-3 non è nota alcuna vulnerabilità. La sua diffusione, però, non regge il confronto con SHA-256: se conta la compatibilità con i sistemi esistenti, SHA-256 resta la scelta pratica.
  • Ethereum adotta il proprio Keccak-256, ossia la versione precedente alla standardizzazione. Differisce leggermente dallo SHA-3 del NIST, quindi per i suoi hash serve un'implementazione dedicata.
  • SHA-3 è costruito su operazioni bit a bit e si presta a implementazioni hardware efficienti (FPGA e ASIC). Via software, invece, può risultare leggermente più lento di SHA-256.

Quando l'hashing SHA-3 torna utile

Verificare una funzione di hash in un sistema nuovo

Quando state valutando SHA-3 per un sistema che vi accingete a progettare, vedete subito l'output reale nel browser e lo confrontate con quello che produce la vostra implementazione.

Capire specifiche che usano hash della famiglia Keccak

Nello studiare una specifica che adotta un proprio Keccak-256 — come Ethereum —, aiuta confrontare di persona l'output con lo SHA-3-256 standardizzato dal NIST.

Come materiale didattico di crittografia

Se volete vedere quanto SHA-3 e la famiglia SHA-2 divergano a parità di input, affiancarli nel calcolatore multi-hash rende il confronto più chiaro.

Scegliere tra SHA-3 e SHA-256

Se siete incerti se la compatibilità con un sistema esistente debba spingervi verso SHA-256, generate entrambi gli hash e verificate il formato che scriverete nella specifica. Per SHA-256 usate il calcolatore di hash SHA-256.

I termini di SHA-3 spiegati

SHA-3
Il nome della funzione di hash standardizzata dal NIST nel 2012, che internamente usa l'algoritmo Keccak. Sono definite quattro lunghezze di output — 224, 256, 384 e 512 bit — e questo strumento usa l'output a 256 bit.
Keccak
L'algoritmo ideato da un gruppo di ricercatori belgi e scelto nel concorso SHA-3 del NIST. « SHA-3 » è il nome successivo alla standardizzazione del NIST; Keccak di per sé indica un concetto più ampio e precedente.
Costruzione a spugna
L'impostazione progettuale di SHA-3, in cui i dati di input vengono « assorbiti » in uno stato interno e l'output viene « strizzato » fuori nella lunghezza necessaria. Differisce dalla costruzione di Merkle–Damgård adottata da SHA-2: una differenza strutturale che rende difficilmente trasferibili gli attacchi a SHA-2.
Resistenza alle collisioni
La proprietà che rende difficile che due input diversi producano lo stesso hash. Contro SHA-3 non è stato finora trovato alcun attacco praticabile di collisione, quindi si può usare in sicurezza per firme digitali e rilevamento di manomissioni.
Differenza rispetto a SHA-2
SHA-2 (SHA-256, SHA-512 e così via) e SHA-3 hanno nomi simili ma sono linee di algoritmi del tutto distinte, con interni assai diversi. Il NIST non cercava un sostituto di SHA-2 bensì un'alternativa nel caso in cui SHA-2 venisse violato.
Funzione di hash unidirezionale
Una funzione per cui calcolare l'output da un input è facile, mentre risalire all'input dall'output è computazionalmente impossibile. Anche SHA-3 possiede questa proprietà e si presta quindi in sicurezza, per esempio, alla verifica delle password.

Domande frequenti

Se serve compatibilità con sistemi esistenti, SHA-256; per un progetto nuovo in cui si vuole un margine di sicurezza maggiore, SHA-3. Allo stato attuale sono entrambe sicure.

No. Ethereum adotta il Keccak precedente alla standardizzazione NIST e, poiché il riempimento è diverso, produce hash differenti a parità di input. Per calcolare gli indirizzi Ethereum serve un'implementazione dedicata.

No. SHA-3 è una funzione hash a senso unico e ricavare i dati di partenza dall'hash è computazionalmente impossibile. Può quindi essere usata in sicurezza per il confronto delle password.
Tool-kun

A proposito — la nascita di Keccak e i cinque anni del concorso NIST

Nel 2006, di fronte alla crescente concretezza degli attacchi di collisione contro SHA-1, il NIST avviò il «concorso SHA-3». Da tutto il mondo arrivarono 64 algoritmi e, dopo circa cinque anni di valutazione, nell'ottobre 2012 fu scelto Keccak, progettato da un gruppo belga (Joan Daemen, Gilles Van Assche, Guido Bertoni e Michaël Peeters). Daemen aveva già partecipato alla progettazione di AES (Rijndael): una sorta di doppietta nella storia della crittografia.

Il tratto curioso del concorso è che il NIST non chiese un algoritmo «per sostituire SHA-2», bensì un'«assicurazione nel caso SHA-2 venisse violato». SHA-2 è tuttora sicuro e SHA-3 resta uno standard affiancato al primo. La differenza radicale di impostazione garantisce che un eventuale attacco a SHA-2 non sia trasferibile a SHA-3.

La «costruzione a spugna» di Keccak è un modello intuitivo: assorbe i dati in ingresso e ne «strizza» fuori la quantità di output desiderata. Da questo schema derivano anche le funzioni hash a output esteso (XOF) come SHAKE128 e SHAKE256, capaci di produrre risultati di lunghezza arbitraria: una porta aperta su nuove possibilità crittografiche.