Funkcja pamięciochłonna
Funkcja wyprowadzania klucza wymagająca dużych ilości RAM, tak aby wyspecjalizowany sprzęt nie zgadywał haseł wiele taniej niż zwykły komputer.
Funkcja pamięciochłonna (ang. memory-hard) przez cały czas obliczeń trzyma w pamięci duży blok danych i odczytuje go w nieprzewidywalnym porządku. To podnosi koszt zestawów do łamania na GPU i ASIC, bo każda równoległa próba potrzebuje tyle pamięci, ile zużyłby procesor ogólnego przeznaczenia.
Colin Percival przedstawił scrypt w 2009 roku, jedną z pierwszych takich funkcji. Argon2 wygrał konkurs Password Hashing Competition w 2015 roku. Jest opisany w RFC 9106, a scrypt w RFC 7914. Obie pozwalają dobrać rozmiar pamięci i koszt czasowy, więc to ty decydujesz, jak ciężka ma być funkcja.
To nie jest magiczne rozwiązanie. Limit pamięci jest kompromisem z tym, ile RAM może poświęcić legalny serwer, a zbyt mała ilość pamięci zostawia mniej więcej tę samą powierzchnię ataku co zwykły skrót. Przy hasłach, gdzie liczy się każda próba, nadal jest to rozsądny sposób na podniesienie ceny dla zgadującego.