Home

Memoryhard

Memoryhard is a term used in computer science to describe an algorithm or function whose performance is constrained primarily by memory usage rather than by CPU speed alone. In practice, memoryhardness is achieved by requiring a large, often randomly accessed memory footprint during computation. This design makes it difficult to accelerate computation with specialized hardware that has relatively high compute power but limited memory per core, and it is widely used to strengthen password hashing and key derivation.

Memory-hard functions (MHFs) are intended to resist efficient time-memory trade-offs. They typically require allocating substantial memory

Common examples include scrypt and Argon2. Argon2, the winner of the Password Hashing Competition, provides tunable

Advantages of memory-hard designs include increased resistance to parallelized cracking and better scalability with hardware that

for
each
computation
and
use
memory
access
patterns
that
hinder
simple
recomputation.
Because
memory
bandwidth
and
capacity
dominate
the
cost,
attackers
using
GPUs
or
ASICs
face
diminishing
returns
when
trying
to
optimize
brute-force
or
precomputation
attacks.
parameters
for
memory,
time,
and
parallelism,
and
offers
variants
such
as
Argon2d,
Argon2i,
and
Argon2id.
These
MHFs
are
widely
used
for
password
hashing
and
as
key
derivation
functions,
with
the
goal
of
making
mass
cracking
more
expensive
while
keeping
legitimate
verification
feasible
on
ordinary
hardware.
features
high
memory
bandwidth.
Limitations
include
higher
memory
requirements,
potential
performance
variability
due
to
memory
access
patterns,
and
the
need
for
careful
parameter
selection
to
balance
security
and
practicality.