コンテンツへスキップ
uencoder

scrypt ROMix

scrypt ROMix は scrypt の中核となるメモリーハード構成要素である。擬似ランダムに埋めたメモリ配列に対して順次読み書きを行い、攻撃者に大容量メモリか長大な時間のどちらかを強制的に支払わせる。

目的

scrypt のメモリーハード性を実現し、並列攻撃にも同等のメモリか二次の時間コストを要求させる。

メカニズム

ハッシュ関数で V[0..N] を順に埋め(V[i]=H(V[i-1]))、次に V[N-1] から出発し、V から導いた整数をインデックスとして N 回の擬似ランダムジャンプを行い、読み出すたびにハッシュ化する。順次の充填とランダムアクセスの組み合わせが、メモリか時間のコストを強制する。

ユースケース

  • scrypt の中核構成要素
  • メモリーハード関数
  • パスワードハッシュ

関連ツール

References