From 52bae2285429992f44b4e1672c8ed320d7471747 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Wed, 7 Oct 2026 19:06:42 +0000 Subject: [PATCH] adv-mixer-3 report: Q1 k=5,6; Q4 complete on day 20733 (k=1..8 inside the band); Q2 k=3 Co-Authored-By: Claude Fable 5.1 --- docs/analysis/cryptanalysis/report-mixer-3.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/analysis/cryptanalysis/report-mixer-3.md b/docs/analysis/cryptanalysis/report-mixer-3.md index beca7965e..2a992fde0 100644 --- a/docs/analysis/cryptanalysis/report-mixer-3.md +++ b/docs/analysis/cryptanalysis/report-mixer-3.md @@ -24,11 +24,11 @@ Plant rule: a tool is trusted once it has fired on a known-failed shape. Which s | Q | Method | Known-failed shape | Gate | Result (numbers) | Status | |---|---|---|---|---|---| -| Q1 | exhaustive round-0 line-index census, all 2^32 t, k = 0..8 | k = 0 (the init: one bin holds 2^32, fired on both days) | chi-square z within 6, no empty bin | day 20729: uniform at k = 1 (z -1.13), 2 (-0.68), 3 (-0.39), 4 (-0.47); day 20733 uniform at k = 1 (z -0.71); k = 5..8 running | PASS to k = 4 (BOUND: the index histogram is uniform from k = 1), RUNNING | -| Q2 | single-bit avalanche, random states, 2^24 (and 2^27) states | `one` at k = 8 (fired: 1959 holes); `weak` fires at k = 1 only, not at k = 8 (see Q2) | no cell beyond 6 sigma | day 20729 k = 1: 354 holes, 129,726 cells beyond 6 sigma, worst p = 1.000; day 20733 k = 1: 266 holes, 136,797 cells; day 20729 k = 2 at 2^24: 0 holes, 0 cells beyond 6 sigma, worst z -4.74 (band 0.0015); k = 3..8 and the 2^27 rows running | FINDING at k = 1, PASS at k = 2 (margin: 1 of 8 on random states) | +| Q1 | exhaustive round-0 line-index census, all 2^32 t, k = 0..8 | k = 0 (the init: one bin holds 2^32, fired on both days) | chi-square z within 6, no empty bin | day 20729: uniform at k = 1 (z -1.13), 2 (-0.68), 3 (-0.39), 4 (-0.47), 5 (-1.47), 6 (-0.30); day 20733 uniform at k = 1 (z -0.71); k = 7, 8 and day 20733 k = 2..8 running under the lock | PASS to k = 6 (BOUND: the index histogram is uniform from k = 1), RUNNING | +| Q2 | single-bit avalanche, random states, 2^24 (and 2^27) states | `one` at k = 8 (fired: 1959 holes); `weak` fires at k = 1 only, not at k = 8 (see Q2) | no cell beyond 6 sigma | day 20729 k = 1: 354 holes, 129,726 cells beyond 6 sigma, worst p = 1.000; day 20733 k = 1: 266 holes, 136,797 cells; day 20729 k = 2 at 2^24: 0 holes, 0 cells beyond 6 sigma, worst z -4.74 (band 0.0015); k = 3: 0 and 0, worst z -5.28; k = 4..8 and the 2^27 rows running | FINDING at k = 1, PASS at k = 2 (margin: 1 of 8 on random states) | | Q2b | t-bit avalanche on the round-0 input (32 bits in), 2^24 (and 2^28) states | k = 0 (the init alone, fired: 12,439 holes) | no cell beyond 6 sigma | k = 1: 0 holes, 218 cells beyond 6 sigma, worst p = 0.7427 (t bit 31 to state bit 53), 18 line-index cells beyond 6 sigma. k = 2..8 at 2^24: 0 cells beyond 6 sigma, worst z 3.7 to 4.7 (the maximum of 16,384 normals is about 4.1); k = 2 at 2^28 states: 0 cells beyond 6 sigma, worst z -4.30, band 0.00018 | FINDING at k = 1, PASS from k = 2 (margin: 1 of 8) | | Q3 | differential multiplicity, 576 low-weight input differences, 2^20 pairs each | `nomul` at k = 1 (fired: 17,289 deterministic output bits at 4,096 pairs) | no multiplicity 4 or more, no deterministic bit | k = 1: 695 deterministic output bits over the 576 differences (max 35 in one difference) on day 20729, 537 (max 40) on 20733; k = 2..7: 0 deterministic bits, max multiplicity 1, no pair with 2 zero words, both days; k = 8 running | FINDING at k = 1 (deterministic bits), PASS from k = 2 | -| Q4 | single-bit linear correlations, random states, 2^26 samples | k = 0 (the identity, fired: c = 1.0 on the diagonal) | no cell beyond 6 sigma (band 0.00073) | k = 1..7: worst c between 0.00055 and 0.00058 (z 4.5 to 4.7, the expected maximum of 262,144 normals is 4.8), 0 cells beyond 6 sigma; k = 8 running | PASS from k = 1 (BOUND) | +| Q4 | single-bit linear correlations, random states, 2^26 samples | k = 0 (the identity, fired: c = 1.0 on the diagonal) | no cell beyond 6 sigma (band 0.00073) | day 20729 k = 1..7 and day 20733 k = 1..8: worst c between 0.00055 and 0.00062 (z 4.5 to 5.1; the expected maximum of 262,144 normals is 4.8), 0 cells beyond 6 sigma on every row; day 20729 k = 8 running | PASS from k = 1 (BOUND) | | Q4b | t-bit linear correlations on the round-0 input, 2^26 samples | k = 0 (fired: c = 1.0, t bit 0 to s[8] bit 0) | no cell beyond 6 sigma | k = 1..8: worst c 0.00048 to 0.00059 (z 3.9 to 4.9 over 16,384 cells), 0 cells beyond 6 sigma | PASS from k = 1 (BOUND) | | Q5 | rotational-XOR, rotations 1, 8, 16, 2^22 samples | `weak0` at k = 1 (fired: 740 zero-difference words of 2^20 at r = 1, 245 at r = 16) | no zero-difference word above 2 of N, no repeated difference above 3 | day 20729, k = 1, 2, 3, 4 at 2^22 samples: 0 zero-difference words at every rotation (random expects about 0.001), most frequent per-word difference multiplicity 3 (the birthday expectation at 2^22 draws of 32 bits) | PASS from k = 1 (BOUND: the XOR constants and the odd multiply kill the rotational property inside one application) | | Q6 | SAT (CaDiCaL) on the round-0 input: find t with a given 22-bit index after k applications | k = 1 solved and verified | solve inside one hour per k, time against the honest 2^10 x k x 130 ops | k = 1: SATISFIABLE in 137 s wall (loaded box); model t = 0x49880000 verifies to the target 0x20eb79. Honest: 2^10 trials of one application is under a millisecond. The solver is already slower than brute force at k = 1 | PASS at k = 1 (BOUND); k = 2..4 RUNNING | @@ -52,6 +52,8 @@ Command (build-1), per k: `adv-mixer-3 index --day 20729 --apps k --threads 64`. | 20729 | 2 | -0.68 | 0 | 874 | 1191 | 0.56 | -0.14 | pending | uniform | | 20729 | 3 | -0.39 | 0 | 853 | 1187 | -0.03 | -1.15 | pending | uniform | | 20729 | 4 | -0.47 | 0 | 857 | 1190 | 1.07 | -0.25 | pending | uniform | +| 20729 | 5 | -1.47 | 0 | 872 | 1202 | 0.99 | -0.11 | pending | uniform | +| 20729 | 6 | -0.30 | 0 | 867 | 1185 | 0.01 | -1.62 | pending | uniform | | 20733 | 0 | 6.2e12 | 4194303 | 0 | 2^32 | 7.8e11 | 2.4e10 | n/a | NON-UNIFORM (plant) | | 20733 | 1 | -0.71 | 0 | 863 | 1202 | 0.11 | -0.60 | pending | uniform | @@ -75,6 +77,7 @@ run at k = 1 fired it too: 14,364 holes). The `one` plant is the firing check of |---|---|---|---|---|---|---|---|---| | 20729 | 1 | 2^24 | 354 | 129,726 | in 279 (word 8) to out 64 (word 2) | 1.0000 | 7,930 | DISTINGUISHED | | 20729 | 2 | 2^24 | 0 | 0 | in 322 (word 10) to out 373 (word 11) | 0.49942 (z -4.74) | 0 | inside the band | +| 20729 | 3 | 2^24 | 0 | 0 | in 370 (word 11) to out 88 (word 2) | 0.49936 (z -5.28) | 0 | inside | | 20733 | 1 | 2^24 | 266 | 136,797 | in 30 (word 0) to out 32 (word 1) | 1.0000 | pending | DISTINGUISHED | Reading: one application on a random 512-bit state leaves 354 deterministic cells (an input bit that always @@ -154,6 +157,11 @@ Band: 6 sigma = 0.00073. Plant k = 0 fired (c = 1.0 on the 512 diagonal cells). | 20733 | 1 | 2^26 | -0.00056 | -4.60 | 0 | pending | pending | inside | | 20733 | 2 | 2^26 | -0.00056 | -4.60 | 0 | pending | pending | inside | | 20733 | 3 | 2^26 | -0.00062 | -5.10 | 0 | pending | pending | inside | +| 20733 | 4 | 2^26 | 0.00060 | 4.95 | 0 | pending | pending | inside | +| 20733 | 5 | 2^26 | -0.00060 | -4.94 | 0 | pending | pending | inside | +| 20733 | 6 | 2^26 | -0.00056 | -4.58 | 0 | pending | pending | inside | +| 20733 | 7 | 2^26 | 0.00059 | 4.83 | 0 | pending | pending | inside | +| 20733 | 8 | 2^26 | -0.00060 | -4.95 | 0 | pending | pending | inside | Reading: a single input bit and a single output bit have no measurable linear correlation after one application on random states. The worst z of 4.6 to 4.7 over 262,144 cells is what 262,144 draws of a standard normal give