RadioGatún
'''RadioGatún''' è una [[Funzione crittografica di hash|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)|Santa Barbara, California]], il 24-25 agosto 2006, come parte della [[Competizione NIST per funzioni hash|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)<ref>http://csrc.nist.gov/groups/ST/hash/sha-3/Aug2014/documents/perlner_XOFs.pdf</ref>.

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<ref>{{Cita web|url=http://drops.dagstuhl.de/opus/volltexte/2009/1958/
|titolo=The Road from Panama to Keccak via RadioGatún
|autore1=Bertoni, Guido |autore2=Daemen, Joan |autore3=Peeters, Michaël |autore4=Van Assche, Gilles |accesso=20 ottobre 2009
}}</ref>.

== 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"<ref>Page 9 (Section 6) of "RadioGatún, a belt-and-mill hash function" states that "RadioGatún
[l''w''] offers a security level indicated by a capacity ''c'' = 19 * w. For the 64-bit version RadioGatún
this is a capacity of 1216 bits, for the 32-bit version and 16-bit version this
gives 608 and 304 bits respectively."</ref>. 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<sup>9.5''w''</sup>. Questo corrisponde a 2<sup>304</sup> (32-bit) e 2<sup>608</sup> (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 19''w''<ref>http://radiogatun.noekeon.org/ "We now prefer to express the security claim for RadioGatún as a flat sponge claim with capacity 19''w''"</ref>. 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<sup>18''w''</sup> e un altro di 2<sup>23.1''w''</sup><ref>{{Cita web|url= http://lj.streamclub.ru/papers/hash/rg.pdf
 |titolo= Two attacks on RadioGatún
 |nome1= Dmitry
 |cognome1= Khovratovich
 |nome2= Alex
 |cognome2= Biryukov
}}{{Collegamento interrotto|data=April 2018 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>. Khovratovich fu anche l'autore di "Cryptanalysis of hash functions with structures", che descrive un attacco con complessità 2<sup>18''w''</sup><ref>https://www.cryptolux.org/images/7/79/Struct.pdf</ref>.

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<sup>24.5</sup> operazioni<ref>{{Cita web|url=https://hal.archives-ouvertes.fr/inria-00417797/en/
|titolo=Analysis of the Collision Resistance of RadioGatun using Algebraic Techniques
|nome1=Charles
|cognome1=Bouillaguet
|nome2=Pierre-Alain
|cognome2=Fouque
}}</ref>. 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<sup>11''w''</sup> ed è presente nel documento "Cryptanalysis of RadioGatun" di Thomas Fuhr and Thomas Peyrin<ref>{{Cita web|url=https://eprint.iacr.org/2008/515
|titolo=Cryptanalysis of RadioGatun
|nome1=Thomas
|cognome1=Fuhr
|nome2=Thomas
|cognome2=Peyrin
}}</ref>. 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"<ref>{{Cita web|url=http://csrc.nist.gov/groups/ST/hash/sha-3/documents/Keccak-slides-at-NIST.pdf
|titolo=Keccak and the SHA-3 Standardization
}}</ref>.

== 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:

 RadioGatun[32]("") =
 F30028B54AFAB6B3E55355D277711109A19BEDA7091067E9A492FB5ED9F20117

 RadioGatun[32]("The quick brown fox jumps over the lazy <span style="color:#FF0000">'''d'''</span>og") = 
 191589005FEC1F2A248F96A16E9553BF38D0AEE1648FFA036655CE29C2E229AE

 RadioGatun[32]("The quick brown fox jumps over the lazy <span style="color:#FF0000">'''c'''</span>og") = 
 EBDC1C8DCD54DEB47EEEFC33CA0809AD23CD9FFC0B5254BE0FDABB713477F2BD

E gli hash in versione 64-bit:

 RadioGatun[64]("") =
 64A9A7FA139905B57BDAB35D33AA216370D5EAE13E77BFCDD85513408311A584

 RadioGatun[64]("The quick brown fox jumps over the lazy <span style="color:#FF0000">'''d'''</span>og") = 
 6219FB8DAD92EBE5B2F7D18318F8DA13CECBF13289D79F5ABF4D253C6904C807

 RadioGatun[64]("The quick brown fox jumps over the lazy <span style="color:#FF0000">'''c'''</span>og") = 
 C06265CAC961EA74912695EBF20F1C256A338BC0E980853A3EEF188D4B06FCE5

== Note ==
<references />

== Collegamenti esterni ==
* [http://radiogatun.noekeon.org/ Sito web ufficiale] di RadioGatún, con la descrizione ufficiale dell'hash, riferimenti e vettori di test.
* [http://www.samiam.org/rg32/ rg32hash], un'implementazione indipendente e di dominio pubblico della versione 32-bit di RadioGatún

{{Hash e MAC}}

{{Portale|crittografia|Sicurezza informatica}}
[[Categoria:Hash crittografici]]