Il primo Novembre è terminata la prima fase del concorso indetto dal Natiolan Institute of Standards and Technology (NIST). È scaduto infatti il termine entro il quale presentare proposte di algoritmi di hashing per sostituire lo scricchiolante SHA-1 e creare il nuovo SHA-3. Non sono disponibili dati sul numero di “concorrenti”, ma si suppone che siano tra i 30 e i 50. Mentre scrivo sono disponibili le descrizioni di 20 algoritmi sul wiki dell’Institut für Angewandte Informationsverarbeitung und Kommunikation (IAIK, Institute for Applied Information Processing and Communications) dell’università tecnica di Graz.
Il concorso è stato indetto dal NIST nel 2007, per designare il successore dell’algoritmo di hashing SHA-1, ritenuto poco sicuro soprattutto a causa dell’attacco studiato da Xiaoyun Wang (王小云), che permette di trovare una collisione con 263 operazioni, contro le 280 operazioni che sarebbero necessarie. Il successore attuale di SHA-1 è SHA-2 e la sua famiglia (SHA-224, SHA-256, SHA-384 e SHA-512). Gli hash di SHA-2 sono però dello stesso tipo di SHA-1, per cui la comunità crittografica non ritiene saggio fidarsi sul lungo periodo di tali algoritmi. Per questo motivo si è deciso di creare il nuovo SHA-3, che dovrebbe essere annunciato nel 2012.
Tra le proposte più discusse c’è Skein, creato da Bruce Schneier – co-sviluppatore di Twofish – insieme a universitari e sviluppatori di Intel e Microsoft. L’algoritmo è estremamente veloce (500MiB/sec per core su un Core 2 Duo x64 3.1 GHz, veloce il triplo di SHA-512 e quasi il doppio di SHA-256) e snello (è possibile implementare Skein-512 con 200 byte di stato e Skein-256 con soli 100 byte), e utilizza primitive simili a quelle usate da SHA-2.
Degno di nota è anche MD6, sviluppato da un team del MIT guidato da Ron L. Rivest, noto per essere stato co-autore di RSA, MD4, MD5 e RC6 (uno degli algoritmi finalisti per lo standard AES). MD6 ha un design tradizionale, è relativamente lento (che può non essere solo uno svantaggio per un algoritmo di hashing) e è studiato per funzionare bene su sistemi paralleli.
La squadra Danese e Austriaca che ha progettato Serpent (finalista AES) e trovato vulnerabilità in SHA-1 e GOST ha inviato come proposta Grøstl, la cui architettura si discosta nettamente da quella di SHA, pur rimanendo veloce come SHA-2. Ci si attende una proposta anche da Joan Daemen e Vincent Rijmen, creatori di Rijndael (vincitore di AES), ma non sono ancora disponibili informazioni a riguardo.
Molte proposte sembrano di sviluppatori amatoriali. L’algoritmo WaMM è stato dimostrato vulnerabile in meno di 24 ore. Geoffrey Park, seguendo le idee di Stephen Wolfram, ha sviluppato un hash, NKS2D, interamente basato sugli automi cellulari, ma è inevitabilmente lento e non è possibile dimostrarne formalmente la sicurezza.
Non sono noti i criteri con cui verrà selezionao il vincitore. Il prossimo passo è la “SHA-3 Candidate Conference” che verrà tenuta a Febbraio 2009.