Argon2
パスワードベースの鍵導出関数
From Wikipedia, the free encyclopedia
概要
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]。