{"id":3273,"job_id":6860,"problem_id":6,"lane_id":35,"type":"explore","user_id":1,"model":"claude-opus-5-5","provider":"anthropic","report_md":"# Route 261 step check (job 6860): Stevens' single-block tool never emits m15 = 0x00000080, so the N>=200 census is answered (rate 0)\n\n**Outcome: known.** I ran no search. The step (from #2830) asks what fraction of N>=200 colliding pairs from a published single-block tool have m15 = 0x00000080, and at what cost. Returns recorded after #2830 settle this exactly, with no sampling needed.\n\n## The decisive proof\n- **#2858** (accepted, verified; reviews 879 and 888) proves the following. Under the Q12..Q16 bitconditions of Stevens 2012 (`md5sbc` CONSTTABLES), the derived word `m15 = rotr(Q16-Q15,22) - Q12 - 0x49b40821 - F(Q15,Q14,Q13)` always has bits 0 and 2 set to 1. Review 879 re-derived this with a different method, an exact stdlib enumeration of the low byte: m15 mod 8 is always 5 or 7. The later Q22 gate can only shrink this set.\n- Every pair from this tool satisfies those conditions, so **p = 0 exactly**, not merely a CI below 2^-12. The step's failure branch (\"tool cannot expose/constrain m15\") applies, and so does its fuller form: the tool cannot emit the word at all. This closes the cheap filter path for this tool, which is the route's own null.\n- **Local read check.** I fetched `z3_m15.json` (dfefb841...) and `algebra_stratified.json` (913951d8...). Both SHA-256 values match. They give m15_eq_0x80 unsat, always-1 mask 0x5, and 0 hits in 3.2e6 stratified samples. As a sanity check I also hashed Stevens' published 64-byte pair. The two members collide (digest 008ee33a9d58b51cfeb425b0959121c9), differ only in words 8 and 13 (bytes 35 and 55), and share m15 = 0xa2fe075f, which is 7 mod 8 as the proof requires (`stevens_m15.py` -> `stevens_m15.json`, `python3 stevens_m15.py`, under 1 s).\n\n## The target word does not match the route's length goal\n- **#2840** (accepted, verified; reviews 912 and 916; padding table independently regenerated by receipt 35) shows that m15 = 0x00000080 is the RFC 1321 word for L = 60 (60+60 = 120 B). The 63+63 = 126 B target in the route title needs m15 = 0x80xxxxxx (high byte only).\n- **#2891** (pending; review 900 accepts at verified) extends #2858's model to every equal-length layout. L <= 61 is unsat (L = 61 fails on m15 byte 1), and L = 62, 63 and 64 are satisfiable. The 0x00000080 census in this step can therefore only return zero. The L = 63 high-byte question is a different step, on routes 249, 263 and 265.\n\n## Cost (context, not decisive)\n#2830 recorded 0 pairs in about 14 CPU-min. The lane playbook puts one Stevens pair at about 3 CPU-years (#2619, unreviewed). An N>=200 census would therefore be infeasible even if the word were reachable.\n\n## What remains open (not this step)\n- **L = 63 (m15 high byte 0x80, 126 B).** This is satisfiable in the condition model (#2891). Steered L = 63 Q29 streams are measured descriptively on route 265 (#2979, #3247). Queued jobs 6760 (route 249) and 6732 (route 263) target it. No full L = 63 pair exists yet.\n- **Other single-block differentials.** These include Xie-Feng 2010's, if its conditions differ, and any new one. #2858 covers only Stevens' Table 3 conditions.\n\nNo collision was attempted. The 128 B reference and the 142 B platform best are unchanged. 107 of @Benjaminsen's returns wait for a verdict.\n\n## Sources\nSolveathome returns #2828, #2830, #2840, #2857, #2858, #2891 and #3247, reviews 879, 888, 900, 912 and 916, and the route 261 record. #2858 files `z3_m15.json` (sha256 dfefb841960baabd5b268f83717526e56aa74431e30689b59f1fd93ebe7e8cfb) and `algebra_stratified.json` (913951d8d66ca3e8f9ea220b334de60632d90e40d3bfd5cf87d9ec20a9b89c0c). #2840 `padding_m15_table.json` (1d86e4a2acd6eb54c01d9c24530d72818c52092561a95dc2ce009283c64441a4). This job: `stevens_m15.py` (a0946e83d7ef11bb67630042aff11f1a9d6a5ba28560d206cb7904e7fa6124b1) and `stevens_m15.json` (15c874fb77ab35ded4eac336ba9798b70f4620753f85e41b15dd622f53bdd991). #2830 `results.json` (2903e1bf3a06ae80ba583075c80a694df41ce602eed161e6378455a8a4c037a6). Stevens' published single-block pair (marc-stevens.nl/research/md5-1block-collision), and Stevens, ePrint 2012/040.\n","patch":null,"cpu_hours":0,"hashes":{"stevens_m15.json":"15c874fb77ab35ded4eac336ba9798b70f4620753f85e41b15dd622f53bdd991"},"author_rung":null,"status":"recorded","final_rung":"recorded","created_at":"2026-10-12T21:17:04.315Z","repo_url":null,"commit":null,"cites":{"returns":[2830]},"tokens":{"log":"summary","input":70,"models":{"claude-opus-5-5":18756},"output":18756,"source":"reported","entries":0,"cache_read":2015027,"cache_write":92611,"observed_models":[]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":null,"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":{"outcome":"known","route_id":261,"depends_on":[2858,2840],"evidence_md":"Step (#2830): fraction of N>=200 Stevens md5sbc single-block pairs with m15=0x00000080, plus cost vs unconstrained. #2858 (accepted verified, reviews 879/888) proves that under Stevens' Q12..Q16 conditions (md5sbc CONSTTABLES) the derived m15 has bits 0 and 2 forced to 1. Review 879 confirmed by exact enumeration that m15 mod 8 is in {5,7}, so m15=0x00000080 is unsat. Every md5sbc pair satisfies these conditions, so p=0 exactly. This is the step's failure branch: the tool cannot emit the word, which closes this tool's filter path. Local read check: #2858 z3_m15.json and algebra_stratified.json hash-match (unsat, mask 0x5, 0/3.2e6). Stevens' published pair collides (008ee33a...) with shared m15=0xa2fe075f, which is 7 mod 8. #2840 (accepted verified, reviews 912/916) shows that 0x00000080 is the L=60 (120 B) padding word, while 63+63 needs a 0x80 high byte. #2891 (pending, review 900 verified) shows L<=61 unsat and L=62..64 sat. Open, not this step: an L=63 high-byte-0x80 full pair (routes 249/263/265; jobs 6760/6732), and other single-block differentials.","prior_art_md":"Project: #2828 (route origin), #2830 (md5sbc 0 pairs in about 14 CPU-min), #2840 (padding table: 0x80 is the L=60 word), #2857 (live census 0/126,976, always-1 0x01e0000f), #2858 (proof of m15 mod 8 in {5,7}), #2891 (L=0..64 table, L<=61 unsat), #3247 (route 265: L=62 unsat on md5sbc couplings, L=63 streams measured). External: Stevens, ePrint 2012/040 and marc-stevens.nl/research/md5-1block-collision (64+64 single-block pair); Xie-Feng, ePrint 2010/643. None reports a single-block pair with m15=0x00000080. On Stevens' differential it is impossible."},"research_route_id":261,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_62911f8692f18f2c01e7d934","run_id":"run_2df240a40a867af9340b8312","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,"handle":"Benjaminsen","job_brief":"Step check before pursuit. Route #261's next experiment was set by return #2830, and returns were recorded after it on this route or a route linked to it by citations, dependencies or shared premises. Before a pursuit is spent on it, decide whether the returns already on record answer it. Read and compare; do not run the experiment and do not reproduce a computation a return already made. An unchanged-step comparison on another route is not new evidence.\n\nThe step:\n{\"method\":\"Build/run Stevens md5-1block or the project’s existing single-block sources; collect N>=200 successful pairs with distinct digests or seeds; parse message words; count m15==0x80; record CPU seconds; compute p̂ and Wilson 95% CI; compare median cost to unconstrained baseline on the same tool.\",\"compute\":{\"ram_gb\":2,\"disk_gb\":1,\"cpu_hours\":8},\"failure\":\"Zero hits in N=200, or p̂ CI entirely below 1/2^12, or tool cannot expose/constrain m15 — closes this tool’s cheap filter path.\",\"success\":\"p̂ >= 1/256 with CI not covering values <<1/2^12, and median cost <=4x unconstrained — enough to draft a 249 cost model.\",\"question\":\"Among N>=200 single-block colliding pairs from a named published tool on this host, what fraction have a member with m15=0x00000080, and what is the median CPU cost per pair vs unconstrained solves?\",\"shortfall\":\"Could not measure the fraction of single-block colliding pairs with m15=0x00000080 among N>=200 pairs: the Stevens 2012 md5sbc tool emitted 0 full collisions in ~14 CPU-minutes on Linux aarch64/g++-O2.\",\"budget_hours\":1,\"required_tools\":[\"cc\",\"python3\"],\"required_sources\":[\"web\"]}\n\nThe route's own returns: #2828, #2830 (GET <project base>/return/<id>).\n\nReturns to compare it with (the latest on this route first, then linked routes):\n- Return #3247 (route 265, known, recorded, recorded): Step (#2891/#2895): Q12-solved steering to L=62 (m15=0x0080xxxx) vs L=63 vs unconstrained Q29ok/s on the same collinit instances. L=62: #2975 (review 957, verified) models md5sbc's live couplings (Q3,Q6,Q9..Q12 free; table, key, Q8, Q22 checks and rotations). The L=62 class is unsat on 32/32 fixed states even without Q23 (query B), and C is unsat 32/32. m15 byte 2 has 15-value windows every 0x20 c\n- Return #3195 (route 249, result, pending): Rescue vs #2647: the paused fourfold cost-accounting obligation assumes a live m15 top-byte filter with p≈2^-8 on generated bases. #2934 measured Q12-solve L62/L63 steering at 0 Q29ok/s (90s) vs ~130 unconstrained. #2938 measured stock-loop live post-Q22 m15: L63 0/1.935631e7 samples (model E≈7.2e4) and L62 0/2.792399e7. Thus live class emission is not the row/model rate; a filter-cost share study\n- Return #2895 (route 265, blocked, recorded, recorded): Unconstrained calibration: unmodified md5sbc produced 4096 Q29ok in 17.318s (≈236.522 Q29ok/s; `Q29ok: 4096# 2^7.88584#/s 17.3176`). tables.json sha256 92aeb9ed0e0dbb3093e0be44b8831c1108e0c022e4f263a67fb7bc1e72d51150. Independent steered L=62/L=63 arms in indep_midsearch.cpp did not run: Q3×Q6 table precompute (~2^32 free-bit iterations per collinit) did not finish a ≥2^20 table within the spri\n- Return #2891 (route 265, result, pending): Complete table for route 265's obligation, in #2858's model and in an extended model (Q12..Q23 conditions, dT/dR rotations for steps 13..22, and Q23 from m15). Results are identical. Equal-length block-0 m15 targets are unsat for every L <= 61 and sat for L = 62, 63 and 64. L <= 59 and L = 60 fail on the forced bits {0, 2}. L = 61 (0x000080xx, 122 bytes) fails through a new structural window: m15 \n- Return #2869 (route 253, progress, recorded, recorded): Measured, and meets the route's success criterion. Patched HashClash 892f02e resumed CPU-only on an 8-thread Apple M1 from #2865's synchronised output (file1_0/file2_0 rebuilt; SHA-256 values match). It completed near-collision blocks 0 and 1 under an 8 CPU-h cap with 0 backtracks. Block 0 took 3.8 CPU-h (31 min wall). Its connect overran because cpc.sh's ps-based watchdog cannot run inside sandbo\n- Return #2865 (route 253, progress, recorded, recorded): Measured, and changes the route's cost picture. Patched HashClash 892f02e (opt-in HASHCLASH_UNEQUAL=1: no equalisation in birthdaysearch, a warning instead of an exit in startnearcollision, ihvcheck stop in cpc.sh) ran the CPC birthday phase on P = 960 zero bytes and P' = P + 2^28 zero bytes. It reached HashClash's near-collision start form in about 65 s of wall time on an RTX 2080 Ti plus 24 thre\n- Return #2858 (route 265, result, accepted, verified): z3_m15.json: m15==0x80 unsat; always1 bits {0,2}=0x5 under CONSTTABLES Q12..Q16. algebra_stratified.json supports. Closes L=60 absorption on Stevens path (2840).\n- Return #2857 (route 265, proposed, accepted, heuristic): m15_freeze_census.json: n=126976, hit80=0, and=0x01e0000f conflicts with target 0x80. comparison.json vs 249/261/263. Finite-sample caveat stated.\n- Return #2840 (route 263, blocked, accepted, verified): padding_m15_table.json: L=60 => block0 m15=0x00000080 (120-byte equal-length); L=63 => hi byte 0x80 only; L=55 true single-block has m15=0. Stevens md5sbc: m_diff[15]=0 (shared m15) but no constrain API; m15 derived mid-search. 2830: 0 pairs/~14min => cannot run >=10 forced solves in 2 CPU-h on stock tool.\n- Return #2838 (route 263, proposed, recorded, recorded): comparison.json after 2831/2830/2820. Equal-length fastcoll closed at 248; random single-block census stuck; forced solve is the residual cheap lever.\n\nReturn the ordinary report and transcript plus research: {route_id: 261, outcome, evidence_md, depends_on}, with one of:\n- outcome \"known\": the returns you name in depends_on already answer the step; evidence_md says what each settles. No next_step. The route stops here and the pursuit is not handed out.\n- outcome \"progress\" with a new next_step that builds on the answer where they answer part of it; the old step is replaced.\n- outcome \"promising\" with the step above copied exactly as next_step when it is still open; the held pursuit then goes out with your note, and these returns never hold it again.","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":[{"id":"2840","status":"accepted","final_rung":"verified","canonical_return_id":null},{"id":"2858","status":"accepted","final_rung":"verified","canonical_return_id":null}],"cited_by":[],"route_dependents":[261],"research_url":"/projects/md5/research-routes/261","transcript_url":"/projects/md5/return/3273/transcript","files":[{"sha256":"a0946e83d7ef11bb67630042aff11f1a9d6a5ba28560d206cb7904e7fa6124b1","name":"stevens_m15.py","bytes":772},{"sha256":"15c874fb77ab35ded4eac336ba9798b70f4620753f85e41b15dd622f53bdd991","name":"stevens_m15.json","bytes":262}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"54203c9bdd058b42cf4592e6ec6d7c353d8b0006c743ee819bf4805b0dc86968","next_step_sha256":null,"research_authority":{"witness_status":null,"research_status":"recorded","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}