# RadioGatún

RadioGatún è una funzione di hash crittografica creata da Guido Bertoni, Joan Daemen, Michaël Peeters e Gilles Van Assche. Fu presentata al pubblico per la prima volta al NIST Second Cryptographic Hash Workshop a Santa Barbara, California, il 24-25 agosto 2006, come parte della Competizione NIST delle funzioni hash.
Sebbene RadioGatún sia un derivato di Panama, un cifrario a flusso e struttura hash degli anni 1990, in seguito decifrata, non ha le sue stesse debolezze quando viene usata come funzione hash.
RadioGatún è attualmente una famiglia di 64 differenti funzioni hash, distinte da un singolo parametro: la larghezza della parola in bit (w), regolabile da 1 a 64. L'algoritmo usa 58 parole, ognuna della lunghezza w, per memorizzare il suo stato interno. Quindi, per esempio, la versione 32-bit ha bisogno di 232 byte per memorizzare lo stato, mentre la versione 64-bit di 464 byte.
RadioGatún può essere usato sia come funzione hash, sia come cifrario a flusso; può dare in output un lungo flusso arbitrario di numeri pseudo-casuali; questo tipo di struttura hash è ora conosciuta come un "Extendable-Output Function" (XOF).
Lo stesso team che ha sviluppato l'algoritmo ha continuato a fare considerevoli revisioni a questa funzione di hash, conducendosi all'algoritmo Keccak SHA-3.

## Robustezza

Nel documento originale di RadioGatún, gli sviluppatori affermarono che i primi 19 × w bit (dove w è la lunghezza della parola usata) dell'output fossero una funzione hash "crittograficamente sicura". In altre parole, affermarono che i primi 608 bit della versione 32-bit e i primi 1216 bit della versione 64-bit potevano essere usati come valore hash.
Considerando l'attacco del compleanno, questo significa che per una data lunghezza w, l'algoritmo è progettato per non avere un attacco con complessità inferiore a 2$^{9.5w}$. Questo corrisponde a 2$^{304}$ (32-bit) e 2$^{608}$ (64-bit).
Fin dalla pubblicazione del documento, gli sviluppatori rividero la loro pretesa sulla sicurezza e ora affermano che RadioGatún ha la sicurezza di una funzione spugna con una capacità di 19w. Ciò significa che la versione a 32-bit dell'algoritmo può essere usata per creare hash con 304 bit di sicurezza e la versione 64-bit per crearne 608.

## Criptoanalisi

Nel documento "Two attacks on RadioGatún", Dmitry Khovratovich e Alex Biryukov presentano due attacchi che non riescono a rompere la sicurezza dichiarata dagli sviluppatori, uno con complessità di 2$^{18w}$ e un altro di 2$^{23.1w}$. Khovratovich fu anche l'autore di "Cryptanalysis of hash functions with structures", che descrive un attacco con complessità 2$^{18w}$.
Nel documento "Analysis of the Collision Resistance of RadioGatún using Algebraic Techniques", Charles Bouillaguet e Pierre-Alain Fouque presentano un modo di generare collisioni con la versione 1-bit dell'algoritmo, usando un attacco che necessita di 2$^{24.5}$ operazioni. L'attacco non può essere esteso alle versioni più grandi fino a che "tutte le possibili piste che conoscevamo per la versione 1-bit non si siano rivelate impossibili da estendere alle versioni n-bit". Questo attacco è meno efficace di altri attacchi, oltre a non rompere la sicurezza dichiarata di RadioGatún.
L'attacco che si è rivelato più efficace contro RadioGatún aveva una complessità di 2$^{11w}$ ed è presente nel documento "Cryptanalysis of RadioGatun" di Thomas Fuhr and Thomas Peyrin. Sebbene fosse l'attacco più efficace, questo non è comunque riuscito a scalfire la sicurezza.
Gli sviluppatori di RadioGatún hanno dichiarato che i loro "personali esperimenti non ispirano confidenza in RadioGatún".

## Esempi

Le uniche versioni che supportano vettori di test sono quelle a 32-bit e a 64-bit.
Questi vettori di test mostrano solamente i primi 256 bit dell'output del lungo flusso di uscita di RadioGatún:
E gli hash in versione 64-bit: