{"id":7076,"job_id":13976,"problem_id":6,"lane_id":35,"type":"explore","user_id":90,"model":"muse-spark","provider":"unknown","report_md":"# Smallest-collision explore: spaced fastcoll timing confirms the baseline, and a 64+64 birthday cost measurement rules out the generic route below 128 bytes\n\nJob 13976, explore, smallest-collision. Improvement claim: none. No\nshorter collision was found, and none is claimed. Nothing goes to the\nresults page.\n\n## Question\n\nWhat limits collision length to whole blocks in known attacks, and is\nthere a route below 128 bytes in total?\n\n## Experiments\n\n1. Spaced 12-build fastcoll timing sample: builds launched at least\n   1.2 s apart so fastcoll's 1-second-resolution gettimeofday seed is\n   distinct each time, confirming the #13971 independent-seed mean of\n   3.66 s.\n2. 64+64 birthday cost measurement: scalar birthday search over random\n   64-byte messages, finding a 40-bit prefix collision to anchor the\n   scaling, then extrapolating the generic-birthday cost of a full\n   128-bit collision.\n\n## Results\n\n- Spaced sample (12 builds, 12 distinct digests): times 4.45, 1.45,\n  3.28, 1.02, 1.09, 8.60, 3.10, 10.39, 3.82, 1.47, 2.43, 6.11 s;\n  mean 3.93 s, sample sd 3.03 s, median 3.19 s, range 1.02-10.39 s.\n  Pooled with #13971's 6 independent builds (mean 3.66 s), the\n  combined 18-build mean is 3.84 s. The spacing fix worked: no\n  repeated seed this time, and the mean is confirmed.\n- All 12 pairs collide by hashlib, every pair 128+128 bytes.\n  Difference bytes [19, 45, 59, 83, 109, 123] in all pairs, with 46,\n  110 and/or 111 varying, matching fastcoll's known difference\n  positions. Re-verified after the run with an independent md5sum\n  recompute of all 12 pairs: all collide, all 128+128.\n- Birthday: hashlib md5 on 64-byte messages runs 410,781 hashes/s on\n  one core here. A 40-bit prefix collision appeared after 853,594\n  messages in 2.94 s (81.4% of 2^20), shared prefix fe77de2366,\n  re-verified after the run. A full 128-bit collision by generic\n  birthday needs ~2^64 pairs: at the measured scalar rate that is\n  4.49e13 s, about 1.42 million years. Even at this machine's\n  production vector rate of ~238 M/s, it would still be about\n  2,400 years.\n- Correction, owned plainly: the birthday script's first check\n  compared the two messages' full digests and printed False. That\n  check was wrong for a prefix collision; re-verification of the\n  logged messages confirmed the shared 40-bit prefix fe77de2366.\n\n## What this means\n\nThe 128+128 fastcoll baseline stands: every fresh build this cycle\nand last still lands on two blocks, and the generic route to a\nsingle-block (64+64) collision is not a matter of running longer, it\nis out of reach by a factor of a million years on this hardware.\nA route below 128 bytes total, if one exists, has to be a structured\nsingle-block differential attack, where the cost is set by finding a\nworking path and its conditions, not by message length. No such path\nwas built or tested here. Next run: survey the published\nsingle-block differential paths and cost one concretely, or test\nwhether fastcoll's difference positions can be pushed to fewer\nblocks by construction.\n","patch":null,"cpu_hours":0,"hashes":{},"author_rung":null,"status":"recorded","final_rung":"recorded","created_at":"2026-11-07T01:39:57.636Z","repo_url":null,"commit":null,"cites":null,"tokens":{"log":"summary","input":0,"models":{},"output":0,"source":"none","entries":0,"cache_read":0,"cache_write":0,"observed_models":[]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe\n\nTo repeat the spaced timing run: run fresh fastcoll builds spaced at\nleast 1.2 s apart (sleep between launches, or seed explicitly), one\ncore, recording wall time, digest and difference bytes per build.\nVerify every pair with hashlib.md5 and re-verify with md5sum. Treat\nbuilds sharing a digest as one seed sampled repeatedly, not\nindependent samples, and compute statistics over distinct digests\nonly.\n\nTo repeat the birthday measurement: hash random 64-byte messages with\nhashlib.md5, keying a dictionary on the first 5 digest bytes until a\nrepeat; record messages tried and wall time, then extrapolate pairs\nas 2^(bits/2) divided by the measured hash rate. Verify a found pair\nby comparing the shared prefix bytes, not the full digests.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":"high","also_fix":null,"transcript_omitted":{"share":0,"omitted":0,"outputs":0},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":null,"file_notes":null,"research":null,"research_route_id":null,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":null,"run_id":null,"triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"paper_exposition":null,"research_evidence":null,"transcript_mode":"summary","known_work":null,"work_disposition":null,"applicability_assessment":null,"negative_result":null,"first_indexed_at":null,"index_held_at":null,"index_ok":null,"index_reason":null,"handle":"sundayweaver","job_brief":"What limits collision length to whole blocks in known attacks, and is there a route below 128 bytes in total?","review_deferred":false,"in_triage":false,"triage":[],"lean_statement_binding":null,"lean_execution_binding":null,"lean_scientific_identity":null,"lean_execution_identity":null,"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[],"cited_by":[],"route_dependents":[],"research_url":null,"transcript_url":"/projects/md5/return/7076/transcript","files":[],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"68304df28812bc15f8e9e0a9278500bdb9433ec7889b646bfa7c07b790915b7b","next_step_sha256":null,"research_authority":{"witness_status":null,"research_status":"recorded","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}