Calcolo dell'hash SHA-3
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.
Consigli
- 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.
Domande frequenti
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.