PQC-XXJTLU · cryptanalysis

HomeHash functions › CHAMP

Hash function · symmetric (hash)

CHAMP

Design

champ-1

Collisions through the triangular subgroup

Practical · Tested at small scale · Cause: construction

Property: collision resistance

Cost against claim: CHAMP-512 collision ≈268 against the required 2256

CHAMP hashes a message as a product of two public 2×2 matrices modulo a safe prime p. Words whose product is upper triangular are found in about √p by a claw search. Two such words, multiplied in the two possible orders, give products with the same diagonal, and a birthday search on the remaining entry yields two distinct messages of equal length with the same matrix, hence the same digest.

Parameter setClaimAttack costVerdict
CHAMP-512no numeric claim; the call requires collision 2256≈268Practical
CHAMP-1024no numeric claim; the call requires collision 2512≈2132Theoretical

What causes it

The digest is the matrix product with an entrywise inversion, over generators of determinant 2 and a safe prime of 128 or 256 bits. Nothing in the construction prevents the triangular-subgroup method, whose principle is published for Cayley hashes; the specification gives no numeric security level and states that no general collision method is known.

Evidence

Cause in the specification: the attack also works on a model built from the specification alone.

Limits

The full-size collisions are extrapolated from the toy primes, not computed.

What PQC-X adds

A measured work exponent behind the full-size estimate: p0.51, over more than 190 collisions on safe primes of 24 to 44 bits.

Credit

First public report: M.-J. Saarinen (ngcc.dev hash-04-2, 2026-09-21). Found independently by PQC-X.

Related public reports:

The method follows Petit, Quisquater, Tillich and Zémor (CT-RSA 2009) on the Zémor-Tillich hash.

champ-2

Short or mostly known inputs are recovered from the digest in seconds

Minor break · Demonstrated · Cause: construction

Property: the specification's own one-wayness claims for partly known inputs; preimages of random digests unaffected

Cost against claim: seconds for up to ~90 unknown bits (CHAMP-512) or ~180 (CHAMP-1024)

For a short input no modular reduction takes place, so the matrix read back from the digest can be lifted to the integers exactly, and its factors peel off one by one by parity and magnitude. With known context before and after, any unknown window inside a longer message is recovered the same way.

Parameter setClaimAttack costVerdict
CHAMP-512specification §7.1 (claim 2) and §7.2seconds, ≤ ~90 unknown bitsMinor break
CHAMP-1024specification §7.1 (claim 2) and §7.2seconds, ≤ ~180 unknown bitsMinor break

What causes it

The digest is the matrix product with entrywise inversion (both public and invertible), and the length is read off the determinant 2n. Nothing mixes short inputs. The specification claims that recovering even the first or last bit of a message of at least 1000 bits is infeasible, and that the determinant and negative eigenvalues defeat length attacks; both claims fall when a short window is unknown.

Evidence

Cause in the specification: the attack also works on a model built from the specification alone.

Limits

Not a preimage attack on random digests: the input must be short, or known except for a short window.

What PQC-X adds

Recovery in seconds rather than 2m/2: the exact integer lift replaces meet-in-the-middle for short inputs, and extends to unknown windows inside known context.

Credit

Found by PQC-X.

Related public reports:

Lifting attacks on Cayley hashes: Tillich and Zémor (1993); Petit and Quisquater's survey (2013), §3.4.