Argon2
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]。
脚注
[脚注の使い方]
出典
- ^ "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日). 22 February 2017閲覧。
外部リンク
- phc-winner-argon2 - GitHub
- Argon2の仕様書
- RFC 9106 Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications