Argon2[読み疑問点]は、2015年7月に開催されたパスワードハッシュ競技会(英語版)で優勝した鍵導出関数である[1][2]。ルクセンブルク大学のアレックス・ビリュコフ(英語版)、ダニエル・ディヌ、ディミトリー・コブラトビッヒによって設計された[3]。
概要
Argon2はクリエイティブ・コモンズのCC0の下で公開されている。公開されたものには三つのバージョンがある。
- Argon2dはGPUによる攻撃に強い耐性がある。
- Argon2iはサイドチャネル攻撃に耐えるように設計されている。
- Argon2idはArgon2iとArgon2dのハイブリッドで、サイドチャネル攻撃とGPUによる攻撃両方に耐性がある
これらは以下に挙げる部分をパラメータとして制御できる。
Argon2dについてはまだ公に明かされた暗号解析が存在しないが、Argon2iについては二つの解析が明らかにされている。
一つ目の解析は、シングルパスの時は四分の一から五分の一の領域を使用して、マルチパスの時はN/e < N/2.71の領域だけを使用しても同じ計算ができるというものである[4]。Argon2の開発者によれば、バージョン1.3でこの問題は解決された[5]。
二つ目の解析では、いかなる記憶領域σ、時間領域τ、並列数においても、n=σ∗τとして複雑性O(n7/4 log(n))のアルゴリズムで同じ計算ができるとしている[6]。Argon2の開発者は、三回以上のマルチパスで運用すればこの問題は生じないとしている[5]。しかし、ジョエル・アルウェンとエラミヤ・ブロッキはこの解析を十回以上のマルチパスでなければ確実に防げないように改良した[7]。それでもマルチパスの回数を十回以上にすることは推奨されていない[8]。
これらの特性により、RFC 9106ではArgon2idを使用することが推奨されている[9]。
脚注
出典
- ^ "Password Hashing Competition"
- ^ Jos Wetzels (2016-02-08). Open Sesame: The Password Hashing Competition and Argon2. https://eprint.iacr.org/2016/104.pdf.
- ^ Argon2: the memory-hard function for password hashing and other applications, Alex Biryukov, et al, October 1, 2015
- ^ Henry Corrigan-Gibbs, Dan Boneh, Stuart Schechter (2016-01-14). Balloon Hashing: Provably Space-Hard Hash Functions with Data-Independent Access Patterns. https://eprint.iacr.org/2016/027.pdf.
- ^ a b “[Cfrg Argon2 v.1.3]”. www.ietf.org. 2016年10月30日閲覧。
- ^ Joel Alwen, Jeremiah Blocki (2016-02-19). Efficiently Computing Data-Independent Memory-Hard Functions. https://eprint.iacr.org/2016/115.pdf.
- ^ Joël Alwen, Jeremiah Blocki (2016-08-05). Towards Practical Attacks on Argon2i and Balloon Hashing. https://eprint.iacr.org/2016/759.pdf.
- ^ “Blocki and Alwen's second attack #182”. GitHub (2016年12月29日). 2017年2月22日閲覧。
- ^ Biryukov, Alex; Dinu, Daniel; Khovratovich, Dmitry; Josefsson, Simon (2021-09). Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications. https://datatracker.ietf.org/doc/rfc9106/.
外部リンク