2009: sequential memory-hard functions Defense against specialized hardware (ASICs, FPGAs, GPUs) "We introduce the concepts of memory-hard algorithms and sequential memory-hard functions, and argue that in order for key derivation functions to be maximally secure against attacks using custom hardware, they should be constructed from sequential memory-hard functions." Colin Percival, "Stronger key derivation via sequential memory-hard functions", 2009 General-purpose computers spend more die area on memory (RAM, caches) than on computation logic (ALUs, vector units) inside CPUs RAM is about as expensive to implement in cracking-optimized hardware, whereas computation logic is cheaper to implement in a specialized and massively-parallel fashion (avoiding the overhead on instruction decode, out-of-order execution, etc.)