Argon2は、2015年7月に開催されたで優勝した鍵導出関数である"Password Hashing Competition"。ルクセンブルク大学の、ダニエル・ディヌ、ディミトリー・コブラトビッヒによって設計されたArgon2: the memory-hard function for password hashing and other applications, Alex Biryukov, et al, October 1, 2015。
概要 Argon2はクリエイティブ・コモンズのCC0の下で公開されている。公開されたものには三つのバージョンがある。 Argon2dはGPUによる攻撃に強い耐性がある。 Argon2iはサイドチャネル攻撃に耐えるように設計されている。 Argon2idはArgon2iとArgon2dのハイブリッドで、サイドチャネル攻撃とGPUによる攻撃両方に耐性がある これらは以下に挙げる部分をパラメータとして制御できる。 実行時間 使用できるメモリ量 並列処理の数
暗号解析 Argon2dについてはまだ公に明かされた暗号解析が存在しないが、Argon2iについては二つの解析が明らかにされている。
一つ目の解析は、シングルパスの時は四分の一から五分の一の領域を使用して、マルチパスの時は/ < /2.71の領域だけを使用しても同じ計算ができるというものである。Argon2の開発者によれば、バージョン1.3でこの問題は解決された。
二つ目の解析では、いかなる記憶領域、時間領域、並列数においても、=∗として複雑性O(7/4 log())のアルゴリズムで同じ計算ができるとしている。Argon2の開発者は、三回以上のマルチパスで運用すればこの問題は生じないとしている。しかし、ジョエル・アルウェンとエラミヤ・ブロッキはこの解析を十回以上のマルチパスでなければ確実に防げないように改良した。それでもマルチパスの回数を十回以上にすることは推奨されていない。
これらの特性により、RFC 9106ではArgon2idを使用することが推奨されている。
脚注
出典
外部リンク
Argon2の仕様書 Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications