← Hardness assumptions

Collision Resistance of Standardized Hash Functions (SHA-2 / SHA-3)

Proposed by: Concept: Ivan Damgård (1987), Ralph Merkle (1989); concrete assumptions: NIST/NSA (SHA-2, 2001), Bertoni–Daemen–Peeters–Van Assche (Keccak/SHA-3, 2008) Category: Symmetric / concrete (“unstructured”) assumption

Mathematical form

For a fixed function H:{0,1}{0,1}nH : \{0,1\}^* \to \{0,1\}^n (SHA-256: n=256n = 256):

Collision resistance (concrete assumption). No algorithm finds xxx \neq x' with H(x)=H(x)H(x) = H(x') in time substantially below the generic birthday bound 2n/22^{n/2}.

Preimage / second-preimage resistance. Given y=H(x)y = H(x) (resp. xx), no algorithm finds a preimage (resp. a second preimage) in time substantially below 2n2^n.

Formally, collision resistance requires a keyed family {Hk}\{H_k\} (for a fixed function a collision trivially “exists”); practice assumptions human ignorance of any collision for the standardized instances. Related idealization: the random oracle model (Bellare–Rogaway 1993, >10,000 citations) treats HH as a uniformly random function — a proof heuristic, not an assumption about a real object.

Best known attacks

Importance

Source: assumptions/hash-collision-resistance.md — corrections welcome via pull request.