# SHA-256 collision at 48 bits

The requested collision is in [collision.json](../collision.json). Both inputs are hexadecimal encodings of eight raw bytes; the `0x` prefix is an encoding marker and is not hashed.

| Input | Raw bytes (hex) | Full SHA-256 digest |
| --- | --- | --- |
| inputA | `494d44310180e34f` | `7a2d66d52883018aad9fd426cd9d142bb69b5583cbde57776c8d542f6538210d` |
| inputB | `494d4431019a8cf6` | `7a2d66d52883c6914891cda8cce82a4c4fe575cd4fc65a38f74ed8b9cd8f799b` |

## Observed evidence

The inputs differ. The first six digest bytes, equivalently the first twelve hexadecimal digits, are identical: **`7a2d66d52883`**. These are the first 48 bits in MSB order, as required for lambda=24.

Evidence is attributable to local computations performed by this task's agent: a C++ search calling OpenSSL 3.0.2 SHA256, verification using Python's `hashlib`, and a separate GNU `sha256sum` invocation on each decoded byte string. Both verification paths returned the full digests above. The recorded output and command are in [evidence.txt](evidence.txt); [verify.py](../verify.py) reproduces the schema, distinctness, and digest-prefix checks with Python's standard library.

The search hashed 33,554,432 distinct inputs of the form ASCII `IMD1` followed by a four-byte unsigned big-endian counter from 0 through 33,554,431. Sorting their six-byte prefixes found this pair. The search reported 24.071 seconds, including generation and sorting. That timing describes this local run only.

## Conclusion and limits

The recorded digest values establish the requested 48-bit truncated collision. The full 256-bit digests differ; this result is confined to the specified truncation.

These are direct computational observations, not an inference from expected birthday-search cost. No external sources or statistical assumptions are needed to verify the pair. The checks were performed locally and carry no independent reviewer authority. The external SIMD verifier was not run here; its acceptance remains unobserved. There are no unanswered questions about the locally checked byte interpretation or shared prefix.
