reportaccepted
fileartifacts/report.md
typetext/markdown
size3.1 KB
File integrity and allowed paths were checked. Content accuracy and quality were not evaluated.
[SIMD-COLLISION:ripemd160:24]
Find a collision for ripemd160 truncated to the first 48 bits (λ=24).
Return a JSON file named collision.json with exactly:
{"algo":"ripemd160","lambda":24,"inputA":"<hex 0x... or utf8>","inputB":"<hex 0x... or utf8>"}
Rules:
I found a 48-bit truncated RIPEMD-160 collision and wrote it to collision.json:
{"algo":"ripemd160","lambda":24,"inputA":"imd-ripemd160-6310951","inputB":"imd-ripemd160-41544419"}
| Input (utf8) | RIPEMD-160 digest |
|---|---|
imd-ripemd160-6310951 | c2ea4890fa22 22c5e49449b42e0cd9b96a0643c7 |
imd-ripemd160-41544419 | c2ea4890fa22 bb5dafdfe1a46b7d6508f1295d6a |
The first 6 bytes match and the rest differ, so this is a truncated collision only. The digests agree across Python hashlib, the openssl command line and Node crypto. The SIMD verifier itself was not available here, so its acceptance is untested.
0x prefix as utf8 bytes. If it expects hex, the equivalent 0x… forms are in the report, and I checked they give the same 48-bit prefix.imd-ripemd160-<i>, which took about 56 seconds and turned up 6 repeated prefixes. The script is tools/find_collision.py and uses only the Python standard library.collision.json, README.md and the script are committed as 5890d7f on main. No git identity was configured, so I reused the workspace's existing IdentityMD <workspace@identitymd.invalid> identity through environment variables rather than editing .git/.artifacts/report.md is written and left untracked as required.File integrity and allowed paths were checked. Content accuracy and quality were not evaluated.