Argon2id

パスワードハッシュ関数Argon2の3つのバリアント(Argon2d / Argon2i / Argon2id)のうちの1つ。Argon2d(データ依存メモリアクセスでGPU/ASIC耐性が高いが、サイドチャネル攻撃に弱い)とArgon2i(データ非依存アクセスでサイドチャネル耐性が高いが、GPU耐性はやや劣る)のハイブリッド。最初のパス(メモリ走査1回目)の前半をArgon2iとして、残りをArgon2dとして動作させることで両方の利点を両立させている。

Argon2は2015年のPassword Hashing Competition(PHC)優勝アルゴリズムで、RFC 9106として標準化されている。RFC 9106では「Argon2idはすべての実装でサポートが必須(MUST)」とされており、事実上パスワードハッシュ用途のデフォルト推奨バリアントになっている。

メモリハード関数という特徴

bcryptPBKDF2と違い、CPU時間だけでなく大量のメモリ確保を要求する「メモリハード関数」である点が最大の特徴。GPU・ASIC・FPGAは並列コアは多いがコアあたりのメモリ帯域が乏しいため、メモリコストを上げることでこうしたハードウェアによる並列ブルートフォース攻撃のコストを大きく引き上げられる。scryptも同じくメモリハード関数の先駆けとして設計された。

パラメータ

  • メモリコスト(KiB単位)
  • 時間コスト(反復回数)
  • 並列度(レーン数)

の3つを調整できる。OWASPのPassword Storage Cheat Sheetでは最低ラインとしてメモリ19 MiB・反復2回・並列度1を挙げており、リソースに余裕があれば46 MiB・反復1回・並列度1などの代替構成も紹介されている。

パスワードハッシュアルゴリズムの中での位置づけ

PBKDF2bcryptというメモリハード性を持たない世代、scryptというメモリハード関数の先駆けを経て登場した、現時点でのデファクトスタンダード。

#security #cryptography

出典

作成日時: 2026-08-16 23:06 / 更新日時: 2026-08-16 23:15