セキュリティ
上級

Argon2 (パスワードハッシュ)(アルゴンツー)

Khovratovich / Biryukov 2015年公開のメモリハード パスワードハッシュ関数。PHC (Password Hashing Competition) 優勝・OWASP 推奨、現代パスワード保護の最適解。

0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
暗号
パスワード
ハッシュ

概要

Argon2 は2015年7月Alex Biryukov / Daniel Dinu / Dmitry Khovratovich (ルクセンブルク大学暗号研究室) が公開した、メモリハード パスワードハッシュ関数。Password Hashing Competition (PHC・2013-2015年・24 候補から最終9 候補) で2015年7月優勝、bcrypt (1999) / scrypt (2009) の後継として設計。メモリハード設計でGPU / ASIC 攻撃耐性を強化、OWASP 2021推奨「最強パスワードハッシュ」、2021年RFC 9106 で標準化。

Argon2 主要バリアント

バリアント用途攻撃耐性
Argon2d暗号通貨 / DoS 耐性GPU / ASIC 強
Argon2iパスワード / サイドチャネル耐性サイドチャネル強
Argon2id汎用 (PWハッシュ標準)両方ハイブリッド

OWASP / IETF は Argon2id を新規実装で推奨。

Argon2 設計の特徴

特徴内容
メモリハード数百MB-数GB のRAM 使用 (GPU/ASIC 攻撃困難化)
時間調整iterations パラメータ (t)
メモリ調整memory コスト (m・KB単位)
並列度parallelism (p・スレッド数)
Saltper-password 一意 (16+ byte)
出力長任意 (通常32 byte)
設計Blake2 ベース

bcrypt / scrypt / PBKDF2 / Argon2 比較

アルゴリズム年メモリハードGPU 耐性推奨
MD5 / SHA-11992 / 1995❌❌絶対不可
SHA-256 単独2001❌❌不可
PBKDF2-SHA2562000❌△ (HW 高速)レガシー (NIST 標準)
bcrypt1999△ (4KB)△互換性のため OK
scrypt2009◯ (KB-MB)◯良 (Argon2 推奨)
Argon2id2015◎ (MB-GB)◎最推奨 (新規)

OWASP 2021 推奨パラメータ

OWASP Password Storage Cheat Sheet の推奨設定:

Argon2id:
  m (memory): 19 MiB (19,456)
  t (iterations): 2
  p (parallelism): 1
  output length: 32 byte
  salt length: 16 byte

これで:

  • 1パスワード検証: 50-100ms (人間UX OK)
  • GPU 攻撃: 10K-100K guesses/sec/GPU
  • ASIC 攻撃: 経済的非現実
  • メモリ19MB ×並列攻撃数で GPU メモリ圧迫

Argon2 アルゴリズム概要

1. Pre-hash: Blake2b(password + salt + parameters)
2. Initialize: 2D matrix (m × p 領域)
3. Iterations (t 回):
   - 各ブロック Pseudo-Random 計算
   - 既存ブロックと混合
4. Final: 最終ブロック → Blake2b → output

メモリ全領域を「ランダム参照」するため、メモリ削減攻撃 (Time-Memory Trade-off) が困難。

主要採用先

製品採用
BitwardenArgon2id (PBKDF2 から移行 2022-)
1PasswordArgon2 互換 (独自実装)
KeePass / KeePassXCArgon2d / Argon2id
VeracryptArgon2id (旧PBKDF2)
Yubikey関連用途
Dashlane内部利用
LastPass後継検討中
CryptomatorArgon2id
Borg BackupArgon2

Bitwarden の Argon2id 移行 (2022)

2022年11月Bitwarden が Argon2id サポート追加 (旧PBKDF2-SHA256 600,000 iterations):

項目旧 PBKDF2新 Argon2id
メモリ064 MB
iterations600,0003
並列14
GPU 攻撃耐性弱強
ASIC 攻撃可能不可能

ユーザのMaster Password ハッシュをサーバが「決して見ない」ゼロ知識アーキテクチャと組合せで、業界最高水準のセキュリティ。

関連用語との違い

  • vs SHA-256: 単純ハッシュ / パスワード特化
  • vs bcrypt / scrypt: 古い / 新しい標準
  • vs PBKDF2: NIST 標準だが脆弱

FAQ

Q1: 既存サイトを Argon2 化? A: 段階的移行: ユーザがログイン時に旧hash → Argon2 再計算 → DB更新。完全移行に数ヶ月-数年かかるが、新規ユーザは即Argon2 で安全。

Q2: なぜメモリハード? A: GPU / ASIC は計算速度は高速だがメモリ容量が小さい。メモリハード設計で「計算速度 vs メモリ容量」のトレードオフを CPU 有利に設定。

Q3: 個人で使う? A: パスワードマネージャ (Bitwarden / KeePassXC) で間接利用・自家サイト構築なら argon2-cffi (Python) / @node-rs/argon2 (Node.js) 等のライブラリ採用。

この記事について
カテゴリーセキュリティ
難易度上級
作成日2026/5/15