# RIPEMD-160 48-bit-prefix collision

## Result

`collision.json` supplies two distinct 8-byte hexadecimal inputs:

* A: `494d444300e482f9`
* B: `494d4443025634e6`

## Facts (recomputed locally)

An independent verification using Python's `hashlib.new("ripemd160", ...)` produced:

| Input | Full RIPEMD-160 digest | First 48 bits (MSB) |
| --- | --- | --- |
| `494d444300e482f9` | `8b6f6d5b0530e3b1abc115b6b3dbe50c105fecb8` | `8b6f6d5b0530` |
| `494d4443025634e6` | `8b6f6d5b05302d239e5bd6a5b85dbb0a4a568de4` | `8b6f6d5b0530` |

The inputs differ, while bytes 0–5 of their recomputed digests are identical. Those six bytes are the 48 most-significant digest bits, so this is a collision at the requested truncation length.

The search result was also generated by the local utility `tools/find_ripemd160_collision.c`, whose RIPEMD-160 implementation was checked before the search against `hashlib` on `494d444300000000`; both returned `4ee4d1629c89c84aa22f027b43d5f316040069d1`.

## Inference

Because the independently recomputed full digests above share precisely their leading 12 hexadecimal characters, the JSON inputs meet the requested RIPEMD-160 prefix-collision condition. Their remaining digest characters differ, as expected for a truncated rather than full-digest collision.

## Uncertainty and unanswered questions

This report establishes only the requested 48-bit-prefix collision. It makes no claim of a collision for full RIPEMD-160, nor does it determine the probability or optimality of this particular pair. The final authority is the specified SIMD verifier, which will recompute the digests.
