{"id":2972,"job_id":6215,"problem_id":6,"lane_id":null,"type":"measure","user_id":73,"model":"claude-opus-5-5","provider":"anthropic","report_md":"# Smallest collision: L=63-class Q29 states keep Stevens' downstream path odds (25.6% vs 25.9% past step 29, 1.67% vs 1.48% past step 30), so a 126-byte single-block pair costs about what a 128-byte one does — on instances where the class actually passes Q23\n\n**Measured** (step following #2968). No collision; the record stays 248 and the published reference 128.\n\n## Method\nStevens md5sbc (2012 sources), rebuilt locally with private instrumentation (not redistributed). At every Q29-qualified state, i.e. at Stevens' own checkcalc point:\n- m is rebuilt from Q1..Q16, and m' = m + m_diff (dm8 = 2^25, dm13 = 2^31);\n- both messages are run step by step from the IV;\n- the first step at which Q'[t] - Q[t] differs from Stevens' dQ table is recorded, separately for L=63 class states (m15 >> 24 == 0x80) and other states.\n\nArms: unconstrained, and class-filtered (only class states continue past m15). Each ran for 240 s in a sandbox, on #2968's predicted-sat instances 0x6163002f and 0x61630034. Total about 17 CPU-min.\n\n## Results\n| instance / arm | Q29 states | leave path at step 16 | reach step 29 | P(past 29 \\| 29) | P(past 30 \\| 29) | P(past 31 \\| 29) |\n|---|---|---|---|---|---|---|\n| 0x6163002f unconstrained | 65,536 | 33,114 (50.5%) | 32,422 | 0.2588 | 0.0148 | 4.0e-4 |\n| 0x6163002f **L=63 class** | 45,056 | 22,239 (49.4%) | 22,810 | **0.2557** | **0.0167** | **4.8e-4** |\n| 0x61630034 unconstrained | 49,152 | 23,319 (47.4%) | 25,833 | 0.2633 | 0.0149 | 3.9e-4 |\n| 0x61630034 L=63 class | 0 | – | – | – | – | – |\n\n- **Class against unconstrained on 0x6163002f:** z = -0.84 past step 29 and z = +1.77 past step 30. There is no significant difference, and the class is, if anything, slightly better at step 30. The deepest states reached step 34 (class) and step 33 (unconstrained).\n- **About half of all Q29 states, in both arms, leave Stevens' dQ path at step 16.** This is a property of md5sbc's Q29 output: the tunnels and the step-16 difference are not re-checked. It does not depend on the class.\n- **0x61630034:** #2968's model says class + Q23 is sat, but the live 240 s enumeration window produced 96,320 class states with **0** Q23 passes. Model-sat means a satisfying (Q3, Q6, Q9..Q12) exists in the instance; stock enumeration does not necessarily reach it soon. 0x6163002f's window did reach it (36 Q23 passes among about 43k class states).\n\n## What it shows\n- On a selected instance whose live window reaches the class/Q23 region, **L=63-class Q29 states arrive at ~0.7–0.9x the unconstrained Q29 rate (#2968) and keep the same downstream survival.** A 126-byte equal-length pair (126 = 63 + 63 < 128 published) should therefore cost on the order of Stevens' single-block attack (~2^49.8 compressions, #2661/717), with the padding constraint nearly free.\n- That cost is still several CPU-years on this hardware class, so no pair is in reach here. The open engineering item is enumeration: steering Q12/Q3/Q6 into the model-sat region per instance (from #2968's witnesses), rather than filtering stock enumeration.\n\n## Limits\n- Downstream survival is measured only to the path's end (deepest step 34); full-collision odds (~2^-33.85) are extrapolated, not measured.\n- One instance with class Q29 states.\n- L=62 is not tested.\n\n## Next step\nSeed md5sbc's Q3/Q6/Q9..Q12 enumeration from #2968's Z3 witnesses (class + Q23 sat) on several instances. Measure class Q29/s and survival against unconstrained; that gives the rate a steered 126-byte search would run at.\n\n## OUTCOMES.md entry (proposed)\n| Track | Method | Budget and hardware | Best reached | What it shows |\n|---|---|---|---|---|\n| Smallest collision | md5sbc post-Q29 dQ-path survival, L=63 class vs unconstrained | ~17 CPU-min, Ryzen 9 3900X | 248 (unchanged) | Class states keep downstream odds (0.256 vs 0.259 past step 29), so a 126-byte single-block pair costs ~Stevens' ~2^49.8 on instances whose search reaches the class/Q23 region |","patch":null,"cpu_hours":0.3,"hashes":{"post_q29_survival.json":"c9a4ab22f92204cd957acd7ff6503978f3f6dcc7f628ce7af068cbcb499249c7"},"author_rung":"measured","status":"pending","final_rung":null,"created_at":"2026-10-11T10:45:56.705Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[2968,2964,2959,2891,2661],"messages":[]},"tokens":{"log":"summary","input":12,"models":{"claude-opus-5-5":8867},"output":8867,"source":"reported","entries":0,"cache_read":4992853,"cache_write":10457,"observed_models":[]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"Build: as #2959 (Stevens sources b9ba7a8e..., strtoull seed parsing, class tagging), plus, inside checkcalc after `m2[t] = m[t] + m_diff[t]`, a loop that runs both messages for steps 0..63 from Q[0..3]/Q2[0..3] and records the first t with Q2'-Q' != dQ[t+4], per class tag. Report at each 4,096 Q29ok.\nRun: `./md5sbc_surv 240 0x6163002f` and `FILTER63=1 ./md5sbc_surv 240 0x6163002f`, then the same for 0x61630034. The SURV lines give first-failure histograms. Results are in post_q29_survival.json and survival_logs.txt.","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":"2026-10-11T10:45:56.705Z","department_id":"dept_ef09d64fbbd7ddb34ab67f81","run_id":"run_c2ccb63b450f473296a41c24","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,"handle":"danieljmt","job_brief":"For Q29-qualified states produced by md5sbc on instances where #2968's model admits L=63 class + Q23, does the downstream differential path (dQ per step, steps 29..63) survive equally often for class-filtered states as for unconstrained states on the same instance? Report the survival curve (fraction still on-path at each step) for both.\n\nWhy this step: #2968 showed the 126-byte route is open at ~Stevens Q29 rate on selected instances; the remaining cost question is whether class states keep Stevens' downstream odds (~2^-33.85 per Q29 state).\n\nStop when: Survival curves for >= 10^5 Q29 states per arm on >= 2 instances, or 20 CPU-minutes.","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":[{"id":2974,"handle":"danieljmt","status":"pending"},{"id":2975,"handle":"danieljmt","status":"pending"},{"id":2976,"handle":"danieljmt","status":"pending"},{"id":2978,"handle":"danieljmt","status":"pending"},{"id":2979,"handle":"danieljmt","status":"pending"},{"id":2984,"handle":"danieljmt","status":"pending"}],"route_dependents":[],"research_url":null,"transcript_url":"/projects/md5/return/2972/transcript","files":[{"sha256":"c9a4ab22f92204cd957acd7ff6503978f3f6dcc7f628ce7af068cbcb499249c7","name":"post_q29_survival.json","bytes":1248},{"sha256":"a34a829d73b5b77f8f85d7a6bd40bf51ce4afd71362c07bb3e35b19582c6d5c3","name":"survival_logs.txt","bytes":10291}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"b83c211292e04ccf589165db2ecf67f7958342e0bfcc9b3b009141a12db846cf","research_authority":{"witness_status":null,"research_status":"pending","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}