{
  "title": "Adversarial examples for fast hash functions",
  "date": "2026-09-18",
  "date_status": "Updated 2026-09-19.",
  "metric": {
    "length_words": "L = ceil(max(len(m), len(m_prime))/8); distinct byte strings; unequal lengths admitted; L >= 1.",
    "epsilon": "Worst collision probability over fixed, distinct attacker-chosen pairs, with the full specified secret drawn randomly and independently of the pair.",
    "score": "min_L log2(L / max(2**(-output_bits), min(1, epsilon(L)))) over the stated domain; use the infimum if an unbounded domain has no attained minimum.",
    "heuristic_direction": "For heuristic rows both numbers describe one specific pair: how often it collides is a proved (or measured) lower bound on the hash’s worst case, so the score is an upper cap on the hash’s strength. Lower bounds on strength exist only for the proven rows.",
    "proof_direction": "A proved epsilon upper bound gives a score lower guarantee under its stated input and key domain, not a measurement of the true minimum.",
    "provenance": "records/README.html",
    "intrinsic_definition": "A family includes its algorithm, admissible domain, output width and key distribution μ. ε*(L) is the supremum of full-output collision probability over admissible distinct pairs with ceil(max byte length/8)=L. The intrinsic score is the infimum over admitted L of log2(L/max(2^-r,ε*(L))).",
    "normalization_note": "Chosen normalization for linear-in-length error envelopes, not a cryptographic work factor. Full-output AU does not automatically survive truncation.",
    "umash128_length_note": "The published fingerprint headline is proved independently of the 64-bit proof, using two independent polynomial multipliers and 34 shared OH words. Pr[collision] < (81/128)·⌈L/2^23⌉²·2^-83. The finer envelope scores 83.99 bits (rounded display 84) on L ≤ 2^46 words, 88.63 through 64 MiB, and approximately 69.0 on L ≤ 2^61−1. At 1 GB it gives 75.98 bits (published 75). The Python reference’s single-multiplier fingerprint is refuted: swapping two full blocks collides for every OH key at f = p−1 or f = 1, yielding a fibre of about 2^-61. Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems."
  },
  "benchmark": {
    "smhasher3_two_host": {
      "source": "records/speeds.json",
      "report": "https://github.com/thomasahle/hash-benchmark-reproduction",
      "commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
      "source_snapshot": "Same dirty source snapshot; commit alone is insufficient. See benchmark manifest.",
      "binaries": {
        "M2Pro": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
        "Xeon8375C": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99"
      },
      "selection": "SMHasher3 fixed 262144-byte bulk alignment average; 1–31-byte small average. Source-selected best of two except retimed M2 hashes: median of all five. Xeon old pass plus documented additions. See records/speeds.json and https://github.com/thomasahle/hash-benchmark-reproduction.",
      "clock_caveat": "SMHasher3 assumes 3.5 GHz for GiB/s. Report bytes/cycle primarily. M2 uses calibrated monotonic time; Xeon uses RDTSC/RDTSCP, so cycle units are host-specific.",
      "load": "Corrected M2 initial boundary load1 2.88–27.80; retiming gate relaxed to 4.5. Xeon retained old pass 2.16–18.34, additions 9.45–10.13. Full per-run data in records/speeds.json.",
      "classical_xeon_addition": "Separate OpenSSL-enabled binary; see records/speeds_classic.json."
    },
    "published_verdicts": {
      "source": "Maintainer-published SMHasher3 snapshot; historical counts retained. ChainHash is separately labelled author fork, 200/200."
    },
    "m2_paper": {
      "metric": "single-thread GB/s, decimal; columns 16 KB and 512 B",
      "source": "records/README.html, tab:injective:adversarial",
      "citation": "Ahle, Fast Evaluation of Polynomials with Rational Preprocessing (in prep.), with Jakob B. T. Knudsen."
    },
    "numbers_pass": {
      "records": "records/speeds.json",
      "m2_source": "speeds_m2_v2.json",
      "retiming_note": "Hashes whose two protocol runs disagreed by more than a few percent were re-timed three more times at 1-min load < 3; the table uses the median of all runs for those hashes. Two runs flagged in the merged records were calibration outliers: both bulk and small-key figures shifted by the same factor, which indicates a clock-calibration or frequency-scheduling artefact, not hashing throughput.",
      "core_counts": {
        "M2Pro": 12,
        "Xeon8375C": 96
      },
      "backend_notes": "ARM family.cmake now accepts arm64; XXH3, HighwayHash and HalftimeHash use NEON; gxhash and rust-ahash use ARM AES; UMASH/CLhash hwclmul labels execute PMULL."
    },
    "method": "SMHasher3 fixed 262144-byte bulk alignment average; 1–31-byte small average. Source-selected best of two except retimed M2 hashes: median of all five. Xeon old pass plus documented additions. See records/speeds.json and https://github.com/thomasahle/hash-benchmark-reproduction.",
    "seed_scope": "Every seeded SMHasher3 wrapper benchmarks a subfamily determined by its seed; expansion from a 64-bit seed yields at most 2^64 members and does not inherit an ideal independent-key bound without a separate distribution theorem.",
    "reproduction_url": "https://github.com/thomasahle/hash-benchmark-reproduction"
  },
  "heuristics": [
    {
      "id": "city",
      "pattern": [
        "P2",
        "P6"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/cityhash.cpp",
      "name": "CityHash64 v1.1.1",
      "claim_id": "cityhash64",
      "output_bits": 64,
      "key_bits": 64,
      "key_model": "Uniform 64-bit WithSeed seed; structural result also holds for all pairs of 64-bit seeds.",
      "status": "EXTENSION",
      "classification_reason": "Peters 2024 and Aumasson–Bernstein–Bosslet 2012 seed-last attack; newly constructed v1.1.1 witnesses.",
      "official_claim": {
        "text": "not suitable for cryptography",
        "url": "https://github.com/google/cityhash/blob/master/README",
        "context": "Explicit noncryptographic disclaimer.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 205,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "SeedZeroes",
          "SeedSparse",
          "Seed",
          "SeedAvalanche",
          "SeedBIC",
          "SeedBitflip"
        ],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "a01109025ea76be1",
        "m_prime_hex": "020bd424b04ae555",
        "verifier_confirmed": true,
        "example_seed_raw": "0x6637c1ce6357a2c8 (both hash to d4d44b0c5f8bae0a); also seed 0 -> 3d6746761adc8d10, seed 1 -> 39336cd0fd4135fe; first sampled seed 0xb660d57a1a543321 -> 34bef59e7a2b2cf1",
        "provenance": [
          "verify/cityhash-64/README.html",
          "verify/cityhash-64/cityhash64_verify.c",
          "records/README.html"
        ],
        "implementation_validation": "SMHasher3 verification value: computed verification_LE = 0x5FABC5C5 == expected 0x5FABC5C5 (procedure of lib/Hashinfo.cpp _ComputedVerifyImpl); upstream google/cityhash master f5dc541 src/city.cc compiled on Xeon 8375C reproduces the same value and the pair (2026-09-18); the v1.0.3 commit 00b9287 yields 0x25A20825, so the value pins the version.",
        "lengths_bytes": [
          8,
          8
        ],
        "L_words": 1,
        "example_key_words_hex": [
          "6637c1ce6357a2c8"
        ],
        "example_output_hex": "d4d44b0c5f8bae0a"
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "interpretation": "Exact sufficient event"
      },
      "score": {
        "calculated": 0.0,
        "display": 0.0,
        "display_text": "0 bits",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(1) - (0)"
      },
      "notes": "Upstream google/cityhash master (f5dc541, 2022-07-19) has no functional change to the 64-bit functions since v1.1 (0469694, 2012) and the v1.1.1 release (2013); SMHasher3 hashes/cityhash.cpp is byte-identical between 7ad8939d and 3b619371 (sha256 4d850ae0...).",
      "provenance": [
        "verify/cityhash-64/README.html",
        "verify/cityhash-64/cityhash64_verify.c",
        "records/README.html"
      ],
      "version": "v1.1.1",
      "label": "CityHash64",
      "anchor": "appendix-cityhash64",
      "mechanism": "Public compression collides before the seed is applied.",
      "family": "heuristic",
      "bits": 0.0,
      "bits_kind": "exact",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 6.1,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/CityHash-64/M2Pro",
          "registered_name": "CityHash-64",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.006688963210679,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x5FABC5C5",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x5FABC5C5",
                "result": "PASS"
              },
              "BE": {
                "value": "0x355FC63A",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x5FABC5C5",
              "BE": "0x355FC63A"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "CityHash-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "CityHash-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/CityHash-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:26.715795+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:26.720443+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:27.205111+00:00",
                "elapsed_seconds": 0.4846209159999999,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:27.210004+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "d6658896b15f474419603a637d6d3cab96dad4729b993ee42a6bf13a503a1064",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x5FABC5C5",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x5FABC5C5",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x355FC63A",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x5FABC5C5",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x355FC63A",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 5.43,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/CityHash-64/Xeon8375C",
          "registered_name": "CityHash-64",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.18450184501843658,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 42.3,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/CityHash-64/M2Pro",
          "registered_name": "CityHash-64",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.0803782505910196,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x5FABC5C5",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x5FABC5C5",
                "result": "PASS"
              },
              "BE": {
                "value": "0x355FC63A",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x5FABC5C5",
              "BE": "0x355FC63A"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "CityHash-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "CityHash-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/CityHash-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:26.715795+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:26.720443+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:27.205111+00:00",
                "elapsed_seconds": 0.4846209159999999,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:27.210004+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "d6658896b15f474419603a637d6d3cab96dad4729b993ee42a6bf13a503a1064",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x5FABC5C5",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x5FABC5C5",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x355FC63A",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x5FABC5C5",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x355FC63A",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 46.68,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/CityHash-64/Xeon8375C",
          "registered_name": "CityHash-64",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.042844901456740025,
          "verification": {}
        }
      },
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. ",
      "hover": {
        "mechanism": "Public compression collides before the seed is applied."
      },
      "speed_registration": "CityHash-64",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "constant-multiplier lanes",
      "rurban_alias": null,
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Message words combine with a seeded state through fixed multipliers; the seed enters as an initial value or offset. mx3 and fasthash multiply seeded states by fixed constants, not two seeded operands in a 128-bit fold.",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: solve one word so 2^192 thirty-two-byte inputs share a fixed unseeded value, both seed interfaces (verified 2^16, 65536/65536 seeds)."
      }
    },
    {
      "id": "farm",
      "pattern": [
        "P2"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/farmhash.cpp",
      "name": "FarmHash64 NA v1.1",
      "claim_id": "farmhash64",
      "output_bits": 64,
      "key_bits": 64,
      "key_model": "Uniform 64-bit Hash64WithSeed seed; the all-seed result also holds for Hash64WithSeeds and (run on upstream master) for the farmhashuo/xo/te Hash64WithSeed(s) entry points.",
      "status": "EXTENSION",
      "classification_reason": "Peters 2024 FarmHash attack reproduced; selected witness shortens the published construction to 8 bytes.",
      "official_claim": {
        "text": "not suitable for cryptography",
        "url": "https://github.com/google/farmhash/blob/master/README.md",
        "context": "Explicit noncryptographic disclaimer.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 205,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "SeedZeroes",
          "SeedSparse",
          "Seed",
          "SeedAvalanche",
          "SeedBIC",
          "SeedBitflip"
        ],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "574522e6dce98176",
        "m_prime_hex": "0df3b1f900d36296",
        "verifier_confirmed": true,
        "example_seed_raw": "82bdf567d8ebbf4f",
        "provenance": [
          "records/README.html"
        ],
        "implementation_validation": "SMHasher3 verification_LE = 0xEBC4A679 for FarmHash_64__NA reproduced exactly by the single-file transcription farmhash64_pairs.c (it implements lib/Hashinfo.cpp _ComputedVerifyImpl: keys {0..i-1} with seed 256-i, then the 2048-byte result array with seed 0). Independent cross-check: Peters' published FarmHash64 strings (the 10 in his list and the one in his code sample) all hash to 1337 unseeded.",
        "lengths_bytes": [
          8,
          8
        ],
        "L_words": 1,
        "example_key_words_hex": [
          "82bdf567d8ebbf4f"
        ],
        "example_output_hex": "49186432ae14e980",
        "output_order": "64-bit integer"
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "interpretation": "Exact sufficient event"
      },
      "score": {
        "calculated": 0.0,
        "display": 0.0,
        "display_text": "0 bits",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(1) - (0)"
      },
      "notes": "Rechecked 2026-09-18 against google/farmhash master 9d99331e (src/farmhash.cc: only portability/NFC commits since v1.1, none touching farmhashna) and SMHasher3 3b619371 (farmhash.cpp byte-identical to 7ad8939d): 2^26 seeds per interface, all three pairs collide on the public Hash64WithSeed/Hash64WithSeeds and on the farmhashna/uo/xo/te entry points.",
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "version": "NA v1.1",
      "label": "FarmHash64 NA",
      "anchor": "appendix-farmhash64",
      "mechanism": "Public compression collides before either secret seed is applied.",
      "family": "heuristic",
      "bits": 0.0,
      "bits_kind": "exact",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 5.96,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/FarmHash-64.NA/M2Pro",
          "registered_name": "FarmHash-64.NA",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.936096718480141,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0xEBC4A679",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0xEBC4A679",
                "result": "PASS"
              },
              "BE": {
                "value": "0xB24C5C09",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xEBC4A679",
              "BE": "0xB24C5C09"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "FarmHash-64.NA",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "FarmHash-64.NA",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/FarmHash-64.NA.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:27.214734+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:27.219537+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:27.697775+00:00",
                "elapsed_seconds": 0.4781833330000005,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:27.702833+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "8b11744da136231903e26f75b06c19e242f2d90e7e3ba1341ebe1ea820032d61",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xEBC4A679",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0xEBC4A679",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xB24C5C09",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0xEBC4A679",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xB24C5C09",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 5.43,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/FarmHash-64.NA/Xeon8375C",
          "registered_name": "FarmHash-64.NA",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 43.15,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/FarmHash-64.NA/M2Pro",
          "registered_name": "FarmHash-64.NA",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.8273464658169045,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0xEBC4A679",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0xEBC4A679",
                "result": "PASS"
              },
              "BE": {
                "value": "0xB24C5C09",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xEBC4A679",
              "BE": "0xB24C5C09"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "FarmHash-64.NA",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "FarmHash-64.NA",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/FarmHash-64.NA.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:27.214734+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:27.219537+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:27.697775+00:00",
                "elapsed_seconds": 0.4781833330000005,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:27.702833+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "8b11744da136231903e26f75b06c19e242f2d90e7e3ba1341ebe1ea820032d61",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xEBC4A679",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0xEBC4A679",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xB24C5C09",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0xEBC4A679",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xB24C5C09",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 45.11,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/FarmHash-64.NA/Xeon8375C",
          "registered_name": "FarmHash-64.NA",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.13300820217247988,
          "verification": {}
        }
      },
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. ",
      "hover": {
        "mechanism": "Public compression collides before either secret seed is applied."
      },
      "speed_registration": "FarmHash-64.NA",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "constant-multiplier lanes",
      "rurban_alias": "FarmHash",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Message words combine with a seeded state through fixed multipliers; the seed enters as an initial value or offset. mx3 and fasthash multiply seeded states by fixed constants, not two seeded operands in a 128-bit fold.",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: same construction as CityHash; 2^192 colliding 32-byte inputs, every seed (verified 2^16, 65536/65536 seeds)."
      }
    },
    {
      "id": "murmur",
      "pattern": [
        "P2",
        "P6",
        "P7"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/murmurhash3.cpp",
      "name": "MurmurHash3 x64_128",
      "claim_id": "murmurhash3",
      "output_bits": 128,
      "key_bits": 32,
      "key_model": "Uniform 32-bit API seed (SMHasher3 truncates seed_t to uint32_t at hashes/murmurhash3.cpp lines 227-228; the reference API takes uint32_t); all 2^32 seeds enumerated and re-enumerated 2026-09-18 against upstream HEAD.",
      "status": "EXTENSION",
      "classification_reason": "REPRODUCTION of the Aumasson–Bernstein–Bosslet 2012 top-bit mechanism; EXTENSION to a 24-byte x64_128 pair. Peters 2024 x86_32 reproduction is separate.",
      "official_claim": {
        "text": "should be darn near bulletproof",
        "url": "https://github.com/aappleby/smhasher/wiki/MurmurHash",
        "context": "The author separately disclaims resistance to intentional collision generation (issue #73).",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 163,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "BIC",
          "Zeroes",
          "Sparse",
          "Permutation",
          "PerlinNoise",
          "SeedZeroes",
          "SeedSparse",
          "SeedBlockLen",
          "SeedBlockOffset",
          "Seed",
          "SeedAvalanche",
          "SeedBIC",
          "SeedBitflip"
        ],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "000000000000000000000000000000000000000000000000",
        "m_prime_hex": "60a0fd219e0ef2cd42e098d38ee8728d000000007d4dce82",
        "verifier_confirmed": true,
        "example_seed_raw": "0x00000000 (every seed 0..0xffffffff)",
        "provenance": [
          "verify/murmurhash3-128/murmurhash3_128_verify.c",
          "records/README.html"
        ],
        "implementation_validation": "SMHasher3 verification values via its exact procedure (lib/Hashinfo.cpp::_ComputedVerifyImpl): x64_128 = 0x6384BA69 OK (re-checked); the panel's verify.c also reported x86_32 = 0xB0F57EE3 and x86_128 = 0xB3ECE62A. Re-confirmed 2026-09-18 against aappleby/smhasher HEAD 07bb4de (src/MurmurHash3.cpp) over all 2^32 seeds: 4294967296/4294967296 for both pairs, controls 0; the verify program with --exhaustive reports the same.",
        "lengths_bytes": [
          24,
          24
        ],
        "L_words": 3,
        "example_key_words_hex": [
          "00000000"
        ],
        "example_output_hex": "2541774c612f4f96042b02a247843246",
        "output_order": "canonical high word then low word"
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "interpretation": "Exact sufficient event"
      },
      "score": {
        "calculated": 1.584962500721156,
        "display": 1.59,
        "display_text": "at most 1.59 bits (cap)",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(3) - (0)"
      },
      "notes": "No shorter key-free pair exists: equal-length messages <= 16 B never collide; a two-tail pair would need a g2 word difference of magnitude >= 2^56.6, which cannot fit in 7-byte tails; a one-block vs tail pair cannot collide for every seed. L = 3 is the key-free floor and the 1.59 cap is the best available witness.",
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "version": "x64_128",
      "label": "MurmurHash3 x64_128",
      "anchor": "appendix-murmurhash3",
      "mechanism": "Invertible public word mixing injects a cancelling state difference for every seed.",
      "family": "heuristic",
      "bits": 1.584962500721156,
      "bits_kind": "exact",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 1.92,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/MurmurHash3-128/M2Pro",
          "registered_name": "MurmurHash3-128",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 9.714285714285719,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x6384BA69",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x6384BA69",
                "result": "PASS"
              },
              "BE": {
                "value": "0xCC622B6F",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x6384BA69",
              "BE": "0xCC622B6F"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "MurmurHash3-128",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "MurmurHash3-128",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/MurmurHash3-128.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:27.707556+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:27.712046+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:28.263022+00:00",
                "elapsed_seconds": 0.5509376669999995,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:28.268180+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "95367a6b08ec67f15f180a68fd5e8bf16ea094e39449b2d821a9398f7685e952",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x6384BA69",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x6384BA69",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xCC622B6F",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x6384BA69",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xCC622B6F",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 2.73,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/MurmurHash3-128/Xeon8375C",
          "registered_name": "MurmurHash3-128",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 40.31,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/MurmurHash3-128/M2Pro",
          "registered_name": "MurmurHash3-128",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 6.598858843959299,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x6384BA69",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x6384BA69",
                "result": "PASS"
              },
              "BE": {
                "value": "0xCC622B6F",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x6384BA69",
              "BE": "0xCC622B6F"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "MurmurHash3-128",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "MurmurHash3-128",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/MurmurHash3-128.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:27.707556+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:27.712046+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:28.263022+00:00",
                "elapsed_seconds": 0.5509376669999995,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:28.268180+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "95367a6b08ec67f15f180a68fd5e8bf16ea094e39449b2d821a9398f7685e952",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x6384BA69",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x6384BA69",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xCC622B6F",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x6384BA69",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xCC622B6F",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 41.3,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/MurmurHash3-128/Xeon8375C",
          "registered_name": "MurmurHash3-128",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        }
      },
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. ",
      "hover": {
        "mechanism": "Invertible public word mixing injects a cancelling state difference for every seed."
      },
      "speed_registration": "MurmurHash3-128",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "constant-multiplier lanes",
      "rurban_alias": null,
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Message words combine with a seeded state through fixed multipliers; the seed enters as an initial value or offset. mx3 and fasthash multiply seeded states by fixed constants, not two seeded operands in a 128-bit fold.",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: 4 independent top-bit forms per 32-byte unit give 4^n colliding inputs for every seed (verified 2^16 at 256 bytes; double the classic 2-per-block flooding family)."
      }
    },
    {
      "id": "mx3",
      "pattern": [
        "P2",
        "P5"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/mx3.cpp",
      "name": "mx3 v3",
      "version": "v3.0.0",
      "label": "mx3 v3",
      "anchor": "appendix-mx3",
      "family": "heuristic",
      "claim_id": "mx3",
      "key_bits": 64,
      "output_bits": 64,
      "key_model": "64 (`inline uint64_t hash(const uint8_t* buf, size_t len, uint64_t seed)`; v3 seeds via h = mix_stream(seed, len + 1), v1/v2 via h = seed ^ len). The seed enters only through the additive term C^(L+1)*seed of the pre-finalizer state, before a public bijective finalizer mix(). SMHasher3: 64.",
      "status": "NEW",
      "classification_reason": "No prior literature identified in the supplied checked record.",
      "prior_work": [],
      "official_claim": {
        "text": "mx3::hash passes all SMHasher tests",
        "verbatim_record": "Repo with non-cryptographic bit mixer, pseudo random number generator and a hash function. The functions were found semi-algorithmically as detailed in those posts: | * mx3::hash passes all [SMHasher](https://github.com/rurban/smhasher) tests | [Version 3](https://github.com/jonmaiga/mx3/releases/tag/v3.0.0) improves mx3::hash with better seeding and speed while maintaining the same good quality. | This work is to a large degree empirical without much theoretical attention. It would be interesting to know more of what properties and weaknesses mx3 has, so please don't hesitate to let me know!",
        "url": "https://github.com/jonmaiga/mx3",
        "context": "This is mx3 v3.0.0, tag 48924ee7, with a 64-bit seed. rurban’s mx3 entry tests v1.0.0 (0x4DB51E5B) with a 32-bit seed cast to 64 bits; its GOOD label and older bad-seed result do not describe the attacked v3.",
        "source_record": "README.md first paragraph (raw line 2), section 'Quality' third bullet, section 'Version 3', section 'Feedback', https://github.com/jonmaiga/mx3 (raw: https://raw.githubusercontent.com/jonmaiga/mx3/master/README.md); release v3.0.0 body 'Improves mx3::hash in terms of speed and seeding.'; PR #1 'Better seeding and faster stream mixer' (jonmaiga, 2022-04-13): '- Avoid obvious bad seeds when data length == seed'; blog http://jonkagstrom.com/mx3/index.html (2020-08-10): 'For hashing pass all SMHasher tests' (section 'Goals'); the quotes 'At first, the idea I outlined above...' and 'With this it passed all the SMHasher tests' sit inside the 'mx3::hash outline' section. No collision-probability, universality or security claim anywhere; the Rust port mx3-rs (chfoo) says 'The crate is *not* intended for cryptographically secure purposes.'",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 214,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "failed_tests": [
          "SeedBlockLen",
          "SeedBlockOffset"
        ],
        "provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "00",
        "m_prime_hex": "b6cbe3b809a4265c",
        "lengths_bytes": [
          1,
          8
        ],
        "L_words": 1,
        "verifier_confirmed": true,
        "example_seed_raw": "0x2cb0f69f4abea221",
        "example_key_words_hex": [
          "2cb0f69f4abea221"
        ],
        "example_output_hex": "730d2d8dbe4d729e",
        "outputs": {
          "m": "730d2d8dbe4d729e",
          "m_prime": "730d2d8dbe4d729e"
        },
        "recorded_examples": "0x2cb0f69f4abea221 -> both 730d2d8dbe4d729e; seed 0 -> both 424c78f4f12f7ff4; seed 1 -> both 01144efd26493619; seed 0xffffffffffffffff -> both d8c06c982066af91 (all reproduced by the verifier's own implementation and by the linked SMHasher3 reference library). 7-byte pair: 0x3bb548a553e612ba -> both eebfade252d2c35f; seed 0 -> both 35dd1592d75f49c2.",
        "provenance": [
          "records/README.html"
        ]
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0.0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "count": 1073741823,
        "trials": 1073741823,
        "interpretation": "Public-state equality proves all-seed collision; corroborated by independent measurement (2^30 seeds in a three-thread split = 1073741823 trials) and by a 2026-09-18 rerun of verify/mx3 and of a driver including upstream mx3.h at tag 48924ee7 (1073741824/1073741824 for the 1/8, 7/8 and 16/16 pairs)"
      },
      "score": {
        "calculated": 0.0,
        "display": 0.0,
        "display_text": "0 bits",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(1) - (0.0)"
      },
      "bits": 0.0,
      "bits_kind": "exact",
      "mechanism": "The pre-finalizer state is seed*C^(L+1) + (a seed-free sum of g(word)*C^k) with g(x) = ((x*C) ^ ((x*C)>>39))*C a public bijection and mix() a public bijective finalizer, so two messages with the same word count L collide independently of the seed once the last word is solved through g^-1; a 1-byte message and an 8-byte message both have L=1 and collide for every seed.",
      "notes": "This is mx3 v3.0.0, tag 48924ee7, with a 64-bit seed. rurban’s mx3 entry tests v1.0.0 (0x4DB51E5B) with a 32-bit seed cast to 64 bits; its GOOD label and older bad-seed result do not describe the attacked v3.",
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. This is mx3 v3.0.0, tag 48924ee7, with a 64-bit seed. rurban’s mx3 entry tests v1.0.0 (0x4DB51E5B) with a 32-bit seed cast to 64 bits; its GOOD label and older bad-seed result do not describe the attacked v3.",
      "version_record": "v3 added in commit 09beb3f2 (authored 2022-08-18, merged 2023-02-12); v1.0.0 = 3368253 (authored 2020-08-11, committed 2020-08-13, matching the mx3.h header date)",
      "hover": {
        "mechanism": "The pre-finalizer state is seed*C^(L+1) + (a seed-free sum of g(word)*C^k) with g(x) = ((x*C) ^ ((x*C)>>39))*C a public bijection and mix() a public bijective finalizer, so two messages with the same word count L collide independently of the seed once the last word is solved through g^-1; a 1-byte message and an 8-byte message both have L=1 and collide for every seed.",
        "claim_note": "NEW; verbatim excerpt; This is mx3 v3.0.0, tag 48924ee7, with a 64-bit seed. rurban’s mx3 entry tests v1.0.0 (0x4DB51E5B) with a 32-bit seed cast to 64 bits; its GOOD label and older bad-seed result do not describe the attacked v3."
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 4.32,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mx3.v3/M2Pro",
          "registered_name": "mx3.v3",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.46511627906977715,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x7B287B65",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x7B287B65",
                "result": "PASS"
              },
              "BE": {
                "value": "0x1EA42BEF",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x7B287B65",
              "BE": "0x1EA42BEF"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "mx3.v3",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "mx3.v3",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/mx3.v3.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:53.010392+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:53.014747+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:53.499393+00:00",
                "elapsed_seconds": 0.4846050419999983,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:53.504454+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "raw_sha256": "883037283dd67e9a74731e9e73a01ca98ea0fb7b1bc0e9aca28e21245b938196",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x7B287B65",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x7B287B65",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x1EA42BEF",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x7B287B65",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x1EA42BEF",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 4.82,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mx3.v3/Xeon8375C",
          "registered_name": "mx3.v3",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 43.23,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mx3.v3/M2Pro",
          "registered_name": "mx3.v3",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.6139255146888862,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x7B287B65",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x7B287B65",
                "result": "PASS"
              },
              "BE": {
                "value": "0x1EA42BEF",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x7B287B65",
              "BE": "0x1EA42BEF"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "mx3.v3",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "mx3.v3",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/mx3.v3.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:53.010392+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:53.014747+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:53.499393+00:00",
                "elapsed_seconds": 0.4846050419999983,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:53.504454+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "raw_sha256": "883037283dd67e9a74731e9e73a01ca98ea0fb7b1bc0e9aca28e21245b938196",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x7B287B65",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x7B287B65",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x1EA42BEF",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x7B287B65",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x1EA42BEF",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 41.59,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mx3.v3/Xeon8375C",
          "registered_name": "mx3.v3",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.7694157249338529,
          "verification": {}
        }
      },
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "reproduction": {
        "status": "standalone program supplied",
        "directory": "verify/mx3/README.html",
        "source": "verify/mx3/mx3_verify.c",
        "command": "cc -O2 -std=c11 -o mx3_verify mx3_verify.c -lm && ./mx3_verify 20",
        "trials": 1048576,
        "rng": "splitmix64-seeded xoshiro256**, one stream, default seed 1",
        "note": "Small package checks are separate from the historical large measurements."
      },
      "speed_registration": "mx3.v3",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "constant-multiplier lanes",
      "rurban_alias": "mx3",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Message words combine with a seeded state through fixed multipliers; the seed enters as an initial value or offset. mx3 and fasthash multiply seeded states by fixed constants, not two seeded operands in a 128-bit fold.",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: invert the public bijection g to place exactly 2^64 sixteen-byte inputs on one pre-seed value, every seed (verified 2^16, 4096/4096 seeds)."
      }
    },
    {
      "id": "fasthash-64",
      "pattern": [
        "P2",
        "P5",
        "P7"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/fasthash.cpp",
      "name": "fasthash-64",
      "version": "08a25db2",
      "label": "fasthash-64",
      "anchor": "appendix-fasthash",
      "family": "heuristic",
      "claim_id": "fasthash",
      "key_bits": 64,
      "output_bits": 64,
      "key_model": "64 for fasthash64 (`uint64_t fasthash64(const void *buf, size_t len, uint64_t seed);` fasthash.h line 50); upstream fasthash32 takes `uint32_t seed` (fasthash.h line 42), so nonzero fixed-pair probabilities are at least 2^-32 under a uniform native seed; SMHasher3 passes a 64-bit seed_t to both widths. The seed enters once, `uint64_t h = seed ^ (len * m);` (fasthash.c line 41), before any message word; each 8-byte word (and the zero-padded tail) passes through the public bijection mix() (xorshift 23, *0x2127599bf4325c37, xorshift 47) and then h = (h ^ mix(v)) * m with odd m = 0x880355f21e6d1965; output mix(h).",
      "status": "NEW",
      "classification_reason": "No prior literature identified in the supplied checked record.",
      "prior_work": [],
      "official_claim": {
        "text": "Robust - Passes all tests of SMHasher(http://code.google.com/p/smhasher).",
        "verbatim_record": "The fast-hash is a simple, robust, and efficient general-purpose hash function. | Robust - Passes all tests of SMHasher(http://code.google.com/p/smhasher). | The fast-hash was tested using the SMHasher(http://code.google.com/p/smhasher), which is known as the \"DieHarder\" hash testing. The test results show that the fast-hash is a better choice than Google MurmurHash2 (slightly biased and slower than the fast-hash), Jenkins hash function (moderately biased and notably slower than the fast-hash), and a few other popular ones such as Bernstein, CRC, SDBM, FNV, and etc. | Yes, you can use any hardcoded integer number like 0xdeadbeef as the seed.",
        "url": "https://github.com/ztanml/fast-hash",
        "context": "The unversioned fast-hash code is pinned to upstream commit 08a25db2 (2018-10-22). SMHasher3 verification is 0xA16231A7 at 64 bits and 0xE9481AFC at 32 bits. Its wrappers pass a 64-bit seed to both widths; upstream fasthash32 takes a 32-bit seed. The every-seed identity covers both models, which the reproduction program measures separately.",
        "source_record": "README.md lines 3, 6 and 67 ('## Results', 2012 original SMHasher; the embedded FastHash64 log has no FAIL lines), https://github.com/ztanml/fast-hash/blob/master/README.md; issue #1 'how do I seed fasthash ?' (lucasart, 2019-12-22), author reply by ztanml 2020-01-17 (the only seed guidance; no secrecy requirement), https://github.com/ztanml/fast-hash/issues/1. README line 20 cites O'Neill's PCG paper ('one of the best general-purpose integer hash functions', a PRNG-quality remark, Section 9). No statement about collision resistance, seed secrecy, hash flooding or cryptographic strength anywhere (README, headers, comments, issues #1-#3, PR #4). Third-party: rurban's harness comment fasthash.cpp line 37 '// security: if the system allows empty keys (len=3) the seed is exposed, the reverse of mix.'",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 151,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "failed_tests": [
          "BIC",
          "Permutation",
          "PerlinNoise",
          "SeedZeroes",
          "SeedSparse",
          "SeedBlockLen",
          "SeedBlockOffset",
          "Seed",
          "SeedAvalanche",
          "SeedBIC",
          "SeedBitflip"
        ],
        "provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "00000000000000",
        "m_prime_hex": "5e177be7d1d175f3",
        "lengths_bytes": [
          7,
          8
        ],
        "L_words": 1,
        "verifier_confirmed": true,
        "example_seed_raw": "0x0123456789abcdef",
        "example_key_words_hex": [
          "0123456789abcdef"
        ],
        "example_output_hex": "3f624b9140899669",
        "outputs": {
          "m": "3f624b9140899669",
          "m_prime": "3f624b9140899669"
        },
        "recorded_examples": "0x0123456789abcdef -> fasthash64 3f624b9140899669 for both (fasthash32 01274ad8 for both); seed 0xc05a677850dc981a -> both 875005bd11563f7a; seed 0 -> both 78ef6597ace64ee2 (all reproduced by the verifier). Equal-length pair: 0x0123456789abcdef -> both 1ac53b33e0d7dd39; seed 0 -> both 52b6455608a72a7f; 0xc05a677850dc981a -> both f1c750f15e01b5a6.",
        "provenance": [
          "records/README.html"
        ]
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0.0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "count": 1073741824,
        "trials": 1073741824,
        "interpretation": "Public-state equality proves all-seed collision; corroborated by independent measurement"
      },
      "score": {
        "calculated": 0.0,
        "display": 0.0,
        "display_text": "0 bits",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(1) - (0.0)"
      },
      "bits": 0.0,
      "bits_kind": "exact",
      "mechanism": "Every message word passes through the public bijection mix() before meeting the seed, and messages of any two lengths 1<=a<b<=8 take exactly one (h ^= mix(v); h *= m) step after h = seed ^ len*m, so 7 zero bytes and the 8-byte word mix^-1(7m ^ 8m) collide for every seed; for equal lengths a 2^63 difference in mix(v) survives the odd multiply deterministically ((x ^ 2^63)*m = x*m ^ 2^63) and a second such word cancels it.",
      "notes": "The unversioned fast-hash code is pinned to upstream commit 08a25db2 (2018-10-22). SMHasher3 verification is 0xA16231A7 at 64 bits and 0xE9481AFC at 32 bits. Its wrappers pass a 64-bit seed to both widths; upstream fasthash32 takes a 32-bit seed. The every-seed identity covers both models, which the reproduction program measures separately.",
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. The unversioned fast-hash code is pinned to upstream commit 08a25db2 (2018-10-22). SMHasher3 verification is 0xA16231A7 at 64 bits and 0xE9481AFC at 32 bits. Its wrappers pass a 64-bit seed to both widths; upstream fasthash32 takes a 32-bit seed. The every-seed identity covers both models, which the reproduction program measures separately.",
      "version_record": "fast-hash (ztanml/fast-hash; 'Copyright (C) 2012 Zilong Tan', originally Ulib's FastHash at code.google.com/p/fast-hash; unversioned: 0 tags, 0 releases, single code commit 08a25db2 'init' 2018-10-22, six README-only commits, last ae4eca64 2023-04-23; MIT text in the sources, GitHub license field null; repository description 'Fast hash function learned using genetic programming'). SMHasher3 hashes/fasthash.cpp 'fasthash-64' (verification_LE 0xA16231A7) and 'fasthash-32' (0xE9481AFC; = h - (h>>32) of the same 64-bit value, so every 64-bit collision is a 32-bit collision), SRC_STABLEISH, last touched db13e8c1 (authored 2023-11-02, committed 2023-11-17). rurban fasthash64 / fasthash32.",
      "hover": {
        "mechanism": "Every message word passes through the public bijection mix() before meeting the seed, and messages of any two lengths 1<=a<b<=8 take exactly one (h ^= mix(v); h *= m) step after h = seed ^ len*m, so 7 zero bytes and the 8-byte word mix^-1(7m ^ 8m) collide for every seed; for equal lengths a 2^63 difference in mix(v) survives the odd multiply deterministically ((x ^ 2^63)*m = x*m ^ 2^63) and a second such word cancels it.",
        "claim_note": "NEW; verbatim excerpt; The unversioned fast-hash code is pinned to upstream commit 08a25db2 (2018-10-22). SMHasher3 verification is 0xA16231A7 at 64 bits and 0xE9481AFC at 32 bits. Its wrappers pass a 64-bit seed to both widths; upstream fasthash32 takes a 32-bit seed. The every-seed identity covers both models, which the reproduction program measures separately."
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 1.39,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/fasthash-64/M2Pro",
          "registered_name": "fasthash-64",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0xA16231A7",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0xA16231A7",
                "result": "PASS"
              },
              "BE": {
                "value": "0x82AD8DDB",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xA16231A7",
              "BE": "0x82AD8DDB"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "fasthash-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "fasthash-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/fasthash-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:34.319599+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:34.324002+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:34.881800+00:00",
                "elapsed_seconds": 0.5577655420000003,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:34.886966+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "f22fc8067d39f882eb12ba8d3dedc0f7188badcebcc36965bbc1617a32beee2a",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xA16231A7",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0xA16231A7",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x82AD8DDB",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0xA16231A7",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x82AD8DDB",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 2.3,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/fasthash-64/Xeon8375C",
          "registered_name": "fasthash-64",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 34.96,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/fasthash-64/M2Pro",
          "registered_name": "fasthash-64",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.602974828375282,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0xA16231A7",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0xA16231A7",
                "result": "PASS"
              },
              "BE": {
                "value": "0x82AD8DDB",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xA16231A7",
              "BE": "0x82AD8DDB"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "fasthash-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "fasthash-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/fasthash-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:34.319599+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:34.324002+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:34.881800+00:00",
                "elapsed_seconds": 0.5577655420000003,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:34.886966+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "f22fc8067d39f882eb12ba8d3dedc0f7188badcebcc36965bbc1617a32beee2a",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xA16231A7",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0xA16231A7",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x82AD8DDB",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0xA16231A7",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x82AD8DDB",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 34.0,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/fasthash-64/Xeon8375C",
          "registered_name": "fasthash-64",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.08823529411765563,
          "verification": {}
        }
      },
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "reproduction": {
        "status": "standalone program supplied",
        "directory": "verify/fasthash/README.html",
        "source": "verify/fasthash/fasthash_verify.c",
        "command": "cc -O2 -std=c11 -o fasthash_verify fasthash_verify.c -lm && ./fasthash_verify 20",
        "trials": 1048576,
        "rng": "splitmix64-seeded xoshiro256**, one stream, default seed 1",
        "note": "Small package checks are separate from the historical large measurements."
      },
      "speed_registration": "fasthash-64",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "constant-multiplier lanes",
      "rurban_alias": "fasthash32 (derived)",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Message words combine with a seeded state through fixed multipliers; the seed enters as an initial value or offset. mx3 and fasthash multiply seeded states by fixed constants, not two seeded operands in a 128-bit fold.",
      "recheck": {
        "date": "2026-09-18",
        "upstream_head": "ae4eca64 (code identical to 08a25db2)",
        "smhasher3_head": "3b619371 (hashes/fasthash.cpp identical to 7ad8939d)",
        "host": "Xeon 8375C",
        "method": "two independent drivers linked against upstream fasthash.c (not the SMHasher3 port)",
        "result": "all three pairs 2^30/2^30 at both widths; recorded verify program 2^30 all cases PASS",
        "logs": "records/README.html"
      },
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: any even set of bit-63 word flips collides for every seed; 2^(words-1) inputs (verified 2^16 at 136 bytes, 4096/4096 seeds)."
      }
    },
    {
      "id": "fasthash-32",
      "pattern": [
        "P2",
        "P5",
        "P7"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/fasthash.cpp",
      "name": "fasthash-32",
      "version": "08a25db2",
      "label": "fasthash-32",
      "anchor": "appendix-fasthash",
      "family": "heuristic",
      "claim_id": "fasthash",
      "key_bits": 64,
      "output_bits": 32,
      "key_model": "64 for fasthash64 (`uint64_t fasthash64(const void *buf, size_t len, uint64_t seed);` fasthash.h line 50); upstream fasthash32 takes `uint32_t seed` (fasthash.h line 42), so nonzero fixed-pair probabilities are at least 2^-32 under a uniform native seed; SMHasher3 passes a 64-bit seed_t to both widths. The seed enters once, `uint64_t h = seed ^ (len * m);` (fasthash.c line 41), before any message word; each 8-byte word (and the zero-padded tail) passes through the public bijection mix() (xorshift 23, *0x2127599bf4325c37, xorshift 47) and then h = (h ^ mix(v)) * m with odd m = 0x880355f21e6d1965; output mix(h).",
      "status": "NEW",
      "classification_reason": "No prior literature identified in the supplied checked record.",
      "prior_work": [],
      "official_claim": {
        "text": "Robust - Passes all tests of SMHasher(http://code.google.com/p/smhasher).",
        "verbatim_record": "The fast-hash is a simple, robust, and efficient general-purpose hash function. | Robust - Passes all tests of SMHasher(http://code.google.com/p/smhasher). | The fast-hash was tested using the SMHasher(http://code.google.com/p/smhasher), which is known as the \"DieHarder\" hash testing. The test results show that the fast-hash is a better choice than Google MurmurHash2 (slightly biased and slower than the fast-hash), Jenkins hash function (moderately biased and notably slower than the fast-hash), and a few other popular ones such as Bernstein, CRC, SDBM, FNV, and etc. | Yes, you can use any hardcoded integer number like 0xdeadbeef as the seed.",
        "url": "https://github.com/ztanml/fast-hash",
        "context": "The unversioned fast-hash code is pinned to upstream commit 08a25db2 (2018-10-22). SMHasher3 verification is 0xA16231A7 at 64 bits and 0xE9481AFC at 32 bits. Its wrappers pass a 64-bit seed to both widths; upstream fasthash32 takes a 32-bit seed. The every-seed identity covers both models, which the reproduction program measures separately.",
        "source_record": "README.md lines 3, 6 and 67 ('## Results', 2012 original SMHasher; the embedded FastHash64 log has no FAIL lines), https://github.com/ztanml/fast-hash/blob/master/README.md; issue #1 'how do I seed fasthash ?' (lucasart, 2019-12-22), author reply by ztanml 2020-01-17 (the only seed guidance; no secrecy requirement), https://github.com/ztanml/fast-hash/issues/1. README line 20 cites O'Neill's PCG paper ('one of the best general-purpose integer hash functions', a PRNG-quality remark, Section 9). No statement about collision resistance, seed secrecy, hash flooding or cryptographic strength anywhere (README, headers, comments, issues #1-#3, PR #4). Third-party: rurban's harness comment fasthash.cpp line 37 '// security: if the system allows empty keys (len=3) the seed is exposed, the reverse of mix.'",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 191,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "failed_tests": [
          "SeedZeroes",
          "SeedSparse",
          "SeedBlockLen",
          "Seed",
          "SeedAvalanche",
          "SeedBIC",
          "SeedBitflip"
        ],
        "provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "00000000000000",
        "m_prime_hex": "5e177be7d1d175f3",
        "lengths_bytes": [
          7,
          8
        ],
        "L_words": 1,
        "verifier_confirmed": true,
        "example_seed_raw": "0x0123456789abcdef",
        "example_key_words_hex": [
          "0123456789abcdef"
        ],
        "example_output_hex": "01274ad8",
        "outputs": {
          "m": "01274ad8",
          "m_prime": "01274ad8"
        },
        "recorded_examples": "0x0123456789abcdef -> fasthash64 3f624b9140899669 for both (fasthash32 01274ad8 for both); seed 0xc05a677850dc981a -> both 875005bd11563f7a; seed 0 -> both 78ef6597ace64ee2 (all reproduced by the verifier). Equal-length pair: 0x0123456789abcdef -> both 1ac53b33e0d7dd39; seed 0 -> both 52b6455608a72a7f; 0xc05a677850dc981a -> both f1c750f15e01b5a6.",
        "provenance": [
          "records/README.html"
        ]
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0.0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "count": 1073741824,
        "trials": 1073741824,
        "interpretation": "Public-state equality proves all-seed collision; corroborated by independent measurement (2^30 and 2^32 sampled seeds) and by an exhaustive count of all 2^32 seeds of the upstream uint32_t API against unmodified upstream fasthash.c (2026-09-18, Xeon)"
      },
      "score": {
        "calculated": 0.0,
        "display": 0.0,
        "display_text": "0 bits",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(1) - (0.0)"
      },
      "bits": 0.0,
      "bits_kind": "exact",
      "mechanism": "Every message word passes through the public bijection mix() before meeting the seed, and messages of any two lengths 1<=a<b<=8 take exactly one (h ^= mix(v); h *= m) step after h = seed ^ len*m, so 7 zero bytes and the 8-byte word mix^-1(7m ^ 8m) collide for every seed; for equal lengths a 2^63 difference in mix(v) survives the odd multiply deterministically ((x ^ 2^63)*m = x*m ^ 2^63) and a second such word cancels it.",
      "notes": "The unversioned fast-hash code is pinned to upstream commit 08a25db2 (2018-10-22). SMHasher3 verification is 0xA16231A7 at 64 bits and 0xE9481AFC at 32 bits. Its wrappers pass a 64-bit seed to both widths; upstream fasthash32 takes a 32-bit seed. The every-seed identity covers both models, which the reproduction program measures separately.",
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. The unversioned fast-hash code is pinned to upstream commit 08a25db2 (2018-10-22). SMHasher3 verification is 0xA16231A7 at 64 bits and 0xE9481AFC at 32 bits. Its wrappers pass a 64-bit seed to both widths; upstream fasthash32 takes a 32-bit seed. The every-seed identity covers both models, which the reproduction program measures separately.",
      "version_record": "fast-hash (ztanml/fast-hash; 'Copyright (C) 2012 Zilong Tan', originally Ulib's FastHash at code.google.com/p/fast-hash; unversioned: 0 tags, 0 releases, single code commit 08a25db2 'init' 2018-10-22, six README-only commits, last ae4eca64 2023-04-23; MIT text in the sources, GitHub license field null; repository description 'Fast hash function learned using genetic programming'). SMHasher3 hashes/fasthash.cpp 'fasthash-64' (verification_LE 0xA16231A7) and 'fasthash-32' (0xE9481AFC; = h - (h>>32) of the same 64-bit value, so every 64-bit collision is a 32-bit collision), SRC_STABLEISH, last touched db13e8c1 (authored 2023-11-02, committed 2023-11-17). rurban fasthash64 / fasthash32. One open, unmerged PR #4 (alexk195, 2026-06-05, 'modified implementation for portability': explicit little-endian loads and mix as an inline function; same constants and arithmetic, identical output on little-endian hosts). 3 open issues (#1 seeding, #2 alignment, #3 MSVC), none touching the algorithm. fast-hash HEAD ae4eca64 re-checked 2026-09-18.",
      "hover": {
        "mechanism": "Every message word passes through the public bijection mix() before meeting the seed, and messages of any two lengths 1<=a<b<=8 take exactly one (h ^= mix(v); h *= m) step after h = seed ^ len*m, so 7 zero bytes and the 8-byte word mix^-1(7m ^ 8m) collide for every seed; for equal lengths a 2^63 difference in mix(v) survives the odd multiply deterministically ((x ^ 2^63)*m = x*m ^ 2^63) and a second such word cancels it.",
        "claim_note": "NEW; verbatim excerpt; The unversioned fast-hash code is pinned to upstream commit 08a25db2 (2018-10-22). SMHasher3 verification is 0xA16231A7 at 64 bits and 0xE9481AFC at 32 bits. Its wrappers pass a 64-bit seed to both widths; upstream fasthash32 takes a 32-bit seed. The every-seed identity covers both models, which the reproduction program measures separately."
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 1.4,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/fasthash-32/M2Pro",
          "registered_name": "fasthash-32",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.449275362318847,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0xE9481AFC",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0xE9481AFC",
                "result": "PASS"
              },
              "BE": {
                "value": "0x48BCE1ED",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xE9481AFC",
              "BE": "0x48BCE1ED"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "fasthash-32",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "fasthash-32",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/fasthash-32.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:33.745677+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:33.750364+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:34.309315+00:00",
                "elapsed_seconds": 0.5589118749999997,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:34.314845+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "5e11c9a4a867295e7c121738a91488cc68a5062c7576b47c0a3ab872b14d47f4",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xE9481AFC",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0xE9481AFC",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x48BCE1ED",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0xE9481AFC",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x48BCE1ED",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 2.3,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/fasthash-32/Xeon8375C",
          "registered_name": "fasthash-32",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 36.81,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/fasthash-32/M2Pro",
          "registered_name": "fasthash-32",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 3.042651453409384,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0xE9481AFC",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0xE9481AFC",
                "result": "PASS"
              },
              "BE": {
                "value": "0x48BCE1ED",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xE9481AFC",
              "BE": "0x48BCE1ED"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "fasthash-32",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "fasthash-32",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/fasthash-32.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:33.745677+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:33.750364+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:34.309315+00:00",
                "elapsed_seconds": 0.5589118749999997,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:34.314845+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "5e11c9a4a867295e7c121738a91488cc68a5062c7576b47c0a3ab872b14d47f4",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xE9481AFC",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0xE9481AFC",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x48BCE1ED",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0xE9481AFC",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x48BCE1ED",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 36.2,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/fasthash-32/Xeon8375C",
          "registered_name": "fasthash-32",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.4143646408839796,
          "verification": {}
        }
      },
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "native_key_bits": 32,
      "reproduction": {
        "status": "standalone program supplied",
        "directory": "verify/fasthash/README.html",
        "source": "verify/fasthash/fasthash_verify.c",
        "command": "cc -O2 -std=c11 -o fasthash_verify fasthash_verify.c -lm && ./fasthash_verify 20",
        "trials": 1048576,
        "rng": "splitmix64-seeded xoshiro256**, one stream, default seed 1",
        "note": "Small package checks are separate from the historical large measurements."
      },
      "speed_registration": "fasthash-32",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "constant-multiplier lanes",
      "rurban_alias": "fasthash32",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Message words combine with a seeded state through fixed multipliers; the seed enters as an initial value or offset. mx3 and fasthash multiply seeded states by fixed constants, not two seeded operands in a 128-bit fold.",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: any even set of bit-63 word flips collides for every seed; 2^(words-1) inputs (verified 2^16 at 136 bytes, 4096/4096 seeds)."
      }
    },
    {
      "id": "muse",
      "pattern": [
        "P2",
        "P6"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/museair.cpp",
      "name": "MuseAir v0.3 (SMHasher3)",
      "claim_id": "museair",
      "output_bits": 64,
      "key_bits": 64,
      "key_model": "Uniform 64-bit seed. Pair collides on both full 128-bit variants and both 64-bit variants.",
      "status": "EXTENSION",
      "classification_reason": "Peters issue #3 (2026-07-12) predates these experiments. Earlier panel NEW label superseded by claims.json; 17-byte witness is an extension.",
      "official_claim": {
        "text": "MuseAir is not affected by seed-independent attacks.",
        "url": "https://github.com/eternal-io/museair/blob/v0.3/README.md",
        "context": "Historical v0.3 README claim (line 165). The sentence was dropped in v0.4 (2025-07-24); the v2 CHANGELOG (2026-07-13) deprecates every pre-v2 version as compromised. Current README (3f0d8c8): \"Not vulnerable to blinding multiplication attacks ... passed all SMHasher3 tests\"; line 82: \"To keep a simple interface, MuseAir relies solely on an initial seed, without any additional secret; this makes it unsuitable for direct use on servers—it is more susceptible than other hashes in such environments.\"",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "PASS",
        "passed": 250,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "0000000000000000000000000000000000",
        "m_prime_hex": "8079763bb19a00001a9a1100642d3a3f01",
        "verifier_confirmed": true,
        "example_seed_raw": "0x2cb0f69f4abea221 (MuseAir(M)=MuseAir(M2)=0xd4ed417ecc529ae4); seed 0 gives 0x3c49e01168e230ee for both",
        "provenance": [
          "records/README.html"
        ],
        "implementation_validation": "SMHasher3 verification values (lib/Hashinfo.cpp _ComputedVerifyImpl procedure: keys {}, {0}, {0,1}, ..., 255 bytes, seed 256-i, hash of the concatenation with seed 0, first 4 LE bytes): MuseAir 0xF89F1683, MuseAir__bfast 0xC61BEE56, MuseAir_128 0xD3DFE238, MuseAir_128__bfast 0x27939BF1 -- all four P",
        "lengths_bytes": [
          17,
          17
        ],
        "L_words": 3,
        "example_key_words_hex": [
          "2cb0f69f4abea221"
        ],
        "example_output_hex": "d4ed417ecc529ae4"
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "interpretation": "Exact sufficient event"
      },
      "score": {
        "calculated": 1.584962500721156,
        "display": 1.59,
        "display_text": "at most 1.59 bits (cap); version-bound to v0.3",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(3) - (0)"
      },
      "notes": "SMHasher3 ships v0.3 only. The pairs also collide for every seed on upstream v0.4 (crate 0.4.0, 2025-07-24, yanked); on v1 and on the current v2 (crate 0.6.0) they give 0/2^24 on all four APIs. Upstream CHANGELOG deprecates every pre-v2 version as compromised. The v2 algorithm has its own row with a 32-byte pair at about 2^-17.45 per uniform seed.",
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "version": "v0.3 (SMHasher3)",
      "label": "MuseAir",
      "anchor": "appendix-museair",
      "mechanism": "A zero public product erases a changed message word before secret mixing.",
      "family": "heuristic",
      "bits": 1.584962500721156,
      "bits_kind": "exact",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 10.21,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/MuseAir/M2Pro",
          "registered_name": "MuseAir",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 5.041152263374493,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0xF89F1683",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0xF89F1683",
                "result": "PASS"
              },
              "NE": {
                "value": "0xDFEF2570",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0xF89F1683",
              "NE": "0xDFEF2570"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "MuseAir",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "MuseAir",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/MuseAir.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:25.206760+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:25.211000+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:25.695498+00:00",
                "elapsed_seconds": 0.48446858299999995,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:25.700680+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "5ca2ee66bcc7a282f116ea009ebb959b9a506d4322fd5fa66c8aa5577e60906b",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0xF89F1683",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0xF89F1683",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xDFEF2570",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0xF89F1683",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xDFEF2570",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 7.82,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/MuseAir/Xeon8375C",
          "registered_name": "MuseAir",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 24.65,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/MuseAir/M2Pro",
          "registered_name": "MuseAir",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 4.462474645030423,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0xF89F1683",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0xF89F1683",
                "result": "PASS"
              },
              "NE": {
                "value": "0xDFEF2570",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0xF89F1683",
              "NE": "0xDFEF2570"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "MuseAir",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "MuseAir",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/MuseAir.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:25.206760+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:25.211000+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:25.695498+00:00",
                "elapsed_seconds": 0.48446858299999995,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:25.700680+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "5ca2ee66bcc7a282f116ea009ebb959b9a506d4322fd5fa66c8aa5577e60906b",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0xF89F1683",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0xF89F1683",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xDFEF2570",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0xF89F1683",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xDFEF2570",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 19.91,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/MuseAir/Xeon8375C",
          "registered_name": "MuseAir",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.20090406830737262,
          "verification": {}
        }
      },
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. SMHasher3 version only. Supplied upstream audit records algorithm v2 / crate 0.6.0 and deprecates earlier versions. Also holds on upstream v0.4; does not transfer to v1/v2 (0/2^24 each). The current v2 has a separate row (32-byte pair, about 19.45 bits).",
      "hover": {
        "mechanism": "A zero public product erases a changed message word before secret mixing.",
        "quote": "not affected by seed-independent attacks.",
        "claim_note": "v0.3 (withdrawn in v0.4); v2 README: single seed, no secret, unsuitable for servers"
      },
      "speed_registration": "MuseAir",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": null,
      "claim_category": "keyed collision / DoS claim",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: cancel the public tail term with the first 16 bytes for 2^128 colliding 32-byte inputs, every seed (verified 2^16, 65536/65536 seeds)."
      }
    },
    {
      "id": "muse-v2",
      "pattern": [
        "P2"
      ],
      "code_url": "https://github.com/eternal-io/museair/blob/crate-0.6.0/src/lib.rs",
      "name": "MuseAir v2 (crate 0.6.0)",
      "version": "v2 (crate 0.6.0, algorithm v2)",
      "label": "MuseAir v2",
      "anchor": "appendix-museair-v2",
      "family": "heuristic",
      "claim_id": "museair",
      "output_bits": 64,
      "key_bits": 64,
      "key_model": "Uniform 64-bit seed, museair::hash(bytes, seed). bfast::hash collides on exactly the same seeds; hash128 / bfast::hash128 (seed_a, seed_b uniform) collide at the same rate on a different seed set (two-seed model).",
      "status": "NEW",
      "classification_reason": "First scored witness for algorithm v2; carry-mismatch differential on the 17..32-byte tail products, found by DP search and confirmed against the crates.io tarball.",
      "official_claim": {
        "text": "Not vulnerable to blinding multiplication attacks ... passed all SMHasher3 tests",
        "url": "https://github.com/eternal-io/museair/blob/3f0d8c8/README.md",
        "context": "Current README (3f0d8c8); line 82: MuseAir relies solely on an initial seed, without any additional secret, and is described as unsuitable for direct use on servers. Same claim_id as the v0.3 row.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "not in SMHasher3 (ships v0.3 only)",
        "passed": null,
        "total": null,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "failed_tests": [],
        "note": "Upstream README states v2 passes all SMHasher3 tests; not reproduced here."
      },
      "pair": {
        "m_hex": "0000000000000000000000000000000000000000000000000000000000000000",
        "m_prime_hex": "00000000000000404a048402a910048a00000000000000a80000000000000000",
        "verifier_confirmed": true,
        "example_seed_raw": "0x040963434fe5e368 (hash 0xef46cda19c0bbc67; bfast 0x8d303f6a6db80174); seed 0 does not collide",
        "provenance": [
          "verify/museair-v2/README.html",
          "verify/museair-v2/README.html"
        ],
        "implementation_validation": "Searcher: C11 port of crate 0.6.0 src/lib.rs (sha256 123772c6...) validated with 200,000 vectors from a Rust generator linked to the crate worktree, 0 mismatches. Verifier: Rust program linked directly to the crates.io tarball museair-0.6.0.crate (sha256 e07cb15b...7314e), crate's own cargo test stability_v2 passes.",
        "lengths_bytes": [
          32,
          32
        ],
        "L_words": 4,
        "example_key_words_hex": [
          "040963434fe5e368"
        ],
        "example_output_hex": "ef46cda19c0bbc67",
        "construction": "head word i ^= 0x4000000000000000, head word j ^= 0x8a0410a90284044a, tail word u bits 59/61/63 ^= 0xa8<<56 (m = 21: 21*C5 has carry weight 16)"
      },
      "collision": {
        "display": "about 2^-17.45 of keys (sampled; 36,060 events / 1.5×2^32 keys, upstream crate)",
        "count": 36060,
        "trials": 6442450944,
        "log2_contribution": -17.4469,
        "exact_contribution": false,
        "total_equality_proved": false,
        "interpretation": "Measured rate",
        "epsilon_95_interval": [
          5.5396e-06,
          5.6553e-06
        ],
        "interval_method": "central equal-tail exact Poisson (Garwood)",
        "runs": "verifier fresh 2^32: 23869 (2^-17.457), fresh 2^31: 12191 (2^-17.426); searcher 2^30: 6066, 2^32: 23952, 2^31: 12061 (pooled 2^-17.447); pooled all 78139/(3.25*2^32) = 2^-17.4467"
      },
      "score": {
        "calculated": 19.4469,
        "display": 19.45,
        "display_text": "at most 19.45 bits (cap; sampled; 95% interval 19.43–19.46)",
        "direction": "estimated_upper_bound",
        "rounding": "nearest",
        "derivation": "log2(4) - (-17.4469)",
        "approximate_95_half_width_bits": 0.015,
        "interval_95_bits": [
          19.432,
          19.462
        ]
      },
      "bits": 19.4469,
      "bits_kind": "measured",
      "mechanism": "For 17..32 bytes the tail enters as wmul(C4^seed^u, C5); flipping tail bits changes the product by +-m*C5 whose XOR image hits a fixed pattern with probability 2^-16 (carry mismatches), and that pattern XORed into the head cancels.",
      "hover": {
        "mechanism": "A signed-digit tail flip shifts a public product by +-21*C5; a fixed head XOR cancels it when the carries agree.",
        "quote": "Not vulnerable to blinding multiplication attacks",
        "claim_note": "v2 README (3f0d8c8); single seed, no secret; unsuitable for servers per README"
      },
      "notes": "Algorithm v2 (crate 0.6.0). Lengths <= 16 are head-XOR only (2^-64 floor for a fixed pair); the long path (> 32 B) carries 32 seed bits in every state word, and its best exact event is a zero tail multiplicand: a 40-byte pair collides on exactly the 2^32 seeds with seed & 0xAAAA...AAAA = 0 (2^20/2^20 class seeds, 0/2^30 uniform; hash and bfast::hash only, the 128-bit functions' seeding differs), cap 34.3 bits. Runner-up at 19 B (L = 3): 4096/2^30 = 2^-18.00, cap 19.58 (verifier 4019/2^30, 19.61). DP search over odd m < 2^20 (NAF <= 3) and m < 2^12 (NAF <= 4) at all shifts and both words with read_short's overlap constraints; top 135 re-measured at 2^26; model-free byte sweeps at the boundaries confirmed 0xa8; bounded single-bit-flip scan at lengths 1..64 found no exact state collision. Verifier: two-sample z = -0.03 against the searcher's pooled rate. The v0.3 row's every-seed pair gives 0/2^24 on v2.",
      "qualification": "Measured score cap with sampling uncertainty; better pairs may exist. Rate quoted for museair::hash with a single uniform 64-bit seed; bfast::hash collides on identical seeds; the 128-bit variants (seed_a, seed_b) collide at the same rate under a two-seed model. Not scored by SMHasher3 (ships v0.3).",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "No algorithm-v2 timing registered",
          "source_short": "unavailable",
          "record": "verify/museair-v2/README.html"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "No algorithm-v2 timing registered",
          "source_short": "unavailable",
          "record": "verify/museair-v2/README.html"
        },
        "smh_m2_bulk_Bpc": {
          "value": 10.42,
          "source": "SMHasher3 registered MuseAir-v2 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/witness-searches/muse-v2-timing/speeds_museair_v2.json",
          "record": "records/witness-searches/muse-v2-timing/speeds_museair_v2.json#/MuseAir-v2/M2Pro",
          "registered_name": "MuseAir-v2",
          "host": "M2Pro",
          "backend_token": "scalar-mul128",
          "backend_note": "scalar 64×64→128 multiplication",
          "binary_sha256": "b20d1938180dbd9ae00b319e3c490ab3f84557a2a6365358e66bda1b4cddeca4",
          "selected_run": 3,
          "selection": "median-of-three",
          "spread_percent": 0.481695568400764,
          "verification": {
            "status": "PASS",
            "implementation": "PASS",
            "native_value": "7140cabc",
            "failure_lines": [],
            "sanity_raw_file": "evidence/M2Pro/MuseAir-v2.sanity.txt",
            "sanity_raw_sha256": "c709eb6c52ef806eaec148395dab82ba3198752230c12e15916959aca4ace145",
            "vectors_raw_file": "evidence/M2Pro/verification.txt",
            "vector_count": 200000,
            "registered_vector_calls": 600000,
            "final_object_raw_file": "evidence/M2Pro/verification-final.txt",
            "pair_examples_reproduced": true
          },
          "timing_status": "complete"
        },
        "smh_xeon_bulk_Bpc": {
          "value": 7.53,
          "source": "SMHasher3 registered MuseAir-v2 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/witness-searches/muse-v2-timing/speeds_museair_v2.json",
          "record": "records/witness-searches/muse-v2-timing/speeds_museair_v2.json#/MuseAir-v2/Xeon8375C",
          "registered_name": "MuseAir-v2",
          "host": "Xeon8375C",
          "backend_token": "scalar-mul128",
          "backend_note": "scalar 64×64→128 multiplication",
          "binary_sha256": "3346f0ca2bf43422b3ef4f8741eda9968804095022cf368924abeaeafb640886",
          "selected_run": 1,
          "selection": "higher-bulk-lower-small-of-two",
          "spread_percent": 0.0,
          "verification": {
            "status": "PASS",
            "implementation": "PASS",
            "native_value": "7140cabc",
            "failure_lines": [],
            "sanity_raw_file": "evidence/Xeon8375C/MuseAir-v2.sanity.txt",
            "sanity_raw_sha256": "b552c4ccdb805be631b12bc96854ffa8242ec835b922581de353f4485ccb3070",
            "vectors_raw_file": "evidence/Xeon8375C/verification.txt",
            "vector_count": 200000,
            "registered_vector_calls": 600000,
            "final_object_raw_file": "evidence/Xeon8375C/verification-final.txt",
            "pair_examples_reproduced": true
          },
          "timing_status": "complete"
        },
        "smh_m2_small_cycles": {
          "value": 22.32,
          "source": "SMHasher3 registered MuseAir-v2 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/witness-searches/muse-v2-timing/speeds_museair_v2.json",
          "record": "records/witness-searches/muse-v2-timing/speeds_museair_v2.json#/MuseAir-v2/M2Pro",
          "registered_name": "MuseAir-v2",
          "host": "M2Pro",
          "backend_token": "scalar-mul128",
          "backend_note": "scalar 64×64→128 multiplication",
          "binary_sha256": "b20d1938180dbd9ae00b319e3c490ab3f84557a2a6365358e66bda1b4cddeca4",
          "selected_run": 2,
          "selection": "median-of-three",
          "spread_percent": 3.199268738574035,
          "verification": {
            "status": "PASS",
            "implementation": "PASS",
            "native_value": "7140cabc",
            "failure_lines": [],
            "sanity_raw_file": "evidence/M2Pro/MuseAir-v2.sanity.txt",
            "sanity_raw_sha256": "c709eb6c52ef806eaec148395dab82ba3198752230c12e15916959aca4ace145",
            "vectors_raw_file": "evidence/M2Pro/verification.txt",
            "vector_count": 200000,
            "registered_vector_calls": 600000,
            "final_object_raw_file": "evidence/M2Pro/verification-final.txt",
            "pair_examples_reproduced": true
          },
          "timing_status": "complete"
        },
        "smh_xeon_small_cycles": {
          "value": 29.27,
          "source": "SMHasher3 registered MuseAir-v2 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/witness-searches/muse-v2-timing/speeds_museair_v2.json",
          "record": "records/witness-searches/muse-v2-timing/speeds_museair_v2.json#/MuseAir-v2/Xeon8375C",
          "registered_name": "MuseAir-v2",
          "host": "Xeon8375C",
          "backend_token": "scalar-mul128",
          "backend_note": "scalar 64×64→128 multiplication",
          "binary_sha256": "3346f0ca2bf43422b3ef4f8741eda9968804095022cf368924abeaeafb640886",
          "selected_run": 2,
          "selection": "higher-bulk-lower-small-of-two",
          "spread_percent": 0.10249402118209794,
          "verification": {
            "status": "PASS",
            "implementation": "PASS",
            "native_value": "7140cabc",
            "failure_lines": [],
            "sanity_raw_file": "evidence/Xeon8375C/MuseAir-v2.sanity.txt",
            "sanity_raw_sha256": "b552c4ccdb805be631b12bc96854ffa8242ec835b922581de353f4485ccb3070",
            "vectors_raw_file": "evidence/Xeon8375C/verification.txt",
            "vector_count": 200000,
            "registered_vector_calls": 600000,
            "final_object_raw_file": "evidence/Xeon8375C/verification-final.txt",
            "pair_examples_reproduced": true
          },
          "timing_status": "complete"
        }
      },
      "speed_registration": "MuseAir-v2, scalar-mul128; crate 0.6.0; identity 64-bit seed mapping",
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": null,
      "claim_category": "keyed collision / DoS claim",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "provenance": [
        "verify/museair-v2/README.html",
        "verify/museair-v2/README.html",
        "records/README.html",
        "records/witness-searches/muse-v2-timing/speeds_museair_v2.json"
      ],
      "reproduction": {
        "status": "standalone and upstream checks reproduced; observed Xeon counts recorded",
        "directory": "verify/museair-v2/README.html",
        "readme": "verify/museair-v2/README.html",
        "observed": "verify/museair-v2/run_selected_xeon.txt"
      }
    },
    {
      "id": "komi",
      "pattern": [
        "P4"
      ],
      "code_url": "https://github.com/avaneev/komihash/blob/master/komihash.h",
      "name": "komihash v5.27 / v5.34",
      "claim_id": "komihash",
      "output_bits": 64,
      "key_bits": 64,
      "key_model": "Uniform 64-bit UseSeed.",
      "status": "NEW",
      "classification_reason": "No earlier lane-tie construction identified in the supplied evidence.",
      "official_claim": {
        "text": "only with a secret seed to minimize the risk of collision attacks (hash flooding)",
        "url": "https://github.com/avaneev/komihash/blob/main/README.md",
        "context": "The README explicitly says it is not cryptographically secure.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "PASS",
        "passed": 250,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "0000000000000000447370032e8a191311111111111111112222222222222222f0f9dda4c1c0a15e9cf534900ea6f5e033333333333333334444444444444444",
        "m_prime_hex": "0100000000000000457370032e8a191311111111111111112222222222222222f0f9dda4c1c0a15e9cf534900ea6f5e033333333333333334444444444444444",
        "verifier_confirmed": true,
        "example_seed_raw": "0x27d1f77dc2a01269 (h(A) = h(B) = 0x113c6b88bc913857)",
        "provenance": [
          "records/README.html"
        ],
        "implementation_validation": "SMHasher3 verification value 0x8157FF6D reproduced exactly by verify.c using the lib/Hashinfo.cpp procedure (keys {}, {0}, {0,1}, ..., {0..254} with seed 256-i, then the 2048-byte result array with seed 0, first 4 bytes LE). Additionally xcheck.c: 200000 random inputs, lengths 0..599, random / 16-bi",
        "lengths_bytes": [
          64,
          64
        ],
        "L_words": 8,
        "example_key_words_hex": [
          "27d1f77dc2a01269"
        ],
        "example_output_hex": "113c6b88bc913857"
      },
      "collision": {
        "display": "about 0.9106 of keys (sampled; 3,910,946,997 events / 2^32 keys)",
        "log2_contribution": -0.13512916189466012,
        "exact_contribution": false,
        "total_equality_proved": false,
        "interpretation": "Measured rate or class-density-weighted measured rate",
        "count": 3910946997,
        "trials": 4294967296
      },
      "score": {
        "calculated": 3.13512916189466,
        "display": 3.14,
        "display_text": "at most 3.14 bits (cap; sampled)",
        "direction": "estimated_upper_bound",
        "rounding": "nearest",
        "derivation": "log2(8) - (-0.13512916189466012)"
      },
      "notes": "This high-probability construction applies to lengths 64..127 bytes only; not an all-length probability.",
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "version": "v5.27 / v5.34",
      "label": "komihash",
      "anchor": "appendix-komihash",
      "mechanism": "Related lanes let chosen message differences cancel for most seeds.",
      "family": "heuristic",
      "bits": 3.13512916189466,
      "bits_kind": "measured",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 7.96,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/komihash/M2Pro",
          "registered_name": "komihash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 11.533586818757936,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x8157FF6D",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x8157FF6D",
                "result": "PASS"
              },
              "NE": {
                "value": "0x68E116C0",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x8157FF6D",
              "NE": "0x68E116C0"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "komihash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "komihash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/komihash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:23.701890+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:23.706249+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:24.181055+00:00",
                "elapsed_seconds": 0.47475837499999995,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:24.186552+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "22b331c2ef0a9aa70e086bdc688d6e7edb084d323434b11841127b49ae0b3e55",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x8157FF6D",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x8157FF6D",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x68E116C0",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x8157FF6D",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x68E116C0",
                  "result": "PASS"
                }
              },
              "existing_arm_adapters": {
                "LE": {
                  "value": "0x8157FF6D",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x68E116C0",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 7.35,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/komihash/Xeon8375C",
          "registered_name": "komihash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 25.05,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/komihash/M2Pro",
          "registered_name": "komihash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 14.571039491602345,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x8157FF6D",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x8157FF6D",
                "result": "PASS"
              },
              "NE": {
                "value": "0x68E116C0",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x8157FF6D",
              "NE": "0x68E116C0"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "komihash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "komihash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/komihash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:23.701890+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:23.706249+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:24.181055+00:00",
                "elapsed_seconds": 0.47475837499999995,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:24.186552+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "22b331c2ef0a9aa70e086bdc688d6e7edb084d323434b11841127b49ae0b3e55",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x8157FF6D",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x8157FF6D",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x68E116C0",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x8157FF6D",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x68E116C0",
                  "result": "PASS"
                }
              },
              "existing_arm_adapters": {
                "LE": {
                  "value": "0x8157FF6D",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x68E116C0",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 27.49,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/komihash/Xeon8375C",
          "registered_name": "komihash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.4001455074572613,
          "verification": {}
        }
      },
      "qualification": "Measured score cap with sampling uncertainty; better pairs may exist. This high-probability construction applies to lengths 64..127 bytes only; not an all-length probability. At 64 bytes (L = 8) no pair can score below 3.00 bits, so this cap is within 0.14 bits of the best possible witness at this length.",
      "hover": {
        "mechanism": "Related lanes let chosen message differences cancel for most seeds.",
        "quote": "only with a secret seed … collision attacks …"
      },
      "speed_registration": "komihash",
      "chart_eligible": true,
      "speed_note": "SMHasher3 registers v5.27; the collision mechanism and pair were also checked on v5.34.",
      "key_free": false,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": "komihash",
      "claim_category": "keyed collision / DoS claim",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "version_note": "Collision witness: upstream 5.34 (commit 50a15150, 2026-08-04, newest release as of 2026-09-18); suite result and timings: SMHasher3 'komihash v5.27' (upstream commit a602815; there is no 5.27 tag). The 5.27 and 5.34 headers agree on 200,000 random inputs (lengths 0..599) and on the pair, and both reproduce the SMHasher3 verification value 0x8157FF6D.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "multicollision": {
        "tier": "weak-key",
        "text": "Weak-key multicollision: tying both lane pairs, 2^16 fixed 64-byte inputs collide fully for 1 seed in ~150, and for every seed sampled hundreds of them share one output (min observed 586, median ~3300). A 2^-14 single-pair family and a proven \"4 of any 2^b share an output\" also hold."
      }
    },
    {
      "id": "t1ha",
      "pattern": [
        "P7"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/t1ha.cpp",
      "name": "t1ha2_atonce-64 v2.1.4",
      "claim_id": "t1ha2",
      "output_bits": 64,
      "key_bits": 64,
      "key_model": "Uniform 64-bit one-shot API seed.",
      "status": "NEW",
      "classification_reason": "New carry-pattern construction in supplied panel.",
      "official_claim": {
        "text": "Great quality of hashing",
        "url": "https://raw.githubusercontent.com/erthink/t1ha/master/t1ha.h",
        "context": "The project explicitly says it is not suitable for cryptography.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 247,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "SeedBlockOffset"
        ],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "c4c0cc2284cd239ede36a18fa6",
        "m_prime_hex": "fbc31866049ec02dea0c4e2be580d3cf",
        "verifier_confirmed": true,
        "example_seed_raw": "4c240c2749cd4915",
        "provenance": [
          "verify/t1ha2-64/README.html",
          "verify/t1ha2-64/README.html"
        ],
        "implementation_validation": "Searcher: own C implementation (t1ha2.h) validated against the 81-entry upstream selftest table and SMHasher3 verification value 0x8F16C948; independent verifier: fresh clone erthink/t1ha HEAD 00eb779 (src/t1ha2.c byte-identical to tag v2.1.4), linked upstream src/t1ha2.c, public t1ha2_atonce API, upstream t1ha_selfcheck__t1ha2_atonce() and 0x8F16C948 pass.",
        "lengths_bytes": [
          13,
          16
        ],
        "L_words": 2,
        "example_key_words_hex": [
          "4c240c2749cd4915"
        ],
        "example_output_hex": "c35b49165b1a4480",
        "seed_class": {
          "mask_hex": "a5845081f808f44a",
          "value_hex": "2080000118003408",
          "of": "L = lo(((seed ^ l0) + t) * P1)",
          "density_log2": -24
        },
        "additional_example_seeds": [
          "a2b08b86e150940c (H = b94c250505cd61c6)",
          "e486a312cbae8cc1",
          "091e258d8d7468d1",
          "881464cd3ea41895"
        ]
      },
      "collision": {
        "display": "about 2^-28.19 of keys (sampled class contribution: 2^-24 × 58,715,203/2^30)",
        "log2_contribution": -28.1928,
        "exact_contribution": false,
        "total_equality_proved": false,
        "interpretation": "Measured rate or class-density-weighted measured rate",
        "conditional_count": 58715203,
        "conditional_trials": 1073741824,
        "class_density_log2": -24,
        "conditional_log2_95_interval": [
          -4.1931,
          -4.1924
        ],
        "uniform_checks": "fresh uniform seeds against upstream: 226/2^36 and 258/2^36 (verifier), 217/2^36 (searcher); pooled 701 in 3*2^36 = 2^-28.13 [2^-28.24, 2^-28.02]; every hit inside the stated class"
      },
      "score": {
        "calculated": 29.1928,
        "display": 29.19,
        "display_text": "at most 29.19 bits (cap; sampled); conditional-rate 95% ≈ ±0.0004 bits",
        "direction": "estimated_upper_bound",
        "rounding": "nearest",
        "derivation": "log2(2) - (-28.1928)",
        "approximate_95_half_width_bits": 0.0004
      },
      "notes": "Cross-length 13/16-byte pair F60 found by an exhaustive DP over all 224,923,104 5-digit signed-digit routes (dp5.c; the 4-digit search rediscovers the previous pair A at 30.00 as the only realisable 4-digit route at or below 30.5). Mechanism: word-0 difference l* - l = +2^60 +2^54 -2^48 -2^9 -2^1, du = e012803e9bacd40a with u+du and x+d0 wrapping, length offset +3, carry pattern of weight 24 fixing 24 bits of L = lo(((seed ^ l0) + t) * P1) (mask a5845081f808f44a, value 2080000118003408, density exactly 2^-24). The two low digits' sign events are correlated with the fixed low bits of L for this tail word, so the conditional rate is 2^-4.19 rather than the model's median 2^-5.19. Conditional rate against upstream t1ha (erthink/t1ha HEAD 00eb779, src/t1ha2.c byte-identical to v2.1.4; Xeon 8375C, 2026-09-19): 58,715,203/2^30 = 2^-4.1928 (+-0.0004). Fresh uniform-seed runs against upstream: 226 and 258 collisions per 2^36 seeds (224 expected at 2^-28.19; the second is a +2.3 sigma fluctuation), all inside the stated class; searcher's own fresh 2^36: 217. Runner-up F1 (10/16 B): class 2^-24 x 2^-4.93, 153/2^36, cap 29.93. Not searched: 6-digit routes (about 30 CPU-h; extrapolated gain at most 0.5-1 bit).",
      "provenance": [
        "verify/t1ha2-64/README.html",
        "verify/t1ha2-64/README.html",
        "records/README.html",
        "records/README.html"
      ],
      "version": "v2.1.4",
      "label": "t1ha2_atonce-64",
      "anchor": "appendix-t1ha2",
      "mechanism": "Cross-length carry patterns cancel for a structured seed class.",
      "family": "heuristic",
      "bits": 29.1928,
      "bits_kind": "measured",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 6.19,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/t1ha2-64/M2Pro",
          "registered_name": "t1ha2-64",
          "host": "M2Pro",
          "backend_token": "1Y+a0",
          "backend_note": "1Y+a0",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.16181229773464256,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x8F16C948",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x8F16C948",
                "result": "PASS"
              },
              "BE": {
                "value": "0x061CB08C",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x8F16C948",
              "BE": "0x061CB08C"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "t1ha2-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "t1ha2-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/t1ha2-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:26.198857+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:26.203503+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:26.705812+00:00",
                "elapsed_seconds": 0.5022804580000004,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:26.711100+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "23a58da0ddaa375e31fcd272d57f8c145418e7cd138520ead7bb13c62e3df7c4",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x8F16C948",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x8F16C948",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x061CB08C",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x8F16C948",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x061CB08C",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 5.82,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/t1ha2-64/Xeon8375C",
          "registered_name": "t1ha2-64",
          "host": "Xeon8375C",
          "backend_token": "1Y+a2",
          "backend_note": "1Y+a2",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 39.3,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/t1ha2-64/M2Pro",
          "registered_name": "t1ha2-64",
          "host": "M2Pro",
          "backend_token": "1Y+a0",
          "backend_note": "1Y+a0",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.2544529262086481,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x8F16C948",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x8F16C948",
                "result": "PASS"
              },
              "BE": {
                "value": "0x061CB08C",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x8F16C948",
              "BE": "0x061CB08C"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "t1ha2-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "t1ha2-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/t1ha2-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:26.198857+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:26.203503+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:26.705812+00:00",
                "elapsed_seconds": 0.5022804580000004,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:26.711100+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "23a58da0ddaa375e31fcd272d57f8c145418e7cd138520ead7bb13c62e3df7c4",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x8F16C948",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x8F16C948",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x061CB08C",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x8F16C948",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x061CB08C",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 39.16,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/t1ha2-64/Xeon8375C",
          "registered_name": "t1ha2-64",
          "host": "Xeon8375C",
          "backend_token": "1Y+a2",
          "backend_note": "1Y+a2",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        }
      },
      "qualification": "Measured score cap with sampling uncertainty; better pairs may exist (6-digit routes not enumerated). Cross-length 13/16-byte pair. Exact class density 2^-24 multiplied by the conditional rate 2^-4.19 measured at 2^30 class samples against upstream. All 701 uniform-seed hits (3 x 2^36) lie inside the class, so the class contribution is the observed rate at this resolution, but it remains a sampled lower bound on eps, not a proof of total equality.",
      "hover": {
        "mechanism": "Cross-length carry patterns cancel for a structured seed class."
      },
      "speed_registration": "t1ha2-64",
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": "t1ha2_atonce",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "reproduction": {
        "status": "standalone and upstream checks reproduced; observed Xeon counts recorded",
        "directory": "verify/t1ha2-64/README.html",
        "readme": "verify/t1ha2-64/README.html",
        "observed": "verify/t1ha2-64/run_selected_xeon.txt"
      }
    },
    {
      "id": "a5",
      "pattern": [
        "P3"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/a5hash.cpp",
      "name": "a5hash v5.21, 64-bit",
      "claim_id": "a5hash",
      "output_bits": 64,
      "key_bits": 64,
      "key_model": "Uniform 64-bit UseSeed.",
      "status": "NEW",
      "classification_reason": "New heavy seed-expansion value / zero multiplier construction. Stronger deep-panel witness supersedes 48.3-bit panel value.",
      "official_claim": {
        "text": "practically resistant to blinding multiplication attacks",
        "url": "https://github.com/avaneev/a5hash/blob/10492dbe8c34ae043ccbab3fe4b16a2a26eebbc6/README.md#blinding-multiplication",
        "context": "Wording of the main README at commit 10492db (2025-12-19, README-only, after the 5.25 tag); conditioned on a secret 64-bit seed and non-exposed outputs, and explicitly not a complete security evaluation. The 5.21 and 5.25 tagged READMEs instead say the functions are 'practically secure against the \"blinding multiplication\" attack when the UseSeed is kept secret and hash outputs are not exposed'. Tested code is v5.21; the latest release, v5.25, has an identical 64-bit hash core.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "PASS",
        "passed": 250,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "e0aa5c8e000000008877665544332211737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dd",
        "m_prime_hex": "e0aa5c8e000000001122334455667788737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0f7fe050c131a21282f363d444b525960676e757c838a91989fa6adb4bbc2c9d0d7dee5ecf3fa01080f161d242b323940474e555c636a71787f868d949ba2a9b0b7bec5ccd3dae1e8eff6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dd",
        "verifier_confirmed": true,
        "recipe": "First 16 bytes as shown; byte i=(7*i+3)%256 for zero-based indices 16..6614, identical in both messages.",
        "provenance": [
          "records/README.html",
          "records/README.html"
        ],
        "lengths_bytes": [
          6615,
          6615
        ],
        "L_words": 827,
        "example_key_words_hex": [
          "bdd730a20c451ba4"
        ],
        "example_output_hex": "9cda28706bf2e550"
      },
      "collision": {
        "display": "collides for at least 118 of every 2^45 keys (counted)",
        "log2_contribution": -38.11735695063816,
        "exact_contribution": true,
        "total_equality_proved": false,
        "interpretation": "Exact sufficient event"
      },
      "score": {
        "calculated": 47.80910046980944,
        "display": 47.81,
        "display_text": "at most 47.81 bits (cap)",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(827) - (-38.11735695063816)"
      },
      "notes": "Exact sufficient seed class, not equality for total epsilon. Best verified score upper bound, not an exhaustive minimum over lengths.  Re-checked 2026-09-18 against upstream v5.25 (latest; 5.22-5.25 change only macros and comments): SMHasher3 verification 0xADDE79B3 reproduced from the v5.25 header, class re-enumerated over all 64 seed bits (118 x 2^19 seeds), all 61,865,984 collide.",
      "provenance": [
        "records/README.html",
        "records/README.html",
        "records/README.html"
      ],
      "version": "v5.21, 64-bit (identical core in v5.25)",
      "label": "a5hash 64-bit",
      "anchor": "appendix-a5hash-64",
      "mechanism": "An exactly counted seed class erases a message word through multiplication.",
      "family": "heuristic",
      "bits": 47.80910046980944,
      "bits_kind": "exact",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 3.2,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/a5hash/M2Pro",
          "registered_name": "a5hash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.31347962382446415,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0xADDE79B3",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0xADDE79B3",
                "result": "PASS"
              },
              "NE": {
                "value": "0x11A303D0",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0xADDE79B3",
              "NE": "0x11A303D0"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "a5hash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "a5hash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/a5hash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:24.191256+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:24.195947+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:24.693883+00:00",
                "elapsed_seconds": 0.49789570800000016,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:24.699394+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "163c6553b695388d4ace98ef9e77c4368741d12d39d0670c878b3a2c568fa4d9",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0xADDE79B3",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0xADDE79B3",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x11A303D0",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0xADDE79B3",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x11A303D0",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 3.17,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/a5hash/Xeon8375C",
          "registered_name": "a5hash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 22.36,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/a5hash/M2Pro",
          "registered_name": "a5hash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.22361359570661765,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0xADDE79B3",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0xADDE79B3",
                "result": "PASS"
              },
              "NE": {
                "value": "0x11A303D0",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0xADDE79B3",
              "NE": "0x11A303D0"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "a5hash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "a5hash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/a5hash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:24.191256+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:24.195947+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:24.693883+00:00",
                "elapsed_seconds": 0.49789570800000016,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:24.699394+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "163c6553b695388d4ace98ef9e77c4368741d12d39d0670c878b3a2c568fa4d9",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0xADDE79B3",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0xADDE79B3",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x11A303D0",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0xADDE79B3",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x11A303D0",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 19.32,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/a5hash/Xeon8375C",
          "registered_name": "a5hash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.41407867494822614,
          "verification": {}
        }
      },
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. Exact sufficient seed class, not equality for total epsilon. Best verified score upper bound, not an exhaustive minimum over lengths.  Re-checked 2026-09-18 against upstream v5.25 (latest; 5.22-5.25 change only macros and comments): SMHasher3 verification 0xADDE79B3 reproduced from the v5.25 header, class re-enumerated over all 64 seed bits (118 x 2^19 seeds), all 61,865,984 collide.",
      "hover": {
        "mechanism": "An exactly counted seed class erases a message word through multiplication.",
        "claim_note": "main README, commit 10492db (2025-12-19)"
      },
      "speed_registration": "a5hash",
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": "a5hash",
      "claim_category": "keyed collision / DoS claim",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "multicollision": {
        "tier": "weak-key",
        "text": "Weak-key multicollision: an unbounded family collides for the whole 2^-46.7 seed fibre of the recorded pair."
      }
    },
    {
      "id": "a5wide",
      "pattern": [
        "P3"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/a5hash.cpp",
      "name": "a5hash v5.21, 128-bit",
      "claim_id": "a5hash",
      "output_bits": 128,
      "key_bits": 64,
      "key_model": "Uniform 64-bit UseSeed; both full output words collide.",
      "status": "NEW",
      "classification_reason": "New public-product construction; independent confirmation upgrades the earlier claimant-only variant.",
      "official_claim": {
        "text": "practically resistant to blinding multiplication attacks",
        "url": "https://github.com/avaneev/a5hash/blob/10492dbe8c34ae043ccbab3fe4b16a2a26eebbc6/README.md#blinding-multiplication",
        "context": "README wording at HEAD 10492db (2025-12-19, a README-only commit after tag 5.25), which names both a5hash() and a5hash128(). At tag 5.25 and in the v5.21 README (b0ba799), line 518 read 'practically secure against the \"blinding multiplication\" attack when the UseSeed is kept secret and hash outputs are not exposed' (same meaning). Tested implementation is v5.21; the v5.25 a5hash128 body is unchanged.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "PASS",
        "passed": 250,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "00ddc7f65b30ce60d60000000000000000",
        "m_prime_hex": "00ddc7f65b30ce60d600000000000000ff",
        "verifier_confirmed": true,
        "provenance": [
          "records/README.html",
          "records/README.html"
        ],
        "confirmation": "17-byte pair independently checked in deep-panel synthesis with verifier’s validated implementation (2^20/2^20), after independent verification of same public-product mechanism at 24 and 32 bytes. ; re-verified 2026-09-18 against upstream a5hash.h at HEAD 10492db (v5.25, fresh clone): 2^26/2^26 uniform seeds and 8/8 structured seeds collide on the full 128-bit output, control pair with byte 15 changed 0/2^26, 64-bit a5hash 0/2^26; also 2^20/2^20 on the headers at tag 5.25 and at b0ba799 (logs in records/)",
        "lengths_bytes": [
          17,
          17
        ],
        "L_words": 3,
        "example_key_words_hex": [
          "5f642f87d5e23888"
        ],
        "example_output_hex": "e70d0e48e169dd4c754f558f576fdbdc",
        "output_order": "canonical high word then low word"
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "interpretation": "Exact sufficient event"
      },
      "score": {
        "calculated": 1.584962500721156,
        "display": 1.59,
        "display_text": "at most 1.59 bits (cap)",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(3) - (0); L = ceil(17/8) = 3 words"
      },
      "notes": "Additional variant, not one of the original ten entries.",
      "provenance": [
        "records/README.html",
        "records/README.html",
        "records/README.html"
      ],
      "version": "v5.21, 128-bit",
      "label": "a5hash 128-bit",
      "anchor": "appendix-a5hash-128",
      "mechanism": "A public zero-product operand erases a changed word for every seed.",
      "family": "heuristic",
      "bits": 1.584962500721156,
      "bits_kind": "exact",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 12.22,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/a5hash-128/M2Pro",
          "registered_name": "a5hash-128",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.4107883817427336,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x89406B11",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x89406B11",
                "result": "PASS"
              },
              "NE": {
                "value": "0x890F41CB",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x89406B11",
              "NE": "0x890F41CB"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "a5hash-128",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "a5hash-128",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/a5hash-128.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:24.704104+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:24.708528+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:25.196925+00:00",
                "elapsed_seconds": 0.48836487500000025,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:25.202067+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "104a88623aebd2bae989a9389a9348af15c7118926064db266605d8e10073fea",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x89406B11",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x89406B11",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x890F41CB",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x89406B11",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x890F41CB",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 7.93,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/a5hash-128/Xeon8375C",
          "registered_name": "a5hash-128",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 21.47,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/a5hash-128/M2Pro",
          "registered_name": "a5hash-128",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.8164881229622676,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x89406B11",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x89406B11",
                "result": "PASS"
              },
              "NE": {
                "value": "0x890F41CB",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x89406B11",
              "NE": "0x890F41CB"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "a5hash-128",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "a5hash-128",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/a5hash-128.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:24.704104+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:24.708528+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:25.196925+00:00",
                "elapsed_seconds": 0.48836487500000025,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:25.202067+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "104a88623aebd2bae989a9389a9348af15c7118926064db266605d8e10073fea",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x89406B11",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x89406B11",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x890F41CB",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x89406B11",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x890F41CB",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 22.23,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/a5hash-128/Xeon8375C",
          "registered_name": "a5hash-128",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.0796221322536992,
          "verification": {}
        }
      },
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. Additional variant, not one of the original ten entries.",
      "hover": {
        "mechanism": "A public zero-product operand erases a changed word for every seed.",
        "claim_note": "main README, commit 10492db (2025-12-19)"
      },
      "speed_registration": "a5hash-128",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": null,
      "claim_category": "keyed collision / DoS claim",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade (128-bit variant): force a public product to zero for 2^64 colliding 24-byte inputs, every seed (verified 2^16, 65536/65536 seeds). The 64-bit a5hash is not affected this way."
      }
    },
    {
      "id": "wyhash",
      "pattern": [
        "P1"
      ],
      "code_url": "https://github.com/wangyi-fudan/wyhash/blob/master/wyhash.h",
      "name": "wyhash final v4.3",
      "version": "final v4.3",
      "label": "wyhash final v4.3",
      "anchor": "appendix-wyhash",
      "family": "heuristic",
      "claim_id": "wyhash",
      "key_bits": 320,
      "output_bits": 64,
      "key_model": "Uniform 64-bit seed and four uniform 64-bit secret words passed to wyhash(key,len,seed,secret) (caller array or make_secret); 320 key bits; sampled reproducibly",
      "status": "REPRODUCTION",
      "classification_reason": "Independent reproduction of the paper’s harness results.",
      "prior_work": [
        {
          "label": "Paper: harness results and fold differential",
          "url": "https://github.com/thomasahle/fast-polynomials"
        },
        {
          "label": "Peters 2024: fixed-seed multicollisions; he found no seed-independent attack",
          "url": "https://orlp.net/blog/breaking-hash-functions/"
        },
        {
          "label": "wangyi-fudan's 2019 acknowledgment of the shipped-constant annihilation",
          "url": "https://github.com/wangyi-fudan/wyhash/issues/15"
        }
      ],
      "official_claim": {
        "text": "Both of them are not 64 bit collision resistant, but is about 62 bits (flyingmutant/Cyan4973/vigna)",
        "url": "https://github.com/wangyi-fudan/wyhash/blob/master/README.md",
        "context": "Default public secret and a random 64-bit API seed; no secret-word randomization. The SMHasher3 row is non-strict v4.2: the upstream final v4.3 header reproduces the SMHasher3 v4.2 registration's verification value 0x9DAE7DD3, so the two are the same function.",
        "provenance": "records/README.html",
        "verbatim_record": "**solid**:  wyhash passed SMHasher, wyrand passed BigCrush, practrand. | **salted**: We use dynamic secret to avoid intended attack. | Both of them are not 64 bit collision resistant, but is about 62 bits (flyingmutant/Cyan4973/vigna) | 1: wyhash is designed to be as fast as possible, not for security. in my basic operator _wymum(A^p1,B^p2), if A is set to p1 then wyhash is not dependent on B. However, this occurs with 2^-64 probability in natural data which can be almost ignored. When being intendly attacked wyhash surely break as you said (by setting some parameter to magic numbers).",
        "source_record": "README.md lines 20, 28, 45 (commit e4764a0b, 2026-03-23), https://github.com/wangyi-fudan/wyhash/blob/master/README.md; issue #15 owner comment 2019-06-09T20:01:27Z, https://github.com/wangyi-fudan/wyhash/issues/15#issuecomment-500240721"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 235,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/5035a923/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "Zeroes",
          "Permutation",
          "SeedZeroes"
        ],
        "version_note": "v4.2 registration; collision witness is v4.3"
      },
      "pair": {
        "m_hex": "9bd4604137366abec688a63706aa4a2188d35499de169df633e0964e8c04600c",
        "m_prime_hex": "642b9fbec8c99541397759c8f955b5de88d35499de169df633e0964e8c04600c",
        "lengths_bytes": [
          32,
          32
        ],
        "L_words": 4,
        "pair_id": "A",
        "verifier_confirmed": true,
        "example_seed_raw": "0x6c58e2bbe0b8c2ef",
        "example_key_words_hex": [
          "6c58e2bbe0b8c2ef",
          "2e87eccce404b9e7",
          "27807013cee858cb",
          "064c5e57e4a52845",
          "bda1eaa3841f1235"
        ],
        "example_output_hex": "bf0d6eb792755aad",
        "outputs": {
          "m": "0xbf0d6eb792755aad",
          "m2": "0xbf0d6eb792755aad"
        },
        "provenance": [
          "records/README.html",
          "records/witness-searches/random-secret/wyhash/README.md"
        ],
        "default_secret_witness": {
          "seed": "0x131b854bbd1f5b12",
          "output_hex": "a7dd61b404363777"
        }
      },
      "collision": {
        "display": "about 1088 of every 2^36.58 keys (sampled; 1088 events, pooled)",
        "count": 1088,
        "trials": 103079215104,
        "trials_log2": 36.58,
        "log2_contribution": -26.497,
        "exact_contribution": false,
        "total_equality_proved": false,
        "interpretation": "Measured full-output collision rate with seed and secret uniform per key",
        "runs": "searcher wyrs.cpp 357/2^35 (salt 301); verifier wyverify.cpp 388/2^35 (mt19937_64) and 343/2^35 (splitmix64), upstream wyhash.h final v4.3 WYHASH_CONDOM=1, Xeon 8375C 2026-09-19"
      },
      "score": {
        "calculated": 28.497,
        "display": 28.5,
        "display_text": "at most 28.5 bits (cap; sampled); 95% Poisson interval [28.4, 28.6]",
        "direction": "estimated_upper_bound",
        "rounding": "nearest tenth; sampling uncertainty",
        "derivation": "log2(4) - log2(1088/2^36.58)",
        "poisson_95_interval": [
          28.4,
          28.6
        ],
        "poisson_count": 1088,
        "poisson_trials": 103079215104,
        "interval_scope": "Two-sided exact Poisson interval transformed to log2(L/p); uncertainty in this witness-derived quantity, not an interval for the unknown family score.",
        "interval_95_bits": [
          28.4,
          28.6
        ],
        "interval_method": "central 95% exact Poisson (Garwood) on the pooled count of the listed independent samples; displayed endpoints rounded"
      },
      "bits": 28.497,
      "bits_kind": "measured",
      "mechanism": "The all-ones difference on both operands of the first message multiply-fold can give the same lo ^ hi, merging the state before the unchanged suffix.",
      "notes": "Seed and all four secret words uniform per key (wyhash(key,len,seed,secret); make_secret gives <= 64 bits of entropy and the same rate: 21/2^31). The witness mechanism fold(X,Y) = fold(~X,~Y) never uses the secret value, so the default public secret gives the same class: pair A with the public secret 58/(2^30+2^32) = 2^-26.46, 28.5 bits [28.1, 28.9]. With the default secret wyhash additionally has seed-independent P = 1 collisions (a message word equal to secret[1] annihilates the fold; 12, 16 and 32 B; 1 bit at L = 2) and a P = 1/3 seed-dependent class (w0 = 0x5555555555555555 ^ secret[1], 3.59 bits at L = 4); both are excluded by the random-secret model. The 24-byte word-0 complement (L = 3) is statistically tied: 847/3x2^35 = 2^-26.86, 28.4 [28.3, 28.5]. The SMHasher3 row is non-strict v4.2: the upstream final v4.3 header reproduces the SMHasher3 v4.2 registration's verification value 0x9DAE7DD3, so the two are the same function.",
      "qualification": "Measured score cap with sampling uncertainty; better pairs may exist. Seed and all four secret words uniform per key; the default public secret gives the same rate (28.5 [28.1, 28.9]) but additionally admits seed-independent P = 1 pairs (1 bit at L = 2), which this score excludes. Exact Poisson 95% interval for this witness-derived score: [28.4, 28.6] (1088 events in 3x2^35 keys).",
      "hover": {
        "mechanism": "The all-ones difference on both operands of the first message multiply-fold can give the same lo ^ hi, merging the state before the unchanged suffix.",
        "claim_note": "REPRODUCTION; verbatim excerpt"
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 8.75,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/wyhash/M2Pro",
          "registered_name": "wyhash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x9DAE7DD3",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x9DAE7DD3",
                "result": "PASS"
              },
              "BE": {
                "value": "0x2E958F8A",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x9DAE7DD3",
              "BE": "0x2E958F8A"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "wyhash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "wyhash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/wyhash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:23.206461+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:23.210752+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:23.691359+00:00",
                "elapsed_seconds": 0.4805742089999998,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:23.697142+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "5d6b814713072ddaca80861756b5d6801b2948fe6e26778f77bbaa30c7c6f466",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x9DAE7DD3",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x9DAE7DD3",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x2E958F8A",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x9DAE7DD3",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x2E958F8A",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          },
          "version_match": {
            "note": "The final v4.3 header retains the non-strict v4.2 hash function timed by SMHasher3; the version change renamed its header guard. The standalone verifier and both benchmark hosts reproduce verification value 0x9DAE7DD3. Timings use the benchmark’s fixed secret; collision samples independently randomize the seed and all four secret words.",
            "upstream_change": "https://github.com/wangyi-fudan/wyhash/commit/2ac9a50",
            "verification_record": "verify/wyhash/README.html"
          },
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a"
        },
        "smh_xeon_bulk_Bpc": {
          "value": 8.47,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/wyhash/Xeon8375C",
          "registered_name": "wyhash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {},
          "version_match": {
            "note": "The final v4.3 header retains the non-strict v4.2 hash function timed by SMHasher3; the version change renamed its header guard. The standalone verifier and both benchmark hosts reproduce verification value 0x9DAE7DD3. Timings use the benchmark’s fixed secret; collision samples independently randomize the seed and all four secret words.",
            "upstream_change": "https://github.com/wangyi-fudan/wyhash/commit/2ac9a50",
            "verification_record": "verify/wyhash/README.html"
          }
        },
        "smh_m2_small_cycles": {
          "value": 21.2,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/wyhash/M2Pro",
          "registered_name": "wyhash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.132075471698113,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x9DAE7DD3",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x9DAE7DD3",
                "result": "PASS"
              },
              "BE": {
                "value": "0x2E958F8A",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x9DAE7DD3",
              "BE": "0x2E958F8A"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "wyhash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "wyhash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/wyhash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:23.206461+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:23.210752+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:23.691359+00:00",
                "elapsed_seconds": 0.4805742089999998,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:23.697142+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "5d6b814713072ddaca80861756b5d6801b2948fe6e26778f77bbaa30c7c6f466",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x9DAE7DD3",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x9DAE7DD3",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x2E958F8A",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x9DAE7DD3",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x2E958F8A",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          },
          "version_match": {
            "note": "The final v4.3 header retains the non-strict v4.2 hash function timed by SMHasher3; the version change renamed its header guard. The standalone verifier and both benchmark hosts reproduce verification value 0x9DAE7DD3. Timings use the benchmark’s fixed secret; collision samples independently randomize the seed and all four secret words.",
            "upstream_change": "https://github.com/wangyi-fudan/wyhash/commit/2ac9a50",
            "verification_record": "verify/wyhash/README.html"
          },
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a"
        },
        "smh_xeon_small_cycles": {
          "value": 26.66,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/wyhash/Xeon8375C",
          "registered_name": "wyhash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.15003750937734317,
          "verification": {},
          "version_match": {
            "note": "The final v4.3 header retains the non-strict v4.2 hash function timed by SMHasher3; the version change renamed its header guard. The standalone verifier and both benchmark hosts reproduce verification value 0x9DAE7DD3. Timings use the benchmark’s fixed secret; collision samples independently randomize the seed and all four secret words.",
            "upstream_change": "https://github.com/wangyi-fudan/wyhash/commit/2ac9a50",
            "verification_record": "verify/wyhash/README.html"
          }
        }
      },
      "reproduction": {
        "status": "standalone program supplied; startup witness and deterministic smoke check recorded",
        "directory": "verify/wyhash/README.html",
        "source": "verify/wyhash/wyhash_verify.c",
        "command": "cc -O2 -std=c11 -o wyhash_verify wyhash_verify.c -lm && ./wyhash_verify 20 1 random-secret",
        "trials": 1048576,
        "rng": "fixed deterministic pseudorandom smoke stream (seed then four secret words per trial); see per-hash README",
        "note": "random-secret mode added 2026-09-19: seed and four uniform secret words per trial through wyhash(key,len,seed,secret), with the recorded random-model witness asserted at startup; the default mode keeps the historical seed-only check. The smoke check does not replace the large pooled counts."
      },
      "supporting_measurements": [],
      "provenance": [
        "records/README.html",
        "records/witness-searches/random-secret/wyhash/README.md"
      ],
      "speed_registration": "wyhash",
      "chart_eligible": true,
      "speed_note": "The final v4.3 header retains the non-strict v4.2 hash function timed by SMHasher3; the version change renamed its header guard. The standalone verifier and both benchmark hosts reproduce verification value 0x9DAE7DD3. Timings use the benchmark’s fixed secret; collision samples independently randomize the seed and all four secret words.",
      "key_free": false,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": "wyhash",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "api": "wyhash(key,len,seed,secret) with a caller-supplied four-word secret (make_secret or any array); the default _wyp array is the default-secret control"
    },
    {
      "id": "rapid1",
      "pattern": [
        "P1"
      ],
      "code_url": "https://github.com/Nicoshev/rapidhash/blob/rapidhash_v1.0/rapidhash.h",
      "name": "rapidhash v1",
      "version": "v1",
      "label": "rapidhash v1",
      "anchor": "appendix-rapidhash-v1",
      "family": "heuristic",
      "claim_id": "rapidhash",
      "key_bits": 256,
      "output_bits": 64,
      "key_model": "Uniform 64-bit seed and three uniform 64-bit secret words passed to rapidhash_internal (v1.0 secret triplet); 256 key bits; sampled reproducibly",
      "status": "REPRODUCTION",
      "classification_reason": "Independent reproduction of the paper’s harness results.",
      "prior_work": [
        {
          "label": "Paper: harness results and fold differential",
          "url": "https://github.com/thomasahle/fast-polynomials"
        },
        {
          "label": "N-R-K, issue #10 (2024-11-23): seed-independent collision; the word at len-16 equals secret[1], zeroing the final multiply",
          "url": "https://github.com/Nicoshev/rapidhash/issues/10"
        },
        {
          "label": "hoxxep, issue #25 (2025-05-24): trivial collision attack / randomising secrets",
          "url": "https://github.com/Nicoshev/rapidhash/issues/25"
        }
      ],
      "official_claim": {
        "text": "Rapidhash focuses on quality and speed, not security so for now it will be kept as it is.",
        "url": "https://github.com/Nicoshev/rapidhash/issues/10",
        "context": "The quotation is Nicoshev's closing reply (2024-12-02) to issue #10, which reported a seed-independent collision: any inputs longer than 16 bytes whose word at offset len-16 equals secret[1] = 0x8bb84b93962eacc9 hash to a length-only constant for every seed (v3 only moved the condition to secret[1] ^ len, which an attacker who chooses the length also meets). In January 2026 the author added that random seeds are not recommended and most users use seed 0. SMHasher3 results and speeds in the supplied record apply to v3, not v1.",
        "provenance": "records/README.html",
        "verbatim_record": "All functions pass all tests in both [SMHasher](https://github.com/rurban/smhasher/blob/master/doc/rapidhash.txt) and [SMHasher3](https://gitlab.com/fwojcik/smhasher3/-/blob/main/results/raw/rapidhash.txt).  \n[Collision-based study](https://github.com/Nicoshev/rapidhash/tree/master?tab=readme-ov-file#collision-based-hash-quality-study) showed a collision probability close to ideal.  \nOutstanding collision ratio when tested with datasets of 16B and 67B keys: | Altering the secrets would reduce the hash quality, as they have been chosen for performing 64-bit multiplications.\n\nRapidhash focuses on quality and speed, not security so for now it will be kept as it is. | Hey @hoxxep, this is a non-cryptographic function, it is not our intent to cover specific attacks.\n\nJust released V3, which hardens it a bit against this attack. Now the input length must be known, appending the secret may not work anymore.",
        "source_record": "README.md (master 1ae7842f) section '**Excellent**' lines 35-37, https://github.com/Nicoshev/rapidhash/blob/master/README.md; issue #10 closing comment by Nicoshev 2024-12-02, https://github.com/Nicoshev/rapidhash/issues/10; issue #25 closing comment 2025-05-27, https://github.com/Nicoshev/rapidhash/issues/25"
      },
      "smhasher3": {
        "verdict": "not supplied for v1; supplied record tests v3",
        "passed": null,
        "total": null,
        "url": "https://github.com/fwojcik/smhasher3/blob/5035a923/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": []
      },
      "pair": {
        "m_hex": "9bd4604137366abec688a63706aa4a2188d35499de169df633e0964e8c04600c",
        "m_prime_hex": "642b9fbec8c99541397759c8f955b5de88d35499de169df633e0964e8c04600c",
        "lengths_bytes": [
          32,
          32
        ],
        "L_words": 4,
        "pair_id": "A",
        "verifier_confirmed": true,
        "example_seed_raw": "0x3879cdfddc782ad3",
        "example_key_words_hex": [
          "3879cdfddc782ad3",
          "d0d81d65fd961dff",
          "a9132a2f5b5d4f54",
          "d72e7f4d4f7270f5"
        ],
        "example_output_hex": "4329ec0defb7f826",
        "outputs": {
          "m": "0x4329ec0defb7f826",
          "m2": "0x4329ec0defb7f826"
        },
        "provenance": [
          "records/README.html",
          "records/witness-searches/random-secret/rapid1/README.md"
        ],
        "default_secret_witness": {
          "seed": "0x3788f2419a81e2d6",
          "output_hex": "8f7a71ffebd4a14b"
        }
      },
      "collision": {
        "display": "about 160 of every 2^34 keys (sampled; 160 events, pooled)",
        "count": 160,
        "trials": 17179869184,
        "trials_log2": 34,
        "log2_contribution": -26.678,
        "exact_contribution": false,
        "total_equality_proved": false,
        "interpretation": "Measured full-output collision rate with seed and secret uniform per key",
        "runs": "searcher rs_rapid1.cpp 38/2^32 (rngseed 1); verifier (mt19937_64) 40/2^32 and 82/2^33, upstream rapidhash.h tag rapidhash_v1.0, Xeon 8375C 2026-09-19"
      },
      "score": {
        "calculated": 28.678,
        "display": 28.7,
        "display_text": "at most 28.7 bits (cap; sampled); 95% Poisson interval [28.5, 28.9]",
        "direction": "estimated_upper_bound",
        "rounding": "nearest tenth; sampling uncertainty",
        "derivation": "log2(4) - log2(160/2^34)",
        "poisson_95_interval": [
          28.5,
          28.9
        ],
        "poisson_count": 160,
        "poisson_trials": 17179869184,
        "interval_scope": "Two-sided exact Poisson interval transformed to log2(L/p); uncertainty in this witness-derived quantity, not an interval for the unknown family score.",
        "interval_95_bits": [
          28.5,
          28.9
        ],
        "interval_method": "central 95% exact Poisson (Garwood) on the pooled count of the listed independent samples; displayed endpoints rounded"
      },
      "bits": 28.678,
      "bits_kind": "measured",
      "mechanism": "The all-ones difference on both operands of the first message multiply-fold can give the same lo ^ hi, merging the state before the unchanged suffix.",
      "notes": "Seed and the three secret words uniform per key, passed through rapidhash_internal (the public rapidhash()/rapidhash_withSeed() wrappers use the compiled-in rapid_secret). The witness is a pure fold differential and does not use the secret value: with the compiled-in secret the same pair gives 224/2^34.39 = 2^-26.59, 28.6 bits [28.4, 28.8] (page 12/2^30, two v1.0 reruns 76 and 89 per 2^33, verifier 47/2^32); odd secret words give 49/2^32. With the default secret rapidhash v1 additionally has the seed-independent annihilation of issue #10 (word at len-16 equal to secret[1]; 16 B, 1 bit at L = 2), excluded here. The 24-byte word-0 complement (L = 3) is tied: 125/2^34 = 2^-27.03, 28.6 [28.4, 28.9]. SMHasher3 results and speeds in the supplied record apply to v3, not v1. No v1 SMHasher3 speed is supplied. The author quotation is from the v1-era issue #10; the full claim record also contains later v3 wording.",
      "qualification": "Measured score cap with sampling uncertainty; better pairs may exist. Seed and three secret words uniform per key; the compiled-in secret gives the same rate (28.6 [28.4, 28.8]) but additionally admits the issue #10 seed-independent pair (1 bit at L = 2), which this score excludes. Exact Poisson 95% interval for this witness-derived score: [28.5, 28.9] (160 events in 2^34 keys).",
      "hover": {
        "mechanism": "The all-ones difference on both operands of the first message multiply-fold can give the same lo ^ hi, merging the state before the unchanged suffix.",
        "claim_note": "REPRODUCTION; v1-era author comment"
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_m2_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        }
      },
      "reproduction": {
        "status": "standalone program supplied; startup witness and deterministic smoke check recorded",
        "directory": "verify/rapidhash-v1/README.html",
        "source": "verify/rapidhash-v1/rapidhash_v1_verify.c",
        "command": "cc -O2 -std=c11 -o rapidhash_v1_verify rapidhash_v1_verify.c -lm && ./rapidhash_v1_verify 20 1 random-secret",
        "trials": 1048576,
        "rng": "fixed deterministic pseudorandom smoke stream (seed then three secret words per trial); see per-hash README",
        "note": "random-secret mode added 2026-09-19: seed and three uniform secret words per trial through rapidhash_internal, with the recorded random-model witness asserted at startup; the default mode keeps the historical seed-only check. The smoke check does not replace the large pooled counts."
      },
      "supporting_measurements": [
        {
          "description": "Independent upstream v1.0 header reruns, 2026-09-18",
          "counts": [
            76,
            89
          ],
          "trials_each": 8589934592,
          "provenance": [
            "records/README.html",
            "records/README.html"
          ]
        }
      ],
      "provenance": [
        "records/README.html",
        "records/witness-searches/random-secret/rapid1/README.md"
      ],
      "speed_registration": null,
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": "rapidhash",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "api": "rapidhash_internal(key,len,seed,secret) with a caller-supplied three-word secret; rapidhash()/rapidhash_withSeed() use the compiled-in rapid_secret (default-secret control)"
    },
    {
      "id": "rapid3",
      "pattern": [
        "P1"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/rapidhash.cpp",
      "name": "rapidhash v3",
      "version": "v3",
      "label": "rapidhash v3",
      "anchor": "appendix-rapidhash-v3",
      "family": "heuristic",
      "claim_id": "rapidhash",
      "key_bits": 576,
      "output_bits": 64,
      "key_model": "Uniform 64-bit seed and uniform 8-word (512-bit) secret passed to rapidhash_internal; 576 key bits; sampled reproducibly",
      "status": "REPRODUCTION",
      "classification_reason": "Independent reproduction of the paper’s harness results.",
      "prior_work": [
        {
          "label": "Paper: harness results and fold differential",
          "url": "https://github.com/thomasahle/fast-polynomials"
        },
        {
          "label": "N-R-K, issue #10 (2024-11-23): seed-independent collision; the word at len-16 equals secret[1], zeroing the final multiply",
          "url": "https://github.com/Nicoshev/rapidhash/issues/10"
        },
        {
          "label": "hoxxep, issue #25 (2025-05-24): trivial collision attack / randomising secrets",
          "url": "https://github.com/Nicoshev/rapidhash/issues/25"
        }
      ],
      "official_claim": {
        "text": "showed a collision probability close to ideal.",
        "url": "https://github.com/Nicoshev/rapidhash/blob/master/README.md",
        "context": "SMHasher3 tests v3. The first-fold flaw persists in standard, -micro and -nano: each has 11/2^30 at both 32 B and 48 B. The 28.54-bit plotted cap uses L=4 at 32 B; the 48-byte score is 29.125530882083858. Timings shown are for standard v3; protected variants were not measured by this reproduction.",
        "provenance": "records/README.html",
        "verbatim_record": "All functions pass all tests in both [SMHasher](https://github.com/rurban/smhasher/blob/master/doc/rapidhash.txt) and [SMHasher3](https://gitlab.com/fwojcik/smhasher3/-/blob/main/results/raw/rapidhash.txt).  \n[Collision-based study](https://github.com/Nicoshev/rapidhash/tree/master?tab=readme-ov-file#collision-based-hash-quality-study) showed a collision probability close to ideal.  \nOutstanding collision ratio when tested with datasets of 16B and 67B keys: | Altering the secrets would reduce the hash quality, as they have been chosen for performing 64-bit multiplications.\n\nRapidhash focuses on quality and speed, not security so for now it will be kept as it is. | Hey @hoxxep, this is a non-cryptographic function, it is not our intent to cover specific attacks.\n\nJust released V3, which hardens it a bit against this attack. Now the input length must be known, appending the secret may not work anymore.",
        "source_record": "README.md (master 1ae7842f) section '**Excellent**' lines 35-37, https://github.com/Nicoshev/rapidhash/blob/master/README.md; issue #10 closing comment by Nicoshev 2024-12-02, https://github.com/Nicoshev/rapidhash/issues/10; issue #25 closing comment 2025-05-27, https://github.com/Nicoshev/rapidhash/issues/25 Issue #10, 2026-01-11: random seeds are not recommended; most users use seed 0."
      },
      "smhasher3": {
        "verdict": "PASS",
        "passed": 250,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/5035a923/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": []
      },
      "pair": {
        "m_hex": "9bd4604137366abec688a63706aa4a2188d35499de169df633e0964e8c04600c",
        "m_prime_hex": "642b9fbec8c99541397759c8f955b5de88d35499de169df633e0964e8c04600c",
        "lengths_bytes": [
          32,
          32
        ],
        "L_words": 4,
        "pair_id": "A",
        "verifier_confirmed": true,
        "example_seed_raw": "0x27d3b5addafed424",
        "example_key_words_hex": [
          "27d3b5addafed424",
          "8201394795b91ef9",
          "bc80d672c2c377f6",
          "5afd557e26c19903",
          "a3a9fab4fc0d80e2",
          "5108fe3feb9bd088",
          "6742ee43cec628a4",
          "2267c78c10996237",
          "d96b61ed51f62b33"
        ],
        "example_output_hex": "d832bac31b8fda6c",
        "outputs": {
          "m": "0xd832bac31b8fda6c",
          "m2": "0xd832bac31b8fda6c"
        },
        "provenance": [
          "records/README.html",
          "records/witness-searches/random-secret/rapid3/README.md"
        ],
        "default_secret_witness": {
          "seed": "0x3187ae8a8617e034",
          "output_hex": "a7ee6375a78a86f0"
        }
      },
      "collision": {
        "display": "about 2386 of every 2^37.83 keys (sampled; 2386 events, pooled)",
        "count": 2386,
        "trials": 243739394048,
        "trials_log2": 37.83,
        "log2_contribution": -26.606,
        "exact_contribution": false,
        "total_equality_proved": false,
        "interpretation": "Measured full-output collision rate with seed and secret uniform per key",
        "runs": "searcher rs_rapid3.c (SMHasher3-validated port) 13/2^30, 161/2^34, 358/2^35; verifier verify_rapid3.c on the unmodified upstream tag rapidhash_v3 (sha256 807874ee...626e) 10/2^30, 5/2^30 ChaCha20, 155/2^34, 311/2^35, 1373/2^37; Xeon 8375C 2026-09-19"
      },
      "score": {
        "calculated": 28.606,
        "display": 28.6,
        "display_text": "at most 28.6 bits (cap; sampled); 95% Poisson interval [28.5, 28.7]",
        "direction": "estimated_upper_bound",
        "rounding": "nearest tenth; sampling uncertainty",
        "derivation": "log2(4) - log2(2386/2^37.83)",
        "poisson_95_interval": [
          28.5,
          28.7
        ],
        "poisson_count": 2386,
        "poisson_trials": 243739394048,
        "interval_scope": "Two-sided exact Poisson interval transformed to log2(L/p); uncertainty in this witness-derived quantity, not an interval for the unknown family score.",
        "interval_95_bits": [
          28.5,
          28.7
        ],
        "interval_method": "central 95% exact Poisson (Garwood) on the pooled count of the listed independent samples; displayed endpoints rounded outward"
      },
      "bits": 28.606,
      "bits_kind": "measured",
      "mechanism": "The all-ones difference on both operands of the first message multiply-fold can give the same lo ^ hi, merging the state before the unchanged suffix.",
      "notes": "Seed and all eight secret words uniform per key, passed through rapidhash_internal (the header's doc comment still says 'triplet'; the code indexes secret[0..7]; the public wrappers use the shipped array). The witness never uses a secret value: with the shipped secret pair A gives 539/2^35.64 = 2^-26.57, 28.6 bits [28.4, 28.7] (page 11/2^30, fairness pass 174/2^34, study 12/2^30 and 184/2^34, verifier 158/2^34). With the shipped secret rapidhash v3 additionally has the N-R-K every-seed annihilation (word at len-16 equal to secret[1] ^ len; 16 B and 32 B; 1 bit at L = 2), excluded here. The 24-byte word-0 complement (L = 3) is tied: 1906/2^37.83 = 2^-26.93, 28.5 [28.45, 28.6]; pair D (48 B) under the random secret 191/2^34.17 = 2^-26.59, 29.2 [29.0, 29.4] at L = 6. SMHasher3 tests v3. The first-fold flaw persists in standard, -micro and -nano. Timings shown are for standard v3. rapidhash's public API (rapidhash, rapidhash_withSeed, Micro, Nano) exposes only a 64-bit seed; the maintainer keeps the secrets fixed (issue #10, 2024-12-02) and states that random seeds are not recommended and that most users will use seed 0 (issue #10, 2026-01-11).",
      "qualification": "Measured score cap with sampling uncertainty; better pairs may exist. Seed and eight secret words uniform per key; the shipped secret gives the same rate (28.6 [28.4, 28.7]) but additionally admits the every-seed annihilation pair (1 bit at L = 2), which this score excludes. Exact Poisson 95% interval for this witness-derived score: [28.5, 28.7] (2386 events in 2^37.83 keys).",
      "hover": {
        "mechanism": "The all-ones difference on both operands of the first message multiply-fold can give the same lo ^ hi, merging the state before the unchanged suffix.",
        "claim_note": "REPRODUCTION; verbatim excerpt"
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 15.03,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/rapidhash/M2Pro",
          "registered_name": "rapidhash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 7.333333333333347,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x1FDC65EE",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x1FDC65EE",
                "result": "PASS"
              },
              "BE": {
                "value": "0xB2DB16B5",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x1FDC65EE",
              "BE": "0xB2DB16B5"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "rapidhash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "rapidhash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/rapidhash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:21.209382+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:21.215809+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:21.729408+00:00",
                "elapsed_seconds": 0.513529167,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:21.735098+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "6e6d49106e145083d1d6a477135502e39a55b6f6ff12fb03e55ee0cc8cf9fd7e",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x1FDC65EE",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x1FDC65EE",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xB2DB16B5",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x1FDC65EE",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xB2DB16B5",
                  "result": "PASS"
                }
              },
              "existing_arm_adapters": {
                "LE": {
                  "value": "0x1FDC65EE",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xB2DB16B5",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 10.67,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/rapidhash/Xeon8375C",
          "registered_name": "rapidhash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.09380863039398779,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 21.08,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/rapidhash/M2Pro",
          "registered_name": "rapidhash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 5.326032852165263,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x1FDC65EE",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x1FDC65EE",
                "result": "PASS"
              },
              "BE": {
                "value": "0xB2DB16B5",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x1FDC65EE",
              "BE": "0xB2DB16B5"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "rapidhash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "rapidhash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/rapidhash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:21.209382+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:21.215809+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:21.729408+00:00",
                "elapsed_seconds": 0.513529167,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:21.735098+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "6e6d49106e145083d1d6a477135502e39a55b6f6ff12fb03e55ee0cc8cf9fd7e",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x1FDC65EE",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x1FDC65EE",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xB2DB16B5",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x1FDC65EE",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xB2DB16B5",
                  "result": "PASS"
                }
              },
              "existing_arm_adapters": {
                "LE": {
                  "value": "0x1FDC65EE",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xB2DB16B5",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 27.58,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/rapidhash/Xeon8375C",
          "registered_name": "rapidhash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.03625815808556698,
          "verification": {}
        }
      },
      "reproduction": {
        "status": "standalone program supplied",
        "directory": "verify/rapidhash-v3/README.html",
        "source": "verify/rapidhash-v3/rapidhash_v3_verify.c",
        "command": "cc -O2 -std=c11 -o rapidhash_v3_verify rapidhash_v3_verify.c -lm && ./rapidhash_v3_verify 20 1 random-secret",
        "trials": 1048576,
        "rng": "splitmix64-seeded xoshiro256**, one stream, default seed 1 (seed then eight secret words per trial in random-secret mode)",
        "note": "random-secret mode added 2026-09-19: seed and eight uniform secret words per trial through rapidhash_internal for all six cases, with the recorded random-model witness asserted at startup; the default mode keeps the shipped-secret check as the caveat control. Small package checks are separate from the historical large measurements."
      },
      "supporting_measurements": [
        {
          "hash": "rapidhash",
          "version": "3",
          "variant": "standard / 48 B",
          "id": "rapid3_48",
          "seed_model": "Uniform 64-bit API seed (sampled reproducibly with xoshiro256**); fixed default public secret/constants (default-secret control; under seed + 8 uniform secret words pair D gives 191/2^34.17 = 2^-26.59, 29.2 bits [29.0, 29.4])",
          "length_bytes": 48,
          "L_words": 6,
          "m_hex": "9bd4604137366abec688a63706aa4a2188d35499de169df633e0964e8c04600c48c651edae76208e840fc51f1cccbb02",
          "m2_hex": "642b9fbec8c99541397759c8f955b5de88d35499de169df633e0964e8c04600c48c651edae76208e840fc51f1cccbb02",
          "differential": "w0 xor 0xffffffffffffffff & w1 xor 0xffffffffffffffff",
          "trials_log2": 30,
          "count": 11,
          "rate_log2": -26.540568381362704,
          "bits": 29.125530882083858,
          "example_seed": "0x3187ae8a8617e034",
          "outputs": {
            "m": "0xb52b5b5759f1d08a",
            "m2": "0xb52b5b5759f1d08a"
          },
          "notes": [
            "Explicit pair D; byte-order hex, 64-bit words little-endian.",
            "Deterministic Monte Carlo sampling of the API's full 64-bit seed space, default public constants; no secret-word randomization.",
            "base_msg(48, 12345); selected before sampling.",
            "Unprotected SMHasher3 registration; standard, micro and nano have identical functions for these 16/32/48-byte lengths and were each measured separately.",
            "First message-dependent rapid_mix reads bytes 0..7 (w0) and 8..15 (w1). At 48 bytes the next fold reads w2,w3 and the final raw multiply reads w4,w5."
          ],
          "reproduce_cmd": "make -j2 collision_driver && ./collision_driver run rapid3_48 30 2 20260917",
          "trials": 1073741824,
          "threads": 2,
          "stream_salt": 20260917,
          "base_salt": 12345,
          "pair_id": "D",
          "fixed_seed_outputs": [
            {
              "seed": "0x0000000000000000",
              "m": "0x7db1189e1a7b8262",
              "m2": "0xf55876e5398b384e"
            },
            {
              "seed": "0x0000000000000001",
              "m": "0xee70e342e0da67d9",
              "m2": "0xf833b72f2285b326"
            }
          ],
          "collisions": [
            {
              "trial_index": 7255720,
              "seed": "0x3187ae8a8617e034",
              "m": "0xb52b5b5759f1d08a",
              "m2": "0xb52b5b5759f1d08a"
            },
            {
              "trial_index": 33918521,
              "seed": "0x303a5cb273c0c1f7",
              "m": "0xbc33118662f0b075",
              "m2": "0xbc33118662f0b075"
            },
            {
              "trial_index": 89172893,
              "seed": "0x5b224d263161b313",
              "m": "0x9a5489ef8c7ea0d3",
              "m2": "0x9a5489ef8c7ea0d3"
            },
            {
              "trial_index": 470083109,
              "seed": "0xf5ab61b688998eca",
              "m": "0x9dd9324e6264288b",
              "m2": "0x9dd9324e6264288b"
            },
            {
              "trial_index": 553783461,
              "seed": "0x57a4950805d5c0d4",
              "m": "0xb778d2be5bf1c112",
              "m2": "0xb778d2be5bf1c112"
            },
            {
              "trial_index": 589523905,
              "seed": "0xfb83738fcbdcace6",
              "m": "0x54861746d0ebfc80",
              "m2": "0x54861746d0ebfc80"
            },
            {
              "trial_index": 911520363,
              "seed": "0xc9cacee5443dd010",
              "m": "0x9988170f23386af7",
              "m2": "0x9988170f23386af7"
            },
            {
              "trial_index": 929540845,
              "seed": "0x8730d65e5919f56b",
              "m": "0xb07d365a4b06f2e3",
              "m2": "0xb07d365a4b06f2e3"
            },
            {
              "trial_index": 963760881,
              "seed": "0x070ba6b6a761a578",
              "m": "0x43b999db1bbce45b",
              "m2": "0x43b999db1bbce45b"
            },
            {
              "trial_index": 989748059,
              "seed": "0xd5c7713abaa3e276",
              "m": "0xfb438f4ae08aa79c",
              "m2": "0xfb438f4ae08aa79c"
            },
            {
              "trial_index": 1036794015,
              "seed": "0x689e3a0b92d523ef",
              "m": "0x74010770a4a40873",
              "m2": "0x74010770a4a40873"
            }
          ],
          "elapsed_seconds": 3.88938,
          "approximate_2^-27_comparison": {
            "target_rate_log2": -27,
            "expected_count": 8.0,
            "sigma_count": 2.828427114209478,
            "z": 1.0606601757310883,
            "within_2_sigma": true
          }
        },
        {
          "hash": "rapidhash",
          "version": "3",
          "variant": "micro / 32 B",
          "id": "rapid3_micro_32",
          "seed_model": "Uniform 64-bit API seed (sampled reproducibly with xoshiro256**); fixed default public secret/constants",
          "length_bytes": 32,
          "L_words": 4,
          "m_hex": "9bd4604137366abec688a63706aa4a2188d35499de169df633e0964e8c04600c",
          "m2_hex": "642b9fbec8c99541397759c8f955b5de88d35499de169df633e0964e8c04600c",
          "differential": "w0 xor 0xffffffffffffffff & w1 xor 0xffffffffffffffff",
          "trials_log2": 30,
          "count": 11,
          "rate_log2": -26.540568381362704,
          "bits": 28.540568381362704,
          "example_seed": "0x3187ae8a8617e034",
          "outputs": {
            "m": "0xa7ee6375a78a86f0",
            "m2": "0xa7ee6375a78a86f0"
          },
          "notes": [
            "Explicit pair A; byte-order hex, 64-bit words little-endian.",
            "Deterministic Monte Carlo sampling of the API's full 64-bit seed space, default public constants; no secret-word randomization.",
            "base_msg(32, 12345); selected before sampling.",
            "Unprotected SMHasher3 registration; standard, micro and nano have identical functions for these 16/32/48-byte lengths and were each measured separately.",
            "First message-dependent rapid_mix reads bytes 0..7 (w0) and 8..15 (w1). At 48 bytes the next fold reads w2,w3 and the final raw multiply reads w4,w5."
          ],
          "reproduce_cmd": "make -j2 collision_driver && ./collision_driver run rapid3_micro_32 30 2 20260917",
          "trials": 1073741824,
          "threads": 2,
          "stream_salt": 20260917,
          "base_salt": 12345,
          "pair_id": "A",
          "fixed_seed_outputs": [
            {
              "seed": "0x0000000000000000",
              "m": "0x0d20ed65346f1683",
              "m2": "0xc5edbf6f73ebfe93"
            },
            {
              "seed": "0x0000000000000001",
              "m": "0xbdbb8ff6a4b55840",
              "m2": "0xdf632f0ff8d94704"
            }
          ],
          "collisions": [
            {
              "trial_index": 7255720,
              "seed": "0x3187ae8a8617e034",
              "m": "0xa7ee6375a78a86f0",
              "m2": "0xa7ee6375a78a86f0"
            },
            {
              "trial_index": 33918521,
              "seed": "0x303a5cb273c0c1f7",
              "m": "0xd923f29fe3427ae5",
              "m2": "0xd923f29fe3427ae5"
            },
            {
              "trial_index": 89172893,
              "seed": "0x5b224d263161b313",
              "m": "0xc61415d283510c6e",
              "m2": "0xc61415d283510c6e"
            },
            {
              "trial_index": 470083109,
              "seed": "0xf5ab61b688998eca",
              "m": "0xdcce6425f580a5fa",
              "m2": "0xdcce6425f580a5fa"
            },
            {
              "trial_index": 553783461,
              "seed": "0x57a4950805d5c0d4",
              "m": "0x113048f65f936928",
              "m2": "0x113048f65f936928"
            },
            {
              "trial_index": 589523905,
              "seed": "0xfb83738fcbdcace6",
              "m": "0x1b0158e0576fa2a8",
              "m2": "0x1b0158e0576fa2a8"
            },
            {
              "trial_index": 911520363,
              "seed": "0xc9cacee5443dd010",
              "m": "0x68d55d4bd4c804bf",
              "m2": "0x68d55d4bd4c804bf"
            },
            {
              "trial_index": 929540845,
              "seed": "0x8730d65e5919f56b",
              "m": "0x25e4f7200aba59aa",
              "m2": "0x25e4f7200aba59aa"
            },
            {
              "trial_index": 963760881,
              "seed": "0x070ba6b6a761a578",
              "m": "0x0bef87c2fde762a5",
              "m2": "0x0bef87c2fde762a5"
            },
            {
              "trial_index": 989748059,
              "seed": "0xd5c7713abaa3e276",
              "m": "0x9a81101ea64c5ef0",
              "m2": "0x9a81101ea64c5ef0"
            },
            {
              "trial_index": 1036794015,
              "seed": "0x689e3a0b92d523ef",
              "m": "0x8d1fc3453335393b",
              "m2": "0x8d1fc3453335393b"
            }
          ],
          "elapsed_seconds": 1.67619,
          "approximate_2^-27_comparison": {
            "target_rate_log2": -27,
            "expected_count": 8.0,
            "sigma_count": 2.828427114209478,
            "z": 1.0606601757310883,
            "within_2_sigma": true
          }
        },
        {
          "hash": "rapidhash",
          "version": "3",
          "variant": "micro / 48 B",
          "id": "rapid3_micro_48",
          "seed_model": "Uniform 64-bit API seed (sampled reproducibly with xoshiro256**); fixed default public secret/constants",
          "length_bytes": 48,
          "L_words": 6,
          "m_hex": "9bd4604137366abec688a63706aa4a2188d35499de169df633e0964e8c04600c48c651edae76208e840fc51f1cccbb02",
          "m2_hex": "642b9fbec8c99541397759c8f955b5de88d35499de169df633e0964e8c04600c48c651edae76208e840fc51f1cccbb02",
          "differential": "w0 xor 0xffffffffffffffff & w1 xor 0xffffffffffffffff",
          "trials_log2": 30,
          "count": 11,
          "rate_log2": -26.540568381362704,
          "bits": 29.125530882083858,
          "example_seed": "0x3187ae8a8617e034",
          "outputs": {
            "m": "0xb52b5b5759f1d08a",
            "m2": "0xb52b5b5759f1d08a"
          },
          "notes": [
            "Explicit pair D; byte-order hex, 64-bit words little-endian.",
            "Deterministic Monte Carlo sampling of the API's full 64-bit seed space, default public constants; no secret-word randomization.",
            "base_msg(48, 12345); selected before sampling.",
            "Unprotected SMHasher3 registration; standard, micro and nano have identical functions for these 16/32/48-byte lengths and were each measured separately.",
            "First message-dependent rapid_mix reads bytes 0..7 (w0) and 8..15 (w1). At 48 bytes the next fold reads w2,w3 and the final raw multiply reads w4,w5."
          ],
          "reproduce_cmd": "make -j2 collision_driver && ./collision_driver run rapid3_micro_48 30 2 20260917",
          "trials": 1073741824,
          "threads": 2,
          "stream_salt": 20260917,
          "base_salt": 12345,
          "pair_id": "D",
          "fixed_seed_outputs": [
            {
              "seed": "0x0000000000000000",
              "m": "0x7db1189e1a7b8262",
              "m2": "0xf55876e5398b384e"
            },
            {
              "seed": "0x0000000000000001",
              "m": "0xee70e342e0da67d9",
              "m2": "0xf833b72f2285b326"
            }
          ],
          "collisions": [
            {
              "trial_index": 7255720,
              "seed": "0x3187ae8a8617e034",
              "m": "0xb52b5b5759f1d08a",
              "m2": "0xb52b5b5759f1d08a"
            },
            {
              "trial_index": 33918521,
              "seed": "0x303a5cb273c0c1f7",
              "m": "0xbc33118662f0b075",
              "m2": "0xbc33118662f0b075"
            },
            {
              "trial_index": 89172893,
              "seed": "0x5b224d263161b313",
              "m": "0x9a5489ef8c7ea0d3",
              "m2": "0x9a5489ef8c7ea0d3"
            },
            {
              "trial_index": 470083109,
              "seed": "0xf5ab61b688998eca",
              "m": "0x9dd9324e6264288b",
              "m2": "0x9dd9324e6264288b"
            },
            {
              "trial_index": 553783461,
              "seed": "0x57a4950805d5c0d4",
              "m": "0xb778d2be5bf1c112",
              "m2": "0xb778d2be5bf1c112"
            },
            {
              "trial_index": 589523905,
              "seed": "0xfb83738fcbdcace6",
              "m": "0x54861746d0ebfc80",
              "m2": "0x54861746d0ebfc80"
            },
            {
              "trial_index": 911520363,
              "seed": "0xc9cacee5443dd010",
              "m": "0x9988170f23386af7",
              "m2": "0x9988170f23386af7"
            },
            {
              "trial_index": 929540845,
              "seed": "0x8730d65e5919f56b",
              "m": "0xb07d365a4b06f2e3",
              "m2": "0xb07d365a4b06f2e3"
            },
            {
              "trial_index": 963760881,
              "seed": "0x070ba6b6a761a578",
              "m": "0x43b999db1bbce45b",
              "m2": "0x43b999db1bbce45b"
            },
            {
              "trial_index": 989748059,
              "seed": "0xd5c7713abaa3e276",
              "m": "0xfb438f4ae08aa79c",
              "m2": "0xfb438f4ae08aa79c"
            },
            {
              "trial_index": 1036794015,
              "seed": "0x689e3a0b92d523ef",
              "m": "0x74010770a4a40873",
              "m2": "0x74010770a4a40873"
            }
          ],
          "elapsed_seconds": 2.1053,
          "approximate_2^-27_comparison": {
            "target_rate_log2": -27,
            "expected_count": 8.0,
            "sigma_count": 2.828427114209478,
            "z": 1.0606601757310883,
            "within_2_sigma": true
          }
        },
        {
          "hash": "rapidhash",
          "version": "3",
          "variant": "nano / 32 B",
          "id": "rapid3_nano_32",
          "seed_model": "Uniform 64-bit API seed (sampled reproducibly with xoshiro256**); fixed default public secret/constants",
          "length_bytes": 32,
          "L_words": 4,
          "m_hex": "9bd4604137366abec688a63706aa4a2188d35499de169df633e0964e8c04600c",
          "m2_hex": "642b9fbec8c99541397759c8f955b5de88d35499de169df633e0964e8c04600c",
          "differential": "w0 xor 0xffffffffffffffff & w1 xor 0xffffffffffffffff",
          "trials_log2": 30,
          "count": 11,
          "rate_log2": -26.540568381362704,
          "bits": 28.540568381362704,
          "example_seed": "0x3187ae8a8617e034",
          "outputs": {
            "m": "0xa7ee6375a78a86f0",
            "m2": "0xa7ee6375a78a86f0"
          },
          "notes": [
            "Explicit pair A; byte-order hex, 64-bit words little-endian.",
            "Deterministic Monte Carlo sampling of the API's full 64-bit seed space, default public constants; no secret-word randomization.",
            "base_msg(32, 12345); selected before sampling.",
            "Unprotected SMHasher3 registration; standard, micro and nano have identical functions for these 16/32/48-byte lengths and were each measured separately.",
            "First message-dependent rapid_mix reads bytes 0..7 (w0) and 8..15 (w1). At 48 bytes the next fold reads w2,w3 and the final raw multiply reads w4,w5."
          ],
          "reproduce_cmd": "make -j2 collision_driver && ./collision_driver run rapid3_nano_32 30 2 20260917",
          "trials": 1073741824,
          "threads": 2,
          "stream_salt": 20260917,
          "base_salt": 12345,
          "pair_id": "A",
          "fixed_seed_outputs": [
            {
              "seed": "0x0000000000000000",
              "m": "0x0d20ed65346f1683",
              "m2": "0xc5edbf6f73ebfe93"
            },
            {
              "seed": "0x0000000000000001",
              "m": "0xbdbb8ff6a4b55840",
              "m2": "0xdf632f0ff8d94704"
            }
          ],
          "collisions": [
            {
              "trial_index": 7255720,
              "seed": "0x3187ae8a8617e034",
              "m": "0xa7ee6375a78a86f0",
              "m2": "0xa7ee6375a78a86f0"
            },
            {
              "trial_index": 33918521,
              "seed": "0x303a5cb273c0c1f7",
              "m": "0xd923f29fe3427ae5",
              "m2": "0xd923f29fe3427ae5"
            },
            {
              "trial_index": 89172893,
              "seed": "0x5b224d263161b313",
              "m": "0xc61415d283510c6e",
              "m2": "0xc61415d283510c6e"
            },
            {
              "trial_index": 470083109,
              "seed": "0xf5ab61b688998eca",
              "m": "0xdcce6425f580a5fa",
              "m2": "0xdcce6425f580a5fa"
            },
            {
              "trial_index": 553783461,
              "seed": "0x57a4950805d5c0d4",
              "m": "0x113048f65f936928",
              "m2": "0x113048f65f936928"
            },
            {
              "trial_index": 589523905,
              "seed": "0xfb83738fcbdcace6",
              "m": "0x1b0158e0576fa2a8",
              "m2": "0x1b0158e0576fa2a8"
            },
            {
              "trial_index": 911520363,
              "seed": "0xc9cacee5443dd010",
              "m": "0x68d55d4bd4c804bf",
              "m2": "0x68d55d4bd4c804bf"
            },
            {
              "trial_index": 929540845,
              "seed": "0x8730d65e5919f56b",
              "m": "0x25e4f7200aba59aa",
              "m2": "0x25e4f7200aba59aa"
            },
            {
              "trial_index": 963760881,
              "seed": "0x070ba6b6a761a578",
              "m": "0x0bef87c2fde762a5",
              "m2": "0x0bef87c2fde762a5"
            },
            {
              "trial_index": 989748059,
              "seed": "0xd5c7713abaa3e276",
              "m": "0x9a81101ea64c5ef0",
              "m2": "0x9a81101ea64c5ef0"
            },
            {
              "trial_index": 1036794015,
              "seed": "0x689e3a0b92d523ef",
              "m": "0x8d1fc3453335393b",
              "m2": "0x8d1fc3453335393b"
            }
          ],
          "elapsed_seconds": 1.70993,
          "approximate_2^-27_comparison": {
            "target_rate_log2": -27,
            "expected_count": 8.0,
            "sigma_count": 2.828427114209478,
            "z": 1.0606601757310883,
            "within_2_sigma": true
          }
        },
        {
          "hash": "rapidhash",
          "version": "3",
          "variant": "nano / 48 B",
          "id": "rapid3_nano_48",
          "seed_model": "Uniform 64-bit API seed (sampled reproducibly with xoshiro256**); fixed default public secret/constants",
          "length_bytes": 48,
          "L_words": 6,
          "m_hex": "9bd4604137366abec688a63706aa4a2188d35499de169df633e0964e8c04600c48c651edae76208e840fc51f1cccbb02",
          "m2_hex": "642b9fbec8c99541397759c8f955b5de88d35499de169df633e0964e8c04600c48c651edae76208e840fc51f1cccbb02",
          "differential": "w0 xor 0xffffffffffffffff & w1 xor 0xffffffffffffffff",
          "trials_log2": 30,
          "count": 11,
          "rate_log2": -26.540568381362704,
          "bits": 29.125530882083858,
          "example_seed": "0x3187ae8a8617e034",
          "outputs": {
            "m": "0xb52b5b5759f1d08a",
            "m2": "0xb52b5b5759f1d08a"
          },
          "notes": [
            "Explicit pair D; byte-order hex, 64-bit words little-endian.",
            "Deterministic Monte Carlo sampling of the API's full 64-bit seed space, default public constants; no secret-word randomization.",
            "base_msg(48, 12345); selected before sampling.",
            "Unprotected SMHasher3 registration; standard, micro and nano have identical functions for these 16/32/48-byte lengths and were each measured separately.",
            "First message-dependent rapid_mix reads bytes 0..7 (w0) and 8..15 (w1). At 48 bytes the next fold reads w2,w3 and the final raw multiply reads w4,w5."
          ],
          "reproduce_cmd": "make -j2 collision_driver && ./collision_driver run rapid3_nano_48 30 2 20260917",
          "trials": 1073741824,
          "threads": 2,
          "stream_salt": 20260917,
          "base_salt": 12345,
          "pair_id": "D",
          "fixed_seed_outputs": [
            {
              "seed": "0x0000000000000000",
              "m": "0x7db1189e1a7b8262",
              "m2": "0xf55876e5398b384e"
            },
            {
              "seed": "0x0000000000000001",
              "m": "0xee70e342e0da67d9",
              "m2": "0xf833b72f2285b326"
            }
          ],
          "collisions": [
            {
              "trial_index": 7255720,
              "seed": "0x3187ae8a8617e034",
              "m": "0xb52b5b5759f1d08a",
              "m2": "0xb52b5b5759f1d08a"
            },
            {
              "trial_index": 33918521,
              "seed": "0x303a5cb273c0c1f7",
              "m": "0xbc33118662f0b075",
              "m2": "0xbc33118662f0b075"
            },
            {
              "trial_index": 89172893,
              "seed": "0x5b224d263161b313",
              "m": "0x9a5489ef8c7ea0d3",
              "m2": "0x9a5489ef8c7ea0d3"
            },
            {
              "trial_index": 470083109,
              "seed": "0xf5ab61b688998eca",
              "m": "0x9dd9324e6264288b",
              "m2": "0x9dd9324e6264288b"
            },
            {
              "trial_index": 553783461,
              "seed": "0x57a4950805d5c0d4",
              "m": "0xb778d2be5bf1c112",
              "m2": "0xb778d2be5bf1c112"
            },
            {
              "trial_index": 589523905,
              "seed": "0xfb83738fcbdcace6",
              "m": "0x54861746d0ebfc80",
              "m2": "0x54861746d0ebfc80"
            },
            {
              "trial_index": 911520363,
              "seed": "0xc9cacee5443dd010",
              "m": "0x9988170f23386af7",
              "m2": "0x9988170f23386af7"
            },
            {
              "trial_index": 929540845,
              "seed": "0x8730d65e5919f56b",
              "m": "0xb07d365a4b06f2e3",
              "m2": "0xb07d365a4b06f2e3"
            },
            {
              "trial_index": 963760881,
              "seed": "0x070ba6b6a761a578",
              "m": "0x43b999db1bbce45b",
              "m2": "0x43b999db1bbce45b"
            },
            {
              "trial_index": 989748059,
              "seed": "0xd5c7713abaa3e276",
              "m": "0xfb438f4ae08aa79c",
              "m2": "0xfb438f4ae08aa79c"
            },
            {
              "trial_index": 1036794015,
              "seed": "0x689e3a0b92d523ef",
              "m": "0x74010770a4a40873",
              "m2": "0x74010770a4a40873"
            }
          ],
          "elapsed_seconds": 2.14156,
          "approximate_2^-27_comparison": {
            "target_rate_log2": -27,
            "expected_count": 8.0,
            "sigma_count": 2.828427114209478,
            "z": 1.0606601757310883,
            "within_2_sigma": true
          }
        }
      ],
      "provenance": [
        "records/README.html",
        "records/witness-searches/random-secret/rapid3/README.md"
      ],
      "speed_registration": "rapidhash",
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": "rapidhash",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "api": "rapidhash_internal(key,len,seed,secret) with a caller-supplied eight-word secret; rapidhash()/rapidhash_withSeed() use the shipped rapid_secret (default-secret control)"
    },
    {
      "id": "foldhash-fast",
      "pattern": [
        "P1"
      ],
      "name": "foldhash-fast 0.2.0",
      "version": "0.2.0",
      "label": "foldhash-fast",
      "anchor": "appendix-foldhash-fast",
      "family": "heuristic",
      "mechanism_family": "keyed multiply-fold (mum)",
      "family_definition": "Two xor-keyed 64-bit words are multiplied to 128 bits; the high and low halves are XORed.",
      "output_bits": 64,
      "key_bits": 448,
      "key_model": "Scored experiment: independent uniform per-hasher seed and six shared 64-bit words (448-bit idealized model); default RandomState has correlated, lower-entropy material.",
      "status": "EXTENSION",
      "classification_reason": "Reproduces the paper’s wyhash/rapidhash fold differential, extends it to foldhash at L=1 through aliased short-path reads. Peters 2024: known/fixed-seed folded-multiply family prior art, not this differential.",
      "prior_work": [
        {
          "label": "Paper: wyhash/rapidhash complement-both-operands mechanism",
          "url": "https://github.com/thomasahle/fast-polynomials"
        },
        {
          "label": "Orson Peters 2024; known/fixed-seed family attacks",
          "url": "https://orlp.net/blog/breaking-hash-functions/"
        }
      ],
      "official_claim": {
        "text": "This (plus other careful design throughout the hash function) ensures that it is not possible to create a list of inputs that collide for every instance of foldhash, and also prevents certain access patterns on hash tables going quadratric by ensuring that each hash table uses a different seed and thus a different access pattern. It is these two properties that we refer to when we claim foldhash is \"minimally DoS-resistant\": it does the bare minimum to defeat very simple attacks. However, to be crystal clear, foldhash does not claim to provide HashDoS resistance against interactive attackers.",
        "url": "https://github.com/orlp/foldhash/blob/v0.2.0/README.md#L263-L274",
        "badge": "claims: no every-instance collisions; disclaims interactive attackers",
        "provenance": "records/README.html, lines 263–274"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 79,
        "total": 200,
        "failed_tests": [
          {
            "test": "Sanity",
            "cases": "Basic 2",
            "case_list": [
              "Basic 2"
            ],
            "case_count": 1
          },
          {
            "test": "Avalanche",
            "cases": "3, 4, 5, 6, 7, 8, 9, 10, 12, 16, 20, 128",
            "case_list": [
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "12",
              "16",
              "20",
              "128"
            ],
            "case_count": 12
          },
          {
            "test": "BIC",
            "cases": "3, 8, 11, 15",
            "case_list": [
              "3",
              "8",
              "11",
              "15"
            ],
            "case_count": 4
          },
          {
            "test": "Zeroes",
            "cases": "",
            "case_list": [
              ""
            ],
            "case_count": 1
          },
          {
            "test": "Cyclic",
            "cases": "4 cycles of 4 bytes",
            "case_list": [
              "4 cycles of 4 bytes"
            ],
            "case_count": 1
          },
          {
            "test": "Sparse",
            "cases": "6/2, 4/3, 4/4, 4/5, 3/6, 3/7, 3/8, 3/9, 3/10, 3/12, 3/14, 10/2, 20/3, 9/4, 5/9, 4/14, 4/16, 3/32, 3/48, 3/64, 3/96, 2/128, 2/256, 2/512, 2/1024, 2/1280",
            "case_list": [
              "6/2",
              "4/3",
              "4/4",
              "4/5",
              "3/6",
              "3/7",
              "3/8",
              "3/9",
              "3/10",
              "3/12",
              "3/14",
              "10/2",
              "20/3",
              "9/4",
              "5/9",
              "4/14",
              "4/16",
              "3/32",
              "3/48",
              "3/64",
              "3/96",
              "2/128",
              "2/256",
              "2/512",
              "2/1024",
              "2/1280"
            ],
            "case_count": 26
          },
          {
            "test": "Permutation",
            "cases": "4-bytes [3 low bits; LE], 4-bytes [3 low bits; BE], 4-bytes [3 high bits; LE], 4-bytes [3 high bits; BE], 4-bytes [3 high+low bits; LE], 4-bytes [3 high+low bits; BE], 4-bytes [0, low bit; LE], 4-bytes [0, low bit; BE], 4-bytes [0, high bit; LE], 4-bytes [0, high bit; BE], 8-bytes [0, low bit; LE], 8-bytes [0, low bit; BE], 8-bytes [0, high bit; LE], 8-bytes [0, high bit; BE]",
            "case_list": [
              "4-bytes [3 low bits; LE]",
              "4-bytes [3 low bits; BE]",
              "4-bytes [3 high bits; LE]",
              "4-bytes [3 high bits; BE]",
              "4-bytes [3 high+low bits; LE]",
              "4-bytes [3 high+low bits; BE]",
              "4-bytes [0, low bit; LE]",
              "4-bytes [0, low bit; BE]",
              "4-bytes [0, high bit; LE]",
              "4-bytes [0, high bit; BE]",
              "8-bytes [0, low bit; LE]",
              "8-bytes [0, low bit; BE]",
              "8-bytes [0, high bit; LE]",
              "8-bytes [0, high bit; BE]"
            ],
            "case_count": 14
          },
          {
            "test": "Text",
            "cases": "dictionary, numbers without commas, numbers with commas, FXXXXB, FBXXXX, XXXXFB, FooXXXXBar, FooBarXXXX, XXXXFooBar, FooooXXXXBaaar, FooooBaaarXXXX, XXXXFooooBaaar, FooooooXXXXBaaaaar, FooooooBaaaaarXXXX, XXXXFooooooBaaaaar, FooooooooXXXXBaaaaaaar, FooooooooBaaaaaaarXXXX, XXXXFooooooooBaaaaaaar, FooooooooooXXXXBaaaaaaaaar, FooooooooooBaaaaaaaaarXXXX, XXXXFooooooooooBaaaaaaaaar, Words alnum 1-4, Words alnum 5-8, Words alnum 1-16, Words alnum 1-32, Long alnum last 1968-2128, Long alnum last 4016-4176, Long alnum last 8112-8272",
            "case_list": [
              "dictionary",
              "numbers without commas",
              "numbers with commas",
              "FXXXXB",
              "FBXXXX",
              "XXXXFB",
              "FooXXXXBar",
              "FooBarXXXX",
              "XXXXFooBar",
              "FooooXXXXBaaar",
              "FooooBaaarXXXX",
              "XXXXFooooBaaar",
              "FooooooXXXXBaaaaar",
              "FooooooBaaaaarXXXX",
              "XXXXFooooooBaaaaar",
              "FooooooooXXXXBaaaaaaar",
              "FooooooooBaaaaaaarXXXX",
              "XXXXFooooooooBaaaaaaar",
              "FooooooooooXXXXBaaaaaaaaar",
              "FooooooooooBaaaaaaaaarXXXX",
              "XXXXFooooooooooBaaaaaaaaar",
              "Words alnum 1-4",
              "Words alnum 5-8",
              "Words alnum 1-16",
              "Words alnum 1-32",
              "Long alnum last 1968-2128",
              "Long alnum last 4016-4176",
              "Long alnum last 8112-8272"
            ],
            "case_count": 28
          },
          {
            "test": "TwoBytes",
            "cases": "20, 32, 48, 1024, 2048, 4096",
            "case_list": [
              "20",
              "32",
              "48",
              "1024",
              "2048",
              "4096"
            ],
            "case_count": 6
          },
          {
            "test": "PerlinNoise",
            "cases": "2",
            "case_list": [
              "2"
            ],
            "case_count": 1
          },
          {
            "test": "Bitflip",
            "cases": "3, 4, 8",
            "case_list": [
              "3",
              "4",
              "8"
            ],
            "case_count": 3
          },
          {
            "test": "SeedZeroes",
            "cases": "1280, 8448",
            "case_list": [
              "1280",
              "8448"
            ],
            "case_count": 2
          },
          {
            "test": "SeedBlockLen",
            "cases": "8, 9, 10, 11, 12, 13, 14, 15, 16, 25, 26, 27, 28, 29, 30, 31",
            "case_list": [
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "25",
              "26",
              "27",
              "28",
              "29",
              "30",
              "31"
            ],
            "case_count": 16
          },
          {
            "test": "SeedBlockOffset",
            "cases": "0, 1, 2, 3, 4, 5",
            "case_list": [
              "0",
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "case_count": 6
          }
        ],
        "url": "records/",
        "provenance": "Our full default suite run of the direct-seeded C++ port, not the maintainer’s results directory; no --extra."
      },
      "pair": {
        "m_hex": "0000000000000000",
        "m_prime_hex": "ffffffffffffffff",
        "lengths_bytes": [
          8,
          8
        ],
        "L_words": 1,
        "verifier_confirmed": true,
        "provenance": [
          "records/README.html"
        ]
      },
      "pair_lengths_bytes": [
        8,
        8
      ],
      "L_words": 1,
      "collision": {
        "display": "2757 / 2^38 (sampled); ε ≈ 2^-26.5711",
        "count": 2757,
        "trials": 274877906944,
        "trials_log2": 38,
        "epsilon": 1.0029907571151853e-08,
        "log2_contribution": -26.57111644798981,
        "exact_contribution": false,
        "total_equality_proved": false,
        "poisson_95_interval": [
          9.658973049365342e-09,
          1.0411439231138019e-08
        ],
        "interval_method": "central 95% exact Poisson (Garwood), rounded only for display"
      },
      "score": {
        "calculated": 26.57111644798981,
        "display": 26.6,
        "display_text": "at most 26.5711 bits (cap; sampled); 95% Poisson [26.5173, 26.6255]",
        "direction": "estimated_upper_bound",
        "poisson_95_interval": [
          26.51725524491837,
          26.62548304539585
        ],
        "interval_95_bits": [
          26.51725524491837,
          26.62548304539585
        ],
        "poisson_count": 2757,
        "poisson_trials": 274877906944,
        "derivation": "log2(1/epsilon)"
      },
      "bits": 26.57111644798981,
      "bits_kind": "measured",
      "mechanism": "At eight bytes the short path reads the same word into both xor-keyed operands. Complementing that word applies the paper’s complement-both-operands fold differential at L = 1.",
      "qualification": "Same-type 8-byte byte-string witness; quality and equal-length Vec framing preserve accumulator collisions. Cross-type every-instance collisions are separate and do not change this score.",
      "key_free": false,
      "key_free_definition": "No every-seed pair found within a fixed byte-slice key type. Exploratory search covered unread bytes, length extension, lane/round symmetries, structured/random corpora and XOR differences; search/proof claims were not independently verified.",
      "rurban_alias": null,
      "chart_eligible": true,
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 14.24,
          "source": "SMHasher3 C++ port; M2Pro",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/foldhash/speeds_foldhash.json",
          "record": "records/foldhash/speeds_foldhash.json#/foldhash-fast/M2Pro",
          "registered_name": "foldhash-fast",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic 64-bit multiply-fold)",
          "selection": "best of two, independently per metric",
          "selected_run": 2,
          "spread_percent": 0.8498583569405138,
          "binary_sha256": "0647bdf516d15c0f8f54bc6ac65d2df87558d114a37370bcd93b7ae906b28bf9",
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0xA167BA5E",
              "result": "PASS"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "foldhash-fast",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/foldhash-port/build-m2/SMHasher3",
                  "foldhash-fast",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/foldhash-fast.sanity.txt",
                "binary_sha256": "0647bdf516d15c0f8f54bc6ac65d2df87558d114a37370bcd93b7ae906b28bf9",
                "started": "2026-09-18T13:52:33.161618+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T13:52:33.167938+00:00",
                  "uptime": "15:52  up 1 day,  3:43, 1 user, load averages: 2.83 3.99 4.29",
                  "load1": 2.83,
                  "load5": 3.99,
                  "load15": 4.29
                },
                "returncode": 0,
                "finished": "2026-09-18T13:52:33.674752+00:00",
                "elapsed_seconds": 0.506780792,
                "load_after": {
                  "timestamp": "2026-09-18T13:52:33.680005+00:00",
                  "uptime": "15:52  up 1 day,  3:43, 1 user, load averages: 2.83 3.99 4.29",
                  "load1": 2.83,
                  "load5": 3.99,
                  "load15": 4.29
                },
                "raw_sha256": "99d7785455f6fa72cdab121baf95c379e4ecfd4e21adcdd9bccbbb037e48ef27",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xA167BA5E",
                  "result": "PASS"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Running sanity check 2       . flipped bit 8/16, got identical output: FAIL  !!!!!",
                  "SANITY_FAILS unset, but hash failed"
                ],
                "status": "FAIL"
              }
            ],
            "computed_values": {
              "LE": {
                "value": "0xA167BA5E",
                "result": "PASS"
              },
              "BE": {
                "value": "0x71AF646C",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xA167BA5E",
              "BE": "0x71AF646C"
            },
            "reference_values": {
              "Rust_v0.2.0": {
                "LE": {
                  "value": "0xA167BA5E",
                  "result": "PASS (independent Rust oracle)"
                }
              },
              "Xeon8375C": {
                "LE": {
                  "value": "0xA167BA5E",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x71AF646C",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_m2_small_cycles": {
          "value": 14.94,
          "source": "SMHasher3 C++ port; M2Pro",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/foldhash/speeds_foldhash.json",
          "record": "records/foldhash/speeds_foldhash.json#/foldhash-fast/M2Pro",
          "registered_name": "foldhash-fast",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic 64-bit multiply-fold)",
          "selection": "best of two, independently per metric",
          "selected_run": 2,
          "spread_percent": 0.2677376171352108,
          "binary_sha256": "0647bdf516d15c0f8f54bc6ac65d2df87558d114a37370bcd93b7ae906b28bf9",
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0xA167BA5E",
              "result": "PASS"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "foldhash-fast",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/foldhash-port/build-m2/SMHasher3",
                  "foldhash-fast",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/foldhash-fast.sanity.txt",
                "binary_sha256": "0647bdf516d15c0f8f54bc6ac65d2df87558d114a37370bcd93b7ae906b28bf9",
                "started": "2026-09-18T13:52:33.161618+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T13:52:33.167938+00:00",
                  "uptime": "15:52  up 1 day,  3:43, 1 user, load averages: 2.83 3.99 4.29",
                  "load1": 2.83,
                  "load5": 3.99,
                  "load15": 4.29
                },
                "returncode": 0,
                "finished": "2026-09-18T13:52:33.674752+00:00",
                "elapsed_seconds": 0.506780792,
                "load_after": {
                  "timestamp": "2026-09-18T13:52:33.680005+00:00",
                  "uptime": "15:52  up 1 day,  3:43, 1 user, load averages: 2.83 3.99 4.29",
                  "load1": 2.83,
                  "load5": 3.99,
                  "load15": 4.29
                },
                "raw_sha256": "99d7785455f6fa72cdab121baf95c379e4ecfd4e21adcdd9bccbbb037e48ef27",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xA167BA5E",
                  "result": "PASS"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Running sanity check 2       . flipped bit 8/16, got identical output: FAIL  !!!!!",
                  "SANITY_FAILS unset, but hash failed"
                ],
                "status": "FAIL"
              }
            ],
            "computed_values": {
              "LE": {
                "value": "0xA167BA5E",
                "result": "PASS"
              },
              "BE": {
                "value": "0x71AF646C",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xA167BA5E",
              "BE": "0x71AF646C"
            },
            "reference_values": {
              "Rust_v0.2.0": {
                "LE": {
                  "value": "0xA167BA5E",
                  "result": "PASS (independent Rust oracle)"
                }
              },
              "Xeon8375C": {
                "LE": {
                  "value": "0xA167BA5E",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x71AF646C",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 9.07,
          "source": "SMHasher3 C++ port; Xeon8375C",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/foldhash/speeds_foldhash.json",
          "record": "records/foldhash/speeds_foldhash.json#/foldhash-fast/Xeon8375C",
          "registered_name": "foldhash-fast",
          "host": "Xeon8375C",
          "backend_token": null,
          "backend_note": "(blank token; generic 64-bit multiply-fold)",
          "selection": "best of two, independently per metric",
          "selected_run": 1,
          "spread_percent": 0.0,
          "binary_sha256": "679585c3968a1d2f40117a8b3d1b4da4fa43323a30b26c9588dcf172493a6405",
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0xA167BA5E",
              "result": "PASS"
            },
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "foldhash-fast",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "4",
                  "experiment/speedbench-foldhash/build-foldhash/SMHasher3",
                  "foldhash-fast",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/foldhash-fast.sanity.txt",
                "binary_sha256": "679585c3968a1d2f40117a8b3d1b4da4fa43323a30b26c9588dcf172493a6405",
                "started": "2026-09-18T14:50:05.108158+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T14:50:05.110620+00:00",
                  "uptime": "14:50:05 up 6 days, 23:34,  0 users,  load average: 21.41, 41.63, 47.29",
                  "load1": 21.41,
                  "load5": 41.63,
                  "load15": 47.29
                },
                "returncode": 0,
                "finished": "2026-09-18T14:50:05.567632+00:00",
                "elapsed_seconds": 0.4569606409640983,
                "load_after": {
                  "timestamp": "2026-09-18T14:50:05.569898+00:00",
                  "uptime": "14:50:05 up 6 days, 23:34,  0 users,  load average: 21.41, 41.63, 47.29",
                  "load1": 21.41,
                  "load5": 41.63,
                  "load15": 47.29
                },
                "raw_sha256": "27836aa1c7b065f1dd4e4be3863c139b25454de86a4f973212b2739656f37aa5",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xA167BA5E",
                  "result": "PASS"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Running sanity check 2       . flipped bit 8/16, got identical output: FAIL  !!!!!",
                  "SANITY_FAILS unset, but hash failed"
                ],
                "status": "FAIL"
              }
            ],
            "computed_values": {
              "LE": {
                "value": "0xA167BA5E",
                "result": "PASS"
              },
              "BE": {
                "value": "0x71AF646C",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xA167BA5E",
              "BE": "0x71AF646C"
            },
            "reference_values": {
              "Rust_v0.2.0": {
                "LE": {
                  "value": "0xA167BA5E",
                  "result": "PASS (independent Rust oracle)"
                }
              },
              "M2Pro": {
                "LE": {
                  "value": "0xA167BA5E",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x71AF646C",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 20.09,
          "source": "SMHasher3 C++ port; Xeon8375C",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/foldhash/speeds_foldhash.json",
          "record": "records/foldhash/speeds_foldhash.json#/foldhash-fast/Xeon8375C",
          "registered_name": "foldhash-fast",
          "host": "Xeon8375C",
          "backend_token": null,
          "backend_note": "(blank token; generic 64-bit multiply-fold)",
          "selection": "best of two, independently per metric",
          "selected_run": 2,
          "spread_percent": 0.04977600796416404,
          "binary_sha256": "679585c3968a1d2f40117a8b3d1b4da4fa43323a30b26c9588dcf172493a6405",
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0xA167BA5E",
              "result": "PASS"
            },
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "foldhash-fast",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "4",
                  "experiment/speedbench-foldhash/build-foldhash/SMHasher3",
                  "foldhash-fast",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/foldhash-fast.sanity.txt",
                "binary_sha256": "679585c3968a1d2f40117a8b3d1b4da4fa43323a30b26c9588dcf172493a6405",
                "started": "2026-09-18T14:50:05.108158+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T14:50:05.110620+00:00",
                  "uptime": "14:50:05 up 6 days, 23:34,  0 users,  load average: 21.41, 41.63, 47.29",
                  "load1": 21.41,
                  "load5": 41.63,
                  "load15": 47.29
                },
                "returncode": 0,
                "finished": "2026-09-18T14:50:05.567632+00:00",
                "elapsed_seconds": 0.4569606409640983,
                "load_after": {
                  "timestamp": "2026-09-18T14:50:05.569898+00:00",
                  "uptime": "14:50:05 up 6 days, 23:34,  0 users,  load average: 21.41, 41.63, 47.29",
                  "load1": 21.41,
                  "load5": 41.63,
                  "load15": 47.29
                },
                "raw_sha256": "27836aa1c7b065f1dd4e4be3863c139b25454de86a4f973212b2739656f37aa5",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xA167BA5E",
                  "result": "PASS"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Running sanity check 2       . flipped bit 8/16, got identical output: FAIL  !!!!!",
                  "SANITY_FAILS unset, but hash failed"
                ],
                "status": "FAIL"
              }
            ],
            "computed_values": {
              "LE": {
                "value": "0xA167BA5E",
                "result": "PASS"
              },
              "BE": {
                "value": "0x71AF646C",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xA167BA5E",
              "BE": "0x71AF646C"
            },
            "reference_values": {
              "Rust_v0.2.0": {
                "LE": {
                  "value": "0xA167BA5E",
                  "result": "PASS (independent Rust oracle)"
                }
              },
              "M2Pro": {
                "LE": {
                  "value": "0xA167BA5E",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x71AF646C",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        }
      },
      "speed_registration": "foldhash-fast",
      "code_url": "https://github.com/orlp/foldhash/blob/v0.2.0/src/lib.rs#L240-L350",
      "verification_url": "verify/foldhash-fast/README.html",
      "latest_checked": {
        "crates_io": "0.2.0 (2025-08-23)",
        "git_master": "77d8e3dae0d43abe65753e888b9e74efbe4ee3f7 (2026-06-30)",
        "core_changed": false,
        "rerun": "uniform model 2761/2^38 (26.569 [26.515, 26.623]) and 699/2^36 (26.551 [26.444, 26.660]); Rust HEAD crate, from_u64 seed model, 642/2^36 (26.67 [26.56, 26.79]) and 674/2^36 (26.60 [26.49, 26.71]); logs copied into records/README.html"
      }
    },
    {
      "id": "foldhash-quality",
      "pattern": [
        "P1"
      ],
      "name": "foldhash-quality 0.2.0",
      "version": "0.2.0",
      "label": "foldhash-quality",
      "anchor": "appendix-foldhash-quality",
      "family": "heuristic",
      "mechanism_family": "keyed multiply-fold (mum)",
      "family_definition": "Two xor-keyed 64-bit words are multiplied to 128 bits; the high and low halves are XORed.",
      "output_bits": 64,
      "key_bits": 448,
      "key_model": "Scored experiment: independent uniform per-hasher seed and six shared 64-bit words (448-bit idealized model); default RandomState has correlated, lower-entropy material.",
      "status": "EXTENSION",
      "classification_reason": "Reproduces the paper’s wyhash/rapidhash fold differential, extends it to foldhash at L=1 through aliased short-path reads. Peters 2024: known/fixed-seed folded-multiply family prior art, not this differential.",
      "prior_work": [
        {
          "label": "Paper: wyhash/rapidhash complement-both-operands mechanism",
          "url": "https://github.com/thomasahle/fast-polynomials"
        },
        {
          "label": "Orson Peters 2024; known/fixed-seed family attacks",
          "url": "https://orlp.net/blog/breaking-hash-functions/"
        }
      ],
      "official_claim": {
        "text": "This (plus other careful design throughout the hash function) ensures that it is not possible to create a list of inputs that collide for every instance of foldhash, and also prevents certain access patterns on hash tables going quadratric by ensuring that each hash table uses a different seed and thus a different access pattern. It is these two properties that we refer to when we claim foldhash is \"minimally DoS-resistant\": it does the bare minimum to defeat very simple attacks. However, to be crystal clear, foldhash does not claim to provide HashDoS resistance against interactive attackers.",
        "url": "https://github.com/orlp/foldhash/blob/v0.2.0/README.md#L263-L274",
        "badge": "claims: no every-instance collisions; disclaims interactive attackers",
        "provenance": "records/README.html, lines 263–274"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 117,
        "total": 200,
        "failed_tests": [
          {
            "test": "Sanity",
            "cases": "Basic 2",
            "case_list": [
              "Basic 2"
            ],
            "case_count": 1
          },
          {
            "test": "Avalanche",
            "cases": "3, 4, 8",
            "case_list": [
              "3",
              "4",
              "8"
            ],
            "case_count": 3
          },
          {
            "test": "BIC",
            "cases": "3, 8",
            "case_list": [
              "3",
              "8"
            ],
            "case_count": 2
          },
          {
            "test": "Zeroes",
            "cases": "",
            "case_list": [
              ""
            ],
            "case_count": 1
          },
          {
            "test": "Sparse",
            "cases": "6/2, 4/3, 4/4, 4/5, 3/6, 3/7, 3/8, 3/9, 3/10, 3/12, 3/14, 10/2, 20/3, 9/4, 5/9, 4/14, 4/16, 3/32, 3/48, 3/64, 3/96, 2/128, 2/256, 2/512, 2/1024, 2/1280",
            "case_list": [
              "6/2",
              "4/3",
              "4/4",
              "4/5",
              "3/6",
              "3/7",
              "3/8",
              "3/9",
              "3/10",
              "3/12",
              "3/14",
              "10/2",
              "20/3",
              "9/4",
              "5/9",
              "4/14",
              "4/16",
              "3/32",
              "3/48",
              "3/64",
              "3/96",
              "2/128",
              "2/256",
              "2/512",
              "2/1024",
              "2/1280"
            ],
            "case_count": 26
          },
          {
            "test": "Permutation",
            "cases": "4-bytes [3 low bits; LE], 4-bytes [3 low bits; BE], 4-bytes [3 high bits; LE], 4-bytes [3 high bits; BE], 4-bytes [3 high+low bits; LE], 4-bytes [3 high+low bits; BE], 4-bytes [0, low bit; LE], 4-bytes [0, low bit; BE], 4-bytes [0, high bit; LE], 4-bytes [0, high bit; BE], 8-bytes [0, low bit; LE], 8-bytes [0, low bit; BE], 8-bytes [0, high bit; LE], 8-bytes [0, high bit; BE]",
            "case_list": [
              "4-bytes [3 low bits; LE]",
              "4-bytes [3 low bits; BE]",
              "4-bytes [3 high bits; LE]",
              "4-bytes [3 high bits; BE]",
              "4-bytes [3 high+low bits; LE]",
              "4-bytes [3 high+low bits; BE]",
              "4-bytes [0, low bit; LE]",
              "4-bytes [0, low bit; BE]",
              "4-bytes [0, high bit; LE]",
              "4-bytes [0, high bit; BE]",
              "8-bytes [0, low bit; LE]",
              "8-bytes [0, low bit; BE]",
              "8-bytes [0, high bit; LE]",
              "8-bytes [0, high bit; BE]"
            ],
            "case_count": 14
          },
          {
            "test": "Text",
            "cases": "dictionary, numbers without commas, numbers with commas, Words alnum 1-4, Words alnum 1-16, Words alnum 1-32",
            "case_list": [
              "dictionary",
              "numbers without commas",
              "numbers with commas",
              "Words alnum 1-4",
              "Words alnum 1-16",
              "Words alnum 1-32"
            ],
            "case_count": 6
          },
          {
            "test": "TwoBytes",
            "cases": "20, 32, 48, 1024, 2048, 4096",
            "case_list": [
              "20",
              "32",
              "48",
              "1024",
              "2048",
              "4096"
            ],
            "case_count": 6
          },
          {
            "test": "PerlinNoise",
            "cases": "2",
            "case_list": [
              "2"
            ],
            "case_count": 1
          },
          {
            "test": "Bitflip",
            "cases": "3, 4, 8",
            "case_list": [
              "3",
              "4",
              "8"
            ],
            "case_count": 3
          },
          {
            "test": "SeedZeroes",
            "cases": "1280, 8448",
            "case_list": [
              "1280",
              "8448"
            ],
            "case_count": 2
          },
          {
            "test": "SeedBlockLen",
            "cases": "8, 9, 10, 11, 12, 13, 14, 15, 16, 29, 30, 31",
            "case_list": [
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "29",
              "30",
              "31"
            ],
            "case_count": 12
          },
          {
            "test": "SeedBlockOffset",
            "cases": "0, 1, 2, 3, 4, 5",
            "case_list": [
              "0",
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "case_count": 6
          }
        ],
        "url": "records/",
        "provenance": "Our full default suite run of the direct-seeded C++ port, not the maintainer’s results directory; no --extra."
      },
      "pair": {
        "m_hex": "0000000000000000",
        "m_prime_hex": "ffffffffffffffff",
        "lengths_bytes": [
          8,
          8
        ],
        "L_words": 1,
        "verifier_confirmed": true,
        "provenance": [
          "records/README.html"
        ]
      },
      "pair_lengths_bytes": [
        8,
        8
      ],
      "L_words": 1,
      "collision": {
        "display": "696 / 2^36 (sampled); ε ≈ 2^-26.5571",
        "count": 696,
        "trials": 68719476736,
        "trials_log2": 36,
        "epsilon": 1.0128132998943329e-08,
        "log2_contribution": -26.557056504151273,
        "exact_contribution": false,
        "total_equality_proved": false,
        "poisson_95_interval": [
          9.389567569639209e-09,
          1.0909353696201829e-08
        ],
        "interval_method": "central 95% exact Poisson (Garwood), rounded only for display"
      },
      "score": {
        "calculated": 26.557056504151273,
        "display": 26.6,
        "display_text": "at most 26.5571 bits (cap; sampled); 95% Poisson [26.4499, 26.6663]",
        "direction": "estimated_upper_bound",
        "poisson_95_interval": [
          26.44985912461462,
          26.666294136948817
        ],
        "interval_95_bits": [
          26.44985912461462,
          26.666294136948817
        ],
        "poisson_count": 696,
        "poisson_trials": 68719476736,
        "derivation": "log2(1/epsilon)"
      },
      "bits": 26.557056504151273,
      "bits_kind": "measured",
      "mechanism": "At eight bytes the short path reads the same word into both xor-keyed operands. Complementing that word applies the paper’s complement-both-operands fold differential at L = 1. The deterministic final fold preserves every fast collision.",
      "qualification": "Same-type 8-byte byte-string witness; quality and equal-length Vec framing preserve accumulator collisions. Cross-type every-instance collisions are separate and do not change this score.",
      "key_free": false,
      "key_free_definition": "No every-seed pair found within a fixed byte-slice key type. Exploratory search covered unread bytes, length extension, lane/round symmetries, structured/random corpora and XOR differences; search/proof claims were not independently verified.",
      "rurban_alias": null,
      "chart_eligible": true,
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 14.42,
          "source": "SMHasher3 C++ port; M2Pro",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/foldhash/speeds_foldhash.json",
          "record": "records/foldhash/speeds_foldhash.json#/foldhash-quality/M2Pro",
          "registered_name": "foldhash-quality",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic 64-bit multiply-fold)",
          "selection": "best of two, independently per metric",
          "selected_run": 2,
          "spread_percent": 0.4878048780487809,
          "binary_sha256": "0647bdf516d15c0f8f54bc6ac65d2df87558d114a37370bcd93b7ae906b28bf9",
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0xE269316E",
              "result": "PASS"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "foldhash-quality",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/foldhash-port/build-m2/SMHasher3",
                  "foldhash-quality",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/foldhash-quality.sanity.txt",
                "binary_sha256": "0647bdf516d15c0f8f54bc6ac65d2df87558d114a37370bcd93b7ae906b28bf9",
                "started": "2026-09-18T13:52:33.685575+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T13:52:33.690916+00:00",
                  "uptime": "15:52  up 1 day,  3:43, 1 user, load averages: 2.83 3.99 4.29",
                  "load1": 2.83,
                  "load5": 3.99,
                  "load15": 4.29
                },
                "returncode": 0,
                "finished": "2026-09-18T13:52:34.170734+00:00",
                "elapsed_seconds": 0.479785833,
                "load_after": {
                  "timestamp": "2026-09-18T13:52:34.176782+00:00",
                  "uptime": "15:52  up 1 day,  3:44, 1 user, load averages: 2.83 3.99 4.29",
                  "load1": 2.83,
                  "load5": 3.99,
                  "load15": 4.29
                },
                "raw_sha256": "2dbd3d894f956f8a96a7e736371c824bbadbe8c8f307bea49f90998eca8e1a33",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xE269316E",
                  "result": "PASS"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Running sanity check 2       . flipped bit 8/16, got identical output: FAIL  !!!!!",
                  "SANITY_FAILS unset, but hash failed"
                ],
                "status": "FAIL"
              }
            ],
            "computed_values": {
              "LE": {
                "value": "0xE269316E",
                "result": "PASS"
              },
              "BE": {
                "value": "0xE43F6B30",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xE269316E",
              "BE": "0xE43F6B30"
            },
            "reference_values": {
              "Rust_v0.2.0": {
                "LE": {
                  "value": "0xE269316E",
                  "result": "PASS (independent Rust oracle)"
                }
              },
              "Xeon8375C": {
                "LE": {
                  "value": "0xE269316E",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xE43F6B30",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_m2_small_cycles": {
          "value": 18.92,
          "source": "SMHasher3 C++ port; M2Pro",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/foldhash/speeds_foldhash.json",
          "record": "records/foldhash/speeds_foldhash.json#/foldhash-quality/M2Pro",
          "registered_name": "foldhash-quality",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic 64-bit multiply-fold)",
          "selection": "best of two, independently per metric",
          "selected_run": 1,
          "spread_percent": 1.1627906976744207,
          "binary_sha256": "0647bdf516d15c0f8f54bc6ac65d2df87558d114a37370bcd93b7ae906b28bf9",
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0xE269316E",
              "result": "PASS"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "foldhash-quality",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/foldhash-port/build-m2/SMHasher3",
                  "foldhash-quality",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/foldhash-quality.sanity.txt",
                "binary_sha256": "0647bdf516d15c0f8f54bc6ac65d2df87558d114a37370bcd93b7ae906b28bf9",
                "started": "2026-09-18T13:52:33.685575+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T13:52:33.690916+00:00",
                  "uptime": "15:52  up 1 day,  3:43, 1 user, load averages: 2.83 3.99 4.29",
                  "load1": 2.83,
                  "load5": 3.99,
                  "load15": 4.29
                },
                "returncode": 0,
                "finished": "2026-09-18T13:52:34.170734+00:00",
                "elapsed_seconds": 0.479785833,
                "load_after": {
                  "timestamp": "2026-09-18T13:52:34.176782+00:00",
                  "uptime": "15:52  up 1 day,  3:44, 1 user, load averages: 2.83 3.99 4.29",
                  "load1": 2.83,
                  "load5": 3.99,
                  "load15": 4.29
                },
                "raw_sha256": "2dbd3d894f956f8a96a7e736371c824bbadbe8c8f307bea49f90998eca8e1a33",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xE269316E",
                  "result": "PASS"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Running sanity check 2       . flipped bit 8/16, got identical output: FAIL  !!!!!",
                  "SANITY_FAILS unset, but hash failed"
                ],
                "status": "FAIL"
              }
            ],
            "computed_values": {
              "LE": {
                "value": "0xE269316E",
                "result": "PASS"
              },
              "BE": {
                "value": "0xE43F6B30",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xE269316E",
              "BE": "0xE43F6B30"
            },
            "reference_values": {
              "Rust_v0.2.0": {
                "LE": {
                  "value": "0xE269316E",
                  "result": "PASS (independent Rust oracle)"
                }
              },
              "Xeon8375C": {
                "LE": {
                  "value": "0xE269316E",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xE43F6B30",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 9.07,
          "source": "SMHasher3 C++ port; Xeon8375C",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/foldhash/speeds_foldhash.json",
          "record": "records/foldhash/speeds_foldhash.json#/foldhash-quality/Xeon8375C",
          "registered_name": "foldhash-quality",
          "host": "Xeon8375C",
          "backend_token": null,
          "backend_note": "(blank token; generic 64-bit multiply-fold)",
          "selection": "best of two, independently per metric",
          "selected_run": 1,
          "spread_percent": 0.0,
          "binary_sha256": "679585c3968a1d2f40117a8b3d1b4da4fa43323a30b26c9588dcf172493a6405",
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0xE269316E",
              "result": "PASS"
            },
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "foldhash-quality",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "4",
                  "experiment/speedbench-foldhash/build-foldhash/SMHasher3",
                  "foldhash-quality",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/foldhash-quality.sanity.txt",
                "binary_sha256": "679585c3968a1d2f40117a8b3d1b4da4fa43323a30b26c9588dcf172493a6405",
                "started": "2026-09-18T14:50:05.618812+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T14:50:05.621061+00:00",
                  "uptime": "14:50:05 up 6 days, 23:34,  0 users,  load average: 21.41, 41.63, 47.29",
                  "load1": 21.41,
                  "load5": 41.63,
                  "load15": 47.29
                },
                "returncode": 0,
                "finished": "2026-09-18T14:50:06.076786+00:00",
                "elapsed_seconds": 0.455672140000388,
                "load_after": {
                  "timestamp": "2026-09-18T14:50:06.078897+00:00",
                  "uptime": "14:50:06 up 6 days, 23:34,  0 users,  load average: 21.41, 41.63, 47.29",
                  "load1": 21.41,
                  "load5": 41.63,
                  "load15": 47.29
                },
                "raw_sha256": "eedc9b60329d1b765c9cb05e6c0f473baeb14d20a523d422a23aecd691ed511e",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xE269316E",
                  "result": "PASS"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Running sanity check 2       . flipped bit 8/16, got identical output: FAIL  !!!!!",
                  "SANITY_FAILS unset, but hash failed"
                ],
                "status": "FAIL"
              }
            ],
            "computed_values": {
              "LE": {
                "value": "0xE269316E",
                "result": "PASS"
              },
              "BE": {
                "value": "0xE43F6B30",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xE269316E",
              "BE": "0xE43F6B30"
            },
            "reference_values": {
              "Rust_v0.2.0": {
                "LE": {
                  "value": "0xE269316E",
                  "result": "PASS (independent Rust oracle)"
                }
              },
              "M2Pro": {
                "LE": {
                  "value": "0xE269316E",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xE43F6B30",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 25.28,
          "source": "SMHasher3 C++ port; Xeon8375C",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/foldhash/speeds_foldhash.json",
          "record": "records/foldhash/speeds_foldhash.json#/foldhash-quality/Xeon8375C",
          "registered_name": "foldhash-quality",
          "host": "Xeon8375C",
          "backend_token": null,
          "backend_note": "(blank token; generic 64-bit multiply-fold)",
          "selection": "best of two, independently per metric",
          "selected_run": 1,
          "spread_percent": 0.0,
          "binary_sha256": "679585c3968a1d2f40117a8b3d1b4da4fa43323a30b26c9588dcf172493a6405",
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0xE269316E",
              "result": "PASS"
            },
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "foldhash-quality",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "4",
                  "experiment/speedbench-foldhash/build-foldhash/SMHasher3",
                  "foldhash-quality",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/foldhash-quality.sanity.txt",
                "binary_sha256": "679585c3968a1d2f40117a8b3d1b4da4fa43323a30b26c9588dcf172493a6405",
                "started": "2026-09-18T14:50:05.618812+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T14:50:05.621061+00:00",
                  "uptime": "14:50:05 up 6 days, 23:34,  0 users,  load average: 21.41, 41.63, 47.29",
                  "load1": 21.41,
                  "load5": 41.63,
                  "load15": 47.29
                },
                "returncode": 0,
                "finished": "2026-09-18T14:50:06.076786+00:00",
                "elapsed_seconds": 0.455672140000388,
                "load_after": {
                  "timestamp": "2026-09-18T14:50:06.078897+00:00",
                  "uptime": "14:50:06 up 6 days, 23:34,  0 users,  load average: 21.41, 41.63, 47.29",
                  "load1": 21.41,
                  "load5": 41.63,
                  "load15": 47.29
                },
                "raw_sha256": "eedc9b60329d1b765c9cb05e6c0f473baeb14d20a523d422a23aecd691ed511e",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0xE269316E",
                  "result": "PASS"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Running sanity check 2       . flipped bit 8/16, got identical output: FAIL  !!!!!",
                  "SANITY_FAILS unset, but hash failed"
                ],
                "status": "FAIL"
              }
            ],
            "computed_values": {
              "LE": {
                "value": "0xE269316E",
                "result": "PASS"
              },
              "BE": {
                "value": "0xE43F6B30",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0xE269316E",
              "BE": "0xE43F6B30"
            },
            "reference_values": {
              "Rust_v0.2.0": {
                "LE": {
                  "value": "0xE269316E",
                  "result": "PASS (independent Rust oracle)"
                }
              },
              "M2Pro": {
                "LE": {
                  "value": "0xE269316E",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xE43F6B30",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        }
      },
      "speed_registration": "foldhash-quality",
      "code_url": "https://github.com/orlp/foldhash/blob/v0.2.0/src/lib.rs#L240-L350",
      "verification_url": "verify/foldhash-quality/README.html"
    },
    {
      "id": "mum",
      "pattern": [
        "P2"
      ],
      "code_url": "https://github.com/vnmakarov/mum-hash/blob/595c091da6872da6a4f0a3852291c83aa37ea7eb/mum.h",
      "name": "MUM v3",
      "version": "v3 (mum.h default configuration; verified at 595c091, 2026-06-02)",
      "label": "MUM v3",
      "anchor": "appendix-mum",
      "family": "heuristic",
      "claim_id": "mum",
      "key_bits": 64,
      "output_bits": 64,
      "key_model": "Uniform 64-bit API seed (sampled reproducibly with xoshiro256**); fixed default public secret/constants",
      "status": "REPRODUCTION",
      "classification_reason": "Independent reproduction of the paper’s harness results.",
      "prior_work": [
        {
          "label": "Paper: MUM harness result",
          "url": "https://github.com/thomasahle/fast-polynomials"
        }
      ],
      "official_claim": {
        "text": "MUM hash passes **all** [SMHasher](https://github.com/aappleby/smhasher) tests",
        "url": "https://github.com/vnmakarov/mum-hash/blob/master/README.md",
        "context": "Exact multiplication, fixed public constants, default macro configuration of mum.h. The key-free 8-byte pair collides for every seed in both the 8-word and 16-word unroll variants and is unaffected by the November 28, 2025 collision-prevention change (commit 52c7d6c), which only guards the paired-word loop for inputs longer than 8×unroll bytes: re-checked against mum.h at 595c091 (2026-06-02) in the default, MUM_V3, MUM_V1 and MUM_V2 builds, 2^20 seeds each. Only the opt-in MUM_QUALITY build, whose remainder-word term is _mum(word + prime, prime), resists this pair; a short rho search on that term gives it its own every-seed 8-byte pair (4f14c5312ab68a6e / 9bff572f76b22816, seed 0 -> 35186508eed8194a). The plotted speed is mum3.exact.unroll3 (8 words), from the two-host benchmark.",
        "provenance": "records/README.html",
        "verbatim_record": "* MUM hash passes **all** [SMHasher](https://github.com/aappleby/smhasher) tests\n  * For comparison, only 4 out of 15 non-cryptographic hash functions\n    in SMHasher passes the tests, e.g. well known FNV, Murmur2,\n    Lookup, and Superfast hashes fail the tests |   * MUM and VMUM are also *resistant* to preimage attack (finding a\n    key with a given hash) \n    * To make hard moving to previous state values we use mostly 1-to-1 one way\n      function `lo(x*C) + hi(x*C)` where C is a constant.  Brute force\n      solution of equation `f(x) = a` probably requires `2^63` tries.\n      Another used function equation `x ^ y = a` has a `2^64`\n      solutions.  It complicates finding the overal solution further |   It is easy to generate data which makes the 1st operand of `_vmum`\n  to be zero.  In this case whatever the second operand is, the hash\n  will be generated the same.  So an adversary can generate a lot of\n  data with the same hash",
        "source_record": "README.md (commit 0b4387cf, 2026-06-02) raw lines 38-41, 198-204, and top banner lines 7-10 ('# **Update (Nov. 28, 2025): Implemented collision attack prevention in VMUM and MUM-V3**'), https://github.com/vnmakarov/mum-hash/blob/master/README.md. Note lines 42-50 also say 'It fails on Perlin noise and bad seeds tests' (second bullet there is a sub-bullet in the source)."
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 214,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/5035a923/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "Cyclic",
          "SeedZeroes",
          "SeedBlockLen",
          "SeedBlockOffset"
        ]
      },
      "pair": {
        "m_hex": "7954a998719b89b0",
        "m_prime_hex": "2d69169b259feb08",
        "lengths_bytes": [
          8,
          8
        ],
        "L_words": 1,
        "pair_id": "G",
        "verifier_confirmed": true,
        "example_seed_raw": "0x0000000000000000",
        "example_key_words_hex": [
          "0000000000000000"
        ],
        "example_output_hex": "b341726e9ea37186",
        "outputs": {
          "m": "0xb341726e9ea37186",
          "m2": "0xb341726e9ea37186"
        },
        "provenance": [
          "records/README.html"
        ]
      },
      "collision": {
        "display": "every key",
        "count": 1048576,
        "trials": 1048576,
        "trials_log2": 20,
        "log2_contribution": 0.0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "interpretation": "Public-term equality proves the all-seed collision"
      },
      "score": {
        "calculated": 0.0,
        "display": 0.0,
        "display_text": "0 bits",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(1) - (0.0)"
      },
      "bits": 0.0,
      "bits_kind": "exact",
      "mechanism": "The public _mum(w, p0) term collides on two distinct 8-byte words before it is XORed into the seeded state.",
      "notes": "Exact multiplication, fixed public constants, default macro configuration of mum.h. The key-free 8-byte pair collides for every seed in both the 8-word and 16-word unroll variants and is unaffected by the November 28, 2025 collision-prevention change (commit 52c7d6c), which only guards the paired-word loop for inputs longer than 8×unroll bytes: re-checked against mum.h at 595c091 (2026-06-02) in the default, MUM_V3, MUM_V1 and MUM_V2 builds, 2^20 seeds each. Only the opt-in MUM_QUALITY build, whose remainder-word term is _mum(word + prime, prime), resists this pair; a short rho search on that term gives it its own every-seed 8-byte pair (4f14c5312ab68a6e / 9bff572f76b22816, seed 0 -> 35186508eed8194a). The plotted speed is mum3.exact.unroll3 (8 words), from the two-host benchmark.",
      "qualification": "Exact multiplication, fixed public constants, default macro configuration of mum.h. The key-free 8-byte pair collides for every seed in both the 8-word and 16-word unroll variants and is unaffected by the November 28, 2025 collision-prevention change (commit 52c7d6c), which only guards the paired-word loop for inputs longer than 8×unroll bytes: re-checked against mum.h at 595c091 (2026-06-02) in the default, MUM_V3, MUM_V1 and MUM_V2 builds, 2^20 seeds each. Only the opt-in MUM_QUALITY build, whose remainder-word term is _mum(word + prime, prime), resists this pair; a short rho search on that term gives it its own every-seed 8-byte pair (4f14c5312ab68a6e / 9bff572f76b22816, seed 0 -> 35186508eed8194a). The plotted speed is mum3.exact.unroll3 (8 words), from the two-host benchmark.",
      "hover": {
        "mechanism": "The public _mum(w, p0) term collides on two distinct 8-byte words before it is XORed into the seeded state.",
        "claim_note": "REPRODUCTION; verbatim excerpt"
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 7.54,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mum3.exact.unroll3/M2Pro",
          "registered_name": "mum3.exact.unroll3",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 4.0000000000000036,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x8BD72B8C",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x8BD72B8C",
                "result": "PASS"
              },
              "BE": {
                "value": "0xDD8DD247",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x8BD72B8C",
              "BE": "0xDD8DD247"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "mum3.exact.unroll3",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "mum3.exact.unroll3",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/mum3.exact.unroll3.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:51.016722+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:51.021909+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:51.496056+00:00",
                "elapsed_seconds": 0.4740933750000025,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:51.501500+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "raw_sha256": "7b7ec459836209d7e0d565fde5499c7ebe8196d1144495993e91769e916c8523",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x8BD72B8C",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x8BD72B8C",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xDD8DD247",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x8BD72B8C",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xDD8DD247",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 6.57,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mum3.exact.unroll3/Xeon8375C",
          "registered_name": "mum3.exact.unroll3",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 23.42,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mum3.exact.unroll3/M2Pro",
          "registered_name": "mum3.exact.unroll3",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.0922288642186038,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x8BD72B8C",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x8BD72B8C",
                "result": "PASS"
              },
              "BE": {
                "value": "0xDD8DD247",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x8BD72B8C",
              "BE": "0xDD8DD247"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "mum3.exact.unroll3",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "mum3.exact.unroll3",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/mum3.exact.unroll3.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:51.016722+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:51.021909+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:51.496056+00:00",
                "elapsed_seconds": 0.4740933750000025,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:51.501500+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "raw_sha256": "7b7ec459836209d7e0d565fde5499c7ebe8196d1144495993e91769e916c8523",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x8BD72B8C",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x8BD72B8C",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xDD8DD247",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x8BD72B8C",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xDD8DD247",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 23.92,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mum3.exact.unroll3/Xeon8375C",
          "registered_name": "mum3.exact.unroll3",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.2090301003344397,
          "verification": {}
        }
      },
      "reproduction": {
        "status": "standalone program supplied",
        "directory": "verify/mum/README.html",
        "source": "verify/mum/mum_verify.c",
        "command": "cc -O2 -std=c11 -o mum_verify mum_verify.c -lm && ./mum_verify 20",
        "trials": 1048576,
        "rng": "splitmix64-seeded xoshiro256**, one stream, default seed 1",
        "note": "Small package checks are separate from the historical large measurements."
      },
      "supporting_measurements": [
        {
          "hash": "MUM",
          "version": "3",
          "variant": "unroll 16",
          "id": "mum16",
          "seed_model": "Uniform 64-bit API seed (sampled reproducibly with xoshiro256**); fixed default public secret/constants",
          "length_bytes": 8,
          "L_words": 1,
          "m_hex": "7954a998719b89b0",
          "m2_hex": "2d69169b259feb08",
          "differential": "w0: 0xb0899b7198a95479 -> 0x08eb9f259b16692d; equal _mum(w0, p0)",
          "trials_log2": 20,
          "count": 1048576,
          "rate_log2": 0.0,
          "bits": 0.0,
          "example_seed": "0x0000000000000000",
          "outputs": {
            "m": "0xb341726e9ea37186",
            "m2": "0xb341726e9ea37186"
          },
          "notes": [
            "Explicit pair G; byte-order hex, 64-bit words little-endian.",
            "Deterministic Monte Carlo sampling of the API's full 64-bit seed space, default public constants; no secret-word randomization.",
            "_mum(w,p0) = 0x23c79412f8129524 for both words; p0=0x9ebdcae10d981691. This proves collision for every seed on this 8-byte path."
          ],
          "reproduce_cmd": "make -j2 collision_driver && ./collision_driver run mum16 20 2 20260917",
          "trials": 1048576,
          "threads": 2,
          "stream_salt": 20260917,
          "base_salt": null,
          "pair_id": "G",
          "fixed_seed_outputs": [
            {
              "seed": "0x0000000000000000",
              "m": "0xb341726e9ea37186",
              "m2": "0xb341726e9ea37186"
            },
            {
              "seed": "0x0000000000000001",
              "m": "0x762177b0d95e882a",
              "m2": "0x762177b0d95e882a"
            }
          ],
          "collisions": [
            {
              "trial_index": 0,
              "seed": "0x03a2c105bb85eae8",
              "m": "0x77dc40a902c422db",
              "m2": "0x77dc40a902c422db"
            },
            {
              "trial_index": 524288,
              "seed": "0xded00fc5511f06a7",
              "m": "0xb31c94b7b906c021",
              "m2": "0xb31c94b7b906c021"
            }
          ],
          "elapsed_seconds": 0.00147217
        }
      ],
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "speed_registration": "mum3.exact.unroll3",
      "chart_eligible": true,
      "speed_note": "SMHasher3 speeds are mum3.exact.unroll3 (8 words); the pair also covers unroll4 (16 words).",
      "key_free": true,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": "MUM/mir",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: solve the public fold to a fixed value for ~2^64 colliding 16-byte inputs, every seed (verified 2^16, 4096/4096 seeds)."
      }
    },
    {
      "id": "mir",
      "pattern": [
        "P2"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/mum_mir.cpp",
      "name": "mir.exact / mir.inexact",
      "version": "arithmetic since 2019-04-09 (mir-hash.h last edited 2024-05-15; newest release v1.0.0 2024-05-27; master a8ab7c31 2026-06-19 rechecked)",
      "label": "mir.exact / mir.inexact",
      "anchor": "appendix-mir",
      "family": "heuristic",
      "claim_id": "mir",
      "key_bits": 64,
      "output_bits": 64,
      "key_model": "64 (`uint64_t seed`, entering only as `uint64_t r = seed + len;`, mir-hash.h line 67); every message word enters only through the public fold mum(v, p_i) XORed into the state (p1 = 0x65862b62bdf5ef4d, p2 = 0x288eea216831e6a7). SMHasher3: 64 (mir.inexact carries seedfixfn excludeBadseeds for len+seed == 0, a harness fixup only).",
      "status": "EXTENSION",
      "classification_reason": "Extension of the paper’s MUM public-term result to the MUM-derived mir_hash.",
      "prior_work": [
        {
          "label": "Paper: MUM public-term result",
          "url": "https://github.com/thomasahle/fast-polynomials"
        }
      ],
      "official_claim": {
        "text": "Simple high-quality multiplicative hash passing demerphq-smhasher,\n   faster than spooky, city, or xxhash for strings less 100 bytes.\n   Hash for the same key can be different on different architectures.\n   To get machine-independent hash, use mir_hash_strict which is about\n   1.5 times slower than mir_hash.",
        "verbatim_record": "Simple high-quality multiplicative hash passing demerphq-smhasher,\n   faster than spooky, city, or xxhash for strings less 100 bytes.\n   Hash for the same key can be different on different architectures.\n   To get machine-independent hash, use mir_hash_strict which is about\n   1.5 times slower than mir_hash. | File `mir-hash.h` is a general, simple,\n   high quality hash function used by hashtables",
        "url": "https://github.com/vnmakarov/mir/blob/master/mir-hash.h",
        "context": "mir has no algorithm version number; its arithmetic is unchanged since April 2019. SMHasher3 mir.exact (0x00A393C8) and mir.inexact (0x422A66FC) are output-equivalent to upstream mir_hash and mir_hash_strict on little-endian hosts. The strict fold drops one cross-product carry; it does not drop every carry. The 64-bit seed is passed verbatim, including seed+len = 0; SMHasher3’s inexact seed-fixup is a harness option, not the API model here. The chart uses only mir.exact timings from the two-host benchmark.",
        "source_record": "mir-hash.h lines 6-10 (file header comment), https://github.com/vnmakarov/mir/blob/master/mir-hash.h; README.md section 'Structure of the project code', lines 310-311, https://github.com/vnmakarov/mir/blob/master/README.md. No security, DoS, hash-flooding or cryptographic claim or disclaimer for mir_hash anywhere (the words crypt/secur/attack/collision/flood do not occur in mir-hash.h or the mir README). The parent MUM's README says 'MUM hash is a **fast non-cryptographic hash function**' (line 25), '[V]MUM is not designed to be a crypto-hash' (lines 237-238) and, at lines 1-2, '# **Update (Nov. 28, 2025): Implemented collision attack prevention in VMUM and MUM-V3**' (Issue #18), which did not touch mir_hash.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 232,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "failed_tests": [
          "Cyclic",
          "SeedZeroes",
          "SeedBlockOffset"
        ],
        "provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "0000000000000000",
        "m_prime_hex": "0b152b092b2ac03c",
        "lengths_bytes": [
          8,
          8
        ],
        "L_words": 1,
        "verifier_confirmed": true,
        "example_seed_raw": "0x910a2dec89025cc1",
        "example_key_words_hex": [
          "910a2dec89025cc1"
        ],
        "example_output_hex": "5e900c9f273619d2",
        "outputs": {
          "m": "5e900c9f273619d2",
          "m_prime": "5e900c9f273619d2"
        },
        "recorded_examples": "0x910a2dec89025cc1 -> both 5e900c9f273619d2 (exact and inexact); seed 0 -> both 1e30aaaa9235e65a (exact) / both 1e30aaaa9235e65b (inexact); seed 1 -> both 38d782429014d4bf (both variants); seed 0xfffffffffffffff8 (seed+len = 0) -> both 0 (all reproduced bit-for-bit by the verifier). 16-byte pair: 0x22118258a9d111a0 -> both 4d337930c595fdd0 (exact) / both 66c4631e3e47d736 (inexact); seed 0 -> both fd26864d6d50b5b1 (exact).",
        "provenance": [
          "records/README.html"
        ]
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0.0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "count": 1073741824,
        "trials": 1073741824,
        "interpretation": "Rechecked 2026-09-18 directly against upstream mir-hash.h at master a8ab7c31 (mir_hash and mir_hash_strict): recorded outputs reproduced bit-for-bit, both pairs collide on every sampled seed (2^30 per pair, RESULT: PASS), outputs identical to the re-implementation."
      },
      "score": {
        "calculated": 0.0,
        "display": 0.0,
        "display_text": "0 bits",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(1) - (0.0)"
      },
      "bits": 0.0,
      "bits_kind": "exact",
      "mechanism": "Message words enter only through the public fold mum(v,p) = hi+lo of v*p = (v*p mod (2^64-1)) minus a carry, XORed into the seeded state; m' = p1^-1 mod (2^64-1) gives mum(m',p1) = 0 = mum(0,p1) in both the exact and the 32x32 'strict' fold, so the 8-byte messages 0 and m' reach the same state for every seed.",
      "notes": "mir has no algorithm version number; its arithmetic is unchanged since April 2019. SMHasher3 mir.exact (0x00A393C8) and mir.inexact (0x422A66FC) are output-equivalent to upstream mir_hash and mir_hash_strict on little-endian hosts. The strict fold drops one cross-product carry; it does not drop every carry. The 64-bit seed is passed verbatim, including seed+len = 0; SMHasher3’s inexact seed-fixup is a harness option, not the API model here. The chart uses only mir.exact timings from the two-host benchmark.",
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. mir has no algorithm version number; its arithmetic is unchanged since April 2019. SMHasher3 mir.exact (0x00A393C8) and mir.inexact (0x422A66FC) are output-equivalent to upstream mir_hash and mir_hash_strict on little-endian hosts. The strict fold drops one cross-product carry; it does not drop every carry. The 64-bit seed is passed verbatim, including seed+len = 0; SMHasher3’s inexact seed-fixup is a harness option, not the API model here. The chart uses only mir.exact timings from the two-host benchmark.",
      "version_record": "mir_hash from vnmakarov/mir mir-hash.h (no version number; arithmetic unchanged since commit 334c14e78b 2019-04-09 'Speedup mir hash.  Impelement strict hash.', after 6ad0fc6784 2019-04-08 'Rename mir-mum.h to mir-hash.h.  Rename mum to mir.  Use simpler hash function.'; later commits change platform detection (baab39e9f1 2019-11-01, 71364bf3d1 2020-09-29), constant names (86d5234268 2023-05-02) and copyright, last bd0e9d7a72 2024-05-15, header 'Copyright (C) 2018-2024 Vladimir Makarov' from 'cosmetic only'). MIR releases v0.1.0 2021-08-12 ... v1.0.0 2024-05-27 (latest); repo HEAD a8ab7c31cd 2026-06-19. SMHasher3 hashes/mum_mir.cpp (imported 2022-01-18, 7087ce7a; family SRC_FROZEN, src_url mum-hash): 'mir.exact' = relaxed mir_hash (__int128 hi+lo fold, verification 0x00A393C8) and 'mir.inexact' = mir_hash_strict (32x32 partial products with one dropped carry from 'no carries', 0x422A66FC); output-equivalent to mir-hash.h on little-endian hosts, not line-for-line. rurban 'mirhash' (MIR_VERIF conditional: 0x00A393C8 under __GNUC__ && UINT_MAX != ULONG_MAX, else 0x422A66FC) and 'mirhashstrict'. One pair breaks both variants.",
      "hover": {
        "mechanism": "Message words enter only through the public fold mum(v,p) = hi+lo of v*p = (v*p mod (2^64-1)) minus a carry, XORed into the seeded state; m' = p1^-1 mod (2^64-1) gives mum(m',p1) = 0 = mum(0,p1) in both the exact and the 32x32 'strict' fold, so the 8-byte messages 0 and m' reach the same state for every seed.",
        "claim_note": "EXTENSION; verbatim excerpt; mir has no algorithm version number; its arithmetic is unchanged since April 2019. SMHasher3 mir.exact (0x00A393C8) and mir.inexact (0x422A66FC) are output-equivalent to upstream mir_hash and mir_hash_strict on little-endian hosts. The strict fold drops one cross-product carry; it does not drop every carry. The 64-bit seed is passed verbatim, including seed+len = 0; SMHasher3’s inexact seed-fixup is a harness option, not the API model here. The chart uses only mir.exact timings from the two-host benchmark."
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 1.86,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mir.exact/M2Pro",
          "registered_name": "mir.exact",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.0869565217391353,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x00A393C8",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x00A393C8",
                "result": "PASS"
              },
              "BE": {
                "value": "0x39F99A44",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x00A393C8",
              "BE": "0x39F99A44"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "mir.exact",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "mir.exact",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/mir.exact.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:49.453938+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:49.458195+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:49.984937+00:00",
                "elapsed_seconds": 0.5267057080000015,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:49.990178+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "raw_sha256": "0bfb30103b16b29e290ebef96f1687bf4158bdacc97d1864fb31e7129dd70af1",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x00A393C8",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x00A393C8",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x39F99A44",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x00A393C8",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x39F99A44",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 2.59,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mir.exact/Xeon8375C",
          "registered_name": "mir.exact",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 34.63,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mir.exact/M2Pro",
          "registered_name": "mir.exact",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.7219174126479988,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x00A393C8",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x00A393C8",
                "result": "PASS"
              },
              "BE": {
                "value": "0x39F99A44",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x00A393C8",
              "BE": "0x39F99A44"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "mir.exact",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "mir.exact",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/mir.exact.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:49.453938+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:49.458195+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:49.984937+00:00",
                "elapsed_seconds": 0.5267057080000015,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:49.990178+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "raw_sha256": "0bfb30103b16b29e290ebef96f1687bf4158bdacc97d1864fb31e7129dd70af1",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x00A393C8",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x00A393C8",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x39F99A44",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x00A393C8",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x39F99A44",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 32.18,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/mir.exact/Xeon8375C",
          "registered_name": "mir.exact",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.21752641392169814,
          "verification": {}
        }
      },
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "supporting_variants": [
        {
          "name": "mir.inexact",
          "passed": 233,
          "total": 250,
          "same_pair_every_seed": true
        }
      ],
      "reproduction": {
        "status": "standalone program supplied",
        "directory": "verify/mir/README.html",
        "source": "verify/mir/mir_verify.c",
        "command": "cc -O2 -std=c11 -o mir_verify mir_verify.c -lm && ./mir_verify 20",
        "trials": 1048576,
        "rng": "splitmix64-seeded xoshiro256**, one stream, default seed 1",
        "note": "Small package checks are separate from the historical large measurements."
      },
      "speed_registration": "mir.exact",
      "chart_eligible": true,
      "speed_note": "SMHasher3 speeds are mir.exact only; no mir.inexact timing is assigned.",
      "key_free": true,
      "mechanism_family": "keyed multiply-fold",
      "rurban_alias": "MUM/mir",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "64×64→128 products of seeded words, folded (mum).",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: solve the public fold for ~2^64 colliding 16-byte inputs, every seed (verified 2^16, 4096/4096 seeds)."
      }
    },
    {
      "id": "xxh3-64",
      "pattern": [
        "P1"
      ],
      "code_url": "https://github.com/Cyan4973/xxHash/blob/v0.8.3/xxhash.h",
      "name": "XXH3-64 0.8.3",
      "version": "0.8.3",
      "label": "XXH3-64 0.8.3",
      "anchor": "appendix-xxh3-64",
      "family": "heuristic",
      "claim_id": "xxh3",
      "key_bits": 1536,
      "output_bits": 64,
      "key_model": "Uniform 192-byte secret via XXH3_64bits_withSecret (1536 key bits; API minimum 136 B = 1088). XXH3_64bits_withSeed and XXH3_64bits_withSecretandSeed (len <= 240, one-shot and streaming) use the default public secret and stay in the 64-bit-seed model",
      "status": "NEW",
      "classification_reason": "Scored pair W0 (24 B, word 0 complemented) under the random-secret model is the paper's fold differential (M,0), verified against upstream v0.8.3 through XXH3_64bits_withSecret. Status NEW is retained for the row's default-secret construction: the 32-byte NAF block-1 pair (2^-10.47 through withSeed, withSecretandSeed and streaming at <= 240 B), reported in the notes as the default-secret caveat; the base-1143 reproduction remains as a control.",
      "prior_work": [
        {
          "label": "Paper: harness results and fold differential",
          "url": "https://github.com/thomasahle/fast-polynomials"
        }
      ],
      "official_claim": {
        "text": "xxHash is primarily designed for speed. It is labeled non-cryptographic, and is not meant to avoid intentional collisions (same digest for 2 different messages), or to prevent producing a message with a predefined digest.",
        "url": "https://github.com/Cyan4973/xxHash/blob/v0.8.3/doc/xxhash_spec.md",
        "context": "32-byte NAF block-1 pair: 755087, 754660 and 754334 hits per 2^30 fresh keys (2^-10.47); the base-1143 zero-tail pair (2^-21.0) and historical pair A are separate.",
        "provenance": "records/README.html",
        "verbatim_record": "(v0.8.3 comment; replaced on dev 2026-09-17 by PR #1146, refined 2026-09-18 by PR #1150) xxHash is primarily designed for speed. It is labeled non-cryptographic, and is not meant to avoid intentional collisions (same digest for 2 different messages), or to prevent producing a message with a predefined digest. | It's possible to provide any blob of bytes as a \"secret\" to generate the hash. This makes it more difficult for an external actor to prepare an intentional collision. | DISCLAIMER: There are known *seed-dependent* multicollisions here due to multiplication by zero, affecting hashes of lengths 17 to 240. However, they are very unlikely. Keep this in mind when using the unseeded XXH3_64bits() variant: As with all unseeded non-cryptographic hashes, it does not attempt to defend itself against specially crafted inputs, only random inputs. | Finally, xxHash provides its own [massive collision tester](https://github.com/Cyan4973/xxHash/tree/dev/tests/collisions), able to generate and compare billions of hashes to test the limits of 64-bit hash algorithms. On this front too, xxHash features good results, in line with the [birthday paradox].",
        "source_record": "(v0.8.3 comment; replaced on dev 2026-09-17 by PR #1146, refined 2026-09-18 by PR #1150) doc/xxhash_spec.md (v0.8.3) line 40; xxhash.h (v0.8.3) lines 1208-1209 and 4707-4714 (comment prefix stripped; SMHasher3's copy at hashes/xxhash.cpp L591-598 is reflowed and reads 'multiplication by 0'); README.md (v0.8.3) lines 85-88. https://github.com/Cyan4973/xxHash/blob/v0.8.3/",
        "current_comment_url": "https://github.com/Cyan4973/xxHash/blob/6cc7b4b56f5190f288a58642fd24ba62ec56bb3d/xxhash.h",
        "current_comment_excerpt": "The _withSeed variant is also affected, but its collision probability depends on the chosen pair because the 64-bit seed produces a structured secret. A fixed pair has been measured to collide with probability ~2^-21 over random seeds. This is an observed result, not a known upper bound.",
        "current_header_note": "https://github.com/Cyan4973/xxHash/blob/6cc7b4b56f5190f288a58642fd24ba62ec56bb3d/xxhash.h#L4752-L4804; the 128-bit variant is not immune; the core is functionally identical to v0.8.3."
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 223,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/5035a923/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "BIC",
          "Sparse",
          "PerlinNoise",
          "Bitflip",
          "SeedZeroes",
          "SeedSparse",
          "SeedBlockLen",
          "SeedBlockOffset",
          "SeedBIC"
        ]
      },
      "pair": {
        "m_hex": "000000000000000000000000000000000000000000000000",
        "m_prime_hex": "ffffffffffffffff00000000000000000000000000000000",
        "lengths_bytes": [
          24,
          24
        ],
        "L_words": 3,
        "pair_id": "W0 (24 B, word 0 complemented)",
        "verifier_confirmed": true,
        "example_seed_raw": "withSecret has no seed (seed 0)",
        "example_key_words_hex": [
          "c9eb2c4bbc54b9cd6ddfbb86d6dfffae5f96e2b9ba49bafeda316c65e62f6d099798b895b8cfaa0a65497109bd7bb4a11b6e08792a6222604c44afeb83ab8d9fbc49fa6bd7eeb2a8886a0cbf50060b759a7d3f801597002d68fc5fab9f4144e6aaf3c9a2ddac70e35114db1307ef0d0ce23e5a947218d6217f45612f0987f9f59e68c918342362f7e9984e9f4cd86e51ece391ffcb3ac35fa080b04dbb776cfb6f539ca0049bd1d89db1a130daf6a5121292121c90af684d0a9dad3752ee254a"
        ],
        "example_output_hex": "24453ecc9793506c",
        "outputs": {
          "m": "0x24453ecc9793506c",
          "m2": "0x24453ecc9793506c"
        },
        "construction": "bytes 0..7 complemented; at 24 B those bytes feed only block 0, so the pair collides iff fold(x,y) = fold(~x,y) for the two uniform keyed words (XOR differential (M,0)); bytes 8..23 zero",
        "provenance": [
          "records/witness-searches/random-secret/xxh3-64/verify/README.md",
          "verify/xxh3-64/README.html"
        ],
        "default_secret_caveat_pair": {
          "m_hex": "0000000000000000000000000000000051151210404400000000008204000105",
          "m_prime_hex": "00000000000000000000000000000000aeeaedefbfbbffffffffff7dfbfffefa",
          "lengths_bytes": [
            32,
            32
          ],
          "L_words": 4,
          "pair_id": "NAF block-1 complement (P,N of D = K2+K3+1)",
          "apis": "XXH3_64bits_withSeed; XXH3_64bits_withSecretandSeed (len <= 240); streaming reset_withSecretandSeed (default kSecret at these lengths)",
          "example_seed_raw": "2468b3bc26a44073 (= P - K2); seed 0 does NOT collide",
          "example_output_hex": "dd686b61e2f6dc69",
          "rate": "2,264,081 / 3x2^30 = 2^-10.4745 (withSeed); 188643/2^28 (withSecretandSeed); 11864/2^24 (streaming)",
          "bits": 12.47,
          "interval_95_bits": [
            12.473,
            12.476
          ],
          "under_random_secret": "ordinary (M,M) block complement: 764/2^36.17 = 2^-26.59, 28.6 bits [28.5, 28.7]",
          "provenance": [
            "verify/xxh3-64/README.html",
            "records/witness-searches/random-secret/xxh3-64/verify/README.md"
          ]
        }
      },
      "collision": {
        "display": "about 527 of every 2^36 keys (sampled; 527 events, pooled)",
        "count": 527,
        "trials": 68719476736,
        "trials_log2": 36,
        "log2_contribution": -26.958,
        "exact_contribution": false,
        "total_equality_proved": false,
        "interpretation": "Measured full-output collision rate with seed and secret uniform per key",
        "runs": "verifier xxh3_verify.c, upstream xxhash.h v0.8.3 (sha256 17973c0d...): XXH3_64bits_withSecret 260/2^35 (salt 9102), XXH3_64bits_internal seed+secret 267/2^35; Xeon 8375C 2026-09-19. Same-model NAF pair: 349/2^35 + 332/2^35 + 83/2^33 = 2^-26.59"
      },
      "score": {
        "calculated": 28.543,
        "display": 28.5,
        "display_text": "at most 28.5 bits (cap; sampled); 95% Poisson interval [28.4, 28.7]",
        "direction": "estimated_upper_bound",
        "rounding": "nearest tenth; sampling uncertainty",
        "derivation": "log2(3) - log2(527/2^36)",
        "poisson_95_interval": [
          28.4,
          28.7
        ],
        "poisson_count": 527,
        "poisson_trials": 68719476736,
        "interval_scope": "Two-sided exact Poisson interval transformed to log2(L/p); uncertainty in this witness-derived quantity, not an interval for the unknown family score.",
        "interval_95_bits": [
          28.4,
          28.7
        ],
        "interval_method": "central 95% exact Poisson (Garwood) on the pooled count; displayed endpoints rounded"
      },
      "bits": 28.543,
      "bits_kind": "measured",
      "mechanism": "Complementing one keyed word of a 16-byte block collides when fold(x,y) = fold(~x,y) for the block's two uniform multiplicands (the (M,0) differential of lo ^ hi of a 64x64 product, ~2^-26.9); the final avalanche is bijective.",
      "notes": "Uniform 192-byte secret through XXH3_64bits_withSecret (the seed-and-secret model via XXH3_64bits_internal gives the same rate: 267 vs 260 per 2^35). Under this model every 16-byte block is fold(x,y) with x, y independent uniform words, so only XOR differentials of the fold matter: the 24-byte word-0 complement (M,0) is the shortest pair whose changed word sits in exactly one block (L = 3), and the 32-byte NAF pair becomes an ordinary block complement (M,M): 764/2^36.17 = 2^-26.59, 28.6 bits [28.5, 28.7]. Lengths 1..16 are injective per length under a uniform secret; the > 240 B stripe swap is ~2^-32.6 at L >= 31 (cap ~37.5). DEFAULT-SECRET CAVEAT: with XXH3_64bits_withSeed (default kSecret, uniform 64-bit seed), with XXH3_64bits_withSecretandSeed for len <= 240 (the custom secret is ignored, xxhash.h v0.8.3 lines 6230-6235) and with the streaming reset_withSecretandSeed, the 32-byte NAF pair M = 0^16 || 51151210404400000000008204000105, M' = 0^16 || aeeaedefbfbbffffffffff7dfbfffefa collides at 2^-10.47 (2,264,081 / 3x2^30; 2945/2^22 and 188643/2^28 through withSecretandSeed), cap 12.47 bits [12.473, 12.476]; its bytes 16..31 are the NAF digit sums of D = K2+K3+1 for the default-secret words K2, K3, and it does not transfer to an independently random secret (0/2^32 in the XXH3-128 control; 2^-26.6 class here). Reported upstream as issue #1127 (default secret); PR #1146/#1150 document the complement-pair rate. Upstream dev at 6cc7b4b (unreleased 0.8.4) is byte-identical to 0.8.3 in the XXH3 core.",
      "qualification": "Measured score cap with sampling uncertainty; better pairs may exist. Uniform 192-byte secret via XXH3_64bits_withSecret; callers of withSeed or withSecretandSeed (len <= 240) are in the default-secret model, where the NAF pair gives 12.47 bits. Exact Poisson 95% interval for this witness-derived score: [28.4, 28.7] (527 events in 2^36 keys). No practical flooding attack is established by this fixed-pair rate.",
      "hover": {
        "mechanism": "Complementing one keyed word of a block collides when fold(x,y) = fold(~x,y); the avalanche is bijective."
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 13.16,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/XXH3-64/M2Pro",
          "registered_name": "XXH3-64",
          "host": "M2Pro",
          "backend_token": "neon",
          "backend_note": "neon",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 13.057324840764316,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x1AAEE62C",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x1AAEE62C",
                "result": "PASS"
              },
              "NE": {
                "value": "0xF8DBB4DD",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x1AAEE62C",
              "NE": "0xF8DBB4DD"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "XXH3-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "XXH3-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/XXH3-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:22.228720+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:22.233352+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:22.705772+00:00",
                "elapsed_seconds": 0.47237962499999986,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:22.711140+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "3c084a805149555fd895d6371e7dca3310edfb8ed53e4c0cac1db274ec9f0083",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x1AAEE62C",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x1AAEE62C",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xF8DBB4DD",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x1AAEE62C",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xF8DBB4DD",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 19.69,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/XXH3-64/Xeon8375C",
          "registered_name": "XXH3-64",
          "host": "Xeon8375C",
          "backend_token": "avx512",
          "backend_note": "avx512",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.8623900672529947,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 24.51,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/XXH3-64/M2Pro",
          "registered_name": "XXH3-64",
          "host": "M2Pro",
          "backend_token": "neon",
          "backend_note": "neon",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 10.341805433829965,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x1AAEE62C",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x1AAEE62C",
                "result": "PASS"
              },
              "NE": {
                "value": "0xF8DBB4DD",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x1AAEE62C",
              "NE": "0xF8DBB4DD"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "XXH3-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "XXH3-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/XXH3-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:22.228720+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:22.233352+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:22.705772+00:00",
                "elapsed_seconds": 0.47237962499999986,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:22.711140+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "3c084a805149555fd895d6371e7dca3310edfb8ed53e4c0cac1db274ec9f0083",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x1AAEE62C",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x1AAEE62C",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xF8DBB4DD",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x1AAEE62C",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xF8DBB4DD",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 30.16,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/XXH3-64/Xeon8375C",
          "registered_name": "XXH3-64",
          "host": "Xeon8375C",
          "backend_token": "avx512",
          "backend_note": "avx512",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.03315649867374759,
          "verification": {}
        }
      },
      "reproduction": {
        "status": "standalone program supplied; startup witness and deterministic smoke check recorded",
        "directory": "verify/xxh3-64/README.html",
        "source": "verify/xxh3-64/xxh3_64_pair_check.c",
        "command": "cc -O3 -std=c11 xxh3_64_pair_check.c -lm -o check && ./check random-secret 20",
        "trials": 1048576,
        "expected_smoke": "725 hits / 2^20",
        "rng": "one xoshiro256** stream from SplitMix64(salt); seed word then 24 secret words per trial; default salt deterministic",
        "note": "random-secret mode added 2026-09-19: the 24-byte W0 pair under XXH3_64bits_withSecret with a fresh 192-byte uniform secret per trial (row check, recorded witness asserted at startup), the NAF pair under XXH3_64bits_withSeed (default-secret control) and under XXH3_64bits_withSecretandSeed with the same seed and a fresh secret, asserting output equality trial by trial (the custom secret is ignored at 32 B). The default mode keeps the NAF/withSeed check (725 hits / 2^20 smoke)."
      },
      "supporting_measurements": {
        "source": "verify/xxh3-64/HISTORICAL.html",
        "historical_pair_128B": {
          "m_hex": "8912a3da9fc464368202a1be238b7d11a56186f8dc03bd1f78bfbd2ba3386ced7093d3639fc8f076abe3f9a757e5c84290720e6340b2e7820a16a5633b9b0344773006232e3abc7d4727eafba248b46cf2a6516698382bd2fa890528924cd1b618df4aa87d1af4bcec13f92bf8a1163e657fb0885deddf709a0252fbe3ae169d",
          "m_prime_hex": "76ed5c25603b9bc97dfd5e41dc7482eea56186f8dc03bd1f78bfbd2ba3386ced7093d3639fc8f076abe3f9a757e5c84290720e6340b2e7820a16a5633b9b0344773006232e3abc7d4727eafba248b46cf2a6516698382bd2fa890528924cd1b618df4aa87d1af4bcec13f92bf8a1163e657fb0885deddf709a0252fbe3ae169d",
          "lengths_bytes": [
            128,
            128
          ],
          "L_words": 16,
          "pair_id": "base-1143",
          "verifier_confirmed": true,
          "example_seed_raw": "0xc8eae1baae13330b",
          "example_key_words_hex": [
            "c8eae1baae13330b"
          ],
          "example_output_hex": "448e3716c8effb94",
          "outputs": {
            "m": "0x448e3716c8effb94",
            "m2": "0x448e3716c8effb94"
          },
          "provenance": [
            "records/README.html: base 1143, confirm1/confirm2",
            "verify/xxh3-64/README.html"
          ]
        },
        "fresh_counts": [
          483,
          535
        ],
        "fresh_trials_each": 1073741824,
        "zero_16B_hits": 0,
        "zero_16B_trials": 4294967296
      },
      "provenance": [
        "verify/xxh3-64/README.html",
        "records/witness-searches/random-secret/xxh3-64/verify/README.md",
        "records/witness-searches/random-secret/xxh3-64/verify/logs/w0_secret_2p35.txt",
        "verify/xxh3-64/HISTORICAL.html",
        "records/README.html"
      ],
      "speed_registration": "XXH3-64",
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "NH-like accumulators",
      "rurban_alias": "xxh3low",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "api": "XXH3_64bits_withSecret, 192-byte uniform secret (1536 bits). XXH3_64bits_withSeed, XXH3_64bits_withSecretandSeed (len <= 240) and streaming reset_withSecretandSeed use the default public secret",
      "prior_report_url": "https://github.com/Cyan4973/xxHash/issues/1127",
      "maintainer_reply": {
        "date": "2026-09-17",
        "url": "https://github.com/Cyan4973/xxHash/issues/1127#issuecomment-5720905442",
        "summary": "Yann Collet thanked the reporter for the report and reproduction, described an approximately one-in-100-million carefully crafted-pair rate over 32–240 bytes, stated that collision resistance is outside noncryptographic XXH3’s guarantees, and said the XXH3_mix16B comment would be updated. PR #1146 (2026-09-17, commit 4c19ec2) replaced the XXH3_mix16B DISCLAIMER, documenting the complement-pair rate and recommending a cryptographic hash or MAC for adversarial collision resistance. PR #1150 (2026-09-18, commit 6cc7b4b) added the measured ~2^-21 fixed-pair rate over random seeds and the v0.8.4 changelog credit for #1127. Issue #1127 is closed.",
        "followup_date": "2026-09-18",
        "followup_url": "https://github.com/Cyan4973/xxHash/issues/1127#issuecomment-5735250557",
        "followup_summary": "PR #1146 (2026-09-17, commit 4c19ec2) replaced the XXH3_mix16B DISCLAIMER, documenting the complement-pair rate and recommending a cryptographic hash or MAC for adversarial collision resistance. PR #1150 (2026-09-18, commit 6cc7b4b) added the measured ~2^-21 fixed-pair rate over random seeds and the v0.8.4 changelog credit for #1127. Issue #1127 is closed."
      },
      "family_definition": "32×32→64 products of secret-xored word halves on the long-input path; the 17–128-byte path is keyed multiply-fold."
    },
    {
      "id": "xxh3-128",
      "pattern": [
        "P1"
      ],
      "code_url": "https://github.com/Cyan4973/xxHash/blob/v0.8.3/xxhash.h",
      "name": "XXH3-128 0.8.3",
      "version": "0.8.3",
      "label": "XXH3-128 0.8.3",
      "anchor": "appendix-xxh3-128",
      "family": "heuristic",
      "claim_id": "xxh3",
      "key_bits": 1536,
      "output_bits": 128,
      "key_model": "Uniform 192-byte secret via XXH3_128bits_withSecret (1536 key bits; API minimum 1088); the seed is redundant for len <= 240 and XXH3_128bits_withSecretandSeed ignores the custom secret for len <= 240",
      "status": "REPRODUCTION",
      "classification_reason": "Independent reproduction of the paper’s harness results.",
      "prior_work": [
        {
          "label": "Paper: harness results and fold differential",
          "url": "https://github.com/thomasahle/fast-polynomials"
        }
      ],
      "official_claim": {
        "text": "xxHash is primarily designed for speed. It is labeled non-cryptographic, and is not meant to avoid intentional collisions (same digest for 2 different messages), or to prevent producing a message with a predefined digest.",
        "url": "https://github.com/Cyan4973/xxHash/blob/v0.8.3/doc/xxhash_spec.md",
        "context": "Pair F sets w1=~w0 before complementing both words, preserving their sum. Both low64 and high64 are compared; this is a full 128-bit collision.",
        "provenance": "records/README.html",
        "verbatim_record": "(v0.8.3 comment; replaced on dev 2026-09-17 by PR #1146, refined 2026-09-18 by PR #1150) xxHash is primarily designed for speed. It is labeled non-cryptographic, and is not meant to avoid intentional collisions (same digest for 2 different messages), or to prevent producing a message with a predefined digest. | It's possible to provide any blob of bytes as a \"secret\" to generate the hash. This makes it more difficult for an external actor to prepare an intentional collision. | DISCLAIMER: There are known *seed-dependent* multicollisions here due to multiplication by zero, affecting hashes of lengths 17 to 240. However, they are very unlikely. Keep this in mind when using the unseeded XXH3_64bits() variant: As with all unseeded non-cryptographic hashes, it does not attempt to defend itself against specially crafted inputs, only random inputs. | Finally, xxHash provides its own [massive collision tester](https://github.com/Cyan4973/xxHash/tree/dev/tests/collisions), able to generate and compare billions of hashes to test the limits of 64-bit hash algorithms. On this front too, xxHash features good results, in line with the [birthday paradox].",
        "source_record": "(v0.8.3 comment; replaced on dev 2026-09-17 by PR #1146, refined 2026-09-18 by PR #1150) doc/xxhash_spec.md (v0.8.3) line 40; xxhash.h (v0.8.3) lines 1208-1209 and 4707-4714 (comment prefix stripped; SMHasher3's copy at hashes/xxhash.cpp L591-598 is reflowed and reads 'multiplication by 0'); README.md (v0.8.3) lines 85-88. https://github.com/Cyan4973/xxHash/blob/v0.8.3/",
        "current_comment_url": "https://github.com/Cyan4973/xxHash/blob/6cc7b4b56f5190f288a58642fd24ba62ec56bb3d/xxhash.h",
        "current_comment_excerpt": "The _withSeed variant is also affected, but its collision probability depends on the chosen pair because the 64-bit seed produces a structured secret. A fixed pair has been measured to collide with probability ~2^-21 over random seeds. This is an observed result, not a known upper bound.",
        "current_header_note": "https://github.com/Cyan4973/xxHash/blob/6cc7b4b56f5190f288a58642fd24ba62ec56bb3d/xxhash.h#L4752-L4804; the 128-bit variant is not immune; the core is functionally identical to v0.8.3."
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 214,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "BIC",
          "Sparse",
          "PerlinNoise",
          "Bitflip",
          "SeedZeroes",
          "SeedSparse",
          "SeedBlockLen",
          "SeedBlockOffset",
          "SeedBIC"
        ]
      },
      "pair": {
        "m_hex": "9bd4604137366abe642b9fbec8c9954188d35499de169df633e0964e8c04600c",
        "m_prime_hex": "642b9fbec8c995419bd4604137366abe88d35499de169df633e0964e8c04600c",
        "lengths_bytes": [
          32,
          32
        ],
        "L_words": 4,
        "pair_id": "F",
        "verifier_confirmed": true,
        "example_seed_raw": "withSecret has no seed (seed 0)",
        "example_key_words_hex": [
          "f55eeab0159e547f711592ac35d621071d0717aa7711f16dfa734583e3cd2b0bc8858c2486e8ee0602aec0ee2442e84766d18cd32f3848391113dd2f09bd80ae2ae4caf1d6c14c97ec2b84e675d93834168d3521ce6792cb17447baff00d291a8e27646d7b1b34ddccf7e5836819c8009baa94225f7c5f4d8dfad13146531fe00a74042b9f7536a8570de8b36903cc98a3e30e15e0c5cfe797ddab09244f7ff55b6a75163d16f5860bfbea0dd4030c420b3fe642b7358944e8d568313cc9a5e7"
        ],
        "example_output_hex": "ced3d509b74eee89033e7fcc84653051",
        "outputs": {
          "m": {
            "low64": "0x033e7fcc84653051",
            "high64": "0xced3d509b74eee89",
            "hex_high_low": "0xced3d509b74eee89033e7fcc84653051"
          },
          "m2": {
            "low64": "0x033e7fcc84653051",
            "high64": "0xced3d509b74eee89",
            "hex_high_low": "0xced3d509b74eee89033e7fcc84653051"
          }
        },
        "provenance": [
          "records/README.html",
          "records/witness-searches/random-secret/xxh3-128/README.md"
        ],
        "default_secret_witness": {
          "seed": "0xe130d569418d2efe",
          "api": "XXH3_128bits_withSeed (default kSecret)",
          "hex_high_low": "0x77aee7ca6253510cff9994fe21ab989a"
        },
        "construction": "w1 = ~w0 before both words are complemented, preserving w0 + w1 = 2^64 - 1; the tail block is unchanged; both output halves compared"
      },
      "collision": {
        "display": "about 479 of every 2^35.46 keys (sampled; 479 events, pooled)",
        "count": 479,
        "trials": 47244640256,
        "trials_log2": 35.46,
        "log2_contribution": -26.556,
        "exact_contribution": false,
        "total_equality_proved": false,
        "interpretation": "Measured full-output collision rate with seed and secret uniform per key",
        "runs": "verifier verify_rs128.c (upstream xxhash.h v0.8.3, witnesses re-checked through the non-inlined xxhash.c): XXH3_128bits_withSecret 156/2^34 (rngseed 1001), XXH3_128bits_internal seed+secret 84/2^33 (1002), withSecret 60/2^32; searcher rs128.c withSecret 179/2^34 (rngseed 11); Xeon 8375C 2026-09-19"
      },
      "score": {
        "calculated": 28.556,
        "display": 28.6,
        "display_text": "at most 28.6 bits (cap; sampled); 95% Poisson interval [28.4, 28.7]",
        "direction": "estimated_upper_bound",
        "rounding": "nearest tenth; sampling uncertainty",
        "derivation": "log2(4) - log2(479/2^35.46)",
        "poisson_95_interval": [
          28.4,
          28.7
        ],
        "poisson_count": 479,
        "poisson_trials": 47244640256,
        "interval_scope": "Two-sided exact Poisson interval transformed to log2(L/p); uncertainty in this witness-derived quantity, not an interval for the unknown family score.",
        "interval_95_bits": [
          28.4,
          28.7
        ],
        "interval_method": "central 95% exact Poisson (Garwood) on the pooled count of the listed independent samples; displayed endpoints rounded"
      },
      "bits": 28.556,
      "bits_kind": "measured",
      "mechanism": "The all-ones difference on both operands of the first message multiply-fold can give the same lo ^ hi, merging the state before the unchanged suffix.",
      "notes": "Uniform 192-byte secret through XXH3_128bits_withSecret; the seed is redundant for len <= 240 (S0+seed, S1-seed are uniform whenever S is) and the seed-and-secret model gives the same rate (84/2^33). Pair F sets w1 = ~w0 before complementing both words, preserving their sum, so the collision is the pair-independent event fold(A,B) = fold(~A,~B) on both 64-bit halves (full 128-bit equality); it does not use the secret value, and the default kSecret with a uniform seed gives the same rate: 209/2^34.32 = 2^-26.62, 28.6 bits [28.4, 28.8] (page 165/2^34 + verifier 44/2^32). The rate is block- and length-independent (64 B 43/2^32, 160 B 34/2^32). The xxh3-64 NAF pair does not transfer (0/2^32). XXH3_128bits_withSecretandSeed ignores the custom secret for every length <= 240 (confirmed over 54,400 checks), so callers of that API with short inputs are in the 64-bit-seed model.",
      "qualification": "Measured score cap with sampling uncertainty; better pairs may exist. Uniform 192-byte secret via XXH3_128bits_withSecret; withSeed and withSecretandSeed (len <= 240) callers get the same rate with the default secret (28.6 [28.4, 28.8]). Exact Poisson 95% interval for this witness-derived score: [28.4, 28.7] (479 events in 2^35.46 keys).",
      "hover": {
        "mechanism": "The all-ones difference on both operands of the first message multiply-fold can give the same lo ^ hi, merging the state before the unchanged suffix.",
        "claim_note": "REPRODUCTION; verbatim excerpt"
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 13.37,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/XXH3-128/M2Pro",
          "registered_name": "XXH3-128",
          "host": "M2Pro",
          "backend_token": "neon",
          "backend_note": "neon",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.3646702047005244,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x288DAA94",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x288DAA94",
                "result": "PASS"
              },
              "NE": {
                "value": "0x6C82FA25",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x288DAA94",
              "NE": "0x6C82FA25"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "XXH3-128",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "XXH3-128",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/XXH3-128.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:22.715991+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:22.720761+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:23.196515+00:00",
                "elapsed_seconds": 0.47570891699999995,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:23.201791+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "2baf224476a800b78c6f1adfd5488353708539b069bbd15fde62219af35c3bb6",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x288DAA94",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x288DAA94",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x6C82FA25",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x288DAA94",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x6C82FA25",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 19.82,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/XXH3-128/Xeon8375C",
          "registered_name": "XXH3-128",
          "host": "Xeon8375C",
          "backend_token": "avx512",
          "backend_note": "avx512",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.8138351983723258,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 29.76,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/XXH3-128/M2Pro",
          "registered_name": "XXH3-128",
          "host": "M2Pro",
          "backend_token": "neon",
          "backend_note": "neon",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.2768817204301008,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x288DAA94",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x288DAA94",
                "result": "PASS"
              },
              "NE": {
                "value": "0x6C82FA25",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x288DAA94",
              "NE": "0x6C82FA25"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "XXH3-128",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "XXH3-128",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/XXH3-128.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:22.715991+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:22.720761+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:23.196515+00:00",
                "elapsed_seconds": 0.47570891699999995,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:23.201791+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.27 3.13 3.22",
                  "load1": 3.27,
                  "load5": 3.13,
                  "load15": 3.22
                },
                "raw_sha256": "2baf224476a800b78c6f1adfd5488353708539b069bbd15fde62219af35c3bb6",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x288DAA94",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x288DAA94",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x6C82FA25",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x288DAA94",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x6C82FA25",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 34.92,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/XXH3-128/Xeon8375C",
          "registered_name": "XXH3-128",
          "host": "Xeon8375C",
          "backend_token": "avx512",
          "backend_note": "avx512",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.028636884306987298,
          "verification": {}
        }
      },
      "reproduction": {
        "status": "standalone program supplied; startup witness and deterministic smoke check recorded",
        "directory": "verify/xxh3-128/README.html",
        "source": "verify/xxh3-128/xxh3_128_verify.c",
        "command": "cc -O2 -std=c11 -o xxh3_128_verify xxh3_128_verify.c -lm && ./xxh3_128_verify 20 1 random-secret",
        "trials": 1048576,
        "rng": "fixed deterministic pseudorandom smoke stream (24 secret words then a seed per trial); see per-hash README",
        "note": "random-secret mode added 2026-09-19: pair F under XXH3_128bits_withSecret with a fresh 192-byte uniform secret per trial (recorded random-model witness asserted at startup) plus a withSecretandSeed control asserting equality with withSeed trial by trial (the custom secret is ignored at 32 B); the default mode keeps the historical seed-only check. The smoke check does not replace historical large counts."
      },
      "supporting_measurements": [
        {
          "description": "Default-secret figure (XXH3_128bits_withSeed, kSecret, uniform 64-bit seed): 165/2^34 (page, 2026-09-18) + 44/2^32 (verifier control) = 209/2^34.32 = 2^-26.62, 28.6 bits [28.4, 28.8]; the earlier 5/2^30 (29.7 [28.5, 31.3]) was a low draw.",
          "count": 209,
          "trials": 21474836480,
          "score_bits": 28.6,
          "interval_95_bits": [
            28.4,
            28.8
          ],
          "provenance": [
            "verify/xxh3-128/README.html",
            "records/witness-searches/random-secret/xxh3-128/verify/logs/F_seed_2p32_r1003.txt"
          ]
        }
      ],
      "provenance": [
        "records/README.html",
        "verify/xxh3-128/README.html",
        "records/witness-searches/random-secret/xxh3-128/README.md"
      ],
      "speed_registration": "XXH3-128",
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "NH-like accumulators",
      "rurban_alias": null,
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "api": "XXH3_128bits_withSecret, 192-byte uniform secret (1536 bits). XXH3_128bits_withSeed and XXH3_128bits_withSecretandSeed (len <= 240) use the default public secret",
      "prior_report_url": "https://github.com/Cyan4973/xxHash/issues/1127",
      "maintainer_reply": {
        "date": "2026-09-17",
        "url": "https://github.com/Cyan4973/xxHash/issues/1127#issuecomment-5720905442",
        "summary": "Yann Collet thanked the reporter for the report and reproduction, described an approximately one-in-100-million carefully crafted-pair rate over 32–240 bytes, stated that collision resistance is outside noncryptographic XXH3’s guarantees, and said the XXH3_mix16B comment would be updated. PR #1146 (2026-09-17, commit 4c19ec2) replaced the XXH3_mix16B DISCLAIMER, documenting the complement-pair rate and recommending a cryptographic hash or MAC for adversarial collision resistance. PR #1150 (2026-09-18, commit 6cc7b4b) added the measured ~2^-21 fixed-pair rate over random seeds and the v0.8.4 changelog credit for #1127. Issue #1127 is closed.",
        "followup_date": "2026-09-18",
        "followup_url": "https://github.com/Cyan4973/xxHash/issues/1127#issuecomment-5735250557",
        "followup_summary": "PR #1146 (2026-09-17, commit 4c19ec2) replaced the XXH3_mix16B DISCLAIMER, documenting the complement-pair rate and recommending a cryptographic hash or MAC for adversarial collision resistance. PR #1150 (2026-09-18, commit 6cc7b4b) added the measured ~2^-21 fixed-pair rate over random seeds and the v0.8.4 changelog credit for #1127. Issue #1127 is closed."
      },
      "family_definition": "32×32→64 products of secret-xored word halves on the long-input path; the 17–128-byte path is keyed multiply-fold."
    },
    {
      "id": "highway",
      "pattern": [
        "P3"
      ],
      "code_url": "https://github.com/google/highwayhash/blob/f8381f3331d9c56a9792f9b4a35f61c41108c39e/c/highwayhash.c",
      "name": "HighwayHash-64, frozen",
      "claim_id": "highwayhash",
      "output_bits": 64,
      "key_bits": 256,
      "key_model": "Full uniform 256-bit HHKey, four independent 64-bit words.",
      "status": "EXTENSION",
      "classification_reason": "Extension of the designers’ cancellation analysis in arXiv:1612.06257 §6.2; its at-most-1-in-2^64 commitment is present in the paper.",
      "official_claim": {
        "text": "HighwayHash is a strong pseudorandom function with security claims",
        "url": "https://github.com/google/highwayhash/blob/f8381f3/highwayhash/highwayhash.h#L87",
        "context": "Header claim; arXiv:1612.06257 presents statistical analysis, speed measurements and preliminary cryptanalysis, conditional on withstanding further analysis. Section 6.2 states the combined event is at most 1 in 2^64.",
        "provenance": "records/README.html",
        "locator": "highwayhash/highwayhash.h:87, commit f8381f3"
      },
      "smhasher3": {
        "verdict": "PASS",
        "passed": 238,
        "total": 238,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "d131b3012a2a1924000000000000000000000000000000000000000000000000d132b3b42a2a19240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "m_prime_hex": "d132b3012a2a1924000000000000000000000000000000000000000000000000d130b3b32a2a19240000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000",
        "verifier_confirmed": true,
        "provenance": [
          "records/README.html",
          "records/README.html",
          "records/README.html"
        ],
        "recipe": "Three 32-byte packets. First 64-bit little-endian lane shown in post, all other packet lanes zero.",
        "lengths_bytes": [
          96,
          96
        ],
        "L_words": 12,
        "example_key_words_hex": [
          "dbe6d5d58afad71e",
          "a0142b42de197939",
          "5bd2b2861106bd66",
          "b6c304527caad524"
        ],
        "example_output_hex": "f5eba26391be727f"
      },
      "collision": {
        "display": "collides for at least 56,165 of every 2^72 keys (counted class contribution); best certified cap on record 59.28 (72 B, supplement)",
        "log2_contribution": -56.22261624545425,
        "exact_contribution": true,
        "total_equality_proved": false,
        "interpretation": "Exact sufficient event",
        "exact_fraction": {
          "numerator": 56165,
          "denominator_power_of_two": 72
        }
      },
      "score": {
        "calculated": 59.8075787461754,
        "display": 59.81,
        "display_text": "at most 59.81 bits (cap)",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(12) - (-56.22261624545425)"
      },
      "notes": "Conservative 96-byte headline witness. Exact sufficient-event contribution, not exact total collision probability. All 64/128/256 output widths inherit it. Original second-family capped sample confirmed pair but not exact numerator.",
      "provenance": [
        "records/README.html",
        "records/README.html",
        "records/README.html",
        "records/README.html"
      ],
      "later_result": {
        "provenance": "records/README.html",
        "status": "Additional exact-count / optimisation report, outside the selected headline pair.",
        "known_count_reproduced": 942292336640,
        "new_96_byte_upper_score": 59.682871450313,
        "new_72_byte_upper_score": 59.279127078832,
        "qualification": "72-byte figure is a certified lower bound on collision contribution, not an exact rate. Supporting counter source files cited by report are not in this directory."
      },
      "version": "frozen",
      "label": "HighwayHash-64",
      "anchor": "appendix-highwayhash",
      "mechanism": "A weak-key absorption trail merges the full state before any finalizer.",
      "family": "heuristic",
      "bits": 59.8075787461754,
      "bits_kind": "exact",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 1.48,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/HighwayHash-64/M2Pro",
          "registered_name": "HighwayHash-64",
          "host": "M2Pro",
          "backend_token": "neon",
          "backend_note": "neon",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.0689655172413834,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0xF3246108",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0xF3246108",
                "result": "PASS"
              },
              "NE": {
                "value": "0xF41A53FD",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0xF3246108",
              "NE": "0xF41A53FD"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "HighwayHash-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "HighwayHash-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/HighwayHash-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:30.905494+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:30.909764+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:31.473895+00:00",
                "elapsed_seconds": 0.5640970000000003,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:31.478818+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "3eb77dee7d7d92c6efc3a5e38d259c46dcaa1d61dea0e7cbc247a6afd68bef43",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0xF3246108",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0xF3246108",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xF41A53FD",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0xF3246108",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xF41A53FD",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 3.24,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/HighwayHash-64/Xeon8375C",
          "registered_name": "HighwayHash-64",
          "host": "Xeon8375C",
          "backend_token": "sse41",
          "backend_note": "sse41",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 90.16,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/HighwayHash-64/M2Pro",
          "registered_name": "HighwayHash-64",
          "host": "M2Pro",
          "backend_token": "neon",
          "backend_note": "neon",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.8411712511091416,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0xF3246108",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0xF3246108",
                "result": "PASS"
              },
              "NE": {
                "value": "0xF41A53FD",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0xF3246108",
              "NE": "0xF41A53FD"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "HighwayHash-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "HighwayHash-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/HighwayHash-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:30.905494+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:30.909764+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:31.473895+00:00",
                "elapsed_seconds": 0.5640970000000003,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:31.478818+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "3eb77dee7d7d92c6efc3a5e38d259c46dcaa1d61dea0e7cbc247a6afd68bef43",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0xF3246108",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0xF3246108",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xF41A53FD",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0xF3246108",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xF41A53FD",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 61.88,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/HighwayHash-64/Xeon8375C",
          "registered_name": "HighwayHash-64",
          "host": "Xeon8375C",
          "backend_token": "sse41",
          "backend_note": "sse41",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        }
      },
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. Conservative 96-byte headline witness. Exact sufficient-event contribution, not exact total collision probability. All 64/128/256 output widths inherit it. Original second-family capped sample confirmed pair but not exact numerator.",
      "exact_optimum": {
        "score_cap": 59.682871450313,
        "collision_contribution": "4412514617845172193590 / 2^128",
        "length_words": 12,
        "scope": "Exact optimum within the specified 96-byte lane-0 trail family, not total collision probability or a global minimum.",
        "source": "supplement/highwayhash-exact-optimum.html"
      },
      "hover": {
        "mechanism": "A weak-key absorption trail merges the full state before any finalizer.",
        "quote": "a strong pseudorandom function …"
      },
      "speed_registration": "HighwayHash-64",
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "keyed-state lane products",
      "rurban_alias": null,
      "claim_category": "keyed collision / DoS claim",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Keyed-state 32×32 lane products with permutation (HighwayHash).",
      "lean": {
        "label": "✓ checked",
        "source": "records/",
        "scope": "M1–M4 complete: exact full-key trail count 56165·2^184, unconditional state and all three output collision bounds, and score enclosure 59.807–59.808; C/Lean vectors are execution evidence, not compiler correctness."
      }
    },
    {
      "id": "spooky",
      "pattern": [
        "P7"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/spookyhash.cpp",
      "name": "SpookyHash V2-64",
      "claim_id": "spookyhash2",
      "output_bits": 64,
      "key_bits": 64,
      "key_model": "Hash64 duplicates one uniform seed into both native seed words. Similar rate measured with independent 128-bit native seeds.",
      "status": "NEW",
      "classification_reason": "New late-injection cancellation in the supplied panel.",
      "official_claim": {
        "text": "When NOT to use it: if you have an opponent.",
        "url": "https://burtleburtle.net/bob/hash/spooky.html",
        "context": "An explicit warning against adversarial use, not a promise of security.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 244,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "SeedBIC",
          "SeedBitflip"
        ],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "9d21a7fafac0e24f428e3c0124de5f8c54c1de8bef8535a636cfd97be5aad365055fb9bc0a26d493c5f21f4acbfade067eba007efbf79f8729cacdc39c584138336a77d8330a62803d3750884eb91b907e091a0ff547078c45198f347078fe21b0fa47014d7d1cd6142861dadfecd7fd0bf71f80b4e9112d36a8d91996608d73c49284098d900d7ef1f9c16471246346ca2277cbf87725a6d861b0db4924da8f5c5307034eb3933fcca647e8404e141afc956d0eb643e7ee9381dabba3c2d09e2dae44a4bda150f889d0704a2463cd7cb2b194ea3ccc9982ceae11e212336b6b3ad81125bd494e3f1b7291e3b0c73a74fa886a41f0fe25055b0f1fc96e8f7c0123002a69c35989a703b718ce8a1bfbddafb3e3",
        "m_prime_hex": "9d21a7fafac0e24f428e3c0124de5f8c54c1de8bef8535a636cfd97be5aad365055fb9bc0a26d493c5f21f4acbfade067eba007efbf79f8729cacdc39c584138336a77d8330a62803d3750884eb91b907e091a0ff547078c45198f347078fe21b0fa47014d7d1cd6142861dadfecd7fd0bf71f80b4e9112d36a8d91996608d73c49284098d900d7ef1f9c16471246346ca2277cbf87725a6d861b0db4924da8f5c5307034eb3933fcca647e8404e141afc956d0eb643e76e9381dabba3c2d09e2dae44a4bda150f889d0704a2463cdfcb2b194ea3ccc9982ceae11e212336b6b3ad81125bd494e3f1b7291e3b0c73a74fa886a41f0fe25055b0f1fc96e8f7c0123002a69c35989a703b718ce8a1bfb5dafb3c3",
        "verifier_confirmed": true,
        "example_seed_raw": "0x0000000000000000 (h1 = h2 = 0)",
        "provenance": [
          "records/README.html"
        ],
        "implementation_validation": "Standalone C++ re-implementation (spooky.h) reproduces all three SMHasher3 verification values: SpookyHash2_32 0xA48BE265, SpookyHash2_64 0x972C4BDC, SpookyHash2_128 0x893CFCBE (verify.cpp, SMHasher3 procedure: keys {}, {0}, {0,1}, ... up to 255 bytes with seed 256-i, then hash of the concatenated o",
        "lengths_bytes": [
          275,
          275
        ],
        "L_words": 35,
        "example_key_words_hex": [
          "0000000000000000"
        ],
        "example_output_hex": "6d1347279ecef355",
        "outputs": {
          "64": "6d1347279ecef355",
          "32": "9ecef355",
          "128_high_low": "147d4b759d34be026d1347279ecef355"
        }
      },
      "collision": {
        "display": "about half of keys (sampled; 536875475/1073741823)",
        "count": 536875475,
        "trials": 1073741823,
        "log2_contribution": -0.9999877368829325,
        "exact_contribution": false,
        "total_equality_proved": false,
        "interpretation": "Measured full-state collisions in the duplicated 64-bit seed model; exact population balance unproved"
      },
      "score": {
        "calculated": 6.129270753827899,
        "display": 6.13,
        "display_text": "at most 6.13 bits (cap; sampled)",
        "direction": "estimated_upper_bound",
        "rounding": "nearest",
        "derivation": "log2(35) - (-0.9999877368829325)"
      },
      "notes": "The same pair collides on SpookyHash2-32 at the same measured rate, and on both 64-bit halves. SMHasher3 duplicates a 64-bit seed; native Hash32 takes a 32-bit seed. Exact half balance is unproved. The claimed 2^32 and independent-seed-word runs were not independently reproduced.",
      "provenance": [
        "records/README.html",
        "records/README.html",
        "records/README.html"
      ],
      "version": "V2-64",
      "label": "SpookyHash V2-64",
      "anchor": "appendix-spookyhash",
      "mechanism": "The step-10 late-injection trail cancels in the 768-bit state before finalization; 275-byte messages give L=35.",
      "family": "heuristic",
      "bits": 6.129270753827899,
      "bits_kind": "measured",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 5.81,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SpookyHash2-64/M2Pro",
          "registered_name": "SpookyHash2-64",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 26.30434782608695,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x972C4BDC",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x972C4BDC",
                "result": "PASS"
              },
              "BE": {
                "value": "0x6B914F15",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x972C4BDC",
              "BE": "0x6B914F15"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "SpookyHash2-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "SpookyHash2-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/SpookyHash2-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:29.894427+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:29.898677+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:30.389230+00:00",
                "elapsed_seconds": 0.49051762499999896,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:30.394572+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "ef68c8c69a01c27d2b48502c588642d550415716dfabd12a293667f5265ebb0b",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x972C4BDC",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x972C4BDC",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x6B914F15",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x972C4BDC",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x6B914F15",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 5.08,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SpookyHash2-64/Xeon8375C",
          "registered_name": "SpookyHash2-64",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 37.74,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SpookyHash2-64/M2Pro",
          "registered_name": "SpookyHash2-64",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 22.602013778484363,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x972C4BDC",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x972C4BDC",
                "result": "PASS"
              },
              "BE": {
                "value": "0x6B914F15",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x972C4BDC",
              "BE": "0x6B914F15"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "SpookyHash2-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "SpookyHash2-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/SpookyHash2-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:29.894427+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:29.898677+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:30.389230+00:00",
                "elapsed_seconds": 0.49051762499999896,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:30.394572+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "ef68c8c69a01c27d2b48502c588642d550415716dfabd12a293667f5265ebb0b",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x972C4BDC",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x972C4BDC",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x6B914F15",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x972C4BDC",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x6B914F15",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 45.59,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SpookyHash2-64/Xeon8375C",
          "registered_name": "SpookyHash2-64",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.021934634788323137,
          "verification": {}
        }
      },
      "qualification": "Measured score cap with sampling uncertainty; better pairs may exist. The same pair collides on SpookyHash2-32 at the same measured rate, and on both 64-bit halves. SMHasher3 duplicates a 64-bit seed; native Hash32 takes a 32-bit seed. Exact half balance is unproved. The claimed 2^32 and independent-seed-word runs were not independently reproduced.",
      "hover": {
        "mechanism": "The step-10 late-injection trail cancels in the 768-bit state before finalization; 275-byte messages give L=35."
      },
      "supporting_measurements": [
        {
          "label": "Earlier 286-byte witness",
          "pair": {
            "m_hex": "a0ed1dcaeb2e421c17cf8516645510b61c1e80eb014c077fdbb3b3ab867298f2ccfb12c325d96dd09c3de65c247a0257a6d22a9da89710cfb724db191c748806e9d6b0272f125818a2c061b9e406999b788261dcd2487f7064e1bf4d00670a3d09230d92b37de4141a5e5d12e205c37e42c13193ab064833476cb9e5a22bd74c85073313646062ca36b300b4a62fa6797864ca181b97739bf4dd0567f5ce9a24398e0ddb544ee4926c6c033f6397e4790f51641c3d6dc04d5dcfe95ffe3054262ff9e5d8a8f17cce6b3c565acbecc693b77d90b1564fd1ddc71df2c56f2fd52fd6d8c9fb3b84612e5f83397bb5ac932651ce382aa90592ebb81d61c29ac53c2bace0711020c947c1ce55f2cfd79f821e92ba90562ba05eeab1b8f0771534",
            "m_prime_hex": "a0ed1dcaeb2e421c17cf8516645510b61c1e80eb014c077fdbb3b3ab867298f2ccfb12c325d96dd09c3de65c247a0257a6d22a9da89710cfb724db191c748806e9d6b0272f125818a2c061b9e406999b788261dcd2487f7064e1bf4d00670a3d09230d92b37de4141a5e5d12e205c37e42c13193ab064833476cb9e5a22bd74c85073313646062ca36b300b4a62fa6797864ca181b97739bf4dd0567f5ce9a24398e0ddb544ee4926c6c033f6397e4790f51641c3d6dc04d5dcfe95ffe3054a62ff9e5d8a8f17cce6b3c565acbecc693b77d90b1564fd1ddc71df2c56f2fd52fd6d8c9fb3b84612e5f83397bb5ac932651ce382aa90592ebb81d61c29ac53c2bace0711020c947c1ce55f2cfd79f821e92ba90562ba05e6ab1b8f0771514",
            "verifier_confirmed": true,
            "example_seed_raw": "0x0000000000000004 (h1 = h2 = 4; both messages hash to 0xe3f63e3f415763ac, and the full 128-bit outputs agree)",
            "provenance": [
              "records/README.html"
            ],
            "implementation_validation": "Standalone C++ re-implementation (spooky.h) reproduces all three SMHasher3 verification values: SpookyHash2_32 0xA48BE265, SpookyHash2_64 0x972C4BDC, SpookyHash2_128 0x893CFCBE (verify.cpp, SMHasher3 procedure: keys {}, {0}, {0,1}, ... up to 255 bytes with seed 256-i, then hash of the concatenated o",
            "lengths_bytes": [
              286,
              286
            ],
            "L_words": 36,
            "example_key_words_hex": [
              "0000000000000004"
            ],
            "example_output_hex": "e3f63e3f415763ac"
          },
          "collision": {
            "display": "half of all seeds (measured 0.50001; 536879630/1073741823)",
            "log2_contribution": -0.9999765715848735,
            "exact_contribution": false,
            "total_equality_proved": false,
            "interpretation": "Measured rate or class-density-weighted measured rate"
          },
          "score": {
            "display": 6.17,
            "calculated": 6.169901573027186,
            "direction": "estimated_upper_bound"
          }
        }
      ],
      "speed_registration": "SpookyHash2-64",
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "ARX lanes",
      "rurban_alias": "Spooky32",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Add–rotate–xor of seeded state, no keyed multiply; pengyhash applies its seed in finalization.",
      "version_recheck": "Rechecked 2026-09-18 against the current reference SpookyV2.cpp (burtleburtle.net, sha256 fac71fd4...; identical to github.com/bobjen/spookyhash c3bbfb64 cplus/ modulo line endings) and SMHasher3 HEAD 3b619371 (hashes/spookyhash.cpp unchanged since 2023-11-17). Two independent harnesses compiled against the reference: 536,874,801/2^30 and 536,882,099/2^30 collisions with h1 = h2 = seed (95% CI about [0.49997, 0.50004]); 134,214,618/2^28 and 134,222,222/2^28 with independent seed words.",
      "multicollision": {
        "tier": "few-way",
        "text": "Few-way: the unmixed last block gives ~2 bits per doubling, so k=4 collides for 25% of seeds, k=16 for 2^-6, k=256 for ~2^-14. The 128-bit output collides on the same seeds."
      }
    },
    {
      "id": "pengyhash",
      "pattern": [
        "P2"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/pengyhash.cpp",
      "name": "pengyhash v0.3",
      "version": "v0.3",
      "label": "pengyhash v0.3",
      "anchor": "appendix-pengyhash",
      "family": "heuristic",
      "claim_id": "pengyhash",
      "key_bits": 64,
      "output_bits": 64,
      "key_model": "64 (`uint64_t pengyhash(const void *p, size_t size, uint64_t seed);` pengyhash.h line 7; 32 in v0.1/v0.2). The seed enters only in the 6-round finalization (`s[1] += f[1] + seed` each round, with the 0..31-byte zero-padded tail f); the 32-byte bulk loop is seed-free, so the 256-bit state after it is a public function of the message and its length (s0 = size). SMHasher3: 64.",
      "status": "NEW",
      "classification_reason": "No prior publication of this collision or of the seed-free bulk loop was found.",
      "prior_work": [],
      "official_claim": {
        "text": "Version 0.3 passes these tests.",
        "verbatim_record": "Fast 64-bit non-cryptographic hash algorithm | ## v0.3 changes\n- remove usage of memcpy()\n- 64-bit seed\n- tweaked hash with new rotation constants\n- faster\n- switched to GNU GPLv3 license | Version 0.3 passes these tests.",
        "url": "https://github.com/tinypeng/pengyhash/issues/1#issuecomment-1331634982",
        "context": "The attacked function is SMHasher3’s sequenced pengyhash v0.3, verification 0x861A1254, with a 64-bit seed. rurban's SMHasher tests the older v0.2 (32-bit seed, verification 0x1FC2217B), not the v0.3 attacked here. Upstream v0.3 has a reported unsequenced modification; this result is pinned to the sequenced SMHasher3 form. v0.3 uses GPLv3; earlier versions used BSD 2-Clause.",
        "source_record": "README.md line 2 (the entire official description; also the GitHub repository description) and lines 4-9 (the remainder of the 199-byte README), https://github.com/tinypeng/pengyhash; author's reply on issue #1 'Fail Avalanche, Seed Tests from demerphq/smhasher' (tinypeng, 2022-11-30T04:38:57Z, issue still open), https://github.com/tinypeng/pengyhash/issues/1. Implied quality claim: the author-bundled SMhasher_results.txt (first added 2020-08-21, updated -- not added -- in the v0.3 commit 036dab53: line 2 '--- Testing pengyhash \"pengyhash\" GOOD', 'Verification value 0x861A1254 ....... PASS', zero FAIL lines) and SMhasher_demerphq_results.txt ('# All Tests Passed. pengyhash passed all 195 tests run.'). No paper, design doc, security statement or collision claim of any kind exists.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 234,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "failed_tests": [
          "SeedBlockLen"
        ],
        "provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "7d664c02e4863788063367fb37f290ef00000000000000000000000000000000",
        "m_prime_hex": "2bbb99a5513852e1aa89ccb45c8f5b3d00000000000000000000000000000000",
        "lengths_bytes": [
          32,
          32
        ],
        "L_words": 4,
        "verifier_confirmed": true,
        "example_seed_raw": "0x3a34ce6380fc0bc5",
        "example_key_words_hex": [
          "3a34ce6380fc0bc5"
        ],
        "example_output_hex": "90f2edac34d9a4d5",
        "outputs": {
          "m": "90f2edac34d9a4d5",
          "m_prime": "90f2edac34d9a4d5"
        },
        "recorded_examples": "0x3a34ce6380fc0bc5 -> both 90f2edac34d9a4d5; seed 0 -> both 76a337c4b9d61cf9; seed 1 -> both 938d2f6beab2457f; seed 0xffffffffffffffff -> both 9936086fe57a4f5c (all four reproduced by the verifier). Second pair: 0x3a34ce6380fc0bc5 -> both cd93fc86a39c2c20; seed 0 -> both 937af7f4b9c00694; seed 1 -> both 88c04971182dae4e.",
        "provenance": [
          "records/README.html"
        ]
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0.0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "count": 1073741824,
        "trials": 1073741824,
        "interpretation": "Public-state equality proves all-seed collision; corroborated by independent measurement"
      },
      "score": {
        "calculated": 2.0,
        "display": 2.0,
        "display_text": "at most 2 bits (cap)",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(4) - (0.0)"
      },
      "bits": 2.0,
      "bits_kind": "exact",
      "mechanism": "The seed never touches the 32-byte bulk loop, and the public block compression decouples into two independent 64-bit word-pair equations (equal w1+2*w0 and equal u1(w0)), so a ~2^32 Brent-rho search on u1(w0) gives two 32-byte messages with an identical 256-bit state entering the seeded finalization; z3 likewise maps a 32-byte block onto the pre-finalization state (1,0,0,0) of the byte 00.",
      "notes": "The attacked function is SMHasher3’s sequenced pengyhash v0.3, verification 0x861A1254, with a 64-bit seed. rurban's SMHasher tests the older v0.2 (32-bit seed, verification 0x1FC2217B), not the v0.3 attacked here. Upstream v0.3 has a reported unsequenced modification; this result is pinned to the sequenced SMHasher3 form. v0.3 uses GPLv3; earlier versions used BSD 2-Clause.",
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. The attacked function is SMHasher3’s sequenced pengyhash v0.3, verification 0x861A1254, with a 64-bit seed. rurban's SMHasher tests the older v0.2 (32-bit seed, verification 0x1FC2217B), not the v0.3 attacked here. Upstream v0.3 has a reported unsequenced modification; this result is pinned to the sequenced SMHasher3 form. v0.3 uses GPLv3; earlier versions used BSD 2-Clause.",
      "version_record": "pengyhash v0.3 (upstream master commit 9b70a18e, 2022-11-30; no tags or releases; GPLv3 since v0.3, BSD 2-Clause before, confirmed from LICENSE at 70a23e40). Author Alberto Fajardo (GitHub tinypeng). SMHasher3 'pengyhash' = v0.3, hashes/pengyhash.cpp, SRC_STABLEISH, verification_LE = verification_BE = 0x861A1254 (SMHasher3 commit 45557df3 'Update pengyhash to v0.3 (commit 9b70a18)', authored 2023-09-12, committed 2023-11-17). rurban tests v0.2 (uint32_t seed, verification 0x1FC2217B, 2020-09-04), not v0.3. Upstream v0.3 has an unsequenced modification (issue #2, open, unanswered); the SMHasher3 sequenced form is what was attacked, pinned by reproducing 0x861A1254. ",
      "hover": {
        "mechanism": "The seed never touches the 32-byte bulk loop, and the public block compression decouples into two independent 64-bit word-pair equations (equal w1+2*w0 and equal u1(w0)), so a ~2^32 Brent-rho search on u1(w0) gives two 32-byte messages with an identical 256-bit state entering the seeded finalization; z3 likewise maps a 32-byte block onto the pre-finalization state (1,0,0,0) of the byte 00.",
        "claim_note": "NEW; verbatim excerpt; The attacked function is SMHasher3’s sequenced pengyhash v0.3, verification 0x861A1254, with a 64-bit seed. rurban's SMHasher tests the older v0.2 (32-bit seed, verification 0x1FC2217B), not the v0.3 attacked here. Upstream v0.3 has a reported unsequenced modification; this result is pinned to the sequenced SMHasher3 form. v0.3 uses GPLv3; earlier versions used BSD 2-Clause."
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 3.68,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/pengyhash/M2Pro",
          "registered_name": "pengyhash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.2724795640327127,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x861A1254",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x861A1254",
                "result": "PASS"
              },
              "NE": {
                "value": "0x861A1254",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x861A1254",
              "NE": "0x861A1254"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "pengyhash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "pengyhash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/pengyhash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:32.079926+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:32.084740+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:32.611539+00:00",
                "elapsed_seconds": 0.5266765839999987,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:32.616738+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "9e9ec9116c2ed9847d1c2be884196ec9f26d76830f10dada87404003169c9735",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x861A1254",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x861A1254",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x861A1254",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x861A1254",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x861A1254",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 4.41,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/pengyhash/Xeon8375C",
          "registered_name": "pengyhash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 74.39,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/pengyhash/M2Pro",
          "registered_name": "pengyhash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.6990186853071512,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x861A1254",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x861A1254",
                "result": "PASS"
              },
              "NE": {
                "value": "0x861A1254",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x861A1254",
              "NE": "0x861A1254"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "pengyhash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "pengyhash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/pengyhash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:32.079926+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:32.084740+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:32.611539+00:00",
                "elapsed_seconds": 0.5266765839999987,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:32.616738+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "9e9ec9116c2ed9847d1c2be884196ec9f26d76830f10dada87404003169c9735",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x861A1254",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x861A1254",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x861A1254",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x861A1254",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x861A1254",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 72.62,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/pengyhash/Xeon8375C",
          "registered_name": "pengyhash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.06885155604516857,
          "verification": {}
        }
      },
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "reproduction": {
        "status": "standalone program supplied",
        "directory": "verify/pengyhash/README.html",
        "source": "verify/pengyhash/pengyhash_verify.c",
        "command": "cc -O2 -std=c11 -o pengyhash_verify pengyhash_verify.c -lm && ./pengyhash_verify 20",
        "trials": 1048576,
        "rng": "splitmix64-seeded xoshiro256**, one stream, default seed 1",
        "note": "Small package checks are separate from the historical large measurements."
      },
      "speed_registration": "pengyhash",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "ARX lanes",
      "rurban_alias": "pengyhash",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Add–rotate–xor of seeded state, no keyed multiply; pengyhash applies its seed in finalization.",
      "claim_attribution": "author's reply on issue #1, 2022-11-30",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: the 256-bit bulk state is solved directly (not searched), landing ~0.64x2^64 sixty-four-byte inputs on one seed-independent state (verified 2^16, 65536/65536 seeds)."
      }
    },
    {
      "id": "nmhash32",
      "pattern": [
        "P7"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/nmhash.cpp",
      "name": "nmhash32 v2",
      "version": "v2",
      "label": "nmhash32 v2",
      "anchor": "appendix-nmhash32",
      "family": "heuristic",
      "claim_id": "nmhash32",
      "key_bits": 32,
      "output_bits": 32,
      "key_model": "32 (`uint32_t seed`, nmhash.h line 593; author on issue #2: 'output size is fixed to 32bit. seed is also 32bit.'; SMHasher3 FLAG_HASH_SMALL_SEED). The seed enters only as sl = seed+len (9..255 B: four lanes y_j = sl ^ word; 0..8 B: seed+const added to the data and rotl(seed,5) XORed mid-mixer). For a uniform 32-bit seed, fixed-pair probabilities are integer multiples of 2^-32; nonzero probabilities are at least 2^-32, not at most that value.",
      "status": "NEW",
      "classification_reason": "No prior literature identified in the supplied checked record.",
      "prior_work": [],
      "official_claim": {
        "text": "Both hashes are the same high quality, and pass the checking:",
        "verbatim_record": "32bit hash, the core loop is constructed of invertible operations, and the multiplications are limited to `16x16->16`. For better speed on short keys, the limitation is loosen to `32x32->32` multiplication in the `NMHASH32X` variant when hashing the short keys or avalanching the final result of the core loop. | Both hashes are the same high quality, and pass the checking:\n\n- [rurban/smhasher](https://github.com/rurban/smhasher), including LongNeighbors and BadSeeds\n- [demerphq/smhasher](https://github.com/demerphq/smhasher/)\n- [massive collision tester](https://github.com/Cyan4973/xxHash/tree/dev/tests/collisions), 1G, len=8,16,256",
        "url": "https://github.com/gzm55/hash-garage/blob/master/README.md",
        "context": "The last algorithmic change was commit 8dbdc6f9 (2021-06-08 UTC); commit bb223145 (2021-06-09 UTC) changed only the version label, and the December 2024 undefined-behaviour fix (7712708e, merged e022156c) preserves the verification values 0x12A30553/0xA8580227, re-checked against the header at e022156c in scalar and AVX-512 builds.",
        "source_record": "README.md, section `NMHASH32`/`NMHASH32X` first paragraph and section '### Quality' (the only quality/collision statement in the repository), https://github.com/gzm55/hash-garage/blob/master/README.md (raw: https://raw.githubusercontent.com/gzm55/hash-garage/master/README.md). Design statement in rurban/smhasher issue #190 'Add NMHASH32' (gzm55, 2021-04-10): 'friendly to low profile hardware, using only narrow multiplications (16 x 16 -> 16), and 32bit addition, shift and xor'. No statement about cryptographic strength, seeded security or adversarial inputs anywhere (README, nmhash.h, LICENSE, issue #2, rurban issues #190/#194).",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 172,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "failed_tests": [
          "BIC",
          "Zeroes",
          "Sparse",
          "Permutation",
          "TwoBytes",
          "PerlinNoise",
          "Bitflip",
          "SeedZeroes",
          "SeedBlockLen",
          "SeedBlockOffset",
          "SeedBitflip"
        ],
        "provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "m_prime_hex": "00004080000000000000000000000000000040800000000000000000000000000828208000000000000000000000000000004080000000000000000000000000",
        "lengths_bytes": [
          64,
          64
        ],
        "L_words": 8,
        "verifier_confirmed": true,
        "example_seed_raw": "0xb54cda26",
        "example_key_words_hex": [
          "b54cda26"
        ],
        "example_output_hex": "e00f99e0",
        "outputs": {
          "m": "e00f99e0",
          "m_prime": "e00f99e0"
        },
        "recorded_examples": "0xb54cda26 -> both 0xe00f99e0 (seed 0 differs: f238703d vs cc7f7e62); verifier's further colliding seed 0xe142fddf -> both 0427babe.; upstream nmhash.h e022156ca8 exhaustive: 1078944392/2^32, first colliding seed 0x003fffc0 -> 7d770df1; AVX-512 and scalar builds agree",
        "provenance": [
          "records/README.html"
        ]
      },
      "collision": {
        "display": "collides for 1,078,944,392 of every 2^32 keys (exhaustively counted)",
        "log2_contribution": -1.9930266347125327,
        "exact_contribution": true,
        "total_equality_proved": true,
        "count": 1078944392,
        "trials": 4294967296,
        "interpretation": "Fixed-pair exhaustive count"
      },
      "score": {
        "calculated": 4.993026634712533,
        "display": 4.994,
        "display_text": "at most 4.994 bits (cap)",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(8) - (-1.9930266347125327)"
      },
      "bits": 4.993026634712533,
      "bits_kind": "exact",
      "mechanism": "A loop-round trail in lane 0 (words a_0 and b_0 XOR 0x80400000) keeps x+y unchanged when bit 22 of seed+64 is set, passes the odd 16-bit-lane multiplies as a top-bit / 0x2000 difference when no carry crosses bit 13, and the final round's fresh words absorb the resulting register differences; every xorshift step is a GF(2) bijection, so only the one add and the low-lane multiply are probabilistic.",
      "notes": "The last algorithmic change was commit 8dbdc6f9 (2021-06-08 UTC); commit bb223145 (2021-06-09 UTC) changed only the version label, and the December 2024 undefined-behaviour fix (7712708e, merged e022156c) preserves the verification values 0x12A30553/0xA8580227, re-checked against the header at e022156c in scalar and AVX-512 builds.",
      "qualification": "The last algorithmic change was commit 8dbdc6f9 (2021-06-08 UTC); commit bb223145 (2021-06-09 UTC) changed only the version label, and the December 2024 undefined-behaviour fix (7712708e, merged e022156c) preserves the verification values 0x12A30553/0xA8580227, re-checked against the header at e022156c in scalar and AVX-512 builds.",
      "version_record": "NMHASH32 v2 (`#define NMH_VERSION 2`, nmhash.h line 18, set by commit bb223145cc 2021-06-09 which only changes '2-dev' to '2'; the last algorithmic change is 8dbdc6f9c5 2021-06-08 'improve speed for long keys', which set the verification values 0x12A30553/0xA8580227; the 2024-12-15 UB fix by Reini Urban (7712708e68, merged e022156ca8) leaves them unchanged). Author James Z.M. Gao (gzm55/hash-garage, BSD 2-Clause). SMHasher3 'NMHASH' = 'nmhash32 v2', hashes/nmhash.cpp (ported 2022-03-26, dbd38eff), SRC_STABLEISH, FLAG_HASH_SMALL_SEED, verification_LE 0x12A30553; rurban nmhash32 0x12A30553 (same values in the nmhash.h header). Companion NMHASH32X is a separate row.",
      "hover": {
        "mechanism": "A loop-round trail in lane 0 (words a_0 and b_0 XOR 0x80400000) keeps x+y unchanged when bit 22 of seed+64 is set, passes the odd 16-bit-lane multiplies as a top-bit / 0x2000 difference when no carry crosses bit 13, and the final round's fresh words absorb the resulting register differences; every xorshift step is a GF(2) bijection, so only the one add and the low-lane multiply are probabilistic.",
        "claim_note": "NEW; verbatim excerpt; NMHASH32 v2 uses a 32-bit seed and returns 32 bits. Verification is 0x12A30553. The last algorithmic change was 2021-06-08; the 2021-06-09 commit changed the version label, and the December 2024 undefined-behaviour fix preserved verification values. The new timings use scalar code on M2 Pro and AVX-512 on Xeon; the reproduction is scalar."
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 1.99,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/NMHASH/M2Pro",
          "registered_name": "NMHASH",
          "host": "M2Pro",
          "backend_token": "scalar",
          "backend_note": "scalar",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 8.15217391304348,
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0x4B575DFB",
              "result": "FAIL! (Expected 0x12a30553)"
            },
            "computed_values": {
              "LE": {
                "value": "0x4B575DFB",
                "result": "FAIL! (Expected 0x12a30553)"
              },
              "BE": {
                "value": "0x9ED08EA8",
                "result": "FAIL! (Expected 0xe3222ac8)"
              }
            },
            "registered_expected_values": {
              "LE": "0x12A30553",
              "BE": "0xE3222AC8"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "NMHASH",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "NMHASH",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/NMHASH.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:32.621354+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:32.625910+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:33.178928+00:00",
                "elapsed_seconds": 0.5529825410000004,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:33.184086+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "49fb51d7cbb57a5b64e5d6788057f0d2d19881747c2005af27423125cb70e996",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x4B575DFB",
                  "result": "FAIL! (Expected 0x12a30553)"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Verification value LE 0x4B575DFB ...... FAIL! (Expected 0x12a30553)"
                ],
                "status": "FAIL"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x4B575DFB",
                  "result": "FAIL! (Expected 0x12a30553)"
                },
                "BE": {
                  "value": "0x9ED08EA8",
                  "result": "FAIL! (Expected 0xe3222ac8)"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x12A30553",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xE3222AC8",
                  "result": "PASS"
                }
              }
            },
            "mismatches": [
              {
                "source": "existing_Xeon",
                "mode": "LE",
                "expected": "0x12A30553",
                "observed": "0x4B575DFB"
              },
              {
                "source": "existing_Xeon",
                "mode": "BE",
                "expected": "0xE3222AC8",
                "observed": "0x9ED08EA8"
              }
            ]
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 6.88,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/NMHASH/Xeon8375C",
          "registered_name": "NMHASH",
          "host": "Xeon8375C",
          "backend_token": "avx512",
          "backend_note": "avx512",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.14556040756914523,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 59.96,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/NMHASH/M2Pro",
          "registered_name": "NMHASH",
          "host": "M2Pro",
          "backend_token": "scalar",
          "backend_note": "scalar",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 6.804536357571722,
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0x4B575DFB",
              "result": "FAIL! (Expected 0x12a30553)"
            },
            "computed_values": {
              "LE": {
                "value": "0x4B575DFB",
                "result": "FAIL! (Expected 0x12a30553)"
              },
              "BE": {
                "value": "0x9ED08EA8",
                "result": "FAIL! (Expected 0xe3222ac8)"
              }
            },
            "registered_expected_values": {
              "LE": "0x12A30553",
              "BE": "0xE3222AC8"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "NMHASH",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "NMHASH",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/NMHASH.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:32.621354+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:32.625910+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:33.178928+00:00",
                "elapsed_seconds": 0.5529825410000004,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:33.184086+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "49fb51d7cbb57a5b64e5d6788057f0d2d19881747c2005af27423125cb70e996",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x4B575DFB",
                  "result": "FAIL! (Expected 0x12a30553)"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Verification value LE 0x4B575DFB ...... FAIL! (Expected 0x12a30553)"
                ],
                "status": "FAIL"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x4B575DFB",
                  "result": "FAIL! (Expected 0x12a30553)"
                },
                "BE": {
                  "value": "0x9ED08EA8",
                  "result": "FAIL! (Expected 0xe3222ac8)"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x12A30553",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xE3222AC8",
                  "result": "PASS"
                }
              }
            },
            "mismatches": [
              {
                "source": "existing_Xeon",
                "mode": "LE",
                "expected": "0x12A30553",
                "observed": "0x4B575DFB"
              },
              {
                "source": "existing_Xeon",
                "mode": "BE",
                "expected": "0xE3222AC8",
                "observed": "0x9ED08EA8"
              }
            ]
          }
        },
        "smh_xeon_small_cycles": {
          "value": 49.21,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/NMHASH/Xeon8375C",
          "registered_name": "NMHASH",
          "host": "Xeon8375C",
          "backend_token": "avx512",
          "backend_note": "avx512",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.020321072952644847,
          "verification": {}
        }
      },
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "reproduction": {
        "status": "standalone program supplied",
        "directory": "verify/nmhash32/README.html",
        "source": "verify/nmhash32/nmhash32_verify.c",
        "command": "cc -O2 -std=c11 -o nmhash32_verify nmhash32_verify.c -lm && ./nmhash32_verify 20",
        "trials": 1048576,
        "rng": "splitmix64-seeded xoshiro256**, one stream, default seed 1",
        "note": "Small package checks are separate from the historical large measurements."
      },
      "speed_registration": "NMHASH",
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "narrow 16-bit multiplies",
      "rurban_alias": "nmhash32",
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Seed enters the y lanes and their additions before fixed 16-bit lane multiplications.",
      "multicollision": {
        "tier": "weak-key",
        "text": "Weak-key multicollision: 2^n inputs collide for 2^-(n+0.9) of seeds (k=4 for 12.6%, exact over all 2^32 seeds; k=16 for 3.2%; 2^16 at 2^-16.8)."
      }
    },
    {
      "id": "nmhash32x",
      "pattern": [
        "P7"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/nmhash.cpp",
      "name": "nmhash32x v2",
      "version": "v2",
      "label": "nmhash32x v2",
      "anchor": "appendix-nmhash32x",
      "family": "heuristic",
      "claim_id": "nmhash32x",
      "key_bits": 32,
      "output_bits": 32,
      "key_model": "32 (same `uint32_t seed` API as NMHASH32; SMHasher3 FLAG_HASH_SMALL_SEED). For 9..255 B the y and b streams are affine in (seed, message) and the seed meets the x stream only through y. For a uniform 32-bit seed, fixed-pair probabilities are integer multiples of 2^-32; nonzero probabilities are at least 2^-32, not at most that value.",
      "status": "NEW",
      "classification_reason": "No prior literature identified in the supplied checked record.",
      "prior_work": [],
      "official_claim": {
        "text": "Both hashes are the same high quality, and pass the checking:",
        "verbatim_record": "Both hashes are the same high quality, and pass the checking:\n\n- [rurban/smhasher](https://github.com/rurban/smhasher), including LongNeighbors and BadSeeds\n- [demerphq/smhasher](https://github.com/demerphq/smhasher/)\n- [massive collision tester](https://github.com/Cyan4973/xxHash/tree/dev/tests/collisions), 1G, len=8,16,256 | `NMHASH32X` is a variant of `NMHASH32`, which mixes short keys with 32x32->32 `MUL`, and improve the speed of short keys.",
        "url": "https://github.com/gzm55/hash-garage/blob/master/README.md",
        "context": "The README's '### Quality' section is a statistical-test claim (rurban/smhasher, demerphq/smhasher, xxHash collision tester); neither the README, nmhash.h nor the rurban issues make any seeded, adversarial or security statement. The post's collision result therefore contradicts no stated claim; it shows the 32-bit seed gives no adversarial guarantee.",
        "source_record": "README.md section '### Quality', https://github.com/gzm55/hash-garage/blob/master/README.md; rurban/smhasher issue #194 'Add NMHASH32X variant of NMHASH32', opening post by gzm55, 2021-04-22, https://github.com/rurban/smhasher/issues/194. No security statement anywhere.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 150,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "failed_tests": [
          "BIC",
          "Zeroes",
          "Sparse",
          "Permutation",
          "TwoBytes",
          "PerlinNoise",
          "Bitflip",
          "SeedZeroes",
          "SeedBlockLen",
          "SeedBlockOffset",
          "Seed",
          "SeedBIC",
          "SeedBitflip"
        ],
        "provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "00000000000000000000000000000000000000000000000000000000",
        "m_prime_hex": "08800008088000080000000000000000000000000000088080000880",
        "lengths_bytes": [
          28,
          28
        ],
        "L_words": 4,
        "verifier_confirmed": true,
        "example_seed_raw": "0x00000000",
        "example_key_words_hex": [
          "00000000"
        ],
        "example_output_hex": "dc5952ce",
        "outputs": {
          "m": "dc5952ce",
          "m_prime": "dc5952ce"
        },
        "recorded_examples": "0x00000000 -> both dc5952ce; 0x00000001 -> both b4e64737; 0xdeadbeef -> both e79bc644; 0xffffffff -> both a0a1d8b2 (all reproduced by the verifier); verifier's own 0xc78b9a30 -> both 73b04a67.",
        "provenance": [
          "records/README.html"
        ]
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0.0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "count": 4294967296,
        "trials": 4294967296,
        "interpretation": "Public-state equality proves all-seed collision; corroborated by independent measurement"
      },
      "score": {
        "calculated": 2.0,
        "display": 2.0,
        "display_text": "at most 2 bits (cap)",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(4) - (0.0)"
      },
      "bits": 2.0,
      "bits_kind": "exact",
      "mechanism": "Delta = 0x08008008 on both words of an x-stream round leaves x^y unchanged; the y difference re-enters as rotl(Delta,4) = 0x80080080, which x ^= x>>12 turns into exactly 2^31 before the odd 32-bit multiply (an odd multiply preserves a top-bit XOR difference exactly), giving 0x80080000; the len-8 and len-4 tail words (bytes 20..23 ^= 0x80080000, bytes 24..27 ^= 0x80080080) cancel both registers before any seed-dependent operation.",
      "notes": "NMHASH32X v2 is a separate function from NMHASH32, with 32×32 short-key multiplication, a 32-bit seed, 32-bit output and verification 0xA8580227. It has its own row and witness. Its statistical failures and host-specific timings must not be merged with NMHASH32’s; these timings use scalar code on M2 Pro and AVX-512 on Xeon.",
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. NMHASH32X v2 is a separate function from NMHASH32, with 32×32 short-key multiplication, a 32-bit seed, 32-bit output and verification 0xA8580227. It has its own row and witness. Its statistical failures and host-specific timings must not be merged with NMHASH32’s; these timings use scalar code on M2 Pro and AVX-512 on Xeon.",
      "version_record": "NMHASH32X v2, additional variant of NMHASH32 from the same nmhash.h (32x32->32 multiplies for short keys and the final avalanche); SMHasher3 'NMHASHX' = 'nmhash32x v2', hashes/nmhash.cpp, SRC_STABLEISH, FLAG_HASH_SMALL_SEED, verification_LE 0xA8580227; rurban nmhash32x 0xA8580227 (added via rurban/smhasher issue #194, 2021-04-22). Additional-variant row (like the a5hash 128-bit row), not one of the six dossier entries; drop if one row per dossier hash is wanted. Re-checked 2026-09-18/19: hash-garage HEAD e022156 (2024-12-15; last algorithmic change to nmhash.h 8dbdc6f 2021-06-09, 7712708 only removes signed-int UB) and SMHasher3 HEAD 3b619371 (2026-08-27; hashes/nmhash.cpp unchanged since ada30173, 2023-11-28, empty diff against 7ad8939d). Pair re-enumerated over all 2^32 seeds against upstream nmhash.h at e022156 (SSE2 and AVX-512 builds): 4294967296/4294967296 for the 28-, 32- and 33-byte pairs.",
      "hover": {
        "mechanism": "Delta = 0x08008008 on both words of an x-stream round leaves x^y unchanged; the y difference re-enters as rotl(Delta,4) = 0x80080080, which x ^= x>>12 turns into exactly 2^31 before the odd 32-bit multiply (an odd multiply preserves a top-bit XOR difference exactly), giving 0x80080000; the len-8 and len-4 tail words (bytes 20..23 ^= 0x80080000, bytes 24..27 ^= 0x80080080) cancel both registers before any seed-dependent operation.",
        "claim_note": "NEW; verbatim excerpt; NMHASH32X v2 is a separate function from NMHASH32, with 32×32 short-key multiplication, a 32-bit seed, 32-bit output and verification 0xA8580227. It has its own row and witness. Its statistical failures and host-specific timings must not be merged with NMHASH32’s; these timings use scalar code on M2 Pro and AVX-512 on Xeon."
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 1.94,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/NMHASHX/M2Pro",
          "registered_name": "NMHASHX",
          "host": "M2Pro",
          "backend_token": "scalar",
          "backend_note": "scalar",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 4.3010752688172005,
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0x9CF42B2D",
              "result": "FAIL! (Expected 0xa8580227)"
            },
            "computed_values": {
              "LE": {
                "value": "0x9CF42B2D",
                "result": "FAIL! (Expected 0xa8580227)"
              },
              "BE": {
                "value": "0x3E08D2D5",
                "result": "FAIL! (Expected 0x83b36886)"
              }
            },
            "registered_expected_values": {
              "LE": "0xA8580227",
              "BE": "0x83B36886"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "NMHASHX",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "NMHASHX",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/NMHASHX.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:33.188687+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:33.193304+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:33.735947+00:00",
                "elapsed_seconds": 0.5426106669999999,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:33.741066+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "b33f86ebcdd8464963628a74f92323ace63cf156fe7710c5b5c2c4ac3e15584d",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x9CF42B2D",
                  "result": "FAIL! (Expected 0xa8580227)"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Verification value LE 0x9CF42B2D ...... FAIL! (Expected 0xa8580227)"
                ],
                "status": "FAIL"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x9CF42B2D",
                  "result": "FAIL! (Expected 0xa8580227)"
                },
                "BE": {
                  "value": "0x3E08D2D5",
                  "result": "FAIL! (Expected 0x83b36886)"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0xA8580227",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x83B36886",
                  "result": "PASS"
                }
              }
            },
            "mismatches": [
              {
                "source": "existing_Xeon",
                "mode": "LE",
                "expected": "0xA8580227",
                "observed": "0x9CF42B2D"
              },
              {
                "source": "existing_Xeon",
                "mode": "BE",
                "expected": "0x83B36886",
                "observed": "0x3E08D2D5"
              }
            ]
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 6.88,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/NMHASHX/Xeon8375C",
          "registered_name": "NMHASHX",
          "host": "Xeon8375C",
          "backend_token": "avx512",
          "backend_note": "avx512",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 37.18,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/NMHASHX/M2Pro",
          "registered_name": "NMHASHX",
          "host": "M2Pro",
          "backend_token": "scalar",
          "backend_note": "scalar",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.259279182356111,
          "verification": {
            "status": "FAIL",
            "observed": {
              "mode": "LE",
              "value": "0x9CF42B2D",
              "result": "FAIL! (Expected 0xa8580227)"
            },
            "computed_values": {
              "LE": {
                "value": "0x9CF42B2D",
                "result": "FAIL! (Expected 0xa8580227)"
              },
              "BE": {
                "value": "0x3E08D2D5",
                "result": "FAIL! (Expected 0x83b36886)"
              }
            },
            "registered_expected_values": {
              "LE": "0xA8580227",
              "BE": "0x83B36886"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "NMHASHX",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "NMHASHX",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/NMHASHX.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:33.188687+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:33.193304+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:33.735947+00:00",
                "elapsed_seconds": 0.5426106669999999,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:33.741066+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.29 3.15 3.23",
                  "load1": 3.29,
                  "load5": 3.15,
                  "load15": 3.23
                },
                "raw_sha256": "b33f86ebcdd8464963628a74f92323ace63cf156fe7710c5b5c2c4ac3e15584d",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x9CF42B2D",
                  "result": "FAIL! (Expected 0xa8580227)"
                },
                "pass_checks": 6,
                "failure_lines": [
                  "Verification value LE 0x9CF42B2D ...... FAIL! (Expected 0xa8580227)"
                ],
                "status": "FAIL"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x9CF42B2D",
                  "result": "FAIL! (Expected 0xa8580227)"
                },
                "BE": {
                  "value": "0x3E08D2D5",
                  "result": "FAIL! (Expected 0x83b36886)"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0xA8580227",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x83B36886",
                  "result": "PASS"
                }
              }
            },
            "mismatches": [
              {
                "source": "existing_Xeon",
                "mode": "LE",
                "expected": "0xA8580227",
                "observed": "0x9CF42B2D"
              },
              {
                "source": "existing_Xeon",
                "mode": "BE",
                "expected": "0x83B36886",
                "observed": "0x3E08D2D5"
              }
            ]
          }
        },
        "smh_xeon_small_cycles": {
          "value": 30.62,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/NMHASHX/Xeon8375C",
          "registered_name": "NMHASHX",
          "host": "Xeon8375C",
          "backend_token": "avx512",
          "backend_note": "avx512",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.16329196603528384,
          "verification": {}
        }
      },
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "reproduction": {
        "status": "standalone program supplied",
        "directory": "verify/nmhash32x/README.html",
        "source": "verify/nmhash32x/nmhash32x_verify.c",
        "command": "cc -O2 -std=c11 -o nmhash32x_verify nmhash32x_verify.c -lm && ./nmhash32x_verify 20",
        "trials": 1048576,
        "rng": "splitmix64-seeded xoshiro256**, one stream, default seed 1",
        "note": "Small package checks are separate from the historical large measurements."
      },
      "speed_registration": "NMHASHX",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "32-bit lane multiplies",
      "rurban_alias": null,
      "claim_category": "statistical quality only",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "The selected 28-byte path uses 32×32 fixed-constant multiplication of seed-combined lanes, not the 16-bit nmhash32 mixer.",
      "tested_version": "NMHASHX v2; results/README.md and results/raw/NMHASHX.txt at 3b619371 (run with [avx2])",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: two independent cancelling trails give 4^(m-1) colliding inputs at 16m bytes, capped near 2^28, for every seed (verified 2^16 at 144 bytes, 65536/65536 seeds)."
      }
    },
    {
      "id": "gx",
      "pattern": [
        "P2",
        "P5"
      ],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/gxhash.cpp",
      "name": "gxhash-64 v3.5.0",
      "claim_id": "gxhash",
      "output_bits": 64,
      "key_bits": 64,
      "key_model": "Uniform 64-bit seed; public-compression collision also defeats full 128-bit output.",
      "status": "EXTENSION",
      "classification_reason": "Peters, gxhash issue #83 (2024), and purplesyringa’s seed-after-compression observation; shorter and cross-length witnesses.",
      "official_claim": {
        "text": "seeded (with seed randomization) to improve DOS resistance",
        "url": "https://github.com/ogxd/gxhash/blob/main/README.md",
        "context": "Same paragraph calls these basic safeguards and disclaims security against all attacks.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 226,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "Sparse",
          "TwoBytes",
          "SeedZeroes",
          "SeedSparse",
          "Seed"
        ],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "000000000000000000000000000000",
        "m_prime_hex": "ffffffffffffffffffffffffffffffff",
        "verifier_confirmed": true,
        "example_seed_raw": "0xf556ecbfcbfee3ad",
        "provenance": [
          "records/README.html"
        ],
        "implementation_validation": "Own single-file re-implementation (gxhash_impl.h: portable table AES round + ARMv8 NEON-AES + x86 AES-NI paths) reproduces both SMHasher3 verification values by the SMHasher3 procedure (keys {}, {0}, {0,1}, ..., 255 bytes with seed 256-i, then the concatenation hashed with seed 0, first 4 bytes LE):",
        "lengths_bytes": [
          15,
          16
        ],
        "L_words": 2,
        "example_key_words_hex": [
          "f556ecbfcbfee3ad"
        ],
        "example_output_hex": "43ec3783791d0fb8",
        "output_order": "64-bit integer"
      },
      "collision": {
        "display": "every key",
        "log2_contribution": 0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "interpretation": "Exact sufficient event"
      },
      "score": {
        "calculated": 1.0,
        "display": 1.0,
        "display_text": "at most 1 bits (cap)",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(2) - (0)"
      },
      "notes": "15 versus 16 bytes. Equal-length 24-byte witness gives 1.585 bits; both verified. Upstream main unchanged since the ported commit 55bde47 (checked 2026-09-18); crates.io newest 3.5.0.",
      "provenance": [
        "records/README.html",
        "records/README.html"
      ],
      "other_pair": {
        "m_hex": "000000000000000000000000000000000000000000000000",
        "m_prime_hex": "0100000000000000a803d3a0b6cb85eb1120e4f3a270c9a6",
        "verifier_confirmed": true,
        "example_seed_raw": "0xd73a9a3d941e7ec7 (also 0x0123456789abcdef: gxhash64 = 69ccb8a053812a7b for both; server run example 0x51858a7ca35ed1ce)",
        "provenance": [
          "records/README.html"
        ],
        "implementation_validation": "Own single-file re-implementation (gxhash_impl.h: portable table AES round + ARMv8 NEON-AES + x86 AES-NI paths) reproduces both SMHasher3 verification values by the SMHasher3 procedure (keys {}, {0}, {0,1}, ..., 255 bytes with seed 256-i, then the concatenation hashed with seed 0, first 4 bytes LE):"
      },
      "version": "v3.5.0",
      "label": "gxhash-64",
      "anchor": "appendix-gxhash",
      "mechanism": "A cross-length public-compression collision survives every seed.",
      "family": "heuristic",
      "bits": 1.0,
      "bits_kind": "exact",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 31.81,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/gxhash-64/M2Pro",
          "registered_name": "gxhash-64",
          "host": "M2Pro",
          "backend_token": "g+arm",
          "backend_note": "g+arm",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.4476650563606928,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x48F84240",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x48F84240",
                "result": "PASS"
              },
              "NE": {
                "value": "0x48F84240",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x48F84240",
              "NE": "0x48F84240"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "gxhash-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "gxhash-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/gxhash-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:28.272768+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:28.277134+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:28.745688+00:00",
                "elapsed_seconds": 0.4685195000000002,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:28.751064+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "cb6c89ce278ec2a7c89e1ced97a013f49b0a0da20111fea158abbba5e3ba3ef9",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x48F84240",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x48F84240",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x48F84240",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x48F84240",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x48F84240",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 18.28,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/gxhash-64/Xeon8375C",
          "registered_name": "gxhash-64",
          "host": "Xeon8375C",
          "backend_token": "sse2+aesni",
          "backend_note": "sse2+aesni",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.05473453749316182,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 40.02,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/gxhash-64/M2Pro",
          "registered_name": "gxhash-64",
          "host": "M2Pro",
          "backend_token": "g+arm",
          "backend_note": "g+arm",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.9990004997501254,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x48F84240",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x48F84240",
                "result": "PASS"
              },
              "NE": {
                "value": "0x48F84240",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x48F84240",
              "NE": "0x48F84240"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "gxhash-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "gxhash-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/gxhash-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:28.272768+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:28.277134+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:28.745688+00:00",
                "elapsed_seconds": 0.4685195000000002,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:28.751064+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "cb6c89ce278ec2a7c89e1ced97a013f49b0a0da20111fea158abbba5e3ba3ef9",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x48F84240",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "CE": {
                  "value": "0x48F84240",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x48F84240",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "CE": {
                  "value": "0x48F84240",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x48F84240",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 31.35,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/gxhash-64/Xeon8375C",
          "registered_name": "gxhash-64",
          "host": "Xeon8375C",
          "backend_token": "sse2+aesni",
          "backend_note": "sse2+aesni",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        }
      },
      "qualification": "Exact sufficient contribution; other pairs or collision events may lower the score. 15 versus 16 bytes. Equal-length 24-byte witness gives 1.585 bits; both verified.",
      "hover": {
        "mechanism": "A cross-length public-compression collision survives every seed.",
        "quote": "seeded … to improve DOS resistance"
      },
      "speed_registration": "gxhash-64",
      "chart_eligible": true,
      "key_free": true,
      "mechanism_family": "keyed AES rounds",
      "rurban_alias": null,
      "claim_category": "keyed collision / DoS claim",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "family_definition": "Message and key combine through AES rounds.",
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: invert the two public AES rounds to build 2^(8(len-16)) inputs that collide for every seed (verified 2^16 at 24 bytes, 4096/4096 seeds)."
      }
    },
    {
      "id": "ahash",
      "pattern": [],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/rust-ahash.cpp",
      "name": "aHash 0.8.12, AES path",
      "claim_id": "ahash",
      "output_bits": 64,
      "key_bits": 256,
      "key_model": "Four independent uniform internal RandomState words (RandomState::with_seeds(a,b,c,d) with uniform arguments, which XOR with PI2 bijectively). Confirmed natively against the ahash crate v0.8.12 and master a9d649d, and by the validated C reproduction.",
      "status": "NEW",
      "classification_reason": "New two-S-box inverse-AES lane-echo trail on the long path, plus the earlier shuffled-sum trail.",
      "official_claim": {
        "text": "designed to prevent an adversary that does not know the key from being able to create hash collisions or partial collisions.",
        "url": "https://github.com/tkaitchuck/aHash/blob/master/FAQ.md",
        "context": "The project disclaims cryptographic security and limits intended use to in-memory hashmaps.",
        "provenance": "records/README.html"
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 242,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "provenance": "records/README.html",
        "failed_tests": [
          "Sparse",
          "TwoBytes"
        ],
        "failed_tests_provenance": "records/README.html"
      },
      "pair": {
        "m_hex": "0000000000000000000000000000000000000000000000007c067e7b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008008828000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "m_prime_hex": "00000000000000000000000000000000000000000000000081088180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007d067d7b00000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "verifier_confirmed": true,
        "example_seed_raw": "RandomState::with_seeds(0x4b3f63b8a19c360e, 0xf05118d60e0525b0, 0xa6f0ee26a9af96a8, 0x020438fb7c0bf75e); internal k_i = argument_i XOR PI2[i]",
        "provenance": [
          "verify/rust-ahash/README.html",
          "verify/rust-ahash/README.html",
          "verify/rust-ahash/README.html"
        ],
        "implementation_validation": "SMHasher3 verification value rust_ahash 0x3BF4383B checked at startup of the C sampler; independent verifier used the upstream crate ahash 0.8.12 (crates.io), AES path (target-feature aes,ssse3), RandomState::with_seeds with four uniform u64.",
        "lengths_bytes": [
          424,
          424
        ],
        "L_words": 53,
        "example_key_words_hex": [
          "0e17425e994c2579",
          "4e057e193aec29dc",
          "665cc79160d3c675",
          "3d80ed4ec94cfe49"
        ],
        "example_output_hex": "93ecf09ded4decc5",
        "pair_id": "E (two-S-box lane echo on the >64-byte path, AES lane 1: tail byte 384 injects one byte at seeding, block-1 bytes 24..27 cancel it through one inverse S-box, block-5 byte 280 re-injects, block-6 bytes 344..347 cancel; the additive-lane residues 5,3,2,5,5 line up after the shuffles and cancel)",
        "example_with_seeds_arguments_hex": [
          "4b3f63b8a19c360e",
          "f05118d60e0525b0",
          "a6f0ee26a9af96a8",
          "020438fb7c0bf75e"
        ],
        "example_key_model": "example_key_words_hex are internal RandomState words; example_with_seeds_arguments_hex are public API arguments"
      },
      "collision": {
        "display": "about 2^-12.12 of keys (sampled; 967,503 events / 2^32 keys, native Rust crate 0.8.12)",
        "log2_contribution": -12.1161,
        "exact_contribution": false,
        "total_equality_proved": false,
        "interpretation": "Measured rate or class-density-weighted measured rate",
        "count": 967503,
        "trials": 4294967296,
        "trials_log2": 32,
        "epsilon_95_interval": [
          0.00022482,
          0.00022571
        ],
        "interval_method": "central equal-tail exact Poisson (Garwood)",
        "supporting_runs": [
          {
            "label": "C reproduction, 2^24 keys, four-word model",
            "count": 3783,
            "trials_log2": 24,
            "rate_log2": -12.11,
            "source": "verify/rust-ahash/README.html"
          },
          {
            "label": "historical selected pair A_2 (56 B, L = 7), native crate",
            "count": 6250,
            "trials_log2": 32,
            "rate_log2": -19.39,
            "cap_bits": 22.2,
            "source": "verify/rust-ahash/native/run_echo_xeon.txt"
          }
        ]
      },
      "score": {
        "calculated": 17.844,
        "display": 17.84,
        "display_text": "at most 17.84 bits (cap; sampled); 95% interval 17.84–17.85",
        "direction": "estimated_upper_bound",
        "rounding": "nearest",
        "derivation": "log2(53) - (-12.1161)",
        "approximate_95_half_width_bits": 0.003,
        "interval_95_bits": [
          17.841,
          17.847
        ]
      },
      "notes": "Pair E (424 B, L = 53): on the >64-byte path aHash runs four AES lanes and two additive lanes. A one-byte difference the tail puts into AES lane 1 is cancelled by the next 64-byte block through a single inverse S-box (difference-table entry 4/256); the same lane takes a second one-byte difference six loop iterations later and cancels it the same way, and by then the five byte differences the first injection left in the additive lane have been shuffled onto the five bytes of the second cancellation, so they cancel additively. Two S-boxes at 4/256 plus small carry terms give the measured 2^-12.12, 0.12 bits under the two-S-box floor 2^-12. A permissive truncated-trail enumeration with a GF(2^8) feasibility filter finds no one-S-box trail and no two-S-box trail before six iterations, so within this family only the length can still improve (by about 0.2 bits; six iterations need at least 385 B). The pair does not collide under SMHasher3's correlated-seed convention with_seeds(s,s,s,s) (0 in 2^24), because the two lanes' keys must be independent for both S-box transitions to fire; the scored model is the real RandomState. The earlier selected pair A_2 (56 B, three S-boxes, 2^-19.39, 22.2 bits) remains documented as historical.",
      "provenance": [
        "verify/rust-ahash/README.html",
        "verify/rust-ahash/README.html",
        "records/README.html",
        "records/README.html",
        "verify/rust-ahash/README.html"
      ],
      "version": "0.8.12, AES path",
      "label": "aHash AES",
      "anchor": "appendix-ahash",
      "mechanism": "A two-S-box inverse-AES 'lane echo' on the long path: one lane cancels a byte difference twice, six blocks apart, and the shuffled-addition lane cancels the residue.",
      "family": "heuristic",
      "bits": 17.844,
      "bits_kind": "measured",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "data.json#/heuristics",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 1.12,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/rust-ahash/M2Pro",
          "registered_name": "rust-ahash",
          "host": "M2Pro",
          "backend_token": "portable",
          "backend_note": "portable",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.752293577981657,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x3BF4383B",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x3BF4383B",
                "result": "PASS"
              },
              "BE": {
                "value": "0x1B4F8057",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x3BF4383B",
              "BE": "0x1B4F8057"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "rust-ahash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "rust-ahash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/rust-ahash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:28.756154+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:28.760513+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:29.377940+00:00",
                "elapsed_seconds": 0.6173910000000005,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:29.383034+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "3156eefa4554a4209c79f62109a907569201e988715bc3cc86966c2802734122",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x3BF4383B",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x3BF4383B",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x1B4F8057",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x3BF4383B",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x1B4F8057",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 0.81,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/rust-ahash/Xeon8375C",
          "registered_name": "rust-ahash",
          "host": "Xeon8375C",
          "backend_token": "ssse3",
          "backend_note": "ssse3",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 39.3,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/rust-ahash/M2Pro",
          "registered_name": "rust-ahash",
          "host": "M2Pro",
          "backend_token": "portable",
          "backend_note": "portable",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 1.3486005089058617,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x3BF4383B",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x3BF4383B",
                "result": "PASS"
              },
              "BE": {
                "value": "0x1B4F8057",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x3BF4383B",
              "BE": "0x1B4F8057"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "rust-ahash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "rust-ahash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/rust-ahash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:28.756154+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:28.760513+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:29.377940+00:00",
                "elapsed_seconds": 0.6173910000000005,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:29.383034+00:00",
                  "uptime": "11:49  up 23:40, 1 user, load averages: 3.40 3.17 3.23",
                  "load1": 3.4,
                  "load5": 3.17,
                  "load15": 3.23
                },
                "raw_sha256": "3156eefa4554a4209c79f62109a907569201e988715bc3cc86966c2802734122",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x3BF4383B",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x3BF4383B",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x1B4F8057",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x3BF4383B",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x1B4F8057",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 79.77,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/rust-ahash/Xeon8375C",
          "registered_name": "rust-ahash",
          "host": "Xeon8375C",
          "backend_token": "ssse3",
          "backend_note": "ssse3",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        }
      },
      "qualification": "at most 17.84 bits (cap; sampled); 95% about ±0.003 bits. Native Rust (crate v0.8.12, x86-64 with target-feature aes) measures 967,503/2^32 = 2^-12.116 for pair E; the C reproduction gives 3783/2^24 = 2^-12.11. About 17.6 bits is the floor of this two-S-box lane-echo family (2^-12 at L = 49); a one-S-box trail is excluded by enumeration, so a different family would be needed to go lower. Transfer to another key type or write sequence remains conditional on the mapping and AES backend.",
      "hover": {
        "mechanism": "A two-S-box inverse-AES 'lane echo' on the long path: one lane cancels a byte difference twice, six blocks apart, and the shuffled-addition lane cancels the residue.",
        "quote": "prevent an adversary … create hash collisions …"
      },
      "speed_registration": "rust-ahash",
      "chart_eligible": true,
      "key_free": false,
      "mechanism_family": "keyed AES rounds",
      "rurban_alias": "ahash64",
      "claim_category": "keyed collision / DoS claim",
      "input_domain": "Variable-length byte strings; selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "deployment_transfer": "A native Rust run (crate v0.8.12, x86-64 with target-feature aes) reproduces the explicit key and measures 967,503/2^32 = 2^-12.116 for pair E; the C reproduction and SMHasher3 consistency agree. The pair needs independent RandomState words (it does not fire under with_seeds(s,s,s,s)). Transfer to another key type or write sequence remains conditional on the mapping and AES backend.",
      "family_definition": "Message and key combine through AES rounds.",
      "prior_work": [
        {
          "label": "Disclosure, 2026-09-18",
          "url": "https://github.com/tkaitchuck/aHash/issues/292"
        }
      ],
      "reproduction": {
        "status": "standalone and upstream checks reproduced; observed Xeon counts recorded",
        "directory": "verify/rust-ahash/README.html",
        "readme": "verify/rust-ahash/README.html",
        "observed": "verify/rust-ahash/native/run_echo_xeon.txt"
      }
    },
    {
      "id": "siphash-1-3",
      "pattern": [],
      "name": "SipHash-1-3",
      "label": "SipHash-1-3",
      "family": "heuristic",
      "version": "1-3",
      "anchor": "appendix-siphash",
      "bits": 64,
      "bits_kind": "claimed",
      "score": {
        "calculated": 64,
        "display": "64",
        "display_text": "64 bits · cryptographic assumption; best known attack far below 2^-64 (see records/README.html)",
        "direction": "claim"
      },
      "key_bits": 128,
      "output_bits": 64,
      "key_model": "uniform 128-bit key; benchmark wrapper uses its registered seed expansion",
      "key_free": false,
      "chart_eligible": true,
      "status": "comparison",
      "claim_category": "PRF",
      "official_claim": {
        "text": "I would be very surprised if SipHash-1-3 introduced weaknesses for hash tables (J.-P. Aumasson, 2015, on Rust's switch to SipHash-1-3); the designers' PRF claim in the SipHash paper is stated for c ≥ 2, d ≥ 4 only",
        "url": "https://github.com/rust-lang/rust/issues/29754"
      },
      "mechanism": "ARX permutation keyed by a 128-bit key (PRF)",
      "qualification": "Plotted as an unresolved claim at its 64-bit output width. This audit supplies neither a proof nor a counterexample for these SipHash bounds. The cited 2014 analysis reports collision characteristics of 2^-167 for SipHash-1-x and 2^-236.3 for full SipHash-2-4 (Dobraunig, Mendel and Schläffer, SAC 2014), and our own search over 10,517 XOR differences and fixed pairs at up to 2^28 keys per pair saw nothing above the 2^-26.4 resolution floor (records/README.html). The SMHasher3 wrapper expands a 64-bit seed into the 128-bit key, so the timed function is a 2^64-member subfamily.",
      "speed_registration": "SipHash-1-3",
      "code_url": "https://github.com/veorq/SipHash",
      "collision": {
        "display": "no pair found"
      },
      "pair": null,
      "smhasher3": {
        "verdict": "not supplied"
      },
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 1.13,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SipHash-1-3/M2Pro",
          "registered_name": "SipHash-1-3",
          "host": "M2Pro",
          "backend_token": "portable",
          "backend_note": "portable",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 24.99999999999998,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x8936B193",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x8936B193",
                "result": "PASS"
              },
              "BE": {
                "value": "0xBEB90EAC",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x8936B193",
              "BE": "0xBEB90EAC"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "SipHash-1-3",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "SipHash-1-3",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/SipHash-1-3.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:46.759463+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:46.763893+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:47.363534+00:00",
                "elapsed_seconds": 0.5996099169999987,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:47.369223+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "raw_sha256": "b246701b49da75de7879d7720af5dab50e835716a16c1efe5f199bda2f5afb0b",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xBEB90EAC",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xBEB90EAC",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_m2_small_cycles": {
          "value": 50.39,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SipHash-1-3/M2Pro",
          "registered_name": "SipHash-1-3",
          "host": "M2Pro",
          "backend_token": "portable",
          "backend_note": "portable",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 24.9938499384994,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x8936B193",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x8936B193",
                "result": "PASS"
              },
              "BE": {
                "value": "0xBEB90EAC",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x8936B193",
              "BE": "0xBEB90EAC"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "SipHash-1-3",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "SipHash-1-3",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/SipHash-1-3.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:46.759463+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:46.763893+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:47.363534+00:00",
                "elapsed_seconds": 0.5996099169999987,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:47.369223+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "raw_sha256": "b246701b49da75de7879d7720af5dab50e835716a16c1efe5f199bda2f5afb0b",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xBEB90EAC",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xBEB90EAC",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 1.01,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SipHash-1-3/Xeon8375C",
          "registered_name": "SipHash-1-3",
          "host": "Xeon8375C",
          "backend_token": "ssse3",
          "backend_note": "ssse3",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x8936B193",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x8936B193",
                "result": "PASS"
              },
              "BE": {
                "value": "0xBEB90EAC",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x8936B193",
              "BE": "0xBEB90EAC"
            },
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "SipHash-1-3",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "6",
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "SipHash-1-3",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/SipHash-1-3.sanity.txt",
                "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
                "started": "2026-09-18T09:48:35.776709+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:48:35.779653+00:00",
                  "uptime": "09:48:35 up 6 days, 18:32,  0 users,  load average: 9.45, 9.47, 9.87",
                  "load1": 9.45,
                  "load5": 9.47,
                  "load15": 9.87
                },
                "returncode": 0,
                "finished": "2026-09-18T09:48:36.492245+00:00",
                "elapsed_seconds": 0.7125549330376089,
                "load_after": {
                  "timestamp": "2026-09-18T09:48:36.494965+00:00",
                  "uptime": "09:48:36 up 6 days, 18:32,  0 users,  load average: 9.45, 9.47, 9.87",
                  "load1": 9.45,
                  "load5": 9.47,
                  "load15": 9.87
                },
                "raw_sha256": "61e689373e3ef7bdcb84325844951381c2cb8fa735d5bfb28da9d70d5a66a53c",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xBEB90EAC",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xBEB90EAC",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 70.58,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SipHash-1-3/Xeon8375C",
          "registered_name": "SipHash-1-3",
          "host": "Xeon8375C",
          "backend_token": "ssse3",
          "backend_note": "ssse3",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.43921790875602884,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x8936B193",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x8936B193",
                "result": "PASS"
              },
              "BE": {
                "value": "0xBEB90EAC",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x8936B193",
              "BE": "0xBEB90EAC"
            },
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "SipHash-1-3",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "6",
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "SipHash-1-3",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/SipHash-1-3.sanity.txt",
                "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
                "started": "2026-09-18T09:48:35.776709+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:48:35.779653+00:00",
                  "uptime": "09:48:35 up 6 days, 18:32,  0 users,  load average: 9.45, 9.47, 9.87",
                  "load1": 9.45,
                  "load5": 9.47,
                  "load15": 9.87
                },
                "returncode": 0,
                "finished": "2026-09-18T09:48:36.492245+00:00",
                "elapsed_seconds": 0.7125549330376089,
                "load_after": {
                  "timestamp": "2026-09-18T09:48:36.494965+00:00",
                  "uptime": "09:48:36 up 6 days, 18:32,  0 users,  load average: 9.45, 9.47, 9.87",
                  "load1": 9.45,
                  "load5": 9.47,
                  "load15": 9.87
                },
                "raw_sha256": "61e689373e3ef7bdcb84325844951381c2cb8fa735d5bfb28da9d70d5a66a53c",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xBEB90EAC",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x8936B193",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xBEB90EAC",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        }
      },
      "mechanism_family": "ARX PRF",
      "family_definition": "ARX permutation keyed by a 128-bit key (PRF).",
      "score_display": "64 bits · claim",
      "hover": "SipHash-1-3: 64-bit output; PRF design, unproven, no known attack. Rust std HashMap default (SipHash-1-3). Bulk speed is the price of the cryptographic option.",
      "bound": "≈ 1/2^64 per fixed pair if the PRF claim holds (unproven)"
    },
    {
      "id": "siphash-2-4",
      "pattern": [],
      "name": "SipHash-2-4",
      "label": "SipHash-2-4",
      "family": "heuristic",
      "version": "2-4",
      "anchor": "appendix-siphash",
      "bits": 64,
      "bits_kind": "claimed",
      "score": {
        "calculated": 64,
        "display": "64",
        "display_text": "64 bits · cryptographic assumption; best known attack far below 2^-64 (see records/README.html)",
        "direction": "claim"
      },
      "key_bits": 128,
      "output_bits": 64,
      "key_model": "uniform 128-bit key; benchmark wrapper uses its registered seed expansion",
      "key_free": false,
      "chart_eligible": true,
      "status": "comparison",
      "claim_category": "PRF",
      "official_claim": {
        "text": "a fast short-input PRF (designers' security claim, stated for c ≥ 2, d ≥ 4)",
        "url": "https://www.aumasson.jp/siphash/siphash.pdf"
      },
      "mechanism": "ARX permutation keyed by a 128-bit key (PRF)",
      "qualification": "Plotted as an unresolved claim at its 64-bit output width. This audit supplies neither a proof nor a counterexample for these SipHash bounds. The cited 2014 analysis reports collision characteristics of 2^-167 for SipHash-1-x and 2^-236.3 for full SipHash-2-4 (Dobraunig, Mendel and Schläffer, SAC 2014), and our own search over 10,517 XOR differences and fixed pairs at up to 2^28 keys per pair saw nothing above the 2^-26.4 resolution floor (records/README.html). The SMHasher3 wrapper expands a 64-bit seed into the 128-bit key, so the timed function is a 2^64-member subfamily.",
      "speed_registration": "SipHash-2-4",
      "code_url": "https://github.com/veorq/SipHash",
      "collision": {
        "display": "no pair found"
      },
      "pair": null,
      "smhasher3": {
        "verdict": "not supplied"
      },
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 0.59,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SipHash-2-4/M2Pro",
          "registered_name": "SipHash-2-4",
          "host": "M2Pro",
          "backend_token": "portable",
          "backend_note": "portable",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x57B661ED",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x57B661ED",
                "result": "PASS"
              },
              "BE": {
                "value": "0x01B634D0",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x57B661ED",
              "BE": "0x01B634D0"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "SipHash-2-4",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "SipHash-2-4",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/SipHash-2-4.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:45.995933+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:46.000420+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:46.749596+00:00",
                "elapsed_seconds": 0.7491379169999988,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:46.754816+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "raw_sha256": "7bc14edd101f95359604cfec28ba5800c6890d444350e4b43ba549bb4db9fa5b",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x01B634D0",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x01B634D0",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_m2_small_cycles": {
          "value": 73.41,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SipHash-2-4/M2Pro",
          "registered_name": "SipHash-2-4",
          "host": "M2Pro",
          "backend_token": "portable",
          "backend_note": "portable",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.14984334559324797,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x57B661ED",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x57B661ED",
                "result": "PASS"
              },
              "BE": {
                "value": "0x01B634D0",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x57B661ED",
              "BE": "0x01B634D0"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "SipHash-2-4",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "SipHash-2-4",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/SipHash-2-4.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:45.995933+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:46.000420+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:46.749596+00:00",
                "elapsed_seconds": 0.7491379169999988,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:46.754816+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.00 3.09 3.20",
                  "load1": 3.0,
                  "load5": 3.09,
                  "load15": 3.2
                },
                "raw_sha256": "7bc14edd101f95359604cfec28ba5800c6890d444350e4b43ba549bb4db9fa5b",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x01B634D0",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x01B634D0",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 0.53,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SipHash-2-4/Xeon8375C",
          "registered_name": "SipHash-2-4",
          "host": "Xeon8375C",
          "backend_token": "ssse3",
          "backend_note": "ssse3",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x57B661ED",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x57B661ED",
                "result": "PASS"
              },
              "BE": {
                "value": "0x01B634D0",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x57B661ED",
              "BE": "0x01B634D0"
            },
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "SipHash-2-4",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "6",
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "SipHash-2-4",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/SipHash-2-4.sanity.txt",
                "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
                "started": "2026-09-18T09:48:36.544519+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:48:36.547060+00:00",
                  "uptime": "09:48:36 up 6 days, 18:32,  0 users,  load average: 9.45, 9.47, 9.87",
                  "load1": 9.45,
                  "load5": 9.47,
                  "load15": 9.87
                },
                "returncode": 0,
                "finished": "2026-09-18T09:48:37.691165+00:00",
                "elapsed_seconds": 1.1440530979307368,
                "load_after": {
                  "timestamp": "2026-09-18T09:48:37.693702+00:00",
                  "uptime": "09:48:37 up 6 days, 18:32,  0 users,  load average: 9.45, 9.47, 9.87",
                  "load1": 9.45,
                  "load5": 9.47,
                  "load15": 9.87
                },
                "raw_sha256": "16310c9f052b613d909f7d327f57534f1ff3a3d90138fc47d7ce5054f6756157",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x01B634D0",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x01B634D0",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 95.55,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/SipHash-2-4/Xeon8375C",
          "registered_name": "SipHash-2-4",
          "host": "Xeon8375C",
          "backend_token": "ssse3",
          "backend_note": "ssse3",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.146520146520146,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x57B661ED",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x57B661ED",
                "result": "PASS"
              },
              "BE": {
                "value": "0x01B634D0",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x57B661ED",
              "BE": "0x01B634D0"
            },
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "SipHash-2-4",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "6",
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "SipHash-2-4",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/SipHash-2-4.sanity.txt",
                "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
                "started": "2026-09-18T09:48:36.544519+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:48:36.547060+00:00",
                  "uptime": "09:48:36 up 6 days, 18:32,  0 users,  load average: 9.45, 9.47, 9.87",
                  "load1": 9.45,
                  "load5": 9.47,
                  "load15": 9.87
                },
                "returncode": 0,
                "finished": "2026-09-18T09:48:37.691165+00:00",
                "elapsed_seconds": 1.1440530979307368,
                "load_after": {
                  "timestamp": "2026-09-18T09:48:37.693702+00:00",
                  "uptime": "09:48:37 up 6 days, 18:32,  0 users,  load average: 9.45, 9.47, 9.87",
                  "load1": 9.45,
                  "load5": 9.47,
                  "load15": 9.87
                },
                "raw_sha256": "16310c9f052b613d909f7d327f57534f1ff3a3d90138fc47d7ce5054f6756157",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x01B634D0",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x57B661ED",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x01B634D0",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        }
      },
      "mechanism_family": "ARX PRF",
      "family_definition": "ARX permutation keyed by a 128-bit key (PRF).",
      "score_display": "64 bits · claim",
      "hover": "SipHash-2-4: 64-bit output; PRF design, unproven, no known attack. The conservative reference parameters. Bulk speed is the price of the cryptographic option.",
      "bound": "≈ 1/2^64 per fixed pair if the PRF claim holds (unproven)"
    },
    {
      "id": "halftime24",
      "pattern": [
        "P3",
        "P5"
      ],
      "name": "HalftimeHash24 (shipped advanced 24-byte API)",
      "label": "HalftimeHash24 shipped",
      "family": "heuristic",
      "bits": 36.39231742277876,
      "bits_kind": "exact",
      "score": {
        "calculated": 36.39231742277876,
        "display": 36.4,
        "display_text": "at most 36.4 bits (cap; counted 2^-32 key class for a fixed equal-length pair, sampled 2^-31.95)",
        "direction": "upper_bound"
      },
      "collision": {
        "display": "at least 1 of every 2^32 keys (counted; equal-length 168-byte Encode3 pair); sampled 76/316053236830 ≈ 2^-31.95, 95% interval [2^-32.30, 2^-31.63]",
        "exact_contribution": true
      },
      "key_free": false,
      "chart_eligible": true,
      "key_bits": null,
      "output_bits": 192,
      "key_model": "independent uniform entropy words; raw fixed-length core",
      "pair": {
        "m_hex": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "m_prime_hex": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "lengths_bytes": [
          168,
          168
        ],
        "L_words": 21,
        "description": "168 zero bytes versus the same input with little-endian word 6 equal to 1 (byte 48 = 0x01); the 24-byte outputs agree whenever the top 32 bits of key word 6 are zero",
        "verifier_confirmed": true
      },
      "unequal_length_pair": {
        "m_hex": "",
        "m_prime_hex": "00",
        "lengths_bytes": [
          0,
          1
        ],
        "L_words": 1,
        "verifier_confirmed": true,
        "note": "0 bits, every key: the raw advanced core does not encode length, so the empty string and one zero byte collide for every key array (1000/1000 checked). The core is fixed-length by design; this record is kept as a note only and the headline uses the equal-length pair."
      },
      "equal_length_pair": {
        "lengths_bytes": [
          168,
          168
        ],
        "L_words": 21,
        "description": "168 zero bytes versus the same input with word 6 equal to 1; b=1",
        "epsilon_lower": "2^-32",
        "score_cap": 36.39231742277876,
        "sample_count": 76,
        "trials": 316053236830,
        "sample_rate": "2^-31.95",
        "interval_95": "[2^-32.30,2^-31.63]"
      },
      "status": "NEW",
      "claim_category": "advertised bound refuted",
      "official_claim": {
        "text": "For HalftimeHash24, and for strings less than an exabyte in length, this is more than 83 bits of entropy",
        "url": "https://arxiv.org/abs/2104.08865"
      },
      "qualification": "Equal-length Encode3 witness refutes the advertised bound: the encoder has distance 1, so a fixed 168-byte pair collides whenever the top 32 bits of one key word are zero. The raw core is fixed-length by design; across unequal lengths it gives 0 bits (see note).",
      "anchor": "appendix-halftime24",
      "code_url": "verify/halftime/verify2/run.cpp",
      "speed_registration": null,
      "smhasher3": {
        "verdict": "Sanity FAIL (append-zeroes), as expected from the length-free core; not in upstream SMHasher3, scratch registration"
      },
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 1.37,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle, median of three; the unmodified header falls back to its scalar path on arm64 because its NEON dispatch does not compile (issue #1, PR #2); with the dispatch fix the same core measures about 5.6",
          "record": "records/halftime24-shipped/speeds_halftime24_shipped.json",
          "url": "records/halftime24-shipped/speeds_halftime24_shipped.json",
          "source_short": "SMHasher3 M2Pro (scalar fallback)"
        },
        "smh_m2_small_cycles": {
          "value": 60.69,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash (scalar fallback)",
          "record": "records/halftime24-shipped/speeds_halftime24_shipped.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": 12.81,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle; scratch registration of the unmodified header (AVX-512 V4<3>), higher of two passes",
          "record": "records/halftime24-shipped/speeds_halftime24_shipped.json",
          "url": "records/halftime24-shipped/speeds_halftime24_shipped.json",
          "source_short": "SMHasher3 Xeon8375C"
        },
        "smh_xeon_small_cycles": {
          "value": 64.91,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "record": "records/halftime24-shipped/speeds_halftime24_shipped.json"
        }
      },
      "mechanism_family": "NH trees",
      "family_definition": "NH keyed pair products, encoding and tree combination; advanced Encode3 core.",
      "version": "upstream header, unmodified (advanced 24-byte API)",
      "notes": " Plotted as shipped, at the author's request, until upstream fixes the encoder: at most 36.4 bits for the full 24-byte value (equal-length Encode3 pair; counted 2^-32 key class, sampled 2^-31.95). Note on unequal lengths: the raw core does not encode length, so the empty string and one zero byte collide for every key, 0 bits; it is fixed-length by design, so the headline uses the equal-length pair. Timings: Xeon AVX-512 path 12.81 B/cycle; M2 Pro 1.37 B/cycle on the scalar fallback because the shipped NEON dispatch does not compile on arm64 (issue #1, PR #2), about 5.6 with the dispatch fix.",
      "hover": "HalftimeHash24 as shipped: the Encode3 encoder has distance 1, not 3, so a fixed 168-byte equal-length pair collides whenever the top 32 bits of one key word are zero (at most 36.4 bits; measured 2^-31.95). Across unequal lengths the fixed-length raw core gives 0 bits (empty vs one zero byte, every key). Repaired proof and header disclosed in issue #3. M2 speed is the scalar fallback (NEON dispatch broken upstream).",
      "multicollision": {
        "tier": "weak-key",
        "text": "Weak-key multicollision: when one core key word has a zero high half (2^-32 of keys), 2^(32b) inputs collide in the full 192-bit output (2^256 at 1344 bytes). The length-free core also collides across lengths key-free, but only within an 8b-byte window."
      }
    },
    {
      "id": "go-maphash",
      "pattern": [
        "P2"
      ],
      "name": "Go runtime map hash / hash/maphash (go1.27.1, amd64 AES path)",
      "version": "go1.27.1",
      "version_note": "Audited go1.27.1, tag commit 862c888e612ac346c7c4d99c9392bdfd265f33b0; default amd64 AES path. Covers string map keys and hash/maphash byte-sequence APIs.",
      "label": "Go maphash",
      "anchor": "appendix-go-maphash",
      "family": "heuristic",
      "mechanism_family": "keyless AES rounds on a secret lane state",
      "family_definition": "The 64-bit seed and the length are XORed into per-process AES round keys to derive a secret 128-bit lane state; the message is XORed into that state and passed through three keyless AES rounds with feedforward (AESENC x,x); the low 64 bits are the hash.",
      "output_bits": 64,
      "key_bits": 1088,
      "native_key_bits": 192,
      "key_model": "Per process: aeskeysched = 128 uniformly random bytes (16 x ChaCha8 bootstrapRand) drawn once at startup; per hash table: a uniformly random 64-bit seed (map creation / maphash.MakeSeed). A message of at most 16 bytes sees only K_0 (128 bits) and the seed (64 bits), i.e. one uniformly random 128-bit lane state. Both layers were drawn fresh and uniformly in every trial. The witness event depends only on aeskeysched bytes 8, 10, 12, 14, so the rate is over the per-process key: in a process where it fires the pair collides in every map and under every maphash seed.",
      "api": "internal/runtime/maps.memhash (amd64 AES path), reached by map[string], maphash.Bytes/String/Hash. Byte slices are accepted by maphash.Bytes but are not comparable Go map keys. Integer keys use separate memhash32/64 paths.",
      "status": "NEW",
      "classification_reason": "No prior published fixed-pair result for the Go AES map hash found. New cross-length seed-state differential: the length enters the seed vector only through the low length byte replicated at bytes 8, 10, 12, 14, and one keyless AES round separates it from the message XOR.",
      "prior_work": [],
      "official_claim": {
        "text": "Hashes are intended to be collision-resistant, even for situations where an adversary controls the byte sequences being hashed. [...] The hash functions are not cryptographically secure. (See crypto/sha256 and crypto/sha512 for cryptographic use.)",
        "url": "https://pkg.go.dev/hash/maphash",
        "context": "hash/maphash package documentation (type Hash and package doc). hasher.go adds: 'computing hashes as a sequence of values emitted into a Hash with an unpredictable Seed that varies from one hash table to another mitigates this attack. In effect, the Seed chooses one of 2^64 different hash functions.' runtime_alg.go initAlgAES: 'Initialize with random data so hash collisions will be hard to engineer.' No numeric collision bound is claimed.",
        "badge": "claims: collision-resistant against adversarial inputs; disclaims cryptographic security",
        "provenance": "https://pkg.go.dev/hash/maphash"
      },
      "claim_category": "keyed collision / DoS claim",
      "smhasher3": null,
      "smhasher3_note": "Implementation checks and speed measurements are separate from the statistical suite; no complete suite result is supplied here.",
      "pair": {
        "m_hex": "000000000000000000000000000000",
        "m_prime_hex": "a3fe5da3a3fe5da342a3bcfe42a3bcfe",
        "lengths_bytes": [
          15,
          16
        ],
        "L_words": 2,
        "verifier_confirmed": true,
        "example_seed_raw": "aeskeysched bytes [8,10,12,14] = ab0fb4ab with map seed 0x12c3be9a410c165a: maphash.Bytes = 1b7db7aab24e95c9 for both; the same key under seed 0x74e0b8b8df8dd591: 3456a4a54b1ad399 for both (real go1.27.1 runtime, verify/verify.log)",
        "example_output_hex": "1b7db7aab24e95c9",
        "output_order": "64-bit integer",
        "construction": "b = pad16(a) XOR Delta*(L), Delta*(15) = a3fe5da3a3fe5da342a3bcfe42a3bcfe = MC(SR(w at bytes 8,10,12,14)) XOR (L^16 at bytes 8,10,12,14) with w the DDT-4 S-box output difference for input difference 0x1f; same construction for every L = 1..15 vs 16 (e.g. L=1: a=00, b=e138d9e1e138d9e1c8e1f038c8e1f038; L=6: a=000000000000, b=246c4824246c48245e24326c5e24326c)",
        "provenance": [
          "verify/go-maphash/README.html"
        ]
      },
      "pair_lengths_bytes": [
        15,
        16
      ],
      "L_words": 2,
      "equal_length_pair": false,
      "collision": {
        "display": "66 / 2^30 (sampled); ε ≈ 2^-23.9556",
        "count": 66,
        "trials": 1073741824,
        "trials_log2": 30.0,
        "epsilon": 6.146728992462158e-08,
        "log2_contribution": -23.955605880641546,
        "exact_contribution": false,
        "total_equality_proved": false,
        "poisson_95_interval": [
          4.753879757471502e-08,
          7.820146385813765e-08
        ],
        "interval_method": "central 95% exact Poisson (Garwood), rounded only for display",
        "note": "Independent verifier sample (verify/gomh.c, fresh 128-byte key + fresh 64-bit seed per trial). Analytic trail value is exactly (4/256)^4 = 2^-24 (four AES S-box DDT-4 events); pooled L=1..7 vs 16 at 7x2^30: 454 -> 2^-23.98 [2^-24.12, 2^-23.85]; real go1.27.1 runtime 20/2^28 = 2^-23.68."
      },
      "score": {
        "calculated": 25.0,
        "display": 25.0,
        "display_text": "at most 25.0 bits (cap; analytic trail 2^-24, measured 2^-23.96); 95% Poisson on the verifier sample [24.61, 25.33]",
        "direction": "estimated_upper_bound",
        "poisson_95_interval": [
          24.60822914541398,
          25.32631934624628
        ],
        "interval_95_bits": [
          24.60822914541398,
          25.32631934624628
        ],
        "poisson_count": 66,
        "poisson_trials": 1073741824,
        "derivation": "log2(L/epsilon) = log2(2 / 2^-24) = 25.0 with epsilon the exact probability of the unique trail (4/256)^4 (four independent DDT-4 S-box events in the seed-state round); the verifier sample 66/2^30 gives log2(2/(66/2^30)) = 24.956, consistent"
      },
      "bits": 25.0,
      "bits_kind": "measured",
      "mechanism": "For 1..16 bytes the hash is lo64(F^3(pad16(m) XOR S_0)) with S_0 = F(X0 XOR K_0), X0 = [seed | len16 x4], F(x) = AESENC(x, x). Two lengths L < 16 and 16 feed y and y XOR Dlen into the one keyless round that derives S_0. With probability exactly (4/256)^4 the four active S-boxes take their DDT-4 output, so S_0 XOR S_0' equals a fixed Delta*; choosing b = pad16(a) XOR Delta* makes the F^3 inputs identical, and the pair collides for every map seed in that process.",
      "qualification": "Cross-length pair (15 vs 16 bytes; the longer message must be exactly 16 bytes and all its bytes are fixed by Delta*). Rate is over the per-process key, seed-free given the key. Same-length pairs: no structured route found (F has no fixed-point differential with <= 7 active bytes; truncated 3-round trails need >= 6 active S-boxes, <= 2^-36). memhash64/memhash32 (integer map keys): best trails <= 2^-48, not measurable. arm64 AES path (full 64-bit length in the seed vector, S_0 reused as round key): best enumerated trail 2^-31, measured 2 hits in 2^33 = 2^-32.0 under qemu only, cap about 32-33 bits, not verified on arm64 hardware. Fallback (no-AES) path: no finding (0 in 2^32 for the cheapest candidates). hash/maphash chunking (>128 bytes) chains the 64-bit state as the next seed, so any 64-bit internal collision is key-free for the remainder.",
      "key_free": false,
      "key_free_definition": "The exhibited pair is not key-free over the process key; its sufficient collision event holds for every map seed once the relevant process-key bytes meet the trail condition. No general nonexistence theorem is asserted.",
      "notes": "The rate 2^-24 is per PROCESS (aeskeysched bytes 8,10,12,14 only): in about one process in 16.8 million the pair collides in every map and under every maphash.Seed; elsewhere it never collides. Verified three ways: the AES-NI C harness (66/2^30 = 2^-23.96, pooled L=1..7 vs 16: 454/7x2^30 = 2^-23.98), an independent transcription of memhash_amd64.s (2883/2883 real-runtime vectors bit-exact, Delta* re-derived from the S-box DDT for every L), and the real go1.27.1 runtime with aeskeysched re-randomised per sample through go:linkname (20/2^28 = 2^-23.68; the reporting lane got 12/2^28). A colliding key collides under 2^24/2^24 random seeds and 65536/65536 re-draws of the other 124 key bytes. The per-process re-randomisation is a simulation of 2^28 process starts inside one process; memhash reads the global on every call, so it is equivalent. Only the amd64 AES path was re-measured independently.",
      "hover": {
        "mechanism": "The length byte enters the secret lane state through one keyless AES round; four S-box events make the state difference a fixed constant, which the 16-byte message cancels.",
        "quote": "intended to be collision-resistant, even for situations where an adversary controls the byte sequences"
      },
      "provenance": [
        "verify/go-maphash/README.html"
      ],
      "reproduction": {
        "status": "Standalone reproduction package; see README for build commands and recorded runs.",
        "directory": "verify/go-maphash/README.html",
        "readme": "verify/go-maphash/README.html"
      },
      "supporting_measurements": {
        "per_length_L_vs_16_2p30": {
          "L1..L7": "pooled 454 (search lane 455) / 7x2^30 = 2^-23.98 [2^-24.12, 2^-23.85]; per-L examples L=5: 61/2^30, L=6: 58/2^30, L=7: 63/2^30"
        },
        "real_runtime_2p28": {
          "search_lane": "12/2^28 = 2^-24.42 [2^-25.37, 2^-23.61]",
          "verifier": "20/2^28 = 2^-23.68 [2^-24.39, 2^-23.05]"
        },
        "seed_free_given_key": "one colliding key: 2^24/2^24 random seeds, 65536/65536 re-draws of the other 124 key bytes",
        "arm64_aes_path": "best trail 2^-31 at L=1 vs 14 (a=00, b=00007d00000000d62a15153f002b); 2 hits in 2^33 = 2^-32.0 (qemu, unverified on hardware)",
        "earlier_same_length_search": "0 collisions in 2^32 for the 7 cheapest same-length candidates on both shipped paths (superseded: it missed the cross-length route)"
      },
      "deployment_transfer": "Applies to map[string] and hash/maphash.Bytes/String/Hash on amd64 AES. Byte slices are valid maphash inputs, not Go map keys. Integer keys use separate memhash32/64 paths. ARM64 is a different algorithm; its qemu-only observation is not scored here.",
      "code_url": "https://github.com/golang/go/blob/go1.27.1/src/internal/runtime/maps/memhash_amd64.s",
      "reference_url": "https://pkg.go.dev/hash/maphash",
      "verification_url": "verify/go-maphash/README.html",
      "speed_registration": "GoMapHash",
      "speed_note": "Available host-specific measurements are linked in records/new-hashes/speeds_new_hashes.json; missing timings stay blank. The 25-bit score is specific to amd64 AES and is not plotted with ARM64 timing.",
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 15.69,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle, median of three (scratch registration; Abseil timed on its arm64 default path)",
          "record": "records/new-hashes-timing/speeds_new_hashes.json",
          "url": "records/new-hashes-timing/speeds_new_hashes.json",
          "source_short": "SMHasher3 M2Pro"
        },
        "smh_xeon_bulk_Bpc": {
          "value": 17.66,
          "source": "SMHasher3 Xeon8375C; completed timing runs",
          "url": "records/new-hashes/speeds_new_hashes.json",
          "record": "records/new-hashes/speeds_new_hashes.json#/go-maphash/Xeon8375C",
          "registered_name": "GoMapHash",
          "host": "Xeon8375C",
          "backend_token": "GO_AMD64_AES",
          "binary_sha256": "ae073fff3d359ce7a5c8191cde44115f880f1694e1eebc080e8598f9539a441f",
          "completed_runs": 1
        },
        "smh_m2_small_cycles": {
          "value": 26.94,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "record": "records/new-hashes-timing/speeds_new_hashes.json"
        },
        "smh_xeon_small_cycles": {
          "value": 64.32,
          "source": "SMHasher3 Xeon8375C; completed timing runs",
          "url": "records/new-hashes/speeds_new_hashes.json",
          "record": "records/new-hashes/speeds_new_hashes.json#/go-maphash/Xeon8375C",
          "registered_name": "GoMapHash",
          "host": "Xeon8375C",
          "backend_token": "GO_AMD64_AES",
          "binary_sha256": "ae073fff3d359ce7a5c8191cde44115f880f1694e1eebc080e8598f9539a441f",
          "completed_runs": 1
        }
      },
      "chart_eligible": true,
      "rurban_alias": null,
      "input_domain": "Variable-length byte strings (string / []byte map keys, maphash input); selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "latest_checked": {
        "go_dl": "go1.27.1 (2026-08-28) is the newest release at 2026-09-18",
        "core_changed": false,
        "note": "memhash_amd64.s / memhash_arm64.s unchanged on master vs the tag at the time of the port"
      },
      "chart_hosts": [
        "Xeon8375C"
      ]
    },
    {
      "id": "abseil-hash",
      "pattern": [
        "P1"
      ],
      "name": "absl::Hash (abseil-cpp 20260817.0 / HEAD 73d2688)",
      "version": "20260817.0",
      "version_note": "Latest LTS 20260817.0 (2026-08-18); measured on master HEAD 73d2688300440c8af028eec865ee0dcd85e93025 (2026-09-17), whose hash.h/hash.cc are what the LTS ships (LowLevelHash folded into absl/hash/internal/hash.cc). Default open-source build on every platform: scalar path for len <= 32 (the CRC32C path needs ABSL_OPTION_INLINE_HW_ACCEL_STRATEGY != 0, shipped as 0); len > 32 scalar LowLevelHash on x86-64 by default, AES-NI with -maes -msse4.2, ARM-crypto on arm64 macOS by default.",
      "label": "absl::Hash",
      "anchor": "appendix-abseil-hash",
      "family": "heuristic",
      "mechanism_family": "keyed multiply-fold (mum)",
      "family_definition": "Mix(a,b) = hi64(a*b) XOR lo64(a*b); for len <= 32 the seed is XORed into one multiplicand of one or two Mix calls whose other multiplicand is a public constant; the length enters only as D(len), an unaligned 8-byte window of the pi-constant table.",
      "output_bits": 64,
      "key_bits": 64,
      "native_key_bits": 5,
      "key_model": "64-bit seed passed through absl::hash_internal::HashWithSeed, the hook raw_hash_set uses; absl::Hash<T>{}(x) == hash_with_seed(x, Seed()). Scored with the 32 SwissTable per-table seeds {0, 64, ..., 1984} (exhaustive) plus 2^28 uniform 64-bit seeds; the result holds for all 2^64 seeds by identity. Real deployments have far less: flat_hash_set/map use a 5-bit per-table seed (32 values); direct absl::Hash uses Seed() = the ASLR-slid address of a global (about 28 bits on Linux PIE, about 12 bits on macOS arm64, 0 bits on a non-PIE Linux build).",
      "api": "absl::Hash<std::string_view> / absl::HashOf and absl::flat_hash_{set,map}<std::string,...> with the default hasher, via hash_internal::HashWithSeed(seed).hash(bytes, len)",
      "status": "NEW",
      "classification_reason": "No prior published every-seed pair for the current absl::Hash found. Cross-length cancellation of the length mix D(len) at len <= 8, where the seed enters only by XOR before a fixed Mix.",
      "prior_work": [
        {
          "label": "Paper: wyhash/rapidhash complement-both-operands mechanism (same Mix primitive)",
          "url": "https://github.com/thomasahle/fast-polynomials"
        }
      ],
      "official_claim": {
        "text": "One should assume that a hash algorithm is chosen randomly at the start of each process.  E.g., `absl::Hash<int>{}(9)` in one process and `absl::Hash<int>{}(9)` in another process are likely to differ. [...] `absl::Hash` is intended to strongly mix input bits with a target of passing an Avalanche Test.",
        "url": "https://github.com/abseil/abseil-cpp/blob/master/absl/hash/hash.h",
        "context": "absl/hash/hash.h header comment. The Seed() comment in absl/hash/internal/hash.h: 'A non-deterministic seed. The current purpose of this seed is to generate non-deterministic results and prevent having users depend on the particular hash values. It is not meant as a security feature right now, but it leaves the door open to upgrade it to a true per-process random seed.' No collision-resistance, DoS-resistance or security claim is made anywhere.",
        "badge": "claims: per-process non-determinism and avalanche only; no security claim",
        "provenance": "https://github.com/abseil/abseil-cpp/blob/master/absl/hash/hash.h"
      },
      "claim_category": "statistical quality only",
      "smhasher3": null,
      "smhasher3_note": "Implementation checks and speed measurements are separate from the statistical suite; no complete suite result is supplied here.",
      "pair": {
        "m_hex": "",
        "m_prime_hex": "a6e02637c07bd386",
        "lengths_bytes": [
          0,
          8
        ],
        "L_words": 1,
        "verifier_confirmed": true,
        "example_seed_raw": "every seed: 32/32 SwissTable seeds {0,...,1984} and 2^28/2^28 uniform 64-bit seeds on the real scalar and real -maes builds (verify/ lane, fresh generator), 2^30/2^30 in the search lane; process (ASLR) seed collides too; e.g. seed 0 and seed 0x4055c8",
        "output_order": "64-bit integer",
        "construction": "len 0 -> Mix(seed ^ D(0) ^ 0x57, kMul); len 8 -> Mix(seed ^ D(8) ^ v, kMul) with v = load32(b) << 32 | load32(b+4); b = bytes8(D(0) ^ D(8) ^ 0x57) makes the multiplicands identical for every seed. Non-empty alternatives from the same identity: 'a' (61, len 1) vs 44b53d572db1948b (len 8); eee229e46a (len 5) vs b31833d9cc65b02d (len 8).",
        "provenance": [
          "verify/abseil-hash/README.html"
        ]
      },
      "pair_lengths_bytes": [
        0,
        8
      ],
      "L_words": 1,
      "equal_length_pair": false,
      "collision": {
        "display": "every key",
        "log2_contribution": 0,
        "exact_contribution": true,
        "total_equality_proved": true,
        "interpretation": "Exact sufficient event: identical Mix inputs for every seed (algebraic identity); sampled 32/32 + 268,435,456/268,435,456 on the real scalar and -maes builds, Clopper-Pearson 95% lower bound 1 - 1.1e-8"
      },
      "score": {
        "calculated": 0.0,
        "display": 0.0,
        "display_text": "0 bits (key-free pair at L = 1)",
        "direction": "upper_bound",
        "rounding": "upward",
        "derivation": "log2(1) - 0"
      },
      "bits": 0.0,
      "bits_kind": "exact",
      "mechanism": "For len <= 8 the whole hash is Mix(seed ^ D(len) ^ v, kMul) with v a public packing of the bytes; the seed and the length mix D(len) are both XORed before one fixed map, so any two (len, bytes) with equal v ^ D(len) collide for every seed.",
      "qualification": "Cross-length pair (0 vs 8 bytes; non-empty variants exist at every la <= 8 vs 8). Same-length cap 1 bit at L = 2: every 9..16-byte string whose last 8 bytes are kMul (f58c1edee0f9d579) hashes to 0 for every seed (2^64-way multicollision), e.g. 6162636465666768f58c1edee0f9d579 vs 4142434445464748f58c1edee0f9d579. Key-free pairs exist at every length 0..2048 tested on the scalar default build (swaps of commutatively merged lanes at 32/64/128 bytes, Mix(x,0)=0 zero families) and at every length on the arm64 macOS default build; the x86 AES-NI (-maes) build breaks the >32-byte scalar families but keeps everything at <= 32 bytes and has a 2^-3-per-bit cross-length family at 33..64 bytes. Non-default CRC32C build: key-free same-length pair at 16 bytes (GF(2)-affine per word). Separately, SwissTable has only 32 table seeds: any nonzero collision probability over a uniform table seed is at least 1/32. This limits table-seed randomization to five bits; it does not say every arbitrary pair must collide.",
      "key_free": true,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "notes": "Confirmed by an independent re-implementation written from hash.h/hash.cc only (verify/myhash.h, 47,439 vectors bit-exact on scalar, -maes and -fPIE builds), by the real implementation through HashWithSeed, and inside real flat_hash_set tables (800 tables showed exactly the 32 seeds; the pair collides in 2800/2800 tables). ARM-crypto path not re-run by the verifier (no ARM host; the <= 32-byte result is build-independent by source structure). The rows' 'process seed' is an ASLR address, not a random key; moot for a key-free pair. Two search lanes reached the same 0-bit result independently.",
      "hover": {
        "mechanism": "The seed and the length mix are XORed into the same multiplicand before one fixed multiply, so a cross-length pair cancels the length mix and collides for every seed.",
        "quote": "It is not meant as a security feature right now"
      },
      "other_pair": {
        "m_hex": "6162636465666768f58c1edee0f9d579",
        "m_prime_hex": "4142434445464748f58c1edee0f9d579",
        "lengths_bytes": [
          16,
          16
        ],
        "L_words": 2,
        "bits": 1.0,
        "verifier_confirmed": true,
        "example_seed_raw": "every seed; both outputs are 0 (Mix(x, kMul ^ kMul) = Mix(x, 0) = 0)",
        "note": "same-length witness; the upstream comment in CombineContiguousImpl9to16 says this needs 'an unlucky seed', but the kMul side is seed-free"
      },
      "provenance": [
        "verify/abseil-hash/README.html"
      ],
      "reproduction": {
        "status": "Standalone reproduction package; see README for build commands and recorded runs.",
        "directory": "verify/abseil-hash/README.html",
        "readme": "verify/abseil-hash/README.html"
      },
      "supporting_measurements": {
        "headline_pairs_real_scalar_and_aes": "'' vs a6e02637c07bd386, 'a' vs 44b53d572db1948b, eee229e46a vs b31833d9cc65b02d, abcdefgh||kMul vs ABCDEFGH||kMul: 32/32 + 2^28/2^28 (verifier), 2^30/2^30 (search lane)",
        "x86_aes_cross_length_33_64": "len 58 vs 59: 33,555,946/2^28 = 2^-2.9999 [2^-3.0004, 2^-2.9995]; eps = 2^(-3 popcount(la^lb))",
        "swisstable": "800 real tables: seeds exactly {0,64,...,1984}; hash_of == reimplementation on 4800 keys; headline pairs collide in 2800/2800 tables",
        "same_length_L1_scan": "8 vs 8 bytes, 6249 deltas x 2^24 seeds: no collision (< 2^-24)"
      },
      "deployment_transfer": "Applies to absl::Hash<std::string>/string_view/absl::Cord bytes and to flat_hash_set/map<std::string> with the default hasher on every default build (x86-64 scalar, x86 AES-NI, arm64 macOS ARM-crypto). Integer keys use a different (Mix-based) fast path, not covered by this pair.",
      "code_url": "https://github.com/abseil/abseil-cpp/blob/73d2688300440c8af028eec865ee0dcd85e93025/absl/hash/internal/hash.h",
      "reference_url": "https://abseil.io/docs/cpp/guides/hash",
      "verification_url": "verify/abseil-hash/README.html",
      "speed_registration": "AbseilHash-default",
      "speed_note": "Available host-specific measurements are linked in records/new-hashes/speeds_new_hashes.json; missing timings stay blank.",
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 14.31,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle, median of three (scratch registration; Abseil timed on its arm64 default path)",
          "record": "records/new-hashes-timing/speeds_new_hashes.json",
          "url": "records/new-hashes-timing/speeds_new_hashes.json",
          "source_short": "SMHasher3 M2Pro"
        },
        "smh_xeon_bulk_Bpc": {
          "value": 8.22,
          "source": "SMHasher3 Xeon8375C; completed timing runs",
          "url": "records/new-hashes/speeds_new_hashes.json",
          "record": "records/new-hashes/speeds_new_hashes.json#/abseil-hash/Xeon8375C",
          "registered_name": "AbseilHash-default",
          "host": "Xeon8375C",
          "backend_token": "scalar-mul128",
          "binary_sha256": "ae073fff3d359ce7a5c8191cde44115f880f1694e1eebc080e8598f9539a441f",
          "completed_runs": 1
        },
        "smh_m2_small_cycles": {
          "value": 16.15,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "record": "records/new-hashes-timing/speeds_new_hashes.json"
        },
        "smh_xeon_small_cycles": {
          "value": 20.67,
          "source": "SMHasher3 Xeon8375C; completed timing runs",
          "url": "records/new-hashes/speeds_new_hashes.json",
          "record": "records/new-hashes/speeds_new_hashes.json#/abseil-hash/Xeon8375C",
          "registered_name": "AbseilHash-default",
          "host": "Xeon8375C",
          "backend_token": "scalar-mul128",
          "binary_sha256": "ae073fff3d359ce7a5c8191cde44115f880f1694e1eebc080e8598f9539a441f",
          "completed_runs": 1
        }
      },
      "chart_eligible": true,
      "rurban_alias": null,
      "input_domain": "Variable-length byte strings (std::string keys); selected witness lengths shown.",
      "domain_short": "variable-length byte strings; selected witness only",
      "latest_checked": {
        "lts": "20260817.0 (2026-08-18)",
        "git_master": "73d2688300440c8af028eec865ee0dcd85e93025 (2026-09-17)",
        "core_changed": false
      },
      "multicollision": {
        "tier": "flooding",
        "text": "Flooding-grade: two families each hash to 0 for every seed and all 32 SwissTable seeds; 2^64 (16-byte) and 2^128 (32-byte) inputs, checked against the real library."
      }
    },
    {
      "id": "dotnet-marvin",
      "pattern": [
        "P2"
      ],
      "name": "Marvin32 (.NET 10 string.GetHashCode)",
      "version": ".NET 10.0.12",
      "version_note": "Microsoft.NETCore.App 10.0.12 (SDK 10.0.401 LTS) as executed; source dotnet/runtime main @ aec1470a (2026-09-18), Marvin.cs algorithm unchanged since ddb22ef2 (2022-02-20; last touch 2dada4c5 2025-08-18 is a NoInlining attribute). release/10.0 and release/8.0 differ only by attributes/usings. No ISA-specific code path.",
      "label": "Marvin32 (.NET)",
      "anchor": "appendix-dotnet-marvin",
      "family": "heuristic",
      "mechanism_family": "ARX (SipHash-like half rounds)",
      "family_definition": "A 64-bit state (p0, p1) is initialised from the seed; each 32-bit message word is added into p0 and followed by one keyless 8-operation ARX Block (xor, rotl 20, add, rotl 9, xor, rotl 27, add, rotl 19); the tail carries a 0x80 pad byte; two final Blocks; output p0 XOR p1.",
      "output_bits": 32,
      "key_bits": 64,
      "key_model": "Marvin.DefaultSeed: 64 uniformly random bits drawn once per process from Interop.GetRandomBytes (arc4random_buf on macOS/glibc >= 2.36, BCryptGenRandom on Windows, getrandom() XOR an lrand48 stream elsewhere; uniform in every shipped configuration), entering only as the initial state (p0 = low 32, p1 = high 32). No key material anywhere else. Fresh uniform 64-bit seed per trial. The same pair applies unchanged to StringComparer.Ordinal and to the per-instance 64-bit seed of RandomizedStringEqualityComparer (Dictionary<string,_> / HashSet<string> after the 100-collision switch).",
      "api": "string.GetHashCode() = Marvin.ComputeHash32(UTF-16LE bytes, 2*len, seed lo32, seed hi32); Dictionary<string,_> starts on the keyless NonRandomizedStringEqualityComparer and switches per instance to Marvin with a fresh seed after a 100-long bucket chain",
      "status": "NEW",
      "classification_reason": "No prior published fixed-pair differential for Marvin32 found (floodyberry's Marvin32.c is an implementation, not an analysis). New two-Block additive differential that annihilates inside Block 2; only one Block of diffusion separates consecutive word injections.",
      "prior_work": [
        {
          "label": "Marvin32 reference implementation (floodyberry), test vector only",
          "url": "https://github.com/floodyberry/Marvin32/blob/master/Marvin32.c"
        },
        {
          "label": "US patent 9,002,812 (Ferguson et al., Microsoft 2015): resilient hashing design",
          "url": "https://patents.google.com/patent/US9002812B2/en"
        }
      ],
      "official_claim": {
        "text": "This matches `string.GetHashCode()` in .NET 6+, where the 64-bit Marvin32 seed is chosen at app start and remains static for the life of the app. The possibility exists that information about the static seed could be disclosed through side channels. Contrast this against `Dictionary<string, ...>` today, where a unique Marvin32 seed is chosen for each dictionary instantiation, limiting the adversary's ability to learn information about the seed.",
        "url": "https://github.com/dotnet/runtime/blob/main/docs/design/security/System.HashCode.md",
        "context": "dotnet/runtime security design note for System.HashCode, describing the Marvin32 seed model it inherits; the same document says of System.HashCode (xxHash32, a different function) 'No collision resistance is claimed.' API docs (learn.microsoft.com, String.GetHashCode): 'The hash code itself is not guaranteed to be stable. ... don't use the hash code instead of a value returned by a cryptographic hashing function if you need a cryptographically strong hash.' The randomized-seed design exists for hash-flooding (DoS) resistance (patent US 9,002,812: 'a fast, non-cryptographic hash/checksum function that has good diffusion properties'). No quantitative collision bound is claimed for Marvin32.",
        "badge": "claims: randomized per-process/per-dictionary seed for flooding resistance; disclaims cryptographic strength",
        "provenance": "https://github.com/dotnet/runtime/blob/main/docs/design/security/System.HashCode.md"
      },
      "claim_category": "keyed collision / DoS claim",
      "smhasher3": null,
      "smhasher3_note": "Implementation checks and speed measurements are separate from the statistical suite; no complete suite result is supplied here.",
      "pair": {
        "m_hex": "610061002f546d1662006200",
        "m_prime_hex": "610061802f9579a262fc6100",
        "lengths_bytes": [
          12,
          12
        ],
        "L_words": 2,
        "verifier_confirmed": true,
        "strings": {
          "m": "\"aa\" U+542F U+166D \"bb\"",
          "m_prime": "\"a\" U+8061 U+952F U+A279 U+FC62 \"a\""
        },
        "example_seed_raw": "any seed in the 2^-8.9 colliding fraction; the harness prints the process DefaultSeed and both GetHashCode values (csharp_verify/Verify.cs); example from the fresh-process run: see verify/pairA_procs3000.txt (COLLIDE lines) when finished",
        "output_order": "32-bit integer (int)",
        "construction": "LE words m = 00610061 166d542f 00620062, m' = 80610061 a279952f 0061fc62; additive word differences d0 = 0x80000000, d1 = 0x8c0c4100, d2 = -0x400. After Block 1 the state difference is (84084100, 08040040); adding d1 leaves (08040000, 08040040), whose shared bits {27, 18} cancel in Block 2's first xor, the remaining bit cancels against rotl(p0, 20) in the first add, the second xor clears p1, and d2 removes the single surviving p0 bit.",
        "provenance": [
          "verify/dotnet-marvin/README.html"
        ]
      },
      "pair_lengths_bytes": [
        12,
        12
      ],
      "L_words": 2,
      "equal_length_pair": true,
      "collision": {
        "display": "8945794 / 2^32 (sampled); ε ≈ 2^-8.9072",
        "count": 8945794,
        "trials": 4294967296,
        "trials_log2": 32.0,
        "epsilon": 0.002082854975014925,
        "log2_contribution": -8.907221893728378,
        "exact_contribution": false,
        "total_equality_proved": false,
        "poisson_95_interval": [
          0.0020814903054775513,
          0.0020842203185116826
        ],
        "interval_method": "central 95% exact Poisson (Garwood), rounded only for display",
        "note": "Independent verifier sample (verify/verify.c, SplitMix64 streams keyed by getrandom; searches used xoshiro256**). Reporting lane: 8,947,470/2^32 = 2^-8.91 (0.4 sigma apart). Real .NET 10.0.12 runtime via reflection on System.Marvin.ComputeHash32, 2^24 fresh seeds: 34,855/2^24 = 2^-8.91 [2^-8.93, 2^-8.90]. 8,945,793 of the collisions are full 64-bit internal-state collisions."
      },
      "score": {
        "calculated": 9.907221893728378,
        "display": 9.91,
        "display_text": "at most 9.91 bits (sampled cap); 95% Poisson interval [9.9063, 9.9082]",
        "direction": "estimated_upper_bound",
        "poisson_95_interval": [
          9.90627649475014,
          9.908167445507535
        ],
        "interval_95_bits": [
          9.90627649475014,
          9.908167445507535
        ],
        "poisson_count": 8945794,
        "poisson_trials": 4294967296,
        "derivation": "log2(L/epsilon) = log2(2 / (8945794/2^32)); min over L: the L = 1 pair gives 22.53 bits, so the L = 2 pair sets the score"
      },
      "bits": 9.907221893728378,
      "bits_kind": "measured",
      "mechanism": "The seed is only the initial 64-bit state and every later step is a keyless bijection, so a fixed pair collides iff its word differences cancel in the state. With one 8-op Block between word injections, a two-word additive differential (2^31 into word 1, 0x8c0c4100 into word 2, -0x400 into word 3) annihilates inside the second Block for a 2^-8.9 fraction of seeds; the 64-bit state collision then survives every later word and the finaliser.",
      "qualification": "Same-length 6-character strings (all valid non-surrogate BMP code units). Position independent: the same three-word differential embedded anywhere in a longer string collides at the same rate. Not key-free (each message is a bijection of the seed). The output is only 32 bits; the width alone does not assign a collision probability to every individual pair. For L = 1 (<= 4 chars) the best pair found is 'aaaa' vs U+1172 U+1172 U+EF50 U+EF4F at 2^-22.5 (22.5 bits), one-Block cancellation being linearly impossible. Not covered: OrdinalIgnoreCase, System.HashCode (xxHash32; Microsoft disclaims collision resistance), Dictionary's initial keyless NonRandomized comparer (trivially collidable by design, hence the switch).",
      "key_free": false,
      "key_free_definition": "This fixed pair collides for a fraction of seeds, not every seed. Its internal-state differential survives the common finalizer.",
      "notes": "Independent transcription matches 5833 runtime vectors. Pair A: 8,945,794/2^32; real .NET 10.0.12 runtime: 34,855/2^24. About one process seed in 480 makes the pair collide through string.GetHashCode and StringComparer.Ordinal. Each randomized dictionary or hash set draws its own seed and separately has the same odds; a process collision does not imply a collision in every dictionary. See the reproduction package for additional runs.",
      "hover": {
        "mechanism": "One ARX Block between word injections lets a three-word additive differential cancel inside the second Block for one seed in 480.",
        "quote": "the 64-bit Marvin32 seed is chosen at app start and remains static for the life of the app"
      },
      "other_pair": {
        "m_hex": "6100610061006100",
        "m_prime_hex": "7211721150ef4fef",
        "lengths_bytes": [
          8,
          8
        ],
        "L_words": 1,
        "strings": {
          "m": "\"aaaa\"",
          "m_prime": "U+1172 U+1172 U+EF50 U+EF4F"
        },
        "collision": {
          "display": "4255 / 2^34.58 (sampled); ε ≈ 2^-22.5300",
          "count": 4255,
          "trials": 25769803776,
          "trials_log2": 34.584962500721154,
          "epsilon": 1.651157314578692e-07,
          "log2_contribution": -22.53001908414783,
          "exact_contribution": false,
          "total_equality_proved": false,
          "poisson_95_interval": [
            1.6019138719881352e-07,
            1.701529712875541e-07
          ],
          "interval_method": "central 95% exact Poisson (Garwood), rounded only for display",
          "note": "verifier pooled fresh 2^33 + 2^34 (1398 + 2857); reporting lane pooled 4334/(2^33+2^34) = 2^-22.50 [2^-22.55, 2^-22.46]"
        },
        "bits": 22.53001908414783,
        "interval_95_bits": [
          22.48666431970032,
          22.573700081880585
        ],
        "verifier_confirmed": true,
        "note": "L = 1 witness: word difference (+0x11111111, -0x11111111), period-4 pattern fixed by rotl 20; 4323/4334 of the search-lane collisions were full 64-bit state collisions"
      },
      "provenance": [
        "verify/dotnet-marvin/README.html"
      ],
      "reproduction": {
        "status": "Standalone reproduction package; see README for build commands and recorded runs.",
        "directory": "verify/dotnet-marvin/README.html",
        "readme": "verify/dotnet-marvin/README.html"
      },
      "supporting_measurements": {
        "pairA": {
          "search_lane_2p32": "8,947,470/2^32 = 2^-8.91",
          "verifier_2p32": "8,945,794/2^32 = 2^-8.907 [2^-8.908, 2^-8.906]",
          "real_runtime_2p24": "34,855/2^24 = 2^-8.91 [2^-8.93, 2^-8.90]",
          "pos_independence": "same differential at words 3-4 of a 22-byte string: 321/2^31 = 2^-22.67 is for pair B's family; pair A is a 2-Block trail"
        },
        "pairB": {
          "search_lane": "1473/2^33, 2861/2^34 (pooled 2^-22.50 [2^-22.55, 2^-22.46])",
          "verifier": "1398/2^33 = 2^-22.55, 2857/2^34 = 2^-22.52",
          "one_block_histogram": "5718/2^35 = 2^-22.52"
        },
        "L1_one_block_scan": "2015 additive differences +-2^i, +-2^i+-2^j at 2^22 seeds each: zero p1-cancellations (one-Block cancellation linearly impossible: x^9+x^20+1 is a unit mod (x+1)^32)"
      },
      "deployment_transfer": "string.GetHashCode(), string.GetHashCode(ReadOnlySpan<char>), StringComparer.Ordinal.GetHashCode, and Dictionary<string,_>/HashSet<string> after their per-instance switch to RandomizedStringEqualityComparer (same Marvin, fresh 64-bit seed per instance). x86-64 and arm64 run the identical scalar C# path.",
      "code_url": "https://github.com/dotnet/runtime/blob/v10.0.12/src/libraries/System.Private.CoreLib/src/System/Marvin.cs",
      "reference_url": "https://learn.microsoft.com/en-us/dotnet/api/system.string.gethashcode",
      "verification_url": "verify/dotnet-marvin/README.html",
      "speed_registration": "Marvin32",
      "speed_note": "Available host-specific measurements are linked in records/new-hashes/speeds_new_hashes.json; missing timings stay blank.",
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 0.64,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle, median of three (scratch registration; Abseil timed on its arm64 default path)",
          "record": "records/new-hashes-timing/speeds_new_hashes.json",
          "url": "records/new-hashes-timing/speeds_new_hashes.json",
          "source_short": "SMHasher3 M2Pro"
        },
        "smh_xeon_bulk_Bpc": {
          "value": 0.95,
          "source": "SMHasher3 Xeon8375C; completed timing runs",
          "url": "records/new-hashes/speeds_new_hashes.json",
          "record": "records/new-hashes/speeds_new_hashes.json#/dotnet-marvin/Xeon8375C",
          "registered_name": "Marvin32",
          "host": "Xeon8375C",
          "backend_token": "scalar",
          "binary_sha256": "ae073fff3d359ce7a5c8191cde44115f880f1694e1eebc080e8598f9539a441f",
          "completed_runs": 1
        },
        "smh_m2_small_cycles": {
          "value": 46.72,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "record": "records/new-hashes-timing/speeds_new_hashes.json"
        },
        "smh_xeon_small_cycles": {
          "value": 31.07,
          "source": "SMHasher3 Xeon8375C; completed timing runs",
          "url": "records/new-hashes/speeds_new_hashes.json",
          "record": "records/new-hashes/speeds_new_hashes.json#/dotnet-marvin/Xeon8375C",
          "registered_name": "Marvin32",
          "host": "Xeon8375C",
          "backend_token": "scalar",
          "binary_sha256": "ae073fff3d359ce7a5c8191cde44115f880f1694e1eebc080e8598f9539a441f",
          "completed_runs": 1
        }
      },
      "chart_eligible": true,
      "rurban_alias": null,
      "input_domain": "UTF-16LE strings (any byte string of even length; witness uses valid BMP code units); selected witness lengths shown.",
      "domain_short": "UTF-16 strings; selected witness only",
      "latest_checked": {
        "runtime": ".NET 10.0.12 / SDK 10.0.401 (LTS)",
        "git_main": "aec1470ade734e9186b6d1f744d96d60f25d0dc6 (2026-09-18)",
        "core_changed": false,
        "note": "Marvin.cs algorithm identical in release/8.0, release/10.0 and main"
      }
    }
  ],
  "proven": [
    {
      "id": "polymur",
      "pattern": [],
      "code_url": "https://github.com/fwojcik/smhasher3/tree/7ad8939d/hashes",
      "name": "PolymurHash 2.0",
      "bound": "D(8L)/K0; K0 = 189729088763903999",
      "score_lower_guarantee": 54.22679349755191,
      "key_words_64bit": "4 resident",
      "output_bits": 64,
      "domain": "Uniform k on the exact restricted set K; fixed tweak; full 64-bit output. The key-cardinality gap was resolved with a rigorous lower bound. Shipped seed distribution and almost-strong-universality claim remain uncertified.",
      "m2_paper_gbps_16KB_512B": [
        19.7,
        16.2
      ],
      "reference_url": "https://github.com/orlp/polymur-hash/blob/master/extras/universality-proof.md",
      "notes": "Uniform k on the exact restricted set K; fixed tweak; full 64-bit output. The key-cardinality gap was resolved with a rigorous lower bound. Shipped seed distribution and almost-strong-universality claim remain uncertified.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "D(8L)/K0; K0 = 189729088763903999",
      "score_derivation": "min_L log2(L/max(2^-64,min(1,epsilon(L)))); minimizing L=1",
      "version": "2.0",
      "label": "PolymurHash 2.0",
      "anchor": "proofs",
      "mechanism": "D(8L)/K0; K0 = 189729088763903999",
      "family": "proven",
      "bits": 54.22679349755191,
      "bits_kind": "audited lower guarantee",
      "speeds": {
        "m2_gbps_16k": {
          "value": 19.7,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "m2_gbps_512": {
          "value": 16.2,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "smh_m2_bulk_Bpc": {
          "value": 5.59,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/polymurhash/M2Pro",
          "registered_name": "polymurhash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.902527075812265,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x0722B1A7",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x0722B1A7",
                "result": "PASS"
              },
              "BE": {
                "value": "0x830CF404",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x0722B1A7",
              "BE": "0x830CF404"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "polymurhash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "polymurhash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/polymurhash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:40.424161+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:40.428780+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                  "load1": 3.11,
                  "load5": 3.11,
                  "load15": 3.21
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:40.944409+00:00",
                "elapsed_seconds": 0.5155903750000022,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:40.949829+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                  "load1": 3.11,
                  "load5": 3.11,
                  "load15": 3.21
                },
                "raw_sha256": "534d925ab2d6f8235c45ded0909e6ad8ab25ee2468b15ce8eff961652f1d754a",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x0722B1A7",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x0722B1A7",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x830CF404",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x0722B1A7",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x830CF404",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 4.97,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/polymurhash/Xeon8375C",
          "registered_name": "polymurhash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 32.86,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/polymurhash/M2Pro",
          "registered_name": "polymurhash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": true,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.5782105903834323,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x0722B1A7",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x0722B1A7",
                "result": "PASS"
              },
              "BE": {
                "value": "0x830CF404",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x0722B1A7",
              "BE": "0x830CF404"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "polymurhash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "polymurhash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/polymurhash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:40.424161+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:40.428780+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                  "load1": 3.11,
                  "load5": 3.11,
                  "load15": 3.21
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:40.944409+00:00",
                "elapsed_seconds": 0.5155903750000022,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:40.949829+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                  "load1": 3.11,
                  "load5": 3.11,
                  "load15": 3.21
                },
                "raw_sha256": "534d925ab2d6f8235c45ded0909e6ad8ab25ee2468b15ce8eff961652f1d754a",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x0722B1A7",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_M2": {
                "LE": {
                  "value": "0x0722B1A7",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x830CF404",
                  "result": "PASS"
                }
              },
              "existing_Xeon": {
                "LE": {
                  "value": "0x0722B1A7",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x830CF404",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 39.16,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/polymurhash/Xeon8375C",
          "registered_name": "polymurhash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.025536261491332368,
          "verification": {}
        }
      },
      "qualification": "Uniform k on the exact restricted set K; fixed tweak; full 64-bit output. The key-cardinality gap was resolved with a rigorous lower bound. Shipped seed distribution and almost-strong-universality claim remain uncertified.",
      "hover": {
        "scope": "Uniform k on the exact restricted set K; fixed tweak; full 64-bit output. The key-cardinality gap was resolved with a rigorous lower bound. Shipped seed distribution and almost-strong-universality claim remain uncertified."
      },
      "smhasher3": {
        "verdict": "PASS",
        "passed": 250,
        "total": 250,
        "failed_tests": [],
        "provenance": "records/README.html",
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md"
      },
      "speed_registration": "polymurhash",
      "chart_eligible": true,
      "score_minimizer_L": 1,
      "proof_status": "proved with correction: D(8L)/K0",
      "proof_source": "records/README.html",
      "score_display": "≥ 54.2267",
      "score": {
        "calculated": 54.22679349755191,
        "display": 54.2267,
        "display_text": "≥ 54.2267 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": 1,
        "formula": "D(8L)/K0; K0 = 189729088763903999"
      },
      "mechanism_family": "prime-field polynomial",
      "rurban_alias": null,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "Full-output certificate only.",
        "note": "The corrected certificate is AU only; the ASU claim remains uncertified.",
        "audit_url": "records/README.html"
      },
      "domain_short": "full 64-bit output; uniform restricted-set key",
      "family_definition": "Polynomial over a prime field; Polymur uses 2^61−1, Poly1305 uses 2^130−5 with a clamped key.",
      "lean": {
        "label": "✓ checked",
        "source": "records/",
        "scope": "The exact restricted-key cardinality lower bound and numerical idealHash collision/score theorems are unconditional; the shipped seed distribution and C arithmetic refinement remain outside scope."
      }
    },
    {
      "id": "poly1305",
      "pattern": [],
      "name": "Poly1305",
      "label": "Poly1305",
      "version": "Bernstein 2005",
      "family": "proven",
      "bits": 103,
      "bits_kind": "proved",
      "score_lower_guarantee": 103,
      "score_display": "≥ 103 bits (proved)",
      "score": {
        "calculated": 103,
        "display": 103,
        "display_text": "≥ 103 bits (proved)",
        "direction": "lower_bound",
        "formula": "8·ceil(bytes/16)/2^106",
        "minimizer_L": 1
      },
      "bound": "8·ceil(bytes/16)/2^106",
      "source_bound": "8·ceil(bytes/16)/2^106",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "official_claim": {
        "text": "H_r(m) = H_r(m′) + g with probability at most 8⌈L/16⌉/2^106.",
        "url": "https://cr.yp.to/mac/poly1305-20050329.pdf"
      },
      "output_bits": 128,
      "key_words_64bit": "4 (clamped r plus mask)",
      "key_model": "uniform clamped polynomial key",
      "domain": "byte strings with encoded length; theorem uses its stated key distribution, not the benchmark seed expander",
      "domain_short": "full-output polynomial bound",
      "notes": "OpenSSL 3 EVP_MAC POLY1305; per-call seed expansion and setup included. The timed SMHasher3 Poly1305 wrapper derives its key from a 64-bit seed and therefore forms a 2^64-member subfamily to which the ideal-key bound does not apply.",
      "qualification": "Audited conservative 103-bit bound with uniform clamped r. The timed SMHasher3 Poly1305 wrapper derives its key from a 64-bit seed and therefore forms a 2^64-member subfamily to which the ideal-key bound does not apply.",
      "anchor": "appendix-classic",
      "code_url": "https://cr.yp.to/mac/poly1305-20050329.pdf",
      "reference_url": "https://cr.yp.to/mac/poly1305-20050329.pdf",
      "speed_registration": "poly1305-hash",
      "chart_eligible": true,
      "key_free": false,
      "smhasher3": {
        "verdict": "Sanity/verification PASS; full suite not supplied"
      },
      "masking": {
        "label": "Differential bound under the stated key model.",
        "note": "Apply the theorem to the selected output projection; benchmark setup is separate."
      },
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 2.2,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/poly1305-hash/M2Pro",
          "registered_name": "poly1305-hash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.917431192660545,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0xBD015C42",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0xBD015C42",
                "result": "PASS"
              },
              "NE": {
                "value": "0xBD015C42",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0xBD015C42",
              "NE": "0xBD015C42"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "poly1305-hash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "poly1305-hash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/poly1305-hash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:55.088891+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:55.093593+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:55.649421+00:00",
                "elapsed_seconds": 0.5557893339999964,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:55.654521+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "raw_sha256": "ec194a0f7de2c895933de376c768120798d0834feed791119e0336ce216a17ba",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0xBD015C42",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_classic": {
                "CE": {
                  "value": "0xBD015C42",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xBD015C42",
                  "result": "Derived from canonical-both registration; not a separate baseline NE run"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_m2_small_cycles": {
          "value": 156.96,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/poly1305-hash/M2Pro",
          "registered_name": "poly1305-hash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 2.2489806320081573,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0xBD015C42",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0xBD015C42",
                "result": "PASS"
              },
              "NE": {
                "value": "0xBD015C42",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0xBD015C42",
              "NE": "0xBD015C42"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "poly1305-hash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "poly1305-hash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/poly1305-hash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:55.088891+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:55.093593+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:55.649421+00:00",
                "elapsed_seconds": 0.5557893339999964,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:55.654521+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "raw_sha256": "ec194a0f7de2c895933de376c768120798d0834feed791119e0336ce216a17ba",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0xBD015C42",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_classic": {
                "CE": {
                  "value": "0xBD015C42",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0xBD015C42",
                  "result": "Derived from canonical-both registration; not a separate baseline NE run"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 4.48,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/poly1305-hash/Xeon8375C",
          "registered_name": "poly1305-hash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.22371364653246406,
          "verification": {
            "status": "PASS",
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "poly1305-hash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "1",
                  "experiment/speedbench-classic/build-classic/SMHasher3",
                  "poly1305-hash",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/poly1305-hash.sanity.run1.txt",
                "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
                "load_before": {
                  "timestamp": "2026-09-18T09:00:35.764755+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "started": "2026-09-18T09:00:35.764801+00:00",
                "returncode": 0,
                "finished": "2026-09-18T09:00:36.276244+00:00",
                "elapsed_seconds": 0.511457393062301,
                "load_after": {
                  "timestamp": "2026-09-18T09:00:36.276272+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "raw_sha256": "180ab85605422ba9dc707be2fe04f29c388d24dfd4660998da5792bb3058761c",
                "status": "PASS",
                "verification_value": "0xBD015C42"
              },
              {
                "host": "Xeon8375C",
                "name": "poly1305-hash",
                "test": "Sanity",
                "run": 2,
                "command": [
                  "taskset",
                  "-c",
                  "1",
                  "experiment/speedbench-classic/build-classic/SMHasher3",
                  "poly1305-hash",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/poly1305-hash.sanity.run2.txt",
                "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
                "load_before": {
                  "timestamp": "2026-09-18T09:00:37.934197+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "started": "2026-09-18T09:00:37.934217+00:00",
                "returncode": 0,
                "finished": "2026-09-18T09:00:38.445657+00:00",
                "elapsed_seconds": 0.5114595509367064,
                "load_after": {
                  "timestamp": "2026-09-18T09:00:38.445687+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "raw_sha256": "e91c854d5770985030565538c115d50c03138bae4f8b158015d80ec1cf3ad067",
                "status": "PASS",
                "verification_value": "0xBD015C42"
              }
            ],
            "reference_check_file": "out/Xeon8375C/reference-check.txt",
            "expected_value": "0xBD015C42"
          }
        },
        "smh_xeon_small_cycles": {
          "value": 250.51,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/poly1305-hash/Xeon8375C",
          "registered_name": "poly1305-hash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.27144624965071973,
          "verification": {
            "status": "PASS",
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "poly1305-hash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "1",
                  "experiment/speedbench-classic/build-classic/SMHasher3",
                  "poly1305-hash",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/poly1305-hash.sanity.run1.txt",
                "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
                "load_before": {
                  "timestamp": "2026-09-18T09:00:35.764755+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "started": "2026-09-18T09:00:35.764801+00:00",
                "returncode": 0,
                "finished": "2026-09-18T09:00:36.276244+00:00",
                "elapsed_seconds": 0.511457393062301,
                "load_after": {
                  "timestamp": "2026-09-18T09:00:36.276272+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "raw_sha256": "180ab85605422ba9dc707be2fe04f29c388d24dfd4660998da5792bb3058761c",
                "status": "PASS",
                "verification_value": "0xBD015C42"
              },
              {
                "host": "Xeon8375C",
                "name": "poly1305-hash",
                "test": "Sanity",
                "run": 2,
                "command": [
                  "taskset",
                  "-c",
                  "1",
                  "experiment/speedbench-classic/build-classic/SMHasher3",
                  "poly1305-hash",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/poly1305-hash.sanity.run2.txt",
                "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
                "load_before": {
                  "timestamp": "2026-09-18T09:00:37.934197+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "started": "2026-09-18T09:00:37.934217+00:00",
                "returncode": 0,
                "finished": "2026-09-18T09:00:38.445657+00:00",
                "elapsed_seconds": 0.5114595509367064,
                "load_after": {
                  "timestamp": "2026-09-18T09:00:38.445687+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "raw_sha256": "e91c854d5770985030565538c115d50c03138bae4f8b158015d80ec1cf3ad067",
                "status": "PASS",
                "verification_value": "0xBD015C42"
              }
            ],
            "reference_check_file": "out/Xeon8375C/reference-check.txt",
            "expected_value": "0xBD015C42"
          }
        }
      },
      "mechanism_family": "prime-field polynomial",
      "family_definition": "Polynomial over a prime field; Polymur uses 2^61−1, Poly1305 uses 2^130−5 with a clamped key.",
      "lean": {
        "label": "✓ checked (ideal key)",
        "source": "records/",
        "scope": "Ideal byte-string families: explicit clamped Poly1305 keys and single-stream GHASH with uniform field key; excludes seeded samplers, AES and OpenSSL C/assembly."
      },
      "seed_caveat": "The timed SMHasher3 Poly1305 wrapper derives its key from a 64-bit seed and therefore forms a 2^64-member subfamily to which the ideal-key bound does not apply."
    },
    {
      "id": "horner",
      "pattern": [],
      "code_url": "https://github.com/thomasahle/fast-polynomials",
      "name": "Horner / unrolled, GF(2^64)",
      "bound": "(L−1)/q",
      "score_lower_guarantee": 64,
      "key_words_64bit": "1",
      "output_bits": 64,
      "domain": "Fixed length over GF(2^64), full field output; uniform field key. The output floor applies at L=1.",
      "m2_paper_gbps_16KB_512B": [
        1.3,
        2.3
      ],
      "reference_url": "https://cr.yp.to/antiforgery/pema-20071022.pdf",
      "notes": "Fixed length over GF(2^64), full field output; uniform field key. The output floor applies at L=1.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "(L−1)/q",
      "m2_unrolled_gbps_16KB_512B": [
        5.1,
        7.4
      ],
      "version": "GF(2^64); sequential timing",
      "label": "Horner / unrolled",
      "anchor": "proofs",
      "mechanism": "(L−1)/q",
      "family": "proven",
      "bits": 64,
      "bits_kind": "audited lower guarantee",
      "speeds": {
        "m2_gbps_16k": {
          "value": 1.3,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "m2_gbps_512": {
          "value": 2.3,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "smh_m2_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_m2_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        }
      },
      "qualification": "Fixed length over GF(2^64), full field output; uniform field key. The output floor applies at L=1.",
      "hover": {
        "scope": "Fixed length over GF(2^64), full field output; uniform field key. The output floor applies at L=1."
      },
      "smhasher3": {
        "verdict": "not registered for this family",
        "passed": null,
        "total": null,
        "failed_tests": [],
        "provenance": "records/README.html"
      },
      "speed_registration": null,
      "chart_eligible": true,
      "score_minimizer_L": 1,
      "score_derivation": "min_L log2(L/max(2^-64,min(1,epsilon(L)))); minimizing L=1",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "score_display": "≥ 64",
      "score": {
        "calculated": 64,
        "display": 64,
        "display_text": "≥ 64 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": 1,
        "formula": "(L−1)/q"
      },
      "mechanism_family": "GF(2^k) polynomial",
      "rurban_alias": null,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "No: unshifted AU only.",
        "note": "Last-word XOR 2^63 leaves all low 63 bits equal for every key.",
        "audit_url": "records/README.html"
      },
      "domain_short": "fixed-length only",
      "family_definition": "Polynomial evaluation or recurrence over GF(2^k).",
      "lean": {
        "label": "✓ checked",
        "source": "records/"
      }
    },
    {
      "id": "brw",
      "pattern": [],
      "code_url": "https://github.com/thomasahle/fast-polynomials",
      "name": "BRW, GF(2^64)",
      "bound": "(2L−1)/q",
      "score_lower_guarantee": 63.0,
      "key_words_64bit": "1",
      "output_bits": 64,
      "domain": "Fixed-length BRW envelope, 1≤L≤2^61−1. Minimum of this loose envelope at L=2^61−1; displayed ≥63 is rounded downward.",
      "m2_paper_gbps_16KB_512B": [
        6.0,
        5.3
      ],
      "reference_url": "https://cr.yp.to/antiforgery/pema-20071022.pdf",
      "notes": "Fixed-length BRW envelope, 1≤L≤2^61−1. Minimum of this loose envelope at L=2^61−1; displayed ≥63 is rounded downward.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "(2L−1)/q",
      "version": "GF(2^64)",
      "label": "BRW",
      "anchor": "proofs",
      "mechanism": "(2L−1)/q",
      "family": "proven",
      "bits": 63.0,
      "bits_kind": "audited lower guarantee",
      "speeds": {
        "m2_gbps_16k": {
          "value": 6.0,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "m2_gbps_512": {
          "value": 5.3,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "smh_m2_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_m2_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        }
      },
      "qualification": "Fixed-length BRW envelope, 1≤L≤2^61−1. Minimum of this loose envelope at L=2^61−1; displayed ≥63 is rounded downward.",
      "hover": {
        "scope": "Fixed-length BRW envelope, 1≤L≤2^61−1. Minimum of this loose envelope at L=2^61−1; displayed ≥63 is rounded downward."
      },
      "smhasher3": {
        "verdict": "not registered for this family",
        "passed": null,
        "total": null,
        "failed_tests": [],
        "provenance": "records/README.html"
      },
      "speed_registration": null,
      "chart_eligible": true,
      "score_minimizer_L": "2305843009213693951",
      "score_derivation": "min_L log2(L/max(2^-64,min(1,epsilon(L)))); minimizing L=2305843009213693951",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "score_display": "≥ 63",
      "score": {
        "calculated": 63.0,
        "display": 63.0,
        "display_text": "≥ 63 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": "2305843009213693951",
        "formula": "(2L−1)/q"
      },
      "mechanism_family": "GF(2^k) polynomial",
      "rurban_alias": null,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "No general masking guarantee for raw BRW.",
        "note": "The shifted authenticator has a differential theorem; the raw evaluation row does not inherit it.",
        "audit_url": "records/README.html"
      },
      "domain_short": "fixed-length only",
      "family_definition": "Polynomial evaluation or recurrence over GF(2^k).",
      "lean": {
        "label": "✓ checked",
        "source": "records/",
        "scope": "Fixed-length BRW and eight-lane recurrence bounds are proved; BRW’s finite-domain minimum lies strictly between 63 and 64 and its whole-bit floor is 63; the eight-lane minimum is 61."
      }
    },
    {
      "id": "recurrence",
      "pattern": [],
      "code_url": "https://github.com/thomasahle/fast-polynomials",
      "name": "Injective recurrence, one chain",
      "bound": "ceil(L/2)/q",
      "score_lower_guarantee": 64,
      "key_words_64bit": "3",
      "output_bits": 64,
      "domain": "Fixed padded length, injective field-word encoding; three independent uniform field keys.",
      "m2_paper_gbps_16KB_512B": [
        4.1,
        10.1
      ],
      "reference_url": "https://github.com/thomasahle/fast-polynomials",
      "notes": "Fixed padded length, injective field-word encoding; three independent uniform field keys.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "ceil(L/2)/q",
      "version": "one chain, GF(2^64)",
      "label": "Injective recurrence, one chain",
      "anchor": "proofs",
      "mechanism": "ceil(L/2)/q",
      "family": "proven",
      "bits": 64,
      "bits_kind": "audited lower guarantee",
      "speeds": {
        "m2_gbps_16k": {
          "value": 4.1,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "m2_gbps_512": {
          "value": 10.1,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "smh_m2_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_m2_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        }
      },
      "qualification": "Fixed padded length, injective field-word encoding; three independent uniform field keys.",
      "hover": {
        "scope": "Fixed padded length, injective field-word encoding; three independent uniform field keys."
      },
      "smhasher3": {
        "verdict": "not registered for this family",
        "passed": null,
        "total": null,
        "failed_tests": [],
        "provenance": "records/README.html"
      },
      "speed_registration": null,
      "chart_eligible": true,
      "score_minimizer_L": 1,
      "score_derivation": "min_L log2(L/max(2^-64,min(1,epsilon(L)))); minimizing L=1",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "score_display": "≥ 64",
      "score": {
        "calculated": 64,
        "display": 64,
        "display_text": "≥ 64 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": 1,
        "formula": "ceil(L/2)/q"
      },
      "mechanism_family": "GF(2^k) polynomial",
      "rurban_alias": null,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "No general masking guarantee.",
        "note": "The last additive data word can leave a key-independent constant difference; the audited row is full-output AU.",
        "audit_url": "records/README.html"
      },
      "domain_short": "fixed-length only",
      "family_definition": "Polynomial evaluation or recurrence over GF(2^k).",
      "lean": {
        "label": "✓ checked",
        "source": "records/"
      }
    },
    {
      "id": "lanes",
      "pattern": [],
      "code_url": "https://github.com/thomasahle/fast-polynomials",
      "name": "Injective recurrence, eight lanes",
      "bound": "(ceil(ceil(L/2)/8)+7)/q",
      "score_lower_guarantee": 61,
      "key_words_64bit": "4",
      "output_bits": 64,
      "domain": "The explicitly defined eight-lane field construction, with independent lane-combining key; fixed padded length.",
      "m2_paper_gbps_16KB_512B": [
        23.8,
        17.9
      ],
      "reference_url": "https://github.com/thomasahle/fast-polynomials",
      "notes": "The explicitly defined eight-lane field construction, with independent lane-combining key; fixed padded length.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "(ceil(ceil(L/2)/8)+7)/q",
      "version": "eight lanes, GF(2^64)",
      "label": "Injective recurrence, eight lanes",
      "anchor": "proofs",
      "mechanism": "(ceil(ceil(L/2)/8)+7)/q",
      "family": "proven",
      "bits": 61,
      "bits_kind": "audited lower guarantee",
      "speeds": {
        "m2_gbps_16k": {
          "value": 23.8,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "m2_gbps_512": {
          "value": 17.9,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "smh_m2_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_m2_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        }
      },
      "qualification": "The explicitly defined eight-lane field construction, with independent lane-combining key; fixed padded length.",
      "hover": {
        "scope": "The explicitly defined eight-lane field construction, with independent lane-combining key; fixed padded length."
      },
      "smhasher3": {
        "verdict": "not registered for this family",
        "passed": null,
        "total": null,
        "failed_tests": [],
        "provenance": "records/README.html"
      },
      "speed_registration": null,
      "chart_eligible": true,
      "score_minimizer_L": 1,
      "score_derivation": "min_L log2(L/max(2^-64,min(1,epsilon(L)))); minimizing L=1",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "score_display": "≥ 61",
      "score": {
        "calculated": 61,
        "display": 61,
        "display_text": "≥ 61 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": 1,
        "formula": "(ceil(ceil(L/2)/8)+7)/q"
      },
      "mechanism_family": "GF(2^k) polynomial",
      "rurban_alias": null,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "No general masking guarantee.",
        "note": "The fixed-length lane-composition proof certifies full-output AU, not all XOR differences.",
        "audit_url": "records/README.html"
      },
      "domain_short": "fixed-length only",
      "family_definition": "Polynomial evaluation or recurrence over GF(2^k).",
      "lean": {
        "label": "✓ checked",
        "source": "records/",
        "scope": "Fixed-length BRW and eight-lane recurrence bounds are proved; BRW’s finite-domain minimum lies strictly between 63 and 64 and its whole-bit floor is 63; the eight-lane minimum is 61."
      }
    },
    {
      "id": "ghash",
      "pattern": [],
      "name": "GHASH",
      "label": "GHASH",
      "version": "McGrew–Viega 2004",
      "family": "proven",
      "bits": 127,
      "bits_kind": "proved",
      "score_lower_guarantee": 127,
      "score_display": "≥ 127 bits (proved)",
      "score": {
        "calculated": 127,
        "display": 127,
        "display_text": "≥ 127 bits (proved)",
        "direction": "lower_bound",
        "formula": "(ceil(bytes/16)+1)/2^128",
        "minimizer_L": 1
      },
      "bound": "(ceil(bytes/16)+1)/2^128",
      "source_bound": "(ceil(bytes/16)+1)/2^128",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "official_claim": {
        "text": "The function GHASH is ⌈l/w + 1⌉2^(−t)-almost xor universal",
        "url": "https://eprint.iacr.org/2004/193.pdf"
      },
      "output_bits": 128,
      "key_words_64bit": "2 (uniform H)",
      "key_model": "uniform H in GF(2^128)",
      "domain": "Single AAD byte string, empty ciphertext; each byte length <2^61, uniform H in GF(2^128), full 128-bit output.",
      "domain_short": "full-output polynomial bound",
      "notes": "OpenSSL 3 EVP_MAC; per-call key setup included. GHASH uses a GMAC throughput proxy, with an AES block and AES key setup. The timed SMHasher3 GHASH/GMAC wrapper derives its key from a 64-bit seed and therefore forms a 2^64-member subfamily to which the ideal-key bound does not apply; the audit exhibits a fixed GHASH pair colliding for seed zero.",
      "qualification": "Audited 127-bit single-stream (AAD-only, empty ciphertext) bound with uniform H; each byte length is <2^61. The cited two-stream envelope gives 126.4 bits. GMAC timings include setup. The timed SMHasher3 GHASH/GMAC wrapper derives its key from a 64-bit seed and therefore forms a 2^64-member subfamily to which the ideal-key bound does not apply; the audit exhibits a fixed GHASH pair colliding for seed zero.",
      "anchor": "appendix-classic",
      "code_url": "https://eprint.iacr.org/2004/193.pdf",
      "reference_url": "https://eprint.iacr.org/2004/193.pdf",
      "speed_registration": "ghash",
      "chart_eligible": true,
      "key_free": false,
      "smhasher3": {
        "verdict": "Sanity/verification PASS; full suite not supplied"
      },
      "masking": {
        "label": "Differential bound under the stated key model.",
        "note": "Apply the theorem to the selected output projection; benchmark setup is separate."
      },
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 2.48,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/ghash/M2Pro",
          "registered_name": "ghash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 3.765690376569042,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x1F397201",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x1F397201",
                "result": "PASS"
              },
              "NE": {
                "value": "0x1F397201",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x1F397201",
              "NE": "0x1F397201"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "ghash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "ghash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/ghash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:55.659113+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:55.663530+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:56.551053+00:00",
                "elapsed_seconds": 0.8874843749999997,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:56.555995+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.34 3.15 3.22",
                  "load1": 3.34,
                  "load5": 3.15,
                  "load15": 3.22
                },
                "raw_sha256": "cd22a79c2d7c9ba06b24d0331182a6072f33ff3c43aaa9abf17bd60f0e2946a8",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x1F397201",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_classic": {
                "CE": {
                  "value": "0x1F397201",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x1F397201",
                  "result": "Derived from canonical-both registration; not a separate baseline NE run"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_m2_small_cycles": {
          "value": 1382.75,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/ghash/M2Pro",
          "registered_name": "ghash",
          "host": "M2Pro",
          "backend_token": null,
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 5.086241186042306,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "CE",
              "value": "0x1F397201",
              "result": "PASS"
            },
            "computed_values": {
              "CE": {
                "value": "0x1F397201",
                "result": "PASS"
              },
              "NE": {
                "value": "0x1F397201",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "CE": "0x1F397201",
              "NE": "0x1F397201"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "ghash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "ghash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/ghash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:55.659113+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:55.663530+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:56.551053+00:00",
                "elapsed_seconds": 0.8874843749999997,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:56.555995+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.34 3.15 3.22",
                  "load1": 3.34,
                  "load5": 3.15,
                  "load15": 3.22
                },
                "raw_sha256": "cd22a79c2d7c9ba06b24d0331182a6072f33ff3c43aaa9abf17bd60f0e2946a8",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "CE",
                  "value": "0x1F397201",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_classic": {
                "CE": {
                  "value": "0x1F397201",
                  "result": "PASS"
                },
                "NE": {
                  "value": "0x1F397201",
                  "result": "Derived from canonical-both registration; not a separate baseline NE run"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 7.02,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/ghash/Xeon8375C",
          "registered_name": "ghash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {
            "status": "PASS",
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "ghash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "1",
                  "experiment/speedbench-classic/build-classic/SMHasher3",
                  "ghash",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/ghash.sanity.run1.txt",
                "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
                "load_before": {
                  "timestamp": "2026-09-18T09:00:36.276528+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "started": "2026-09-18T09:00:36.276545+00:00",
                "returncode": 0,
                "finished": "2026-09-18T09:00:37.250741+00:00",
                "elapsed_seconds": 0.9742182869231328,
                "load_after": {
                  "timestamp": "2026-09-18T09:00:37.250772+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "raw_sha256": "1aa5d958dc1fe524f027c7004694ff3246b459a476976bdf1fead44c2ccc6852",
                "status": "PASS",
                "verification_value": "0x1F397201"
              },
              {
                "host": "Xeon8375C",
                "name": "ghash",
                "test": "Sanity",
                "run": 2,
                "command": [
                  "taskset",
                  "-c",
                  "1",
                  "experiment/speedbench-classic/build-classic/SMHasher3",
                  "ghash",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/ghash.sanity.run2.txt",
                "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
                "load_before": {
                  "timestamp": "2026-09-18T09:00:38.445953+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "started": "2026-09-18T09:00:38.445971+00:00",
                "returncode": 0,
                "finished": "2026-09-18T09:00:39.428286+00:00",
                "elapsed_seconds": 0.9823335349792615,
                "load_after": {
                  "timestamp": "2026-09-18T09:00:39.428315+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "raw_sha256": "1eb50f3f45baca0f559265cb5b82a2a02d522ca9f61303152818f0dd318e0197",
                "status": "PASS",
                "verification_value": "0x1F397201"
              }
            ],
            "reference_check_file": "out/Xeon8375C/reference-check.txt",
            "expected_value": "0x1F397201"
          }
        },
        "smh_xeon_small_cycles": {
          "value": 1912.96,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/ghash/Xeon8375C",
          "registered_name": "ghash",
          "host": "Xeon8375C",
          "backend_token": "",
          "backend_note": "(blank token; generic/library dispatch)",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.33246905319503917,
          "verification": {
            "status": "PASS",
            "sanity_runs": [
              {
                "host": "Xeon8375C",
                "name": "ghash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "taskset",
                  "-c",
                  "1",
                  "experiment/speedbench-classic/build-classic/SMHasher3",
                  "ghash",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/ghash.sanity.run1.txt",
                "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
                "load_before": {
                  "timestamp": "2026-09-18T09:00:36.276528+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "started": "2026-09-18T09:00:36.276545+00:00",
                "returncode": 0,
                "finished": "2026-09-18T09:00:37.250741+00:00",
                "elapsed_seconds": 0.9742182869231328,
                "load_after": {
                  "timestamp": "2026-09-18T09:00:37.250772+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "raw_sha256": "1aa5d958dc1fe524f027c7004694ff3246b459a476976bdf1fead44c2ccc6852",
                "status": "PASS",
                "verification_value": "0x1F397201"
              },
              {
                "host": "Xeon8375C",
                "name": "ghash",
                "test": "Sanity",
                "run": 2,
                "command": [
                  "taskset",
                  "-c",
                  "1",
                  "experiment/speedbench-classic/build-classic/SMHasher3",
                  "ghash",
                  "--test=Sanity"
                ],
                "raw_file": "out/Xeon8375C/ghash.sanity.run2.txt",
                "binary_sha256": "6fe3573f86e9f6ed4660ab82ca4e2970e0c93df3057d220a723834702af08fa3",
                "load_before": {
                  "timestamp": "2026-09-18T09:00:38.445953+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "started": "2026-09-18T09:00:38.445971+00:00",
                "returncode": 0,
                "finished": "2026-09-18T09:00:39.428286+00:00",
                "elapsed_seconds": 0.9823335349792615,
                "load_after": {
                  "timestamp": "2026-09-18T09:00:39.428315+00:00",
                  "load1": 9.69,
                  "load5": 9.73,
                  "load15": 9.46
                },
                "raw_sha256": "1eb50f3f45baca0f559265cb5b82a2a02d522ca9f61303152818f0dd318e0197",
                "status": "PASS",
                "verification_value": "0x1F397201"
              }
            ],
            "reference_check_file": "out/Xeon8375C/reference-check.txt",
            "expected_value": "0x1F397201"
          }
        }
      },
      "mechanism_family": "GF(2^k) polynomial",
      "family_definition": "Polynomial evaluation or recurrence over GF(2^k).",
      "lean": {
        "label": "✓ checked (ideal key)",
        "source": "records/",
        "scope": "Ideal byte-string families: explicit clamped Poly1305 keys and single-stream GHASH with uniform field key; excludes seeded samplers, AES and OpenSSL C/assembly."
      },
      "seed_caveat": "The timed SMHasher3 GHASH/GMAC wrapper derives its key from a 64-bit seed and therefore forms a 2^64-member subfamily to which the ideal-key bound does not apply; the audit exhibits a fixed GHASH pair colliding for seed zero."
    },
    {
      "id": "nh",
      "pattern": [],
      "code_url": "https://github.com/thomasahle/fast-polynomials",
      "name": "NH with 64-bit words",
      "bound": "1/q",
      "score_lower_guarantee": 64,
      "key_words_64bit": "2 ceil(L/2)",
      "output_bits": 128,
      "domain": "Unsigned integer NH with 64-bit words at equal fixed padded length. One-word zero padding is admitted; unpadded pairs score 65. No unequal-length transfer is claimed.",
      "m2_paper_gbps_16KB_512B": null,
      "reference_url": "https://web.cs.ucdavis.edu/~rogaway/papers/umac-full.pdf",
      "notes": "Unsigned integer NH with 64-bit words at equal fixed padded length. One-word zero padding is admitted; unpadded pairs score 65. No unequal-length transfer is claimed.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "1/q",
      "version": "64-bit words, 128-bit output",
      "label": "NH with 64-bit words",
      "anchor": "proofs",
      "mechanism": "1/q",
      "family": "proven",
      "bits": 64,
      "bits_kind": "audited lower guarantee",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_m2_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        }
      },
      "qualification": "Unsigned integer NH with 64-bit words at equal fixed padded length. One-word zero padding is admitted; unpadded pairs score 65. No unequal-length transfer is claimed.",
      "hover": {
        "scope": "Unsigned integer NH with 64-bit words at equal fixed padded length. One-word zero padding is admitted; unpadded pairs score 65. No unequal-length transfer is claimed."
      },
      "smhasher3": {
        "verdict": "not registered for this family",
        "passed": null,
        "total": null,
        "failed_tests": [],
        "provenance": "records/README.html"
      },
      "speed_registration": null,
      "chart_eligible": true,
      "score_minimizer_L": 1,
      "score_derivation": "min_L log2(L/max(2^-128,min(1,epsilon(L)))); minimizing L=1",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "score_display": "≥ 64",
      "score": {
        "calculated": 64,
        "display": 64,
        "display_text": "≥ 64 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": 1,
        "formula": "1/q"
      },
      "mechanism_family": "NH",
      "rurban_alias": null,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "Low bits only: integer ADU.",
        "note": "Reduction modulo 2^t costs at most 2^(r−t)ε, clipped at 1. Arbitrary bit subsets are not covered by this additive-group argument.",
        "audit_url": "records/README.html"
      },
      "domain_short": "fixed-length only",
      "family_definition": "Keyed pair products summed.",
      "lean": {
        "label": "partial: executable refinement remains unproved",
        "source": "records/",
        "scope": "Full-output integer NH with fixed original length and optional one-word zero padding is checked (Task A); the implementation correspondence remains partial because the universal executable/Style connection and fixed-header premises are not discharged in Lean."
      }
    },
    {
      "id": "halftimehash",
      "pattern": [],
      "code_url": "https://github.com/fwojcik/smhasher3/tree/7ad8939d/hashes",
      "name": "HalftimeHash, shipped 64-bit API",
      "version": "Style64/128/256/512",
      "label": "HalftimeHash",
      "anchor": "appendix-halftimehash",
      "family": "proven",
      "bits": 63,
      "bits_kind": "proved",
      "bound": "ε(L) ≤ L(2^-63−2^-128); sharper per-length bounds in appendix",
      "key_words_64bit": "8866 64-bit words (kEntropyBytesNeeded = 70928 bytes: 6144 words of tabulation tables + 2722 words for the k = 2 core sized for unbounded length), compiled from the upstream header (commit caf7924)",
      "output_bits": 64,
      "score_lower_guarantee": 63,
      "provenance": [
        "records/README.html"
      ],
      "mechanism": "NH Encode2 trees and length/output tabulation; corrected joint-coordinate proof and overlap conditioning.",
      "qualification": "Audited flat-address/modular-arithmetic execution contract with independent uniform entropy words. Style64/128/256/512 byte caps: <2,761,050,384 / 5,522,100,768 / 11,044,201,536 / 22,088,403,072. Literal ISO-C++ portability and seeded expansion are outside the certificate.",
      "hover": {
        "scope": "Audited flat-address/modular-arithmetic execution contract with independent uniform entropy words. Style64/128/256/512 byte caps: <2,761,050,384 / 5,522,100,768 / 11,044,201,536 / 22,088,403,072. Literal ISO-C++ portability and seeded expansion are outside the certificate."
      },
      "smhasher3": {
        "verdict": "FAIL (all four styles)",
        "passed": null,
        "total": null,
        "failed_tests": [],
        "url": "https://github.com/fwojcik/smhasher3/blob/5035a923/results/README.md",
        "style_counts": {
          "64": "214/250",
          "128": "202/250",
          "256": "200/250",
          "512": "190/250"
        }
      },
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Not measured on the M2 Pro (deliberately skipped; the vendored NEON-fixed copy in tools/bench/adversarial/vendor/halftime_hash/ is ready). Upstream header does not compile on AArch64 without the macro-alias fix (arm_neon_fix.h).",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Not measured on the M2 Pro (deliberately skipped; the vendored NEON-fixed copy in tools/bench/adversarial/vendor/halftime_hash/ is ready). Upstream header does not compile on AArch64 without the macro-alias fix (arm_neon_fix.h).",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_m2_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        }
      },
      "style_speeds": {
        "HalftimeHash-64": {
          "M2Pro": {
            "status": "complete",
            "runs": [
              {
                "host": "M2Pro",
                "name": "HalftimeHash-64",
                "test": "Speed",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "HalftimeHash-64",
                  "--test=Speed"
                ],
                "raw_file": "out/M2Pro/HalftimeHash-64.run1.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T11:15:02.369156+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T11:15:02.374325+00:00",
                  "uptime": "13:15  up 1 day,  1:06, 1 user, load averages: 5.23 6.88 7.97",
                  "load1": 5.23,
                  "load5": 6.88,
                  "load15": 7.97
                },
                "returncode": 0,
                "finished": "2026-09-18T11:16:54.088269+00:00",
                "elapsed_seconds": 111.7135106249998,
                "load_after": {
                  "timestamp": "2026-09-18T11:16:54.098175+00:00",
                  "uptime": "13:16  up 1 day,  1:08, 1 user, load averages: 8.03 7.26 7.97",
                  "load1": 8.03,
                  "load5": 7.26,
                  "load15": 7.97
                },
                "raw_sha256": "4be0efd730e97b39825ebcc8dafceba88eeb72d609465685d48b137a8c8dac71",
                "sha256_verified": true,
                "bulk_bytes_per_cycle": 4.58,
                "bulk_gib_s": 14.93,
                "small_cycles": 48.06,
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 4.58,
                    "bulk_gib_s": 14.93,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  4.58 bytes/cycle - 14.93 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 4.48,
                    "bulk_gib_s": 14.62,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  4.48 bytes/cycle - 14.62 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "clock_assumption": "3.5 ghz",
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "clock_ghz": 3.5
              },
              {
                "host": "M2Pro",
                "name": "HalftimeHash-64",
                "test": "Speed",
                "run": 2,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "HalftimeHash-64",
                  "--test=Speed"
                ],
                "raw_file": "out/M2Pro/HalftimeHash-64.run2.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T12:58:58.742169+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T12:58:58.747992+00:00",
                  "uptime": "14:58  up 1 day,  2:50, 1 user, load averages: 5.96 6.68 7.67",
                  "load1": 5.96,
                  "load5": 6.68,
                  "load15": 7.67
                },
                "returncode": 0,
                "finished": "2026-09-18T13:00:42.023804+00:00",
                "elapsed_seconds": 103.27535679100038,
                "load_after": {
                  "timestamp": "2026-09-18T13:00:42.029951+00:00",
                  "uptime": "15:00  up 1 day,  2:52, 1 user, load averages: 4.68 6.10 7.33",
                  "load1": 4.68,
                  "load5": 6.1,
                  "load15": 7.33
                },
                "raw_sha256": "52b4d8fd1a93bec7faed5a81f9158641e9b35be551ff92f948a3956c3fc6c95b",
                "sha256_verified": true,
                "bulk_bytes_per_cycle": 4.63,
                "bulk_gib_s": 15.08,
                "small_cycles": 48.46,
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 4.63,
                    "bulk_gib_s": 15.08,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  4.63 bytes/cycle - 15.08 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 4.52,
                    "bulk_gib_s": 14.74,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  4.52 bytes/cycle - 14.74 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "clock_assumption": "3.5 ghz",
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "clock_ghz": 3.5
              }
            ],
            "registration": "HalftimeHash-64                64        neon          Halftime Hash (64-bit blocks)                               ",
            "backend_token": "neon",
            "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
            "verification": {
              "status": "PASS",
              "observed": {
                "mode": "LE",
                "value": "0xED42E424",
                "result": "PASS"
              },
              "computed_values": {
                "LE": {
                  "value": "0xED42E424",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x7EE5ED6F",
                  "result": "PASS"
                }
              },
              "registered_expected_values": {
                "LE": "0xED42E424",
                "BE": "0x7EE5ED6F"
              },
              "sanity_runs": [
                {
                  "host": "M2Pro",
                  "name": "HalftimeHash-64",
                  "test": "Sanity",
                  "run": 1,
                  "command": [
                    "experiment/review/m2-rerun/build-fixed/SMHasher3",
                    "HalftimeHash-64",
                    "--test=Sanity"
                  ],
                  "raw_file": "out/M2Pro/HalftimeHash-64.sanity.txt",
                  "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                  "started": "2026-09-18T09:49:34.891665+00:00",
                  "load_before": {
                    "timestamp": "2026-09-18T09:49:34.896202+00:00",
                    "uptime": "11:49  up 23:41, 1 user, load averages: 3.29 3.15 3.23",
                    "load1": 3.29,
                    "load5": 3.15,
                    "load15": 3.23
                  },
                  "returncode": 0,
                  "finished": "2026-09-18T09:49:36.296944+00:00",
                  "elapsed_seconds": 1.400719167,
                  "load_after": {
                    "timestamp": "2026-09-18T09:49:36.302909+00:00",
                    "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                    "load1": 3.11,
                    "load5": 3.11,
                    "load15": 3.21
                  },
                  "raw_sha256": "7e231fee11b50e70bfe99d0dad0a589b6f3a267baa1124b32cd063713f4e3c60",
                  "sha256_verified": true,
                  "implementation_verification": {
                    "mode": "LE",
                    "value": "0xED42E424",
                    "result": "PASS"
                  },
                  "pass_checks": 7,
                  "failure_lines": [],
                  "status": "PASS"
                }
              ],
              "reference_values": {
                "existing_M2": {
                  "LE": {
                    "value": "0xED42E424",
                    "result": "PASS"
                  },
                  "BE": {
                    "value": "0x7EE5ED6F",
                    "result": "PASS"
                  }
                },
                "existing_Xeon": {
                  "LE": {
                    "value": "0xED42E424",
                    "result": "PASS"
                  },
                  "BE": {
                    "value": "0x7EE5ED6F",
                    "result": "PASS"
                  }
                }
              },
              "mismatches": []
            },
            "bulk_bytes_per_cycle": 4.63,
            "bulk_gib_s": 15.08,
            "small_cycles": 48.06,
            "bulk_selected_run": 2,
            "small_selected_run": 1,
            "clock_assumption": "3.5 ghz",
            "clock_assumptions": [
              "3.5 ghz"
            ],
            "bulk_run_spread_percent": 1.091703056768556,
            "small_run_spread_percent": 0.832292967124415,
            "provenance_source": "speeds_m2_v2.json"
          },
          "Xeon8375C": {
            "status": "complete",
            "bulk_bytes_per_cycle": 2.5,
            "bulk_gib_s": 8.16,
            "small_cycles": 90.11,
            "runs": [
              {
                "name": "HalftimeHash-64",
                "run": 1,
                "command": [
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "HalftimeHash-64",
                  "--test=Speed"
                ],
                "raw_file": "out/Xeon8375C/HalftimeHash-64.run1.txt",
                "started": "2026-09-17T21:07:49.052147+00:00",
                "load_before": {
                  "timestamp": "2026-09-17T21:07:49.054112+00:00",
                  "uptime": "21:07:49 up 6 days,  5:51,  1 user,  load average: 2.19, 2.32, 3.11",
                  "load1": 2.19,
                  "load5": 2.32,
                  "load15": 3.11
                },
                "returncode": 0,
                "finished": "2026-09-17T21:11:31.856162+00:00",
                "elapsed_seconds": 222.80404674995225,
                "load_after": {
                  "timestamp": "2026-09-17T21:11:31.858840+00:00",
                  "uptime": "21:11:31 up 6 days,  5:55,  1 user,  load average: 2.54, 2.67, 3.10",
                  "load1": 2.54,
                  "load5": 2.67,
                  "load15": 3.1
                },
                "raw_sha256": "f7ad01c0a819189af2a98c0360ae250b5106c11558d3582ec2d39cb873edb532",
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 2.5,
                    "bulk_gib_s": 8.15,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  2.50 bytes/cycle -  8.15 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 2.49,
                    "bulk_gib_s": 8.13,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  2.49 bytes/cycle -  8.13 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "bulk_bytes_per_cycle": 2.5,
                "bulk_gib_s": 8.15,
                "clock_assumption": "3.5 ghz",
                "clock_ghz": 3.5,
                "small_cycles": 90.11,
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "sha256_verified": true
              },
              {
                "name": "HalftimeHash-64",
                "run": 2,
                "command": [
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "HalftimeHash-64",
                  "--test=Speed"
                ],
                "raw_file": "out/Xeon8375C/HalftimeHash-64.run2.txt",
                "started": "2026-09-17T22:48:00.923086+00:00",
                "load_before": {
                  "timestamp": "2026-09-17T22:48:00.924951+00:00",
                  "uptime": "22:48:00 up 6 days,  7:32,  1 user,  load average: 2.34, 2.54, 2.65",
                  "load1": 2.34,
                  "load5": 2.54,
                  "load15": 2.65
                },
                "returncode": 0,
                "finished": "2026-09-17T22:51:43.517147+00:00",
                "elapsed_seconds": 222.59409285197034,
                "load_after": {
                  "timestamp": "2026-09-17T22:51:43.519813+00:00",
                  "uptime": "22:51:43 up 6 days,  7:35,  1 user,  load average: 2.25, 2.43, 2.58",
                  "load1": 2.25,
                  "load5": 2.43,
                  "load15": 2.58
                },
                "raw_sha256": "1427ab0717ebe49f9c2695aef956a36f822851cbbbac9d0e1ee81d4a7fdc496c",
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 2.5,
                    "bulk_gib_s": 8.16,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  2.50 bytes/cycle -  8.16 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 2.5,
                    "bulk_gib_s": 8.14,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  2.50 bytes/cycle -  8.14 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "bulk_bytes_per_cycle": 2.5,
                "bulk_gib_s": 8.16,
                "clock_assumption": "3.5 ghz",
                "clock_ghz": 3.5,
                "small_cycles": 90.79,
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "sha256_verified": true
              }
            ],
            "registration": "HalftimeHash-64                64     avx512f          Halftime Hash (64-bit blocks)                               ",
            "bulk_selected_run": 2,
            "small_selected_run": 1,
            "clock_assumption": "3.5 ghz",
            "clock_assumptions": [
              "3.5 ghz"
            ],
            "bulk_run_spread_percent": 0.0,
            "small_run_spread_percent": 0.7546332260570443,
            "provenance_source": "speeds_existing.json",
            "backend_token": "avx512f"
          }
        },
        "HalftimeHash-128": {
          "M2Pro": {
            "status": "complete",
            "runs": [
              {
                "host": "M2Pro",
                "name": "HalftimeHash-128",
                "test": "Speed",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "HalftimeHash-128",
                  "--test=Speed"
                ],
                "raw_file": "out/M2Pro/HalftimeHash-128.run1.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T11:16:54.108138+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T11:16:54.114094+00:00",
                  "uptime": "13:16  up 1 day,  1:08, 1 user, load averages: 8.03 7.26 7.97",
                  "load1": 8.03,
                  "load5": 7.26,
                  "load15": 7.97
                },
                "returncode": 0,
                "finished": "2026-09-18T11:17:49.869310+00:00",
                "elapsed_seconds": 55.75490562499999,
                "load_after": {
                  "timestamp": "2026-09-18T11:17:49.875621+00:00",
                  "uptime": "13:17  up 1 day,  1:09, 1 user, load averages: 6.64 7.02 7.84",
                  "load1": 6.64,
                  "load5": 7.02,
                  "load15": 7.84
                },
                "raw_sha256": "641e0cf986346fcc392681888d386ef25e3e631fe04e32f5e9a73ade8f10f9c1",
                "sha256_verified": true,
                "bulk_bytes_per_cycle": 9.46,
                "bulk_gib_s": 30.84,
                "small_cycles": 58.62,
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 9.46,
                    "bulk_gib_s": 30.84,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  9.46 bytes/cycle - 30.84 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 9.28,
                    "bulk_gib_s": 30.25,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  9.28 bytes/cycle - 30.25 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "clock_assumption": "3.5 ghz",
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "clock_ghz": 3.5
              },
              {
                "host": "M2Pro",
                "name": "HalftimeHash-128",
                "test": "Speed",
                "run": 2,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "HalftimeHash-128",
                  "--test=Speed"
                ],
                "raw_file": "out/M2Pro/HalftimeHash-128.run2.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T13:00:42.035668+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T13:00:42.040152+00:00",
                  "uptime": "15:00  up 1 day,  2:52, 1 user, load averages: 4.68 6.10 7.33",
                  "load1": 4.68,
                  "load5": 6.1,
                  "load15": 7.33
                },
                "returncode": 0,
                "finished": "2026-09-18T13:01:36.430099+00:00",
                "elapsed_seconds": 54.38970491700093,
                "load_after": {
                  "timestamp": "2026-09-18T13:01:36.439397+00:00",
                  "uptime": "15:01  up 1 day,  2:53, 1 user, load averages: 4.10 5.73 7.12",
                  "load1": 4.1,
                  "load5": 5.73,
                  "load15": 7.12
                },
                "raw_sha256": "94f3357a57972d2b2223908079e14920b2115d14dc10bcccbf42cf996b6385d7",
                "sha256_verified": true,
                "bulk_bytes_per_cycle": 9.49,
                "bulk_gib_s": 30.93,
                "small_cycles": 59.5,
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 9.49,
                    "bulk_gib_s": 30.93,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  9.49 bytes/cycle - 30.93 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 9.41,
                    "bulk_gib_s": 30.68,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  9.41 bytes/cycle - 30.68 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "clock_assumption": "3.5 ghz",
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "clock_ghz": 3.5
              }
            ],
            "registration": "HalftimeHash-128               64        neon          Halftime Hash (128-bit blocks)                              ",
            "backend_token": "neon",
            "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
            "verification": {
              "status": "PASS",
              "observed": {
                "mode": "LE",
                "value": "0x952DF141",
                "result": "PASS"
              },
              "computed_values": {
                "LE": {
                  "value": "0x952DF141",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xD79E990B",
                  "result": "PASS"
                }
              },
              "registered_expected_values": {
                "LE": "0x952DF141",
                "BE": "0xD79E990B"
              },
              "sanity_runs": [
                {
                  "host": "M2Pro",
                  "name": "HalftimeHash-128",
                  "test": "Sanity",
                  "run": 1,
                  "command": [
                    "experiment/review/m2-rerun/build-fixed/SMHasher3",
                    "HalftimeHash-128",
                    "--test=Sanity"
                  ],
                  "raw_file": "out/M2Pro/HalftimeHash-128.sanity.txt",
                  "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                  "started": "2026-09-18T09:49:36.307626+00:00",
                  "load_before": {
                    "timestamp": "2026-09-18T09:49:36.312084+00:00",
                    "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                    "load1": 3.11,
                    "load5": 3.11,
                    "load15": 3.21
                  },
                  "returncode": 0,
                  "finished": "2026-09-18T09:49:37.660081+00:00",
                  "elapsed_seconds": 1.347962374999998,
                  "load_after": {
                    "timestamp": "2026-09-18T09:49:37.665637+00:00",
                    "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                    "load1": 3.11,
                    "load5": 3.11,
                    "load15": 3.21
                  },
                  "raw_sha256": "182029524ccb98643366f9b9caf1be843bf7162cbc5e52f0e1d71d0d8220e44f",
                  "sha256_verified": true,
                  "implementation_verification": {
                    "mode": "LE",
                    "value": "0x952DF141",
                    "result": "PASS"
                  },
                  "pass_checks": 7,
                  "failure_lines": [],
                  "status": "PASS"
                }
              ],
              "reference_values": {
                "existing_M2": {
                  "LE": {
                    "value": "0x952DF141",
                    "result": "PASS"
                  },
                  "BE": {
                    "value": "0xD79E990B",
                    "result": "PASS"
                  }
                },
                "existing_Xeon": {
                  "LE": {
                    "value": "0x952DF141",
                    "result": "PASS"
                  },
                  "BE": {
                    "value": "0xD79E990B",
                    "result": "PASS"
                  }
                }
              },
              "mismatches": []
            },
            "bulk_bytes_per_cycle": 9.49,
            "bulk_gib_s": 30.93,
            "small_cycles": 58.62,
            "bulk_selected_run": 2,
            "small_selected_run": 1,
            "clock_assumption": "3.5 ghz",
            "clock_assumptions": [
              "3.5 ghz"
            ],
            "bulk_run_spread_percent": 0.3171247357293794,
            "small_run_spread_percent": 1.5011941316956712,
            "provenance_source": "speeds_m2_v2.json"
          },
          "Xeon8375C": {
            "status": "complete",
            "bulk_bytes_per_cycle": 8.07,
            "bulk_gib_s": 26.32,
            "small_cycles": 82.97,
            "runs": [
              {
                "name": "HalftimeHash-128",
                "run": 1,
                "command": [
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "HalftimeHash-128",
                  "--test=Speed"
                ],
                "raw_file": "out/Xeon8375C/HalftimeHash-128.run1.txt",
                "started": "2026-09-17T21:11:31.860075+00:00",
                "load_before": {
                  "timestamp": "2026-09-17T21:11:31.862018+00:00",
                  "uptime": "21:11:31 up 6 days,  5:55,  1 user,  load average: 2.54, 2.67, 3.10",
                  "load1": 2.54,
                  "load5": 2.67,
                  "load15": 3.1
                },
                "returncode": 0,
                "finished": "2026-09-17T21:12:54.422945+00:00",
                "elapsed_seconds": 82.5629024390364,
                "load_after": {
                  "timestamp": "2026-09-17T21:12:54.425604+00:00",
                  "uptime": "21:12:54 up 6 days,  5:57,  1 user,  load average: 2.35, 2.60, 3.03",
                  "load1": 2.35,
                  "load5": 2.6,
                  "load15": 3.03
                },
                "raw_sha256": "8a932074386dd136b9579e970b62f19cce0bacc7328e1faf4d40f601eb0014a9",
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 8.02,
                    "bulk_gib_s": 26.16,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  8.02 bytes/cycle - 26.16 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 8.02,
                    "bulk_gib_s": 26.16,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  8.02 bytes/cycle - 26.16 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "bulk_bytes_per_cycle": 8.02,
                "bulk_gib_s": 26.16,
                "clock_assumption": "3.5 ghz",
                "clock_ghz": 3.5,
                "small_cycles": 83.01,
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "sha256_verified": true
              },
              {
                "name": "HalftimeHash-128",
                "run": 2,
                "command": [
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "HalftimeHash-128",
                  "--test=Speed"
                ],
                "raw_file": "out/Xeon8375C/HalftimeHash-128.run2.txt",
                "started": "2026-09-17T22:51:43.522307+00:00",
                "load_before": {
                  "timestamp": "2026-09-17T22:51:43.524192+00:00",
                  "uptime": "22:51:43 up 6 days,  7:35,  1 user,  load average: 2.25, 2.43, 2.58",
                  "load1": 2.25,
                  "load5": 2.43,
                  "load15": 2.58
                },
                "returncode": 0,
                "finished": "2026-09-17T22:53:06.192021+00:00",
                "elapsed_seconds": 82.66974645399023,
                "load_after": {
                  "timestamp": "2026-09-17T22:53:06.194651+00:00",
                  "uptime": "22:53:06 up 6 days,  7:37,  1 user,  load average: 3.71, 2.79, 2.69",
                  "load1": 3.71,
                  "load5": 2.79,
                  "load15": 2.69
                },
                "raw_sha256": "983388df2c62e30a743d7d963e714d50987992a773bdbab9f381627386a1ad25",
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 8.07,
                    "bulk_gib_s": 26.32,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  8.07 bytes/cycle - 26.32 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 7.97,
                    "bulk_gib_s": 25.97,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  7.97 bytes/cycle - 25.97 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "bulk_bytes_per_cycle": 8.07,
                "bulk_gib_s": 26.32,
                "clock_assumption": "3.5 ghz",
                "clock_ghz": 3.5,
                "small_cycles": 82.97,
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "sha256_verified": true
              }
            ],
            "registration": "HalftimeHash-128               64     avx512f          Halftime Hash (128-bit blocks)                              ",
            "bulk_selected_run": 2,
            "small_selected_run": 2,
            "clock_assumption": "3.5 ghz",
            "clock_assumptions": [
              "3.5 ghz"
            ],
            "bulk_run_spread_percent": 0.6234413965087393,
            "small_run_spread_percent": 0.04821019645655511,
            "provenance_source": "speeds_existing.json",
            "backend_token": "avx512f"
          }
        },
        "HalftimeHash-256": {
          "M2Pro": {
            "status": "complete",
            "runs": [
              {
                "host": "M2Pro",
                "name": "HalftimeHash-256",
                "test": "Speed",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "HalftimeHash-256",
                  "--test=Speed"
                ],
                "raw_file": "out/M2Pro/HalftimeHash-256.run1.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T11:17:49.881584+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T11:17:49.886503+00:00",
                  "uptime": "13:17  up 1 day,  1:09, 1 user, load averages: 6.64 7.02 7.84",
                  "load1": 6.64,
                  "load5": 7.02,
                  "load15": 7.84
                },
                "returncode": 0,
                "finished": "2026-09-18T11:18:43.048756+00:00",
                "elapsed_seconds": 53.16198537500077,
                "load_after": {
                  "timestamp": "2026-09-18T11:18:43.055235+00:00",
                  "uptime": "13:18  up 1 day,  1:10, 1 user, load averages: 6.41 6.82 7.71",
                  "load1": 6.41,
                  "load5": 6.82,
                  "load15": 7.71
                },
                "raw_sha256": "0914fc4873a568c2a5c21cc4ba1e712023f17258d57e98e94e9f358157f3f60f",
                "sha256_verified": true,
                "bulk_bytes_per_cycle": 10.49,
                "bulk_gib_s": 34.19,
                "small_cycles": 59.12,
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 10.49,
                    "bulk_gib_s": 34.19,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       - 10.49 bytes/cycle - 34.19 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 9.87,
                    "bulk_gib_s": 32.19,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  9.87 bytes/cycle - 32.19 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "clock_assumption": "3.5 ghz",
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "clock_ghz": 3.5
              },
              {
                "host": "M2Pro",
                "name": "HalftimeHash-256",
                "test": "Speed",
                "run": 2,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "HalftimeHash-256",
                  "--test=Speed"
                ],
                "raw_file": "out/M2Pro/HalftimeHash-256.run2.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T13:01:36.445847+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T13:01:36.450878+00:00",
                  "uptime": "15:01  up 1 day,  2:53, 1 user, load averages: 4.10 5.73 7.12",
                  "load1": 4.1,
                  "load5": 5.73,
                  "load15": 7.12
                },
                "returncode": 0,
                "finished": "2026-09-18T13:02:28.290328+00:00",
                "elapsed_seconds": 51.839211333001,
                "load_after": {
                  "timestamp": "2026-09-18T13:02:28.296712+00:00",
                  "uptime": "15:02  up 1 day,  2:53, 1 user, load averages: 4.04 5.47 6.94",
                  "load1": 4.04,
                  "load5": 5.47,
                  "load15": 6.94
                },
                "raw_sha256": "7a444ed06dbad520f35b8a9aa79952ff65e25a74b0ce70d10ad1d958d7053335",
                "sha256_verified": true,
                "bulk_bytes_per_cycle": 10.07,
                "bulk_gib_s": 32.81,
                "small_cycles": 60.77,
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 10.07,
                    "bulk_gib_s": 32.81,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       - 10.07 bytes/cycle - 32.81 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 9.86,
                    "bulk_gib_s": 32.14,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  9.86 bytes/cycle - 32.14 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "clock_assumption": "3.5 ghz",
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "clock_ghz": 3.5
              }
            ],
            "registration": "HalftimeHash-256               64        neon          Halftime Hash (256-bit blocks)                              ",
            "backend_token": "neon",
            "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
            "verification": {
              "status": "PASS",
              "observed": {
                "mode": "LE",
                "value": "0x912330EA",
                "result": "PASS"
              },
              "computed_values": {
                "LE": {
                  "value": "0x912330EA",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x23C24991",
                  "result": "PASS"
                }
              },
              "registered_expected_values": {
                "LE": "0x912330EA",
                "BE": "0x23C24991"
              },
              "sanity_runs": [
                {
                  "host": "M2Pro",
                  "name": "HalftimeHash-256",
                  "test": "Sanity",
                  "run": 1,
                  "command": [
                    "experiment/review/m2-rerun/build-fixed/SMHasher3",
                    "HalftimeHash-256",
                    "--test=Sanity"
                  ],
                  "raw_file": "out/M2Pro/HalftimeHash-256.sanity.txt",
                  "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                  "started": "2026-09-18T09:49:37.670424+00:00",
                  "load_before": {
                    "timestamp": "2026-09-18T09:49:37.675105+00:00",
                    "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                    "load1": 3.11,
                    "load5": 3.11,
                    "load15": 3.21
                  },
                  "returncode": 0,
                  "finished": "2026-09-18T09:49:39.041261+00:00",
                  "elapsed_seconds": 1.3661071249999992,
                  "load_after": {
                    "timestamp": "2026-09-18T09:49:39.047342+00:00",
                    "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                    "load1": 3.11,
                    "load5": 3.11,
                    "load15": 3.21
                  },
                  "raw_sha256": "5ba6496d39af36725e0c6566be3fefb9a136c737fa2902a79ee88be52fc19f27",
                  "sha256_verified": true,
                  "implementation_verification": {
                    "mode": "LE",
                    "value": "0x912330EA",
                    "result": "PASS"
                  },
                  "pass_checks": 7,
                  "failure_lines": [],
                  "status": "PASS"
                }
              ],
              "reference_values": {
                "existing_M2": {
                  "LE": {
                    "value": "0x912330EA",
                    "result": "PASS"
                  },
                  "BE": {
                    "value": "0x23C24991",
                    "result": "PASS"
                  }
                },
                "existing_Xeon": {
                  "LE": {
                    "value": "0x912330EA",
                    "result": "PASS"
                  },
                  "BE": {
                    "value": "0x23C24991",
                    "result": "PASS"
                  }
                }
              },
              "mismatches": []
            },
            "bulk_bytes_per_cycle": 10.49,
            "bulk_gib_s": 34.19,
            "small_cycles": 59.12,
            "bulk_selected_run": 1,
            "small_selected_run": 1,
            "clock_assumption": "3.5 ghz",
            "clock_assumptions": [
              "3.5 ghz"
            ],
            "bulk_run_spread_percent": 4.170804369414105,
            "small_run_spread_percent": 2.79093369418133,
            "provenance_source": "speeds_m2_v2.json"
          },
          "Xeon8375C": {
            "status": "complete",
            "bulk_bytes_per_cycle": 15.7,
            "bulk_gib_s": 51.17,
            "small_cycles": 77.66,
            "runs": [
              {
                "name": "HalftimeHash-256",
                "run": 1,
                "command": [
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "HalftimeHash-256",
                  "--test=Speed"
                ],
                "raw_file": "out/Xeon8375C/HalftimeHash-256.run1.txt",
                "started": "2026-09-17T21:12:54.426823+00:00",
                "load_before": {
                  "timestamp": "2026-09-17T21:12:54.428713+00:00",
                  "uptime": "21:12:54 up 6 days,  5:57,  1 user,  load average: 2.35, 2.60, 3.03",
                  "load1": 2.35,
                  "load5": 2.6,
                  "load15": 3.03
                },
                "returncode": 0,
                "finished": "2026-09-17T21:13:45.089326+00:00",
                "elapsed_seconds": 50.66253525996581,
                "load_after": {
                  "timestamp": "2026-09-17T21:13:45.091982+00:00",
                  "uptime": "21:13:45 up 6 days,  5:57,  1 user,  load average: 2.43, 2.59, 3.01",
                  "load1": 2.43,
                  "load5": 2.59,
                  "load15": 3.01
                },
                "raw_sha256": "bd2cd95b9c1a8d2607baf9350a224ce5f5aca650a66dd294bd3aee28d77f7e87",
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 15.7,
                    "bulk_gib_s": 51.17,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       - 15.70 bytes/cycle - 51.17 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 15.65,
                    "bulk_gib_s": 51.0,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       - 15.65 bytes/cycle - 51.00 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "bulk_bytes_per_cycle": 15.7,
                "bulk_gib_s": 51.17,
                "clock_assumption": "3.5 ghz",
                "clock_ghz": 3.5,
                "small_cycles": 77.69,
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "sha256_verified": true
              },
              {
                "name": "HalftimeHash-256",
                "run": 2,
                "command": [
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "HalftimeHash-256",
                  "--test=Speed"
                ],
                "raw_file": "out/Xeon8375C/HalftimeHash-256.run2.txt",
                "started": "2026-09-17T22:53:06.197606+00:00",
                "load_before": {
                  "timestamp": "2026-09-17T22:53:06.199431+00:00",
                  "uptime": "22:53:06 up 6 days,  7:37,  1 user,  load average: 3.71, 2.79, 2.69",
                  "load1": 3.71,
                  "load5": 2.79,
                  "load15": 2.69
                },
                "returncode": 0,
                "finished": "2026-09-17T22:53:57.307864+00:00",
                "elapsed_seconds": 51.11029116809368,
                "load_after": {
                  "timestamp": "2026-09-17T22:53:57.310502+00:00",
                  "uptime": "22:53:57 up 6 days,  7:38,  1 user,  load average: 2.94, 2.73, 2.67",
                  "load1": 2.94,
                  "load5": 2.73,
                  "load15": 2.67
                },
                "raw_sha256": "5d46536d4c49ebc2c043c6c70bf1cdb9d8044abc3029eb59c8e4029e955e3ad9",
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 15.58,
                    "bulk_gib_s": 50.78,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       - 15.58 bytes/cycle - 50.78 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 15.58,
                    "bulk_gib_s": 50.79,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       - 15.58 bytes/cycle - 50.79 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "bulk_bytes_per_cycle": 15.58,
                "bulk_gib_s": 50.78,
                "clock_assumption": "3.5 ghz",
                "clock_ghz": 3.5,
                "small_cycles": 77.66,
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "sha256_verified": true
              }
            ],
            "registration": "HalftimeHash-256               64     avx512f          Halftime Hash (256-bit blocks)                              ",
            "bulk_selected_run": 1,
            "small_selected_run": 2,
            "clock_assumption": "3.5 ghz",
            "clock_assumptions": [
              "3.5 ghz"
            ],
            "bulk_run_spread_percent": 0.7702182284980763,
            "small_run_spread_percent": 0.038629925315469826,
            "provenance_source": "speeds_existing.json",
            "backend_token": "avx512f"
          }
        },
        "HalftimeHash-512": {
          "M2Pro": {
            "status": "complete",
            "runs": [
              {
                "host": "M2Pro",
                "name": "HalftimeHash-512",
                "test": "Speed",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "HalftimeHash-512",
                  "--test=Speed"
                ],
                "raw_file": "out/M2Pro/HalftimeHash-512.run1.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T11:18:43.061446+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T11:18:43.066613+00:00",
                  "uptime": "13:18  up 1 day,  1:10, 1 user, load averages: 6.41 6.82 7.71",
                  "load1": 6.41,
                  "load5": 6.82,
                  "load15": 7.71
                },
                "returncode": 0,
                "finished": "2026-09-18T11:19:52.575459+00:00",
                "elapsed_seconds": 69.50850083299974,
                "load_after": {
                  "timestamp": "2026-09-18T11:19:52.582290+00:00",
                  "uptime": "13:19  up 1 day,  1:11, 1 user, load averages: 4.32 6.11 7.37",
                  "load1": 4.32,
                  "load5": 6.11,
                  "load15": 7.37
                },
                "raw_sha256": "cf3322a2ac5b225fe423d9e7fe36364d8307ceb6d908552f69894e8be44c88c4",
                "sha256_verified": true,
                "bulk_bytes_per_cycle": 7.49,
                "bulk_gib_s": 24.41,
                "small_cycles": 63.38,
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 7.49,
                    "bulk_gib_s": 24.41,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  7.49 bytes/cycle - 24.41 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 7.4,
                    "bulk_gib_s": 24.13,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  7.40 bytes/cycle - 24.13 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "clock_assumption": "3.5 ghz",
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "clock_ghz": 3.5
              },
              {
                "host": "M2Pro",
                "name": "HalftimeHash-512",
                "test": "Speed",
                "run": 2,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "HalftimeHash-512",
                  "--test=Speed"
                ],
                "raw_file": "out/M2Pro/HalftimeHash-512.run2.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T13:02:28.303119+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T13:02:28.308609+00:00",
                  "uptime": "15:02  up 1 day,  2:53, 1 user, load averages: 4.04 5.47 6.94",
                  "load1": 4.04,
                  "load5": 5.47,
                  "load15": 6.94
                },
                "returncode": 0,
                "finished": "2026-09-18T13:03:36.405842+00:00",
                "elapsed_seconds": 68.09693470899947,
                "load_after": {
                  "timestamp": "2026-09-18T13:03:36.411714+00:00",
                  "uptime": "15:03  up 1 day,  2:55, 1 user, load averages: 3.87 5.18 6.72",
                  "load1": 3.87,
                  "load5": 5.18,
                  "load15": 6.72
                },
                "raw_sha256": "ffd272870601b76509658f63446668c84bc0b51064bb112c074ee920f08857c3",
                "sha256_verified": true,
                "bulk_bytes_per_cycle": 7.22,
                "bulk_gib_s": 23.53,
                "small_cycles": 64.91,
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 7.22,
                    "bulk_gib_s": 23.53,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  7.22 bytes/cycle - 23.53 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 7.18,
                    "bulk_gib_s": 23.4,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       -  7.18 bytes/cycle - 23.40 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "clock_assumption": "3.5 ghz",
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "clock_ghz": 3.5
              }
            ],
            "registration": "HalftimeHash-512               64        neon          Halftime Hash (512-bit blocks)                              ",
            "backend_token": "neon",
            "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
            "verification": {
              "status": "PASS",
              "observed": {
                "mode": "LE",
                "value": "0x1E0F99EA",
                "result": "PASS"
              },
              "computed_values": {
                "LE": {
                  "value": "0x1E0F99EA",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xA3A0AE42",
                  "result": "PASS"
                }
              },
              "registered_expected_values": {
                "LE": "0x1E0F99EA",
                "BE": "0xA3A0AE42"
              },
              "sanity_runs": [
                {
                  "host": "M2Pro",
                  "name": "HalftimeHash-512",
                  "test": "Sanity",
                  "run": 1,
                  "command": [
                    "experiment/review/m2-rerun/build-fixed/SMHasher3",
                    "HalftimeHash-512",
                    "--test=Sanity"
                  ],
                  "raw_file": "out/M2Pro/HalftimeHash-512.sanity.txt",
                  "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                  "started": "2026-09-18T09:49:39.052153+00:00",
                  "load_before": {
                    "timestamp": "2026-09-18T09:49:39.056934+00:00",
                    "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                    "load1": 3.11,
                    "load5": 3.11,
                    "load15": 3.21
                  },
                  "returncode": 0,
                  "finished": "2026-09-18T09:49:40.413053+00:00",
                  "elapsed_seconds": 1.3560916249999977,
                  "load_after": {
                    "timestamp": "2026-09-18T09:49:40.418909+00:00",
                    "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                    "load1": 3.11,
                    "load5": 3.11,
                    "load15": 3.21
                  },
                  "raw_sha256": "da19a465da07367e112d182de450330120c5c5b54175669bd7e64fd46ce67e40",
                  "sha256_verified": true,
                  "implementation_verification": {
                    "mode": "LE",
                    "value": "0x1E0F99EA",
                    "result": "PASS"
                  },
                  "pass_checks": 7,
                  "failure_lines": [],
                  "status": "PASS"
                }
              ],
              "reference_values": {
                "existing_M2": {
                  "LE": {
                    "value": "0x1E0F99EA",
                    "result": "PASS"
                  },
                  "BE": {
                    "value": "0xA3A0AE42",
                    "result": "PASS"
                  }
                },
                "existing_Xeon": {
                  "LE": {
                    "value": "0x1E0F99EA",
                    "result": "PASS"
                  },
                  "BE": {
                    "value": "0xA3A0AE42",
                    "result": "PASS"
                  }
                }
              },
              "mismatches": []
            },
            "bulk_bytes_per_cycle": 7.49,
            "bulk_gib_s": 24.41,
            "small_cycles": 63.38,
            "bulk_selected_run": 1,
            "small_selected_run": 1,
            "clock_assumption": "3.5 ghz",
            "clock_assumptions": [
              "3.5 ghz"
            ],
            "bulk_run_spread_percent": 3.7396121883656486,
            "small_run_spread_percent": 2.4140107289365664,
            "provenance_source": "speeds_m2_v2.json"
          },
          "Xeon8375C": {
            "status": "complete",
            "bulk_bytes_per_cycle": 19.29,
            "bulk_gib_s": 62.87,
            "small_cycles": 85.74,
            "runs": [
              {
                "name": "HalftimeHash-512",
                "run": 1,
                "command": [
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "HalftimeHash-512",
                  "--test=Speed"
                ],
                "raw_file": "out/Xeon8375C/HalftimeHash-512.run1.txt",
                "started": "2026-09-17T21:13:45.093302+00:00",
                "load_before": {
                  "timestamp": "2026-09-17T21:13:45.095156+00:00",
                  "uptime": "21:13:45 up 6 days,  5:57,  1 user,  load average: 2.43, 2.59, 3.01",
                  "load1": 2.43,
                  "load5": 2.59,
                  "load15": 3.01
                },
                "returncode": 0,
                "finished": "2026-09-17T21:14:30.896249+00:00",
                "elapsed_seconds": 45.80297902505845,
                "load_after": {
                  "timestamp": "2026-09-17T21:14:30.898973+00:00",
                  "uptime": "21:14:30 up 6 days,  5:58,  1 user,  load average: 2.42, 2.57, 2.98",
                  "load1": 2.42,
                  "load5": 2.57,
                  "load15": 2.98
                },
                "raw_sha256": "54e9c94918c26d5cf43bd962e1e3b8b7bb5cefb23cb3bb4eedf1198f87136123",
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 19.13,
                    "bulk_gib_s": 62.35,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       - 19.13 bytes/cycle - 62.35 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 19.27,
                    "bulk_gib_s": 62.81,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       - 19.27 bytes/cycle - 62.81 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "bulk_bytes_per_cycle": 19.13,
                "bulk_gib_s": 62.35,
                "clock_assumption": "3.5 ghz",
                "clock_ghz": 3.5,
                "small_cycles": 85.74,
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "sha256_verified": true
              },
              {
                "name": "HalftimeHash-512",
                "run": 2,
                "command": [
                  "experiment/speedbench/build-release-20260917/SMHasher3",
                  "HalftimeHash-512",
                  "--test=Speed"
                ],
                "raw_file": "out/Xeon8375C/HalftimeHash-512.run2.txt",
                "started": "2026-09-17T22:53:57.313029+00:00",
                "load_before": {
                  "timestamp": "2026-09-17T22:53:57.314897+00:00",
                  "uptime": "22:53:57 up 6 days,  7:38,  1 user,  load average: 2.94, 2.73, 2.67",
                  "load1": 2.94,
                  "load5": 2.73,
                  "load15": 2.67
                },
                "returncode": 0,
                "finished": "2026-09-17T22:54:43.222891+00:00",
                "elapsed_seconds": 45.90990495297592,
                "load_after": {
                  "timestamp": "2026-09-17T22:54:43.225514+00:00",
                  "uptime": "22:54:43 up 6 days,  7:38,  1 user,  load average: 2.59, 2.67, 2.66",
                  "load1": 2.59,
                  "load5": 2.67,
                  "load15": 2.66
                },
                "raw_sha256": "66e21b83fca20d1ac6f1f903de730a8bbdd5507880ef906058fe1b55080594af",
                "bulk_sections": [
                  {
                    "header": "Bulk speed test - 262144-byte keys",
                    "bulk_bytes_per_cycle": 19.29,
                    "bulk_gib_s": 62.87,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       - 19.29 bytes/cycle - 62.87 GiB/sec @ 3.5 ghz"
                  },
                  {
                    "header": "Bulk speed test - [262017, 262144]-byte keys",
                    "bulk_bytes_per_cycle": 19.16,
                    "bulk_gib_s": 62.47,
                    "clock_assumption": "3.5 ghz",
                    "clock_ghz": 3.5,
                    "average_line": "Average       - 19.16 bytes/cycle - 62.47 GiB/sec @ 3.5 ghz"
                  }
                ],
                "small_header": "Small key speed test - [1, 31]-byte keys",
                "bulk_bytes_per_cycle": 19.29,
                "bulk_gib_s": 62.87,
                "clock_assumption": "3.5 ghz",
                "clock_ghz": 3.5,
                "small_cycles": 85.89,
                "clock_assumptions": [
                  "3.5 ghz"
                ],
                "valid": true,
                "sha256_verified": true
              }
            ],
            "registration": "HalftimeHash-512               64     avx512f          Halftime Hash (512-bit blocks)                              ",
            "bulk_selected_run": 2,
            "small_selected_run": 1,
            "clock_assumption": "3.5 ghz",
            "clock_assumptions": [
              "3.5 ghz"
            ],
            "bulk_run_spread_percent": 0.8363826450601186,
            "small_run_spread_percent": 0.174947515745294,
            "provenance_source": "speeds_existing.json",
            "backend_token": "avx512f"
          }
        }
      },
      "speed_registration": null,
      "chart_eligible": true,
      "source_bound": "ε(L) ≤ L(2^-63−2^-128); sharper per-length bounds in appendix",
      "score_minimizer_L": 1,
      "score_derivation": "Optimal normalized coefficient 2−2^-64, attained by 00 versus 01.",
      "domain": "Audited flat-address/modular-arithmetic execution contract with independent uniform entropy words. Style64/128/256/512 byte caps: <2,761,050,384 / 5,522,100,768 / 11,044,201,536 / 22,088,403,072. Literal ISO-C++ portability and seeded expansion are outside the certificate.",
      "notes": "Audited flat-address/modular-arithmetic execution contract with independent uniform entropy words. Style64/128/256/512 byte caps: <2,761,050,384 / 5,522,100,768 / 11,044,201,536 / 22,088,403,072. Literal ISO-C++ portability and seeded expansion are outside the certificate.",
      "proof_status": "proved ≥ 63 (audited; corrected proof with an execution contract and finite length caps; see records)",
      "proof_source": "records/papers/halftime_repair.pdf",
      "score_display": "≥ 63 bits (proved)",
      "score": {
        "calculated": 63,
        "display": 63,
        "display_text": "≥ 63 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": 1,
        "formula": "ε(L) ≤ L(2^-63−2^-128); sharper per-length bounds in appendix"
      },
      "bits_certified": 63,
      "bound_certified": "L(2^-63−2^-128)",
      "mechanism_family": "NH + tabulation",
      "rurban_alias": "halftime_hash128",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "Full 64-bit wrapper certificate.",
        "note": "A separate proof is needed for an arbitrary bucket mapping."
      },
      "domain_short": "flat-address, unsigned arithmetic; finite stack-safe caps",
      "family_definition": "NH trees + tabulation of the core outputs and length.",
      "lean": {
        "label": "partial: executable refinement remains unproved",
        "source": "records/",
        "scope": "The abstract Style construction is checked; the implementation correspondence remains partial because the universal executable/Style connection and fixed-header premises are not discharged in Lean."
      }
    },
    {
      "id": "umash",
      "pattern": [],
      "code_url": "https://github.com/backtrace-labs/umash/blob/master/umash.c",
      "name": "UMASH-64",
      "bound": "ε(1) = 1/(2^64−561); ε(L ≥ 2) = max{A + (1−A)ρ(L), S}; A = 205/(2^64−561); S = 435/(2^64−561) + 2/(2^61−3); ρ(L) = min(1, 2⌈L/32⌉/(2^61−3))",
      "score_lower_guarantee": 56.18,
      "key_words_64bit": "38",
      "output_bits": 64,
      "domain": "The published UMASH-64 headline is proved with coefficient 58 instead of 64: Pr[collision] < 58·⌈L/512⌉/2^61. The implemented accumulator modulo 8p = 2^64−8 retains three bits beyond field reduction; a final reduction modulo p alone would not give this proof. The envelope scores 56.18 bits at L = 2 under both length conventions. At 1 KB / 1 MB / 1 GB, −log₂ ε = 55.18 / 47.995 / 38.000 (published 55 / 47 / 37). Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems.",
      "m2_paper_gbps_16KB_512B": [
        40.7,
        32.9
      ],
      "reference_url": "https://github.com/backtrace-labs/umash/blob/master/umash.pdf",
      "notes": "The published UMASH-64 headline is proved with coefficient 58 instead of 64: Pr[collision] < 58·⌈L/512⌉/2^61. The implemented accumulator modulo 8p = 2^64−8 retains three bits beyond field reduction; a final reduction modulo p alone would not give this proof. The envelope scores 56.18 bits at L = 2 under both length conventions. At 1 KB / 1 MB / 1 GB, −log₂ ε = 55.18 / 47.995 / 38.000 (published 55 / 47 / 37). Both published headlines are proved by different routes. ENH-only and PH+ENH joint cases are closed (below 2^-105 and 2^-90 after distinct-word conditioning). The paper’s intermediate 162/q projection step remains unvalidated. Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "ceil(L/512)·2^-55",
      "version": "64-bit",
      "label": "UMASH-64",
      "anchor": "appendix-umash",
      "mechanism": "mod-8p accumulator",
      "family": "proven",
      "bits": 56.18,
      "bits_kind": "proven",
      "speeds": {
        "m2_gbps_16k": {
          "value": 40.7,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "m2_gbps_512": {
          "value": 32.9,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "smh_m2_bulk_Bpc": {
          "value": 14.21,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/UMASH-64/M2Pro",
          "registered_name": "UMASH-64",
          "host": "M2Pro",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 5.989773557341138,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x36A264CD",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x36A264CD",
                "result": "PASS"
              },
              "BE": {
                "value": "0x84DA635B",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x36A264CD",
              "BE": "0x84DA635B"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "UMASH-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "UMASH-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/UMASH-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:53.509191+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:53.513719+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:53.987557+00:00",
                "elapsed_seconds": 0.4738097500000009,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:53.992893+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "raw_sha256": "7ec459431ba2d339d398f70bf9d5fe6c3596e1b21d1cd5bfb334bb020f968bb1",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x36A264CD",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_Xeon": {
                "LE": {
                  "value": "0x36A264CD",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x84DA635B",
                  "result": "PASS"
                }
              },
              "existing_arm_adapters": {
                "LE": {
                  "value": "0x36A264CD",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x84DA635B",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 11.33,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/UMASH-64/Xeon8375C",
          "registered_name": "UMASH-64",
          "host": "Xeon8375C",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.0,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 34.19,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/UMASH-64/M2Pro",
          "registered_name": "UMASH-64",
          "host": "M2Pro",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 5.860917096872154,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x36A264CD",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x36A264CD",
                "result": "PASS"
              },
              "BE": {
                "value": "0x84DA635B",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x36A264CD",
              "BE": "0x84DA635B"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "UMASH-64",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "UMASH-64",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/UMASH-64.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:53.509191+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:53.513719+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:53.987557+00:00",
                "elapsed_seconds": 0.4738097500000009,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:53.992893+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "raw_sha256": "7ec459431ba2d339d398f70bf9d5fe6c3596e1b21d1cd5bfb334bb020f968bb1",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x36A264CD",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_Xeon": {
                "LE": {
                  "value": "0x36A264CD",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x84DA635B",
                  "result": "PASS"
                }
              },
              "existing_arm_adapters": {
                "LE": {
                  "value": "0x36A264CD",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x84DA635B",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 38.76,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/UMASH-64/Xeon8375C",
          "registered_name": "UMASH-64",
          "host": "Xeon8375C",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.10319917440659854,
          "verification": {}
        }
      },
      "qualification": "The published UMASH-64 headline is proved with coefficient 58 instead of 64: Pr[collision] < 58·⌈L/512⌉/2^61. The implemented accumulator modulo 8p = 2^64−8 retains three bits beyond field reduction; a final reduction modulo p alone would not give this proof. The envelope scores 56.18 bits at L = 2 under both length conventions. At 1 KB / 1 MB / 1 GB, −log₂ ε = 55.18 / 47.995 / 38.000 (published 55 / 47 / 37). Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems.",
      "hover": {
        "scope": "The published UMASH-64 headline is proved with coefficient 58 instead of 64: Pr[collision] < 58·⌈L/512⌉/2^61. The implemented accumulator modulo 8p = 2^64−8 retains three bits beyond field reduction; a final reduction modulo p alone would not give this proof. The envelope scores 56.18 bits at L = 2 under both length conventions. At 1 KB / 1 MB / 1 GB, −log₂ ε = 55.18 / 47.995 / 38.000 (published 55 / 47 / 37). Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems."
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 123,
        "total": 250,
        "failed_tests": [
          "BIC",
          "Zeroes",
          "Sparse",
          "Permutation",
          "PerlinNoise",
          "Bitflip",
          "SeedZeroes",
          "SeedSparse",
          "SeedBlockLen",
          "SeedBlockOffset",
          "Seed",
          "SeedAvalanche",
          "SeedBIC",
          "SeedBitflip"
        ],
        "provenance": "records/README.html",
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md"
      },
      "speed_registration": "UMASH-64",
      "chart_eligible": true,
      "score_minimizer_L": 2,
      "score_derivation": "min_L log₂(L/max(2^-64,min(1,ε(L)))); 56.18301637674462 at L = 2, both fixed-length and at-most conventions.",
      "proof_status": "Both published headlines proved; paper’s 162/q step unvalidated",
      "proof_source": "records/papers/umash_bounds.pdf",
      "score_display": "≥ 56.18 bits",
      "score": {
        "calculated": 56.18301637674462,
        "display": 56.18,
        "display_text": "≥ 56.18 bits",
        "direction": "lower",
        "minimizer_L": 2,
        "formula": "ε(1) = 1/(2^64−561); ε(L ≥ 2) = max{A + (1−A)ρ(L), S}; A = 205/(2^64−561); S = 435/(2^64−561) + 2/(2^61−3); ρ(L) = min(1, 2⌈L/32⌉/(2^61−3))"
      },
      "bits_certified": 56.18,
      "bits_claimed": 55,
      "bound_certified": "ε(1) = 1/(2^64−561); ε(L ≥ 2) = max{A + (1−A)ρ(L), S}; A = 205/(2^64−561); S = 435/(2^64−561) + 2/(2^61−3); ρ(L) = min(1, 2⌈L/32⌉/(2^61−3))",
      "mechanism_family": "PH/NH + prime-field polynomial",
      "rurban_alias": "umash",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "Full-output theorem only.",
        "note": "Masked outputs need a separate bound or the generic projection loss. Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems.",
        "audit_url": "records/papers/umash_bounds.pdf"
      },
      "domain_short": "ideal full key; fixed seed; full C output",
      "alternate_suite_result": {
        "registered_name": "UMASH-64.reseed",
        "verdict": "FAIL",
        "passed": 214,
        "total": 250,
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md",
        "scope": "Full Salsa20 parameter re-derivation; not a mixer or a proof repair."
      },
      "proved_all_pairs": "≥ 56.18 bits",
      "proof_progress_source": "records/papers/umash_bounds.pdf",
      "family_definition": "Carry-less PH chunks and final ENH chunk, with an accumulator modulo 2^64−8; the C fingerprint uses two independent multipliers.",
      "lean": {
        "label": "partial: 46.52-bit envelope, both joint cases and the 128-bit fingerprint headline machine-checked; the 56.18-bit headline is a verified paper proof",
        "source": "https://github.com/thomasahle/umash-bounds/blob/main/lean/STATUS.md",
        "scope": "Machine-checked: the 46.52-bit envelope, the ENH-only and PH+ENH joint closures, and the UMASH-128 fingerprint headline. Verified paper proofs, not yet machine-checked: the 56.18-bit 64-bit headline (via the mod-8p accumulator) and the 53.38-bit refinement."
      },
      "certified": {
        "formula": "ε(1) = 1/(2^64−561); ε(L ≥ 2) = max{A + (1−A)ρ(L), S}; A = 205/(2^64−561); S = 435/(2^64−561) + 2/(2^61−3); ρ(L) = min(1, 2⌈L/32⌉/(2^61−3))",
        "score_bits": 56.18,
        "headline_bound": "Pr[collision] < 58·⌈L/512⌉/2^61",
        "status": "Paper proof with exact certificates; the headline bound is not yet machine-checked.",
        "scope": "Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems.",
        "closed_and_open": "Both published headlines are proved by different routes. ENH-only and PH+ENH joint cases are closed (below 2^-105 and 2^-90 after distinct-word conditioning). The paper’s intermediate 162/q projection step remains unvalidated.",
        "proof": "records/papers/umash_bounds.pdf",
        "verdict": "records/papers/umash_bounds.pdf",
        "checks": "records/papers/umash_bounds.pdf",
        "sources": [
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/machine-checked.html"
        ],
        "minimizer_L": 2,
        "conventions": [
          "fixed-length",
          "at-most"
        ],
        "collision_bits_by_length": {
          "1_KB": 55.18,
          "1_MB": 47.995,
          "1_GB": 38.0
        },
        "supersedes": "53.38-bit primary score from the earlier primary bound; 46.52-bit envelope remains the machine-checked history.",
        "lean": {
          "label": "partial: 46.52-bit envelope + ENH-only closure machine-checked; 56.18 / 84 are verified paper proofs, not yet machine-checked",
          "source": "records/machine-checked.html",
          "scope": "The earlier 46.52-bit envelope and ENH-only closure are machine-checked. The 53.38-bit refinement, 56.18-bit bound, joint PH+ENH closure and fingerprint headline are verified paper proofs; not yet machine-checked."
        },
        "linear_envelope": "ε < 58·⌈L/512⌉/2^61",
        "ordinary_identity_numerator": 205,
        "special_tail_numerator": 435
      },
      "key_model": "Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems."
    },
    {
      "id": "umash128",
      "pattern": [],
      "code_url": "https://github.com/backtrace-labs/umash/blob/master/umash.c",
      "name": "UMASH-128 fingerprint",
      "bound": "(81/128)·⌈L/2^23⌉²·2^-83",
      "score_lower_guarantee": 83.99,
      "key_words_64bit": "38",
      "output_bits": 128,
      "domain": "The published fingerprint headline is proved independently of the 64-bit proof, using two independent polynomial multipliers and 34 shared OH words. Pr[collision] < (81/128)·⌈L/2^23⌉²·2^-83. The finer envelope scores 83.99 bits (rounded display 84) on L ≤ 2^46 words, 88.63 through 64 MiB, and approximately 69.0 on L ≤ 2^61−1. At 1 GB it gives 75.98 bits (published 75). The Python reference’s single-multiplier fingerprint is refuted: swapping two full blocks collides for every OH key at f = p−1 or f = 1, yielding a fibre of about 2^-61. Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems.",
      "m2_paper_gbps_16KB_512B": [
        23.9,
        19.7
      ],
      "reference_url": "https://github.com/backtrace-labs/umash/blob/master/umash.pdf",
      "notes": "The published fingerprint headline is proved independently of the 64-bit proof, using two independent polynomial multipliers and 34 shared OH words. Pr[collision] < (81/128)·⌈L/2^23⌉²·2^-83. The finer envelope scores 83.99 bits (rounded display 84) on L ≤ 2^46 words, 88.63 through 64 MiB, and approximately 69.0 on L ≤ 2^61−1. At 1 GB it gives 75.98 bits (published 75). The Python reference’s single-multiplier fingerprint is refuted: swapping two full blocks collides for every OH key at f = p−1 or f = 1, yielding a fibre of about 2^-61. Both published headlines are proved by different routes. ENH-only and PH+ENH joint cases are closed (below 2^-105 and 2^-90 after distinct-word conditioning). The paper’s intermediate 162/q projection step remains unvalidated. Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "ceil(L/2^23)^2·2^-83",
      "version": "128-bit fingerprint",
      "label": "UMASH-128 fingerprint",
      "anchor": "appendix-umash",
      "mechanism": "shared OH key, two independent polynomial multipliers",
      "family": "proven",
      "bits": 83.99,
      "bits_kind": "proven",
      "speeds": {
        "m2_gbps_16k": {
          "value": 23.9,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "m2_gbps_512": {
          "value": 19.7,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "smh_m2_bulk_Bpc": {
          "value": 7.82,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/UMASH-128/M2Pro",
          "registered_name": "UMASH-128",
          "host": "M2Pro",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.5141388174807249,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x63857D05",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x63857D05",
                "result": "PASS"
              },
              "BE": {
                "value": "0xE87FFB4B",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x63857D05",
              "BE": "0xE87FFB4B"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "UMASH-128",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "UMASH-128",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/UMASH-128.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:53.997917+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:54.003165+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:54.488195+00:00",
                "elapsed_seconds": 0.4849889999999988,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:54.494716+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "raw_sha256": "84fed8d11de6cb87f261fe8255bb1f6f3d0b39db8734f934bf4732c4deed6bf0",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x63857D05",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_Xeon": {
                "LE": {
                  "value": "0x63857D05",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xE87FFB4B",
                  "result": "PASS"
                }
              },
              "existing_arm_adapters": {
                "LE": {
                  "value": "0x63857D05",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xE87FFB4B",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 6.02,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/UMASH-128/Xeon8375C",
          "registered_name": "UMASH-128",
          "host": "Xeon8375C",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.16638935108153063,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 41.84,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/UMASH-128/M2Pro",
          "registered_name": "UMASH-128",
          "host": "M2Pro",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.7170172084129955,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x63857D05",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x63857D05",
                "result": "PASS"
              },
              "BE": {
                "value": "0xE87FFB4B",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x63857D05",
              "BE": "0xE87FFB4B"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "UMASH-128",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "UMASH-128",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/UMASH-128.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:53.997917+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:54.003165+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:54.488195+00:00",
                "elapsed_seconds": 0.4849889999999988,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:54.494716+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 2.84 3.05 3.19",
                  "load1": 2.84,
                  "load5": 3.05,
                  "load15": 3.19
                },
                "raw_sha256": "84fed8d11de6cb87f261fe8255bb1f6f3d0b39db8734f934bf4732c4deed6bf0",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x63857D05",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_Xeon": {
                "LE": {
                  "value": "0x63857D05",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xE87FFB4B",
                  "result": "PASS"
                }
              },
              "existing_arm_adapters": {
                "LE": {
                  "value": "0x63857D05",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0xE87FFB4B",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 40.23,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/UMASH-128/Xeon8375C",
          "registered_name": "UMASH-128",
          "host": "Xeon8375C",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 2,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.024857071836947853,
          "verification": {}
        }
      },
      "qualification": "The published fingerprint headline is proved independently of the 64-bit proof, using two independent polynomial multipliers and 34 shared OH words. Pr[collision] < (81/128)·⌈L/2^23⌉²·2^-83. The finer envelope scores 83.99 bits (rounded display 84) on L ≤ 2^46 words, 88.63 through 64 MiB, and approximately 69.0 on L ≤ 2^61−1. At 1 GB it gives 75.98 bits (published 75). The Python reference’s single-multiplier fingerprint is refuted: swapping two full blocks collides for every OH key at f = p−1 or f = 1, yielding a fibre of about 2^-61. Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems.",
      "hover": {
        "scope": "The published fingerprint headline is proved independently of the 64-bit proof, using two independent polynomial multipliers and 34 shared OH words. Pr[collision] < (81/128)·⌈L/2^23⌉²·2^-83. The finer envelope scores 83.99 bits (rounded display 84) on L ≤ 2^46 words, 88.63 through 64 MiB, and approximately 69.0 on L ≤ 2^61−1. At 1 GB it gives 75.98 bits (published 75). The Python reference’s single-multiplier fingerprint is refuted: swapping two full blocks collides for every OH key at f = p−1 or f = 1, yielding a fibre of about 2^-61. Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems."
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 122,
        "total": 250,
        "failed_tests": [
          "BIC",
          "Zeroes",
          "Sparse",
          "Permutation",
          "TwoBytes",
          "PerlinNoise",
          "Bitflip",
          "SeedZeroes",
          "SeedSparse",
          "SeedBlockLen",
          "SeedBlockOffset",
          "Seed",
          "SeedAvalanche",
          "SeedBIC",
          "SeedBitflip"
        ],
        "provenance": "records/README.html",
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md"
      },
      "speed_registration": "UMASH-128",
      "chart_eligible": true,
      "score_minimizer_L": 70368744177633,
      "score_derivation": "min_L log₂(L/max(2^-128,min(1,ε(L)))); Fine envelope E: 83.99999997 on L ≤ 2^46, conservatively plotted at 83.99; display 84 is rounded. 88.63 through 64 MiB; approximately 69.0 on L ≤ 2^61−1. The coarse 81/128 form alone scores 83.66 on the row domain.",
      "proof_status": "Both published headlines proved; paper’s 162/q step unvalidated",
      "proof_source": "records/papers/umash_bounds.pdf",
      "score_display": "≥ 84 bits on L ≤ 2^46",
      "score": {
        "calculated": 83.99999997,
        "display": 83.99,
        "display_text": "≥ 84 bits on L ≤ 2^46",
        "direction": "lower",
        "minimizer_L": 70368744177633,
        "formula": "E(1) = 1/(2^64(2^64−561)); E(L ≥ 2) = b(1−ρ)^2 + aρ(1−ρ) + ρ^2; a = 732757/(2^64−561); b = 1416246956032/(2^64(2^64−561)); ρ = min(1, 2⌈L/32⌉/(2^61−3))"
      },
      "bits_certified": 83.99,
      "bits_claimed": 83,
      "bound_certified": "E(1) = 1/(2^64(2^64−561)); E(L ≥ 2) = b(1−ρ)^2 + aρ(1−ρ) + ρ^2; a = 732757/(2^64−561); b = 1416246956032/(2^64(2^64−561)); ρ = min(1, 2⌈L/32⌉/(2^61−3))",
      "mechanism_family": "PH/NH + prime-field polynomial",
      "rurban_alias": "umash",
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "Full-output theorem only.",
        "note": "Masked outputs need a separate bound or the generic projection loss. Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems.",
        "audit_url": "records/papers/umash_bounds.pdf"
      },
      "domain_short": "ideal full key; fixed seed; full C output; two multipliers; L ≤ 2^46",
      "proved_all_pairs": "≥ 84 bits on L ≤ 2^46",
      "family_definition": "Carry-less PH chunks and final ENH chunk, with an accumulator modulo 2^64−8; the C fingerprint uses two independent multipliers.",
      "lean": {
        "label": "✓ checked",
        "source": "https://github.com/thomasahle/umash-bounds/blob/main/lean/STATUS.md",
        "scope": "The fingerprint headline ceil(L/2^23)^2 / 2^83 is machine-checked for the C architecture with two independent multipliers (published128, ProvenHashes.UMASH, standard axioms), together with the 46.52-bit envelope and both joint block cases. The 56.18-bit 64-bit headline and the 53.38-bit refinement remain verified paper proofs."
      },
      "length_cap_words": 70368744177664,
      "proof_progress_source": "records/papers/umash_bounds.pdf",
      "certified": {
        "formula": "E(1) = 1/(2^64(2^64−561)); E(L ≥ 2) = b(1−ρ)^2 + aρ(1−ρ) + ρ^2; a = 732757/(2^64−561); b = 1416246956032/(2^64(2^64−561)); ρ = min(1, 2⌈L/32⌉/(2^61−3))",
        "score_bits": 83.99,
        "headline_bound": "Pr[collision] < (81/128)·⌈L/2^23⌉²·2^-83",
        "status": "Paper proof with exact certificates; the headline bound is not yet machine-checked.",
        "scope": "Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems.",
        "closed_and_open": "Both published headlines are proved by different routes. ENH-only and PH+ENH joint cases are closed (below 2^-105 and 2^-90 after distinct-word conditioning). The paper’s intermediate 162/q projection step remains unvalidated.",
        "proof": "records/papers/umash_bounds.pdf",
        "verdict": "records/papers/umash_bounds.pdf",
        "checks": "records/papers/umash_bounds.pdf",
        "sources": [
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/papers/umash_bounds.pdf",
          "records/machine-checked.html"
        ],
        "minimizer_L": 70368744177633,
        "conventions": [
          "fixed-length",
          "at-most"
        ],
        "collision_bits_by_length": {
          "1_KB": 87.635,
          "1_MB": 87.582,
          "64_MiB": 83.672,
          "1_GB": 75.98
        },
        "supersedes": "53.38-bit primary score from the earlier primary bound; 46.52-bit envelope remains the machine-checked history.",
        "lean": {
          "label": "partial: 46.52-bit envelope + ENH-only closure machine-checked; 56.18 / 84 are verified paper proofs, not yet machine-checked",
          "source": "records/machine-checked.html",
          "scope": "The earlier 46.52-bit envelope and ENH-only closure are machine-checked. The 53.38-bit refinement, 56.18-bit bound, joint PH+ENH closure and fingerprint headline are verified paper proofs; not yet machine-checked."
        },
        "score_domains": [
          {
            "max_words": 8388608,
            "score_bits": 88.63
          },
          {
            "max_words": 70368744177664,
            "score_bits": 83.99
          },
          {
            "max_words": 2305843009213693951,
            "score_bits_rounded": 69.0,
            "score_bits_lower": 68.99
          }
        ],
        "dependency": "Independent of the primary-hash proof. Uses the reviewed the earlier primary bound primary marginal 3125/q, secondary marginal 729632/q and joint numerator 1416246956032/q²; no independence of the shared-key compressors is assumed."
      },
      "key_model": "Ideal full-key distribution, fixed seed, full output, C architecture: 34 shared OH words sampled uniformly without replacement (IID also proved), independent uniform multiplier(s) on {2,…,p−1}, p = 2^61−1; bounds also hold for the C multiplier range {1,…,p−1}. Salsa20 key derivation / umash_params_derive, the OH-repair sampler, per-call seeds and masked outputs are outside the theorems."
    },
    {
      "id": "clhash",
      "pattern": [],
      "code_url": "https://github.com/fwojcik/smhasher3/blob/7ad8939d/hashes/clhash.cpp",
      "name": "CLHASH",
      "bound": "1/q for L≤128; 2/q+(ceil(L/128)−1)/2^126 otherwise",
      "score_lower_guarantee": 64,
      "key_words_64bit": "133",
      "output_bits": 64,
      "domain": "Ideal Algorithm 4, byte strings shorter than 2^64 bytes, full independent key. The timed seed initializer is not certified by this theorem.",
      "m2_paper_gbps_16KB_512B": null,
      "reference_url": "https://arxiv.org/abs/1503.03465",
      "notes": "Ideal Algorithm 4, byte strings shorter than 2^64 bytes, full independent key. The timed seed initializer is not certified by this theorem.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "1/q for L≤128; 2/q+(ceil(L/128)−1)/2^126 otherwise",
      "version": "64-bit variable-length family",
      "label": "CLHASH",
      "anchor": "proofs",
      "mechanism": "1/q for L≤128; 2/q+(ceil(L/128)−1)/2^126 otherwise",
      "family": "proven",
      "bits": 64,
      "bits_kind": "audited lower guarantee",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": 15.15,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/CLhash/M2Pro",
          "registered_name": "CLhash",
          "host": "M2Pro",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 4.790823211875828,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x2E554CB4",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x2E554CB4",
                "result": "PASS"
              },
              "BE": {
                "value": "0x4F2B76A1",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x2E554CB4",
              "BE": "0x4F2B76A1"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "CLhash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "CLhash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/CLhash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:40.954438+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:40.958952+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                  "load1": 3.11,
                  "load5": 3.11,
                  "load15": 3.21
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:41.446263+00:00",
                "elapsed_seconds": 0.4872775830000009,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:41.451747+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.18 3.12 3.22",
                  "load1": 3.18,
                  "load5": 3.12,
                  "load15": 3.22
                },
                "raw_sha256": "34e3c60d5f4c5a9835d9e9831d4c0b61a24a310e13a3201f142190a9558f1f2b",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x2E554CB4",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_Xeon": {
                "LE": {
                  "value": "0x2E554CB4",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x4F2B76A1",
                  "result": "PASS"
                }
              },
              "existing_arm_adapters": {
                "LE": {
                  "value": "0x2E554CB4",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x4F2B76A1",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 11.56,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/CLhash/Xeon8375C",
          "registered_name": "CLhash",
          "host": "Xeon8375C",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.6092254134029584,
          "verification": {}
        },
        "smh_m2_small_cycles": {
          "value": 40.53,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/CLhash/M2Pro",
          "registered_name": "CLhash",
          "host": "M2Pro",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
          "selected_run": "median(all 5)",
          "selection": "median of all runs",
          "spread_percent": 3.7186946622818073,
          "verification": {
            "status": "PASS",
            "observed": {
              "mode": "LE",
              "value": "0x2E554CB4",
              "result": "PASS"
            },
            "computed_values": {
              "LE": {
                "value": "0x2E554CB4",
                "result": "PASS"
              },
              "BE": {
                "value": "0x4F2B76A1",
                "result": "PASS"
              }
            },
            "registered_expected_values": {
              "LE": "0x2E554CB4",
              "BE": "0x4F2B76A1"
            },
            "sanity_runs": [
              {
                "host": "M2Pro",
                "name": "CLhash",
                "test": "Sanity",
                "run": 1,
                "command": [
                  "experiment/review/m2-rerun/build-fixed/SMHasher3",
                  "CLhash",
                  "--test=Sanity"
                ],
                "raw_file": "out/M2Pro/CLhash.sanity.txt",
                "binary_sha256": "fb2f75fb2f170a6956441e7db8ae2ae95e3944ef44eecbb0aeeb46d4115b025a",
                "started": "2026-09-18T09:49:40.954438+00:00",
                "load_before": {
                  "timestamp": "2026-09-18T09:49:40.958952+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.11 3.11 3.21",
                  "load1": 3.11,
                  "load5": 3.11,
                  "load15": 3.21
                },
                "returncode": 0,
                "finished": "2026-09-18T09:49:41.446263+00:00",
                "elapsed_seconds": 0.4872775830000009,
                "load_after": {
                  "timestamp": "2026-09-18T09:49:41.451747+00:00",
                  "uptime": "11:49  up 23:41, 1 user, load averages: 3.18 3.12 3.22",
                  "load1": 3.18,
                  "load5": 3.12,
                  "load15": 3.22
                },
                "raw_sha256": "34e3c60d5f4c5a9835d9e9831d4c0b61a24a310e13a3201f142190a9558f1f2b",
                "sha256_verified": true,
                "implementation_verification": {
                  "mode": "LE",
                  "value": "0x2E554CB4",
                  "result": "PASS"
                },
                "pass_checks": 7,
                "failure_lines": [],
                "status": "PASS"
              }
            ],
            "reference_values": {
              "existing_Xeon": {
                "LE": {
                  "value": "0x2E554CB4",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x4F2B76A1",
                  "result": "PASS"
                }
              },
              "existing_arm_adapters": {
                "LE": {
                  "value": "0x2E554CB4",
                  "result": "PASS"
                },
                "BE": {
                  "value": "0x4F2B76A1",
                  "result": "PASS"
                }
              }
            },
            "mismatches": []
          }
        },
        "smh_xeon_small_cycles": {
          "value": 43.03,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/speeds.json",
          "record": "records/speeds.json#/CLhash/Xeon8375C",
          "registered_name": "CLhash",
          "host": "Xeon8375C",
          "backend_token": "hwclmul",
          "backend_note": "hwclmul",
          "no_dedicated_arm_backend": false,
          "binary_sha256": {
            "binary": "experiment/speedbench/build-release-20260917/SMHasher3",
            "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "binary_sha256_after": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
            "build_directory": "experiment/speedbench/build-release-20260917",
            "source_directory": "experiment/speedbench/source",
            "tree_commit": "3de870c7ab449ad11cf450848d9270e3f54102d1",
            "tree_status": " M CMakeLists.txt\n M hashes/Hashsrc.cmake\n M main.cpp\n M util/Random.cpp\n?? REVIEW.md\n?? doc/\n?? hashes/chainhash.cpp\n?? hashes/chainhash_goldi_exp.cpp\n?? hashes/injective_hash.cpp\n?? misc/a5hash64_constrained_sat_search.py\n?? misc/a5hash64_eval.cpp\n?? misc/a5hash64_family_coverage.cpp\n?? misc/a5hash64_family_smhasher_eval.cpp\n?? misc/a5hash64_seed_collision.cpp\n?? misc/a5hash_b_len2_template_scan.cpp\n?? misc/a5hash_b_neighbor_family.cpp\n?? misc/a5hash_b_pair_scan.cpp\n?? misc/a5hash_b_ref.py\n?? misc/find_a5hash64_trunc_collisions.cpp\n?? misc/find_a5hash64_trunc_collisions.py\n?? misc/find_a5hash_b_colliding_family.cpp\n?? misc/find_a5hash_b_collisions.cpp\n?? misc/find_a5hash_b_collisions.py\n?? misc/fold_commute_sweep.cpp\n?? misc/gen_a5hash64_len16_collision.py\n?? misc/key32_collision.cpp\n?? misc/mum_colliding_family_search.cpp\n?? misc/mum_collision_search.cpp\n?? misc/odd_even_family_collision.cpp\n?? misc/rapid_bbit_reference.cpp\n?? misc/rapid_mix_commute.cpp\n?? misc/rapid_mix_mapstats.cpp\n?? misc/rapidhash_adversarial.cpp\n?? misc/rapidhash_collision_test.cpp\n?? misc/rapidhash_permutation_test\n?? misc/rapidhash_permutation_test.cpp\n?? misc/rapidhash_random_secret_collision.cpp\n?? results/a5hash64_attack1_algebraic_notes.txt\n?? results/a5hash64_constrained_bruteforce_results.txt\n?? results/a5hash64_constrained_sat_results.txt\n?? results/a5hash64_family_search_round2.txt\n?? results/a5hash64_family_smhasher_ranking.txt\n?? results/a5hash64_len2_template_probe_add_D58_seed20_out20.txt\n?? results/a5hash64_len2_template_probe_xor_D58_seed20_out20.txt\n?? results/a5hash_b12_len1_family32.txt\n?? results/a5hash_b12_len1_family64.txt\n?? results/a5hash_b_candidate_scoreboard.tsv\n?? results/a5hash_b_family_b17_24_probe.tsv\n?? results/a5hash_b_len1_mix_best_b11.txt\n?? results/a5hash_b_len1_mix_best_b12.txt\n?? results/a5hash_b_len1_mix_ratio_sweep.tsv\n?? results/a5hash_b_len1_parametric_eval.tsv\n?? results/a5hash_b_len2_b14_16_quick.tsv\n?? results/a5hash_b_len2_best_b12_add_40_40.txt\n?? results/a5hash_b_len2_best_b13_xor_80_80.txt\n?? results/a5hash_b_len2_dxpow2_top_restarts.tsv\n?? results/a5hash_b_len2_dy_sweep_dxpow2.tsv\n?? results/a5hash_b_len2_template_round4_notes.txt\n?? results/a5hash_b_len2_template_sweep_b10_12.tsv\n?? results/a5hash_b_len2_template_top_restarts.tsv\n?? results/a5hash_b_len4_sweep.txt\n?? results/a5hash_b_new_candidates_collisions.txt\n?? results/a5hash_b_pair_delta_scan.tsv\n?? results/a5hash_b_small_family_round2_notes.txt\n?? results/a5hash_b_small_family_round3_notes.txt\n?? results/a5hash_b_small_sweep_round2.tsv\n?? results/a5hash_b_small_top_restarts.tsv\n?? results/a5hash_notes_so_far.md\n?? results/mum_collision_comp_suffix_xempty_bits8-16_len2-32_pow2_exact_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_bits8-20_len2-32_pow2_sample16384_s5_top5_seed1.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-10_exact_top5.txt\n?? results/mum_collision_comp_suffix_xempty_m8-20_len2-20_exact_top1_s1.txt\n?? results/mum_collision_eval_zero_prefix_last_comp_sample_m16-64_len2-1024_q0-1-3.txt\n?? results/mum_collision_family_zero_prefix_last_comp_q0-1-3_m8-20_len2-32.txt\n?? results/mum_collision_heuristic_any_xor_horner_x_m1-10_len2-5_top3.txt\n?? results/mum_collision_heuristic_comp_suffix_k1_xor_horner_x_m16-24_len2-5_top3.txt\n?? results/mum_collision_notes.md\n?? results/mum_collision_search_bits20_len128_comp_suffix_k1_sample8192_s10_top5_seed1_final_exact.txt\n?? results/mum_collision_search_xor_horner_m1-10_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_m1-20_len1-5_exact.txt\n?? results/mum_collision_search_xor_horner_xempty_m1-10_len1-5_exact.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-10_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m1-12_len2-5_top10.txt\n?? results/mum_collision_sweep_q_xor_horner_x_m11-12_len2-5_top10.txt\n?? results/passers_adversarial_analysis.md\n?? results/passers_adversarial_scan.tsv\n?? tests/LargeKeysetTest.cpp\n?? tests/LargeKeysetTest.h\n?? tests/SeedDifferentialTest.cpp\n?? tests/SeedDifferentialTest.h\n",
            "source_manifest": "provenance/source-sha256.json",
            "compiler": "c++ (GCC) 11.5.0 20240719 (Red Hat 11.5.0-14)\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
            "compiler_flags": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.31\n\n# compile CXX with /usr/bin/c++\nCXX_DEFINES = -DHAVE_THREADS\n\nCXX_INCLUDES = -Iexperiment/speedbench/build-release-20260917/include -Iexperiment/speedbench/source/include/common -Iexperiment/speedbench/source/util -Iexperiment/speedbench/source/tests -Iexperiment/speedbench/source/include/hashlib\n\nCXX_FLAGS =  -O3 -march=native -g -ggdb3 -Wall -Wextra -Wvla -Wpedantic       -Wno-unused-function -Wno-unknown-pragmas -DNDEBUG -std=c++11\n\n",
            "build_type": "Release",
            "remote_recheck": {
              "timestamp": "2026-09-18T00:28:51.045516+00:00",
              "binary_sha256": "03c2ff9f38cc564400eeb1906da90cb74ea6efcff2bea6c660626fdbe1571a99",
              "binary_matches_execution": true,
              "execution_sha256": "8fde36ba3be86d737daf71d40b2ce3d2432bce22775db3ea0986399c0524fcaf",
              "completed_runs": 110,
              "source_mismatches": [],
              "raw_mismatches": [],
              "list_matches_saved": true
            }
          },
          "selected_run": 1,
          "selection": "best of two, independently per metric",
          "spread_percent": 0.3253544039042433,
          "verification": {}
        }
      },
      "qualification": "Ideal Algorithm 4, byte strings shorter than 2^64 bytes, full independent key. The timed seed initializer is not certified by this theorem.",
      "hover": {
        "scope": "Ideal Algorithm 4, byte strings shorter than 2^64 bytes, full independent key. The timed seed initializer is not certified by this theorem."
      },
      "smhasher3": {
        "verdict": "FAIL",
        "passed": 64,
        "total": 250,
        "failed_tests": [
          "Avalanche",
          "BIC",
          "Cyclic",
          "Sparse",
          "Permutation",
          "Text",
          "TwoBytes",
          "PerlinNoise",
          "Bitflip",
          "Seed*"
        ],
        "provenance": "records/README.html",
        "url": "https://github.com/fwojcik/smhasher3/blob/3b619371/results/README.md"
      },
      "speed_registration": "CLhash",
      "chart_eligible": true,
      "score_minimizer_L": 1,
      "score_derivation": "min_L log2(L/max(2^-64,min(1,epsilon(L)))); minimizing L=1",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "score_display": "≥ 64",
      "score": {
        "calculated": 64,
        "display": 64,
        "display_text": "≥ 64 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": 1,
        "formula": "1/q for L≤128; 2/q+(ceil(L/128)−1)/2^126 otherwise"
      },
      "mechanism_family": "PH + GF(2^127) polynomial",
      "rurban_alias": null,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "Yes, ideal Algorithm 4: AXU.",
        "note": "For t selected bits, multiply the length-specific ε by 2^(64−t), clipped at 1. This does not cover CLHASH_BITMIX or seeded initialization.",
        "audit_url": "records/README.html"
      },
      "domain_short": "byte strings <2^64 bytes; ideal keys",
      "mechanism_family_note": "carry-less NH + GF(2^127) polynomial",
      "family_definition": "Carry-less NH (PH) + GF(2^127) polynomial.",
      "lean": {
        "label": "✓ checked",
        "source": "records/",
        "scope": "Ideal Algorithm-4 bound for distinct byte strings shorter than 2^64 bytes, including empty, partial and unequal-length inputs; no implementation or seed-expander theorem."
      }
    },
    {
      "id": "clnh",
      "pattern": [],
      "code_url": "https://github.com/thomasahle/fast-polynomials",
      "name": "Carryless NH (CLNH)",
      "bound": "1/q",
      "score_lower_guarantee": 64,
      "key_words_64bit": "2 ceil(L/2)",
      "output_bits": 64,
      "domain": "Carryless NH at equal fixed padded length, independent word keys, irreducible field reduction (or full unreduced output). One-word zero padding is admitted; unpadded even lengths score 65. No unequal-length transfer is claimed.",
      "m2_paper_gbps_16KB_512B": [
        27.3,
        26.3
      ],
      "reference_url": "https://arxiv.org/abs/1503.03465",
      "notes": "Carryless NH at equal fixed padded length, independent word keys, irreducible field reduction (or full unreduced output). One-word zero padding is admitted; unpadded even lengths score 65. No unequal-length transfer is claimed.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "1/q",
      "version": "fixed-length, GF(2^64)",
      "label": "Carryless NH (CLNH)",
      "anchor": "proofs",
      "mechanism": "1/q",
      "family": "proven",
      "bits": 64,
      "bits_kind": "audited lower guarantee",
      "speeds": {
        "m2_gbps_16k": {
          "value": 27.3,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "m2_gbps_512": {
          "value": 26.3,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "smh_m2_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_m2_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        }
      },
      "qualification": "Carryless NH at equal fixed padded length, independent word keys, irreducible field reduction (or full unreduced output). One-word zero padding is admitted; unpadded even lengths score 65. No unequal-length transfer is claimed.",
      "hover": {
        "scope": "Carryless NH at equal fixed padded length, independent word keys, irreducible field reduction (or full unreduced output). One-word zero padding is admitted; unpadded even lengths score 65. No unequal-length transfer is claimed."
      },
      "smhasher3": {
        "verdict": "not registered for this family",
        "passed": null,
        "total": null,
        "failed_tests": [],
        "provenance": "records/README.html"
      },
      "speed_registration": null,
      "chart_eligible": true,
      "score_minimizer_L": 1,
      "score_derivation": "min_L log2(L/max(2^-64,min(1,epsilon(L)))); minimizing L=1",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "score_display": "≥ 64",
      "score": {
        "calculated": 64,
        "display": 64,
        "display_text": "≥ 64 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": 1,
        "formula": "1/q"
      },
      "mechanism_family": "PH (carry-less NH)",
      "rurban_alias": null,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "Yes: AXU.",
        "note": "Multiply ε by 2^(r−t) for r-bit full output; use the stated reduced or unreduced variant.",
        "audit_url": "records/README.html"
      },
      "domain_short": "fixed-length only",
      "mechanism_family_note": "carry-less NH",
      "family_definition": "Carry-less products of keyed word pairs, XORed.",
      "lean": {
        "label": "✓ checked (field theorem)",
        "source": "records/"
      }
    },
    {
      "id": "chainhash",
      "name": "ChainHash (ours)",
      "label": "ChainHash (ours)",
      "pattern": [],
      "family": "proven",
      "bits": 63.0,
      "bits_kind": "proved",
      "output_bits": 64,
      "bound": "min(1,(p(L)+d(L))/2^64), with p the logical 256-byte comb-block count and d ≤ 32 the level-1 root count; p(1)=d(1)=1",
      "source_bound": "min(1,(p(L)+d(L))/2^64), with p the logical 256-byte comb-block count and d ≤ 32 the level-1 root count; p(1)=d(1)=1",
      "score_lower_guarantee": 63.0,
      "score_display": "≥ 63 bits",
      "score": {
        "calculated": 63.0,
        "display": 63.0,
        "display_text": "≥ 63 bits",
        "direction": "lower_bound",
        "formula": "min(1,(p(L)+d(L))/2^64), with p the logical 256-byte comb-block count and d ≤ 32 the level-1 root count; p(1)=d(1)=1",
        "minimizer_L": 1
      },
      "score_minimizer_L": 1,
      "score_derivation": "p(1)=d(1)=1, so ε ≤ 2/2^64 at L=1; both the fixed-length and the at-most-length scores are 63.0 bits.",
      "key_words_64bit": "8 random / 56 expanded",
      "random_key_bytes": 64,
      "domain": "Two fixed messages chosen independently of the key, at fixed length or at most 8L bytes, including empty, partial-word and unequal-length inputs; 1 ≤ L ≤ 2^61−1; 64 uniformly random key bytes. The bound, the evaluation independence and the exact 63.0-bit minimum are machine-checked (89 theorems, standard axioms; 464 C/Lean vectors). The benchmark SplitMix64 seed expansion is outside the theorem; no compiler/SIMD proof is claimed.",
      "qualification": "Two fixed messages chosen independently of the key, at fixed length or at most 8L bytes, including empty, partial-word and unequal-length inputs; 1 ≤ L ≤ 2^61−1; 64 uniformly random key bytes. The bound, the evaluation independence and the exact 63.0-bit minimum are machine-checked (89 theorems, standard axioms; 464 C/Lean vectors). The benchmark SplitMix64 seed expansion is outside the theorem; no compiler/SIMD proof is claimed.",
      "key_model": "64 uniformly random key bytes, read as eight field words s, y, c0…c4, τ; block keys κ_m = s^(m+1). The resident implementation caches 56 expanded words (448 bytes).",
      "domain_short": "64 uniformly random key bytes",
      "hover": {
        "scope": "Two fixed messages chosen independently of the key, at fixed length or at most 8L bytes, including empty, partial-word and unequal-length inputs; 1 ≤ L ≤ 2^61−1; 64 uniformly random key bytes. The bound, the evaluation independence and the exact 63.0-bit minimum are machine-checked (89 theorems, standard axioms; 464 C/Lean vectors). The benchmark SplitMix64 seed expansion is outside the theorem; no compiler/SIMD proof is claimed."
      },
      "mechanism": "Reduced CLNH with comb pairs (w_i,w_{i+8}) in logical 256-byte blocks; Horner in an independent key word y with the byte length as leading coefficient; integer twist + quintic finalizer",
      "mechanism_family": "CLNH + Horner + quintic",
      "family_definition": "Reduced carry-less NH, length-led Horner polynomial over GF(2^64), integer-add twist and independent quintic finalizer",
      "anchor": "appendix-chainhash",
      "proof_status": "proved (machine-checked)",
      "proof_source": "https://github.com/thomasahle/chainhash/blob/main/docs/THEOREM.md",
      "code_url": "https://github.com/thomasahle/chainhash",
      "reference_url": "https://github.com/thomasahle/chainhash",
      "version": "256-byte logical comb blocks over GF(2^64); 64-bit output",
      "chart_eligible": true,
      "chart_hosts": [
        "M2Pro",
        "Xeon8375C"
      ],
      "key_free": false,
      "lean": {
        "label": "✓ checked",
        "source": "https://github.com/thomasahle/chainhash/tree/main/lean",
        "scope": "Machine-checked (89 theorems, standard axioms): the collision bound for 64 uniformly random key bytes, evaluation independence (serial = k-lane exact-count schedule = lazy state for every stride) and the exact score minimum 63.0; 464 C/Lean vectors."
      },
      "smhasher3": {
        "verdict": "PASS (200/200 on x86 and arm64)",
        "passed": 200,
        "total": 200,
        "failed_tests": [],
        "url": "records/chainhash/quality/REPORT.md",
        "rurban": "17/17 sections, no failures (All+BIC)",
        "verification": {
          "LE": "0x66672BD6"
        }
      },
      "speed_registration": "chainhash",
      "provenance": [
        "https://github.com/thomasahle/chainhash/blob/main/docs/SPEC.md",
        "https://github.com/thomasahle/chainhash/blob/main/docs/THEOREM.md",
        "https://github.com/thomasahle/chainhash/tree/main/lean",
        "records/chainhash/speeds_chainhash.json"
      ],
      "notes": "One function: digests are independent of Horner stride k, SIMD width, lazy/eager reduction, streaming chunking and valid thread splits (the partial API joins region-aligned partitions). The flat long-input product loop follows Orson Peters’s PolymurHash lineage; the field, comb, Horner combiner and finalizer define ChainHash. Short 1–31 B inputs cost 155.14 cycles/hash on Xeon and 87.49 on M2 (XXH3-64 in the same binaries: 29.44 and 25.05). Bulk: Xeon 28.31 B/cycle, M2 26.26 (median of three). Two fixed messages chosen independently of the key, at fixed length or at most 8L bytes, including empty, partial-word and unequal-length inputs; 1 ≤ L ≤ 2^61−1; 64 uniformly random key bytes. The bound, the evaluation independence and the exact 63.0-bit minimum are machine-checked (89 theorems, standard axioms; 464 C/Lean vectors). The benchmark SplitMix64 seed expansion is outside the theorem; no compiler/SIMD proof is claimed.",
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 26.26,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/chainhash/speeds_chainhash.json",
          "record": "records/chainhash/speeds_chainhash.json#/chainhash/M2Pro",
          "registered_name": "chainhash",
          "host": "M2Pro",
          "selection": "median of three; >15% deviations flagged, not discarded",
          "selected_run": 1,
          "binary_sha256": "f871e853d39d2a56499503153460fb9926d5dce1344d2e1b071db2116b65b230",
          "verification": {
            "raw_file": "out/M2Pro/chainhash.sanity.txt",
            "lines": [
              "Verification value LE 0x66672BD6 ...... PASS",
              "Verification value is 0x00000001 - Testing took 0.369450 seconds"
            ]
          }
        },
        "smh_m2_small_cycles": {
          "value": 87.49,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/chainhash/speeds_chainhash.json",
          "record": "records/chainhash/speeds_chainhash.json#/chainhash/M2Pro",
          "registered_name": "chainhash",
          "host": "M2Pro",
          "selection": "median of three; >15% deviations flagged, not discarded",
          "selected_run": 2,
          "binary_sha256": "f871e853d39d2a56499503153460fb9926d5dce1344d2e1b071db2116b65b230",
          "verification": {
            "raw_file": "out/M2Pro/chainhash.sanity.txt",
            "lines": [
              "Verification value LE 0x66672BD6 ...... PASS",
              "Verification value is 0x00000001 - Testing took 0.369450 seconds"
            ]
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 28.31,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/chainhash/speeds_chainhash.json",
          "record": "records/chainhash/speeds_chainhash.json#/chainhash/Xeon8375C",
          "registered_name": "chainhash",
          "host": "Xeon8375C",
          "selection": "higher bulk of two passes; independently lower small average",
          "selected_run": 2,
          "binary_sha256": "df5d27c32b8d3f67fcbc74c3217aeb394d7e60a37df2621869a3a56044ed5a0d",
          "verification": {
            "raw_file": "out/Xeon/chainhash.sanity.txt",
            "lines": [
              "Verification value LE 0x66672BD6 ...... PASS",
              "Verification value is 0x00000001 - Testing took 0.693687 seconds"
            ]
          }
        },
        "smh_xeon_small_cycles": {
          "value": 155.14,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/chainhash/speeds_chainhash.json",
          "record": "records/chainhash/speeds_chainhash.json#/chainhash/Xeon8375C",
          "registered_name": "chainhash",
          "host": "Xeon8375C",
          "selection": "higher bulk of two passes; independently lower small average",
          "selected_run": 2,
          "binary_sha256": "df5d27c32b8d3f67fcbc74c3217aeb394d7e60a37df2621869a3a56044ed5a0d",
          "verification": {
            "raw_file": "out/Xeon/chainhash.sanity.txt",
            "lines": [
              "Verification value LE 0x66672BD6 ...... PASS",
              "Verification value is 0x00000001 - Testing took 0.693687 seconds"
            ]
          }
        }
      }
    },
    {
      "id": "tabulation",
      "pattern": [],
      "code_url": "https://github.com/thomasahle/fast-polynomials",
      "name": "Simple tabulation",
      "bound": "1/q",
      "score_lower_guarantee": 64,
      "key_words_64bit": "256c, c bytes",
      "output_bits": 64,
      "domain": "Simple tabulation with independent position-specific tables on fixed-length inputs; an 8-byte input is admitted. Composite string wrappers do not inherit this theorem.",
      "m2_paper_gbps_16KB_512B": null,
      "reference_url": "https://arxiv.org/abs/1011.5200",
      "notes": "Simple tabulation with independent position-specific tables on fixed-length inputs; an 8-byte input is admitted. Composite string wrappers do not inherit this theorem.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "1/q",
      "version": "fixed-length byte keys",
      "label": "Simple tabulation",
      "anchor": "proofs",
      "mechanism": "1/q",
      "family": "proven",
      "bits": 64,
      "bits_kind": "audited lower guarantee",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "smh_m2_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_m2_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        }
      },
      "qualification": "Simple tabulation with independent position-specific tables on fixed-length inputs; an 8-byte input is admitted. Composite string wrappers do not inherit this theorem.",
      "hover": {
        "scope": "Simple tabulation with independent position-specific tables on fixed-length inputs; an 8-byte input is admitted. Composite string wrappers do not inherit this theorem."
      },
      "smhasher3": {
        "verdict": "not registered for this family",
        "passed": null,
        "total": null,
        "failed_tests": [],
        "provenance": "records/README.html"
      },
      "speed_registration": null,
      "chart_eligible": true,
      "score_minimizer_L": 1,
      "score_derivation": "min_L log2(L/max(2^-64,min(1,epsilon(L)))); minimizing L=1",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "score_display": "≥ 64",
      "score": {
        "calculated": 64,
        "display": 64,
        "display_text": "≥ 64 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": 1,
        "formula": "1/q"
      },
      "mechanism_family": "tabulation",
      "rurban_alias": null,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "Yes: AXU / pairwise independence.",
        "note": "Any t output bits have collision probability 2^−t under independent table entries.",
        "audit_url": "records/README.html"
      },
      "domain_short": "fixed-length only",
      "family_definition": "XOR of independent table entries indexed by message characters.",
      "lean": {
        "label": "✓ checked",
        "source": "records/"
      }
    },
    {
      "id": "multiply",
      "pattern": [],
      "code_url": "https://github.com/thomasahle/fast-polynomials",
      "name": "Vector multiply-shift",
      "bound": "1/q",
      "score_lower_guarantee": 64,
      "key_words_64bit": "2(L+1)",
      "output_bits": 64,
      "domain": "Full-key vector multiply-add-shift; independent 128-bit coefficients including the additive key, fixed length. Named string wrappers do not inherit this theorem.",
      "m2_paper_gbps_16KB_512B": [
        null,
        16.5
      ],
      "reference_url": "https://arxiv.org/abs/1504.06804",
      "notes": "Full-key vector multiply-add-shift; independent 128-bit coefficients including the additive key, fixed length. Named string wrappers do not inherit this theorem.",
      "provenance": [
        "records/README.html",
        "records/README.html, tab:injective:adversarial when M2 figures supplied"
      ],
      "source_bound": "1/q",
      "version": "fixed-length vectors",
      "label": "Vector multiply-shift",
      "anchor": "proofs",
      "mechanism": "1/q",
      "family": "proven",
      "bits": 64,
      "bits_kind": "audited lower guarantee",
      "speeds": {
        "m2_gbps_16k": {
          "value": null,
          "source": "Unavailable in supplied records",
          "record": "records/README.html",
          "source_short": "unavailable"
        },
        "m2_gbps_512": {
          "value": 16.5,
          "source": "paper harness, Apple M2 Pro",
          "record": "records/README.html",
          "source_short": "paper harness / Apple M2 Pro",
          "url": "records/README.html"
        },
        "smh_m2_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_bulk_Bpc": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_m2_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        },
        "smh_xeon_small_cycles": {
          "value": null,
          "source": "No matching registration for this version/API",
          "source_short": "not timed",
          "record": "records/speeds.json",
          "url": "records/speeds.json"
        }
      },
      "qualification": "Full-key vector multiply-add-shift; independent 128-bit coefficients including the additive key, fixed length. Named string wrappers do not inherit this theorem.",
      "hover": {
        "scope": "Full-key vector multiply-add-shift; independent 128-bit coefficients including the additive key, fixed length. Named string wrappers do not inherit this theorem."
      },
      "smhasher3": {
        "verdict": "not registered for this family",
        "passed": null,
        "total": null,
        "failed_tests": [],
        "provenance": "records/README.html"
      },
      "speed_registration": null,
      "chart_eligible": true,
      "score_minimizer_L": 1,
      "score_derivation": "min_L log2(L/max(2^-64,min(1,epsilon(L)))); minimizing L=1",
      "proof_status": "proved (audited)",
      "proof_source": "records/README.html",
      "score_display": "≥ 64",
      "score": {
        "calculated": 64,
        "display": 64,
        "display_text": "≥ 64 bits (proved)",
        "direction": "lower_bound",
        "minimizer_L": 1,
        "formula": "1/q"
      },
      "mechanism_family": "multiply-shift",
      "rurban_alias": null,
      "key_free_definition": "A fixed seed-independent pair that collides for every API seed, with the stated public constants.",
      "masking": {
        "label": "Specified high bits only.",
        "note": "The theorem selects high bits of the wide accumulator. Do not replace that operation by a low-bit mask on the accumulator. Subsets of the already selected pairwise-independent output are safe.",
        "audit_url": "records/README.html"
      },
      "domain_short": "fixed-length words; timed code: ≤64 words, no partial bytes",
      "family_definition": "Wide keyed multiplication followed by selection of high bits.",
      "lean": {
        "label": "✓ checked",
        "source": "records/",
        "scope": "Fixed-length vectors with independent uniform 128-bit coefficients and additive key, high 64-bit output; no variable-length or short-seed claim."
      }
    },
    {
      "id": "halftime24-fixed",
      "name": "HalftimeHash24, repaired encoder (not shipped)",
      "label": "HalftimeHash24 repaired",
      "pattern": [],
      "family": "proven",
      "bits": 83.27,
      "bits_kind": "proved",
      "output_bits": 192,
      "bound": "6804·2^-96",
      "source_bound": "6804·2^-96",
      "score_lower_guarantee": 83.27,
      "score_display": "≥ 83.27 bits (proved)",
      "score": {
        "calculated": 83.26783257433661,
        "display": 83.27,
        "display_text": "≥ 83.27 bits (proved)",
        "direction": "lower_bound",
        "formula": "6804·2^-96",
        "minimizer_L": null
      },
      "key_words_64bit": "1937 (V4 core)",
      "mechanism_family": "NH: keyed pair products summed",
      "family_definition": "NH: keyed pair products summed",
      "anchor": "appendix-halftime24-fixed",
      "domain": "Independent uniform entropy words; supported V4 byte lengths <168·8·(19173960+1). Distance-3 encoder and scalar byte length as last tail word. 83.27 is the requested conservative collision-bound label (exactly 83.2678325743); the source theorem gives stronger bounds on the retained stack-safe domain. Construction M1–M4 checked in Lean; complete C++ refinement is not claimed.",
      "qualification": "Independent uniform entropy words; supported V4 byte lengths <168·8·(19173960+1). Distance-3 encoder and scalar byte length as last tail word. 83.27 is the requested conservative collision-bound label (exactly 83.2678325743); the source theorem gives stronger bounds on the retained stack-safe domain. Construction M1–M4 checked in Lean; complete C++ refinement is not claimed.",
      "key_model": "Independent uniform entropy words; supported V4 byte lengths <168·8·(19173960+1). Distance-3 encoder and scalar byte length as last tail word. 83.27 is the requested conservative collision-bound label (exactly 83.2678325743); the source theorem gives stronger bounds on the retained stack-safe domain. Construction M1–M4 checked in Lean; complete C++ refinement is not claimed.",
      "hover": {
        "scope": "Independent uniform entropy words; supported V4 byte lengths <168·8·(19173960+1). Distance-3 encoder and scalar byte length as last tail word. 83.27 is the requested conservative collision-bound label (exactly 83.2678325743); the source theorem gives stronger bounds on the retained stack-safe domain. Construction M1–M4 checked in Lean; complete C++ refinement is not claimed."
      },
      "proof_status": "proved (audited)",
      "proof_source": "records/halftime/THEOREM.html",
      "code_url": "records/halftime/HalftimeHash24-fixed.hpp",
      "chart_eligible": true,
      "key_free": false,
      "lean": {
        "label": "✓ construction (M1–M4)",
        "source": "records/",
        "scope": "Independent uniform entropy words; supported V4 byte lengths <168·8·(19173960+1). Distance-3 encoder and scalar byte length as last tail word. 83.27 is the requested conservative collision-bound label (exactly 83.2678325743); the source theorem gives stronger bounds on the retained stack-safe domain. Construction M1–M4 checked in Lean; complete C++ refinement is not claimed. Concrete fixed-header encoder/layout refinement remains partial; see records/machine-checked.html."
      },
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 5.55,
          "source": "median of three complete runs",
          "source_short": "median of three complete runs",
          "record": "records/halftime/speeds_halftime_fixed.json",
          "url": "records/halftime/speeds_halftime_fixed.json",
          "control_ratios": {
            "komihash": {
              "bulk_ratio": 0.6826568265682655,
              "small_ratio": 1.9632620104965686
            },
            "rapidhash": {
              "bulk_ratio": 0.35760309278350516,
              "small_ratio": 2.371038517796197
            },
            "HalftimeHash-512": {
              "bulk_ratio": 0.7439678284182305,
              "small_ratio": 0.7697056030389364
            }
          },
          "binary_sha256": "97c124f86a1f1e1dac50fecb4a289e9e4ca2744d302a11c38f042d47be296184"
        },
        "smh_m2_small_cycles": {
          "value": 48.63,
          "source": "median of three complete runs",
          "source_short": "median of three complete runs",
          "record": "records/halftime/speeds_halftime_fixed.json",
          "url": "records/halftime/speeds_halftime_fixed.json",
          "control_ratios": {
            "komihash": {
              "bulk_ratio": 0.6826568265682655,
              "small_ratio": 1.9632620104965686
            },
            "rapidhash": {
              "bulk_ratio": 0.35760309278350516,
              "small_ratio": 2.371038517796197
            },
            "HalftimeHash-512": {
              "bulk_ratio": 0.7439678284182305,
              "small_ratio": 0.7697056030389364
            }
          },
          "binary_sha256": "97c124f86a1f1e1dac50fecb4a289e9e4ca2744d302a11c38f042d47be296184"
        },
        "smh_xeon_bulk_Bpc": {
          "value": 14.12,
          "source": "median of three complete runs",
          "source_short": "median of three complete runs",
          "record": "records/halftime/speeds_halftime_fixed.json",
          "url": "records/halftime/speeds_halftime_fixed.json",
          "control_ratios": {
            "komihash": {
              "bulk_ratio": 1.9237057220708447,
              "small_ratio": 2.9513192121887775
            },
            "rapidhash": {
              "bulk_ratio": 1.3220973782771535,
              "small_ratio": 2.872332730560579
            },
            "HalftimeHash-512": {
              "bulk_ratio": 0.7357998957790515,
              "small_ratio": 0.9395480894357033
            }
          },
          "binary_sha256": "f92528649d7ba774e075505518a3e8321980146b8d92f7098b615a0e7f3a3a52"
        },
        "smh_xeon_small_cycles": {
          "value": 79.42,
          "source": "median of three complete runs",
          "source_short": "median of three complete runs",
          "record": "records/halftime/speeds_halftime_fixed.json",
          "url": "records/halftime/speeds_halftime_fixed.json",
          "control_ratios": {
            "komihash": {
              "bulk_ratio": 1.9237057220708447,
              "small_ratio": 2.9513192121887775
            },
            "rapidhash": {
              "bulk_ratio": 1.3220973782771535,
              "small_ratio": 2.872332730560579
            },
            "HalftimeHash-512": {
              "bulk_ratio": 0.7357998957790515,
              "small_ratio": 0.9395480894357033
            }
          },
          "binary_sha256": "f92528649d7ba774e075505518a3e8321980146b8d92f7098b615a0e7f3a3a52"
        }
      },
      "smhasher3": {
        "verdict": "Sanity/verification PASS; full suite not supplied"
      },
      "fix_provenance": "Our fixed-24byte-core branch in github.com/thomasahle/HalftimeHash; not yet upstream.",
      "old_witness_result": "0 collisions in 2^36 keys at each of four widths on the old 2^-32 witness.",
      "collision_bound_bits_exact": 83.26783257433661,
      "notes": "The experimental repaired 24-byte core is plotted separately with its own proof and timing records. The repaired header and theorem are disclosed in jbapple/HalftimeHash issue #3 and the appendix; this is not an upstream release."
    },
    {
      "id": "chainhash128",
      "name": "ChainHash-128 (ours)",
      "label": "ChainHash-128 (ours)",
      "pattern": [],
      "family": "proven",
      "bits": 127,
      "bits_kind": "proved",
      "output_bits": 128,
      "bound": "min(1,(p_B(L)+d_B(L))/2^128), with p_B the logical 512-byte comb-block count and d_B ≤ 32 the level-1 root count; p_B(1)=d_B(1)=1",
      "source_bound": "min(1,(p_B(L)+d_B(L))/2^128), with p_B the logical 512-byte comb-block count and d_B ≤ 32 the level-1 root count; p_B(1)=d_B(1)=1",
      "score_lower_guarantee": 127,
      "score_display": "≥ 127 bits",
      "score": {
        "calculated": 127,
        "display": 127,
        "display_text": "≥ 127 bits",
        "direction": "lower_bound",
        "formula": "min(1,(p_B(L)+d_B(L))/2^128), with p_B the logical 512-byte comb-block count and d_B ≤ 32 the level-1 root count; p_B(1)=d_B(1)=1",
        "minimizer_L": 1
      },
      "score_minimizer_L": 1,
      "score_derivation": "p_B(1)=d_B(1)=1, so ε ≤ 2/2^128 at L=1; the score is exactly 127 bits (d_B(L)=1 through 128 bytes because a short block difference is δ·s² with a single root).",
      "key_words_64bit": "16 random / 112 expanded",
      "random_key_bytes": 128,
      "domain": "Two fixed messages chosen independently of the key, at fixed length or at most 8L bytes, including empty, partial-word and unequal-length inputs; 1 ≤ L ≤ 2^61−1; 128 uniformly random key bytes. The bound, the evaluation independence and the exact 127-bit minimum are machine-checked (116 theorems, standard axioms; 625 C/Lean vectors). The benchmark SplitMix64 seed expansion is outside the theorem; no full SMHasher3 suite result or compiler/SIMD proof is claimed.",
      "qualification": "Two fixed messages chosen independently of the key, at fixed length or at most 8L bytes, including empty, partial-word and unequal-length inputs; 1 ≤ L ≤ 2^61−1; 128 uniformly random key bytes. The bound, the evaluation independence and the exact 127-bit minimum are machine-checked (116 theorems, standard axioms; 625 C/Lean vectors). The benchmark SplitMix64 seed expansion is outside the theorem; no full SMHasher3 suite result or compiler/SIMD proof is claimed.",
      "key_model": "128 uniformly random key bytes, read as eight 128-bit field words s, y, c0…c4, τ; block keys κ_a = s^(a+1). The resident key caches 16(W+24) = 896 bytes.",
      "domain_short": "128 uniformly random key bytes",
      "hover": {
        "scope": "Two fixed messages chosen independently of the key, at fixed length or at most 8L bytes, including empty, partial-word and unequal-length inputs; 1 ≤ L ≤ 2^61−1; 128 uniformly random key bytes. The bound, the evaluation independence and the exact 127-bit minimum are machine-checked (116 theorems, standard axioms; 625 C/Lean vectors). The benchmark SplitMix64 seed expansion is outside the theorem; no full SMHasher3 suite result or compiler/SIMD proof is claimed."
      },
      "mechanism": "Reduced CLNH with comb pairs (w_i,w_{i+8}) in logical 512-byte blocks over GF(2^128), schoolbook products; Horner in an independent 128-bit key word y with the byte length as leading coefficient, k chains; integer twist + quintic finalizer",
      "mechanism_family": "CLNH + Horner + quintic",
      "family_definition": "Reduced carry-less NH, length-led Horner polynomial over GF(2^128), integer-add twist and independent quintic finalizer",
      "anchor": "appendix-chainhash128",
      "proof_status": "proved (machine-checked)",
      "proof_source": "https://github.com/thomasahle/chainhash/blob/main/docs/THEOREM-128.md",
      "code_url": "https://github.com/thomasahle/chainhash",
      "reference_url": "https://github.com/thomasahle/chainhash",
      "version": "512-byte logical comb blocks over GF(2^128); 128-bit output; schoolbook bulk products",
      "chart_eligible": true,
      "chart_hosts": [
        "M2Pro",
        "Xeon8375C"
      ],
      "key_free": false,
      "lean": {
        "label": "✓ checked",
        "source": "https://github.com/thomasahle/chainhash/tree/main/lean",
        "scope": "Machine-checked (116 theorems, standard axioms): the collision bound for 128 uniformly random key bytes, evaluation independence for every stride and the exact score minimum 127; 625 C/Lean vectors."
      },
      "smhasher3": {
        "verdict": "PASS (188/188 on Xeon)",
        "passed": 188,
        "total": 188,
        "failed_tests": [],
        "url": "records/chainhash/quality/smh-xeon-chainhash-128-all.log",
        "provenance": "records/chainhash/quality/REPORT.html",
        "verification": {
          "LE": "0x1FCA728C"
        }
      },
      "speed_registration": "chainhash-128",
      "provenance": [
        "https://github.com/thomasahle/chainhash/blob/main/docs/SPEC-128.md",
        "https://github.com/thomasahle/chainhash/blob/main/docs/THEOREM-128.md",
        "https://github.com/thomasahle/chainhash/tree/main/lean",
        "records/chainhash/speeds_chainhash128.json"
      ],
      "notes": "One function on every host: digests are independent of Horner stride k, SIMD width, schoolbook or Karatsuba products, lazy/eager reduction, streaming chunking and region-aligned thread splits. Bulk: Xeon 14.43 B/cycle (higher of two passes), M2 Pro 10.26 (median of three; no run more than 15% from its median). Same-binary controls: XXH3-128 19.82 / 12.53, UMASH-128 6.02 / 7.52 (Xeon / M2). Four-lane VPCLMULQDQ on ZMM carries the Xeon figure; the NEON loop is issue-bound, not multiplier-bound. Short 1–31 B inputs cost 175.93 cycles/hash on Xeon and 167.89 on M2. Two fixed messages chosen independently of the key, at fixed length or at most 8L bytes, including empty, partial-word and unequal-length inputs; 1 ≤ L ≤ 2^61−1; 128 uniformly random key bytes. The bound, the evaluation independence and the exact 127-bit minimum are machine-checked (116 theorems, standard axioms; 625 C/Lean vectors). The benchmark SplitMix64 seed expansion is outside the theorem; no full SMHasher3 suite result or compiler/SIMD proof is claimed.",
      "speeds": {
        "smh_m2_bulk_Bpc": {
          "value": 10.26,
          "source": "SMHasher3 M2Pro, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/chainhash/speeds_chainhash128.json",
          "record": "records/chainhash/speeds_chainhash128.json#/chainhash-128/M2Pro",
          "registered_name": "chainhash-128",
          "note": "Forced-schoolbook registration (repository key chainhash-128.schoolbook); the dispatch the shipped header uses on XMM, ZMM and NEON",
          "host": "M2Pro",
          "selection": "median of three; >15% deviations flagged, not discarded",
          "selected_run": 2,
          "binary_sha256": "538d584df3317947011c07affd42248f9a57460662c82aa9ca04d1872ae28a12",
          "verification": {
            "raw_file": "evidence/M2/chainhash-128.schoolbook.sanity.txt",
            "lines": [
              "Verification value CE 0x1FCA728C ...... PASS",
              "Verification value is 0x00000001 - Testing took 1.132381 seconds"
            ]
          }
        },
        "smh_m2_small_cycles": {
          "value": 167.89,
          "source": "SMHasher3 M2Pro, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 M2Pro",
          "url": "records/chainhash/speeds_chainhash128.json",
          "record": "records/chainhash/speeds_chainhash128.json#/chainhash-128/M2Pro",
          "registered_name": "chainhash-128",
          "note": "Forced-schoolbook registration (repository key chainhash-128.schoolbook); the dispatch the shipped header uses on XMM, ZMM and NEON",
          "host": "M2Pro",
          "selection": "median of three; >15% deviations flagged, not discarded",
          "selected_run": 2,
          "binary_sha256": "538d584df3317947011c07affd42248f9a57460662c82aa9ca04d1872ae28a12",
          "verification": {
            "raw_file": "evidence/M2/chainhash-128.schoolbook.sanity.txt",
            "lines": [
              "Verification value CE 0x1FCA728C ...... PASS",
              "Verification value is 0x00000001 - Testing took 1.132381 seconds"
            ]
          }
        },
        "smh_xeon_bulk_Bpc": {
          "value": 14.43,
          "source": "SMHasher3 Xeon8375C, 262144 B bulk, B/cycle",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/chainhash/speeds_chainhash128.json",
          "record": "records/chainhash/speeds_chainhash128.json#/chainhash-128/Xeon8375C",
          "registered_name": "chainhash-128",
          "note": "Forced-schoolbook registration (repository key chainhash-128.schoolbook); the dispatch the shipped header uses on XMM, ZMM and NEON",
          "host": "Xeon8375C",
          "selection": "higher bulk of two passes; independently lower small average",
          "selected_run": 2,
          "binary_sha256": "d8df2fbcf18e4e56ec2c6a96242ef47b10935cd20d05f0b249e6fdecae92846a"
        },
        "smh_xeon_small_cycles": {
          "value": 175.93,
          "source": "SMHasher3 Xeon8375C, 1–31 B, cycles/hash",
          "source_short": "SMHasher3 Xeon8375C",
          "url": "records/chainhash/speeds_chainhash128.json",
          "record": "records/chainhash/speeds_chainhash128.json#/chainhash-128/Xeon8375C",
          "registered_name": "chainhash-128",
          "note": "Forced-schoolbook registration (repository key chainhash-128.schoolbook); the dispatch the shipped header uses on XMM, ZMM and NEON",
          "host": "Xeon8375C",
          "selection": "higher bulk of two passes; independently lower small average",
          "selected_run": 1,
          "binary_sha256": "d8df2fbcf18e4e56ec2c6a96242ef47b10935cd20d05f0b249e6fdecae92846a"
        }
      }
    }
  ],
  "source_excerpts": [
    {
      "id": "city-seed",
      "language": "c",
      "text": "uint64 CityHash64WithSeed(const char *s, size_t len, uint64 seed) {\n  return CityHash64WithSeeds(s, len, k2, seed);\n}\n\nuint64 CityHash64WithSeeds(const char *s, size_t len,\n                           uint64 seed0, uint64 seed1) {\n  return HashLen16(CityHash64(s, len) - seed0, seed1);\n}",
      "url": "https://github.com/google/cityhash/blob/master/src/city.cc",
      "provenance": "records/README.html"
    },
    {
      "id": "komi-seed",
      "language": "c",
      "text": "uint64_t Seed1 = KOMIHASH_IVAL1 ^ ( UseSeed & KOMIHASH_VAL01 );\nuint64_t Seed5 = KOMIHASH_IVAL5 ^ ( UseSeed & KOMIHASH_VAL10 );",
      "url": "https://github.com/avaneev/komihash/blob/5.34/komihash.h",
      "provenance": "records/README.html"
    }
  ],
  "figure": {
    "script": "figure/chart.js",
    "data": "All eligible rows with a positive finite speed for the selected host; HalftimeHash styles remain separate points.",
    "axes": [
      "smh_m2_bulk_Bpc",
      "smh_xeon_bulk_Bpc"
    ],
    "default_axis": "smh_m2_bulk_Bpc",
    "y_range": [
      -2,
      134
    ],
    "missing_speeds": "Null measurements are omitted only from the selected speed axis, never substituted or converted.",
    "outside_y_range": "All scored points fit; UMASH-64 and UMASH-128 are solid proven markers at 56.18 and 83.99; fingerprint domain L ≤ 2^46 words.",
    "polymur_constant_retained": true,
    "chainhash": "Exactly one 64-bit ChainHash point on both hosts (chainhash, 63.0 bits with 64 uniformly random key bytes) and exactly one 128-bit point (chainhash128, 127 bits with 128 random key bytes).",
    "axis_options": [
      {
        "key": "smh_m2_bulk_Bpc",
        "label": "SMHasher3 bulk, bytes/cycle, Apple M2 Pro",
        "host": "M2Pro",
        "field": "bulk_bytes_per_cycle",
        "unit": "B/cycle",
        "type": "log"
      },
      {
        "key": "smh_xeon_bulk_Bpc",
        "label": "SMHasher3 bulk, bytes/cycle, Intel Xeon 8375C",
        "host": "Xeon8375C",
        "field": "bulk_bytes_per_cycle",
        "unit": "B/cycle",
        "type": "log"
      }
    ],
    "table_only_axes": [
      "smh_m2_small_cycles",
      "m2_gbps_16k"
    ],
    "build_script": "figure/build.py",
    "y_range_by_host": {
      "M2Pro": [
        -2,
        134
      ],
      "Xeon8375C": [
        -2,
        134
      ]
    },
    "label_policy": "Selective landmark labels; all eligible variants remain at their exact scientific coordinates and are inspectable through the selector. No output-width drop lines or dashed reference lines.",
    "exports": {
      "M2Pro": [
        "figure/m2.svg",
        "figure/m2.png"
      ],
      "Xeon8375C": [
        "figure/xeon.svg",
        "figure/xeon.png"
      ]
    },
    "numbers_pass": "All speed, bound and scope updates sourced from data.json; no-score and no-matching-speed rows omitted.",
    "stylesheet": "figure/chart.css",
    "profiles": "figure/profiles.json",
    "benchmark_reproduction_url": "https://github.com/thomasahle/hash-benchmark-reproduction"
  },
  "sources": [
    {
      "path": "records/README.html",
      "sha256": "f779fa7959edcb4826b6292805f661ac3b0a3e585d3c8fc76e88063d90d625bd"
    },
    {
      "path": "records/README.html",
      "sha256": "b5c4f00f172746d7b2fb28382f1e2bcbd05204b606d7bcf52a761fc1afb3096a"
    },
    {
      "path": "records/README.html",
      "sha256": "1d2d8fab2fb545ede5ee55434078f3e6c4ac646bf8484c4132f7f13ffafb7703"
    },
    {
      "path": "records/README.html",
      "sha256": "15976ce405d1c83f09dff4fe8796a042816c5847cadee905bc51c80b48ffedf1"
    },
    {
      "path": "records/README.html",
      "sha256": "44051bcb9324e3a2ec874ca798d618a67699131ce6d90217895bd07309dbee5e"
    },
    {
      "path": "records/README.html",
      "sha256": "175780da3e26c2b11f855345af0b9d7ba0030c66f56bb340ad4aa88b9df05fd3"
    },
    {
      "path": "records/README.html",
      "sha256": "5c1595c14be1a00944c241951acd33ff95f40074c2306d56ac15000fdfcc278f"
    },
    {
      "path": "records/README.html",
      "sha256": "85b1947807b8309dce8ae8112b3b1c39a297c65d59af1548ee291920f072f075"
    },
    {
      "path": "records/README.html",
      "sha256": "feadcbe41c25cb753932b863a122a111de82107106fbd306b1435cbc295c4269"
    },
    {
      "path": "records/README.html",
      "sha256": "5b3304858975b8cc02accd488b53afa2f397a94d430bf91118d41be4f3fa9de1"
    },
    {
      "path": "records/README.html",
      "sha256": "a233de189c257d8c4a8467ac229fb463ef925e5df729cd013b8855932da6500c"
    },
    {
      "path": "records/README.html",
      "sha256": "e255c95ca3e7aac9c74892da791cf0c43a0f73fe8e83ac3ae685c27fbfe2fdf7"
    },
    {
      "path": "records/README.html",
      "sha256": "09652714fe46713d97771695ddf0902a957cd292c2697f92ad7a05d7cb7259bb"
    },
    {
      "path": "records/README.html",
      "sha256": "33420fd123c7fcd9d55cdf9235105fef8cb1cd3913795703449bbeb20cbce147"
    },
    {
      "path": "records/README.html",
      "sha256": "f1951fc94fc159e5ca44526293bf370e410e1e8b2bc5c53f31852392930f49c0"
    },
    {
      "path": "records/README.html",
      "sha256": "65edc641a5aea177e8a35b152817a816cfb004bca5dd67ecd10f9d8c03ce3dc9"
    },
    {
      "path": "records/README.html",
      "sha256": "960c0c2e95e36d8f27c5a157f228b6896938d7e1438d4ab2ddb2b08fd1155f44"
    },
    {
      "path": "records/README.html",
      "sha256": "3704e1d0810898ae5d41abac74e32ef8d350d83e83661463db39dc189ab54417"
    },
    {
      "path": "records/README.html",
      "sha256": "92a5d59a7694e195075e2fd36429795e41ed1aec74b6d93f0a5d02bf09d77f65"
    },
    {
      "path": "paper_rows/rows.json",
      "sha256": "ce931321eb37431cd3f5edcbd0cd0e9931d1d425d00c9875be12fe74f135e926"
    }
  ]
}
