Skip to content
uencoder

scrypt ROMix

scrypt ROMix is the core memory-hard component of scrypt: it sequentially reads and writes over a pseudo-randomly filled memory array, forcing attackers to spend either large memory or large time.

Purpose

Provides scrypt's memory hardness, so parallel attacks need equal memory or quadratic time.

Mechanism

Uses the hash function to sequentially fill V[0..N] (V[i]=H(V[i-1])), then starting from V[N-1] makes N pseudo-random jumps indexed by integers derived from V, reading and hashing each time. Sequential filling plus random access forces memory or time cost.

Use cases

  • Core scrypt component
  • Memory-hard function
  • Password hashing

Related tools

References