RadioGatúnは、Guido Bertoni、Joan Daemen、Michaël Peeters、Gilles Van Asscheらによって考案された暗号ハッシュプリミティブです。この
ハッシュ関数は、2006年にNIST(
アメリカ国立標準技術研究所)が主催した
ハッシュ関数コンテストで発表されました。RadioGatúnは、1990年代後半に脆弱性が指摘されたストリーム暗号であるパナマを基に開発されましたが、
ハッシュ関数として使用する際にはパナマの弱点が解消されていることが確認されています。
RadioGatúnの構造
RadioGatúnは、パラメータによって区別される64種類の
ハッシュ関数の集合体です。ワード幅(w)は1から64ビットの間で調整でき、それぞれのサイズに対応した58ワードに変換して格納します。例えば、32ビット版では232バイト、64ビット版では464バイトに変換されます。また、
ハッシュ関数だけでなく、
擬似乱数ストリームを出力するストリーム暗号としても利用可能です。この特性から、RadioGatúnは「拡張可能出力関数(XOF)」としても知られています。さらに、RadioGatúnの開発チームは、この暗号プリミティブを大幅に改訂し、後にSHA-3アルゴリズムを開発しました。
セキュリティ
RadioGatúnの設計者は、論文の中で、出力の最初の19×wビット(wは使用されるワード幅)が暗号学的に安全な
ハッシュ関数であると述べています。つまり、32ビット版では最初の608ビット、64ビット版では1216ビットを暗号化ハッシュ値として使用できます。
誕生日攻撃に対する安全性も考慮されており、ワード幅wに対して、RadioGatúnは2^(9.5w)未満の複雑さの攻撃に対して耐性を持つように設計されています。これは、32ビット版では2^304、64ビット版では2^608に対応します。
設計者たちは、セキュリティをさらに改良し、19wの容量を持つ暗号スポンジ機能のセキュリティを確保しています。これにより、32ビット版では衝突攻撃と原像攻撃に対して304ビットのセキュリティ、64ビット版では608ビットのセキュリティが保証されています。
攻撃実験
「RadioGatúnに対する2つの攻撃」という論文で、Dmitry KhovratovichとAlex Biryukovは、設計者のセキュリティポリシーを破らない2^(18w)と2^(23.1w)の複雑さを持つ2つの攻撃を提示しました。Khovratovichはその後、「構造を持つ
ハッシュ関数の解読」という論文で、2^(18w)の複雑さを持つ攻撃を記述しています。
さらに、「代数的手法を用いたRadioGatúnの衝突攻撃の解析」という論文では、Charles BouillaguetとPierre-Alain Fouqueが2^(24.5)回の操作を必要とする攻撃を用いて、アルゴリズムの1ビット版で衝突を生成することに成功しました。ただし、この攻撃をより大きな幅に拡張することはできないとされています。この攻撃は他の攻撃よりも効果的ではありません。
Thomas FuhrとThomas Peyrinによる論文「Cryptanalysis of RadioGatun」では、2^(11w)の複雑さを持つ最も効果的な攻撃が示されました。しかし、この攻撃もセキュリティポリシーを破るものではありません。
開発者たちは、自分たちの実験ではこのアルゴリズムのセキュリティに問題はないと結論付けています。
開発者によるテスト
RadioGatúnの設計者は、テストベクトルを提供しており、プログラマーがアルゴリズムを正しく実装しているかどうかを検証できるようになっています。公開されているのは、32ビット版と64ビット版のテストベクトルです。これらのテストベクトルは、RadioGatúnの任意の長い出力ストリームの最初の256ビットを示しています。
以下は、32ビット版と64ビット版のテストベクトルの例です。
32ビット版の例
RadioGatun
32 =
F30028B54AFAB6B3E55355D277711109A19BEDA7091067E9A492FB5ED9F20117
RadioGatun
32 =
191589005FEC1F2A248F96A16E9553BF38D0AEE1648FFA036655CE29C2E229AE
RadioGatun
32 =
EBDC1C8DCD54DEB47EEEFC33CA0809AD23CD9FFC0B5254BE0FDABB713477F2BD
64ビット版の例
RadioGatun
64 =
64A9A7FA139905B57BDAB35D33AA216370D5EAE13E77BFCDD85513408311A584
RadioGatun
64 =
6219FB8DAD92EBE5B2F7D18318F8DA13CECBF13289D79F5ABF4D253C6904C807
RadioGatun
64 =
C06265CAC961EA74912695EBF20F1C256A338BC0E980853A3EEF188D4B06FCE5
参考文献
The RadioGatún Hash Function Family
rg32hash
[1] "The Road from Panama to Keccak via RadioGatún"
The RadioGatún Hash Function Family
* "Two attacks on RadioGatún"