liveBook · Manning

Argon2

As explained in Real-World Cryptography

Argon2 is a memory-hard password-hashing algorithm designed to make password-guessing attacks costly in time and memory.

When a password database is stolen, attackers can guess passwords repeatedly. Argon2 makes each guess costly in time and memory, slowing large-scale attacks. section 2.6

Argon2 protects password storage through two related ideas:

  • Salts give each user a different customization value, preventing attackers from reusing precomputed rainbow tables across the database. section 2.6
  • Slow password hashing makes guessing expensive; Argon2 is memory-hard, so attackers gain little by optimizing computation without also optimizing memory access. section 2.6
  • Other choices include PBKDF2, bcrypt, and scrypt, but insecure parameters can make several schemes difficult to configure safely. section 2.6
Figure 2.18 In this chapter, you saw four types of hash functions: (1) the normal kind that provide a unique random-looking identifier for arbitrary-length inputs; (2) extendable output functions that are similar but provide an arbitrary-length output; (3) tuple hash functions that unambiguously list hash values; and (4) password-hashing functions that can’t be easily optimized in order to store passwords safely.

Places Argon2 among four hash-function categories and identifies password-hashing functions by their resistance to easy optimization. section 2.6

How Real-World Cryptography covers it

How deep it goes
Explains salts, slowness, and memory hardness, but stops short of implementation details and parameter selection.
Examples
Uses stolen password databases, repeated guessing, rainbow tables, dedicated hardware, and a hash-function classification figure.
What it assumes
Builds from basic hash functions and salts before distinguishing password-hashing functions.
What you can do after
Evaluate password-hashing choices by comparing guessing cost, memory hardness, and configuration risks.
How it connects
Connects Argon2 with salts, rainbow tables, password hashing, scrypt, PBKDF2, bcrypt, and memory-hard functions.

Also explained in

Compare how 2 books explain Argon2 →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Real-World Cryptography. The section links point to the parts of the book it draws on.