From e3f3e07700809b1f73d6bc2c04563992c36b563b Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Wed, 7 Oct 2026 19:31:57 +0000 Subject: [PATCH] adv-cache-3: --dep-samples for the flip-table ladder; the queue files 93 to 98 kept with the harness Co-Authored-By: Claude Fable 5.1 --- .../queue/93-adv-cache-3-skip-batch.sh | 24 +++++++++++++++++++ .../queue/94-adv-cache-3-relations.sh | 14 +++++++++++ .../queue/95-adv-cache-3-image-w2.sh | 12 ++++++++++ .../queue/96-adv-cache-3-skip-1024.sh | 14 +++++++++++ .../queue/97-adv-cache-3-image-w2-resume.sh | 15 ++++++++++++ .../queue/98-adv-cache-3-flip-ladder.sh | 15 ++++++++++++ tools/attack/adv-cache-3/src/main.rs | 3 ++- 7 files changed, 96 insertions(+), 1 deletion(-) create mode 100755 tools/attack/adv-cache-3/queue/93-adv-cache-3-skip-batch.sh create mode 100755 tools/attack/adv-cache-3/queue/94-adv-cache-3-relations.sh create mode 100755 tools/attack/adv-cache-3/queue/95-adv-cache-3-image-w2.sh create mode 100755 tools/attack/adv-cache-3/queue/96-adv-cache-3-skip-1024.sh create mode 100755 tools/attack/adv-cache-3/queue/97-adv-cache-3-image-w2-resume.sh create mode 100755 tools/attack/adv-cache-3/queue/98-adv-cache-3-flip-ladder.sh diff --git a/tools/attack/adv-cache-3/queue/93-adv-cache-3-skip-batch.sh b/tools/attack/adv-cache-3/queue/93-adv-cache-3-skip-batch.sh new file mode 100755 index 000000000..66e3e7481 --- /dev/null +++ b/tools/attack/adv-cache-3/queue/93-adv-cache-3-skip-batch.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# adv-cache-3 (owner), queue 90's implementation plus the pebble (92) and cross rows: the quick batch, seconds each. +# Runs ON build box 1 through the lease pool. Binary /srv/builds/_adv-cache-3/bin/adv-cache-3 (sha in the report). +set -u +BIN=/srv/builds/_adv-cache-3/bin/adv-cache-3; D=/srv/builds/_adv-cache-3/logs; mkdir -p $D +T=${THREADS:-48} +# main's rule of 20:1x BST, 7 October 2026: every sweep starts through the build-server lane's lease pool, never by hand +run() { tag=$1; shift; echo "$(date -u +%FT%TZ) start $tag" >> $D/ledger.txt; /srv/builds/_bin/lease pool $T --min 16 --label "adv-cache-3 $tag" --owner adv-cache-3 -- $BIN "$@" > $D/$tag.log 2>&1; rc=$?; echo "$(date -u +%FT%TZ) end $tag rc=$rc" >> $D/ledger.txt; echo "$tag rc=$rc"; } +echo $$ > $D/skip-batch.pid +run skip-d20730 skip --day 20730 --segments 1024 --threads {cores} +run skip-d20733 skip --day 20733 --segments 1024 --threads {cores} +run skip-plant-noxor skip --day 20730 --segments 1024 --plant no-xor --threads {cores} +run skip-plant-noff skip --day 20730 --segments 1024 --plant no-feedforward --threads {cores} +run skip-rounds0 skip --day 20730 --segments 256 --rounds 0 --threads {cores} +run skip-rounds1 skip --day 20730 --segments 256 --rounds 1 --threads {cores} +run skip-rounds2 skip --day 20730 --segments 256 --rounds 2 --threads {cores} +run skip-w4-r2 skip --day 20730 --segments 65536 --lines 16 --w 4 --rounds 2 --threads {cores} +run skip-w4-r2-plant-noxor skip --day 20730 --segments 4096 --lines 16 --w 4 --rounds 2 --plant no-xor --threads {cores} +run skip-w4-r2-plant-noff skip --day 20730 --segments 4096 --lines 16 --w 4 --rounds 2 --plant no-feedforward --threads {cores} +run pebble pebble --lines 64 --exhaustive-upto 16 --mc 1000000 +run pebble-plant-skip8 pebble --lines 64 --exhaustive-upto 12 --mc 200000 --skip-edge 8 +run cross-d20730 cross --day 20730 --segments 4096 --threads {cores} +run cross-plant-noxor-r1 cross --day 20730 --segments 4096 --plant no-xor --rounds 1 --threads {cores} +echo "skip-batch done $(date -u +%FT%TZ)" diff --git a/tools/attack/adv-cache-3/queue/94-adv-cache-3-relations.sh b/tools/attack/adv-cache-3/queue/94-adv-cache-3-relations.sh new file mode 100755 index 000000000..11f0c7344 --- /dev/null +++ b/tools/attack/adv-cache-3/queue/94-adv-cache-3-relations.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# adv-cache-3 (owner), queue 91's implementation: feed-forward relations, 4 day keys x 2^20 lines, the 512 x 512 correlation +# table, plus the reduced-C plant (one double round) and the no-feedforward inversion plant. Runs ON build box 1. +set -u +BIN=/srv/builds/_adv-cache-3/bin/adv-cache-3; D=/srv/builds/_adv-cache-3/logs; mkdir -p $D +T=${THREADS:-48} +# main's rule of 20:1x BST, 7 October 2026: every sweep starts through the build-server lane's lease pool, never by hand +run() { tag=$1; shift; echo "$(date -u +%FT%TZ) start $tag" >> $D/ledger.txt; /srv/builds/_bin/lease pool $T --min 16 --label "adv-cache-3 $tag" --owner adv-cache-3 -- $BIN "$@" > $D/$tag.log 2>&1; rc=$?; echo "$(date -u +%FT%TZ) end $tag rc=$rc" >> $D/ledger.txt; echo "$tag rc=$rc"; } +echo $$ > $D/relations-batch.pid +run relations-4d-l20 relations --day0 20730 --days 4 --lines-log2 20 --threads {cores} +run relations-plant-r1 relations --day0 20730 --days 1 --lines-log2 16 --rounds 1 --threads {cores} +run relations-plant-r2 relations --day0 20730 --days 1 --lines-log2 16 --rounds 2 --threads {cores} +run relations-r3 relations --day0 20730 --days 1 --lines-log2 18 --rounds 3 --threads {cores} +echo "relations-batch done $(date -u +%FT%TZ)" diff --git a/tools/attack/adv-cache-3/queue/95-adv-cache-3-image-w2.sh b/tools/attack/adv-cache-3/queue/95-adv-cache-3-image-w2.sh new file mode 100755 index 000000000..cd53a0297 --- /dev/null +++ b/tools/attack/adv-cache-3/queue/95-adv-cache-3-image-w2.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# adv-cache-3 (owner), queue 90 (4): the exhaustive image census at w = 2 (every one of 2^32 states per step), depth 64, +# and the no-feedforward plant (a permutation: the image must stay 2^32) at depth 6. Runs ON build box 2. +set -u +BIN=/srv/builds/_adv-cache-3/bin/adv-cache-3; D=/srv/builds/_adv-cache-3/logs; mkdir -p $D +T=${THREADS:-48} +# main's rule of 20:1x BST, 7 October 2026: every sweep starts through the build-server lane's lease pool, never by hand +run() { tag=$1; shift; echo "$(date -u +%FT%TZ) start $tag" >> $D/ledger.txt; /srv/builds/_bin/lease pool $T --min 16 --label "adv-cache-3 $tag" --owner adv-cache-3 -- $BIN "$@" > $D/$tag.log 2>&1; rc=$?; echo "$(date -u +%FT%TZ) end $tag rc=$rc" >> $D/ledger.txt; echo "$tag rc=$rc"; } +echo $$ > $D/image-batch.pid +run image-w2-r6-d64 image --w 2 --rounds 6 --depth 64 --threads {cores} +run image-w2-plant-noff image --w 2 --rounds 6 --depth 6 --plant no-feedforward --threads {cores} +echo "image-batch done $(date -u +%FT%TZ)" diff --git a/tools/attack/adv-cache-3/queue/96-adv-cache-3-skip-1024.sh b/tools/attack/adv-cache-3/queue/96-adv-cache-3-skip-1024.sh new file mode 100755 index 000000000..f549ba437 --- /dev/null +++ b/tools/attack/adv-cache-3/queue/96-adv-cache-3-skip-1024.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# adv-cache-3 (owner), queue 90's gate wording "at 64 and 1,024 lines": the chain extended to 1,024 lines (j up to 1,023, the +# same layout, the same B) on 64 segments of 2 day keys, plus the two plants at 1,024 lines. Runs ON build box 1. +set -u +BIN=/srv/builds/_adv-cache-3/bin/adv-cache-3; D=/srv/builds/_adv-cache-3/logs; mkdir -p $D +T=${THREADS:-48} +# main's rule of 20:1x BST, 7 October 2026: every sweep starts through the build-server lane's lease pool, never by hand +run() { tag=$1; shift; echo "$(date -u +%FT%TZ) start $tag" >> $D/ledger.txt; /srv/builds/_bin/lease pool $T --min 16 --label "adv-cache-3 $tag" --owner adv-cache-3 -- $BIN "$@" > $D/$tag.log 2>&1; rc=$?; echo "$(date -u +%FT%TZ) end $tag rc=$rc" >> $D/ledger.txt; echo "$tag rc=$rc"; } +echo $$ > $D/skip1024-batch.pid +run skip-1024-d20730 skip --day 20730 --segments 64 --lines 1024 --threads {cores} +run skip-1024-d20733 skip --day 20733 --segments 64 --lines 1024 --threads {cores} +run skip-1024-plant-noxor skip --day 20730 --segments 16 --lines 1024 --plant no-xor --threads {cores} +run skip-1024-plant-noff skip --day 20730 --segments 16 --lines 1024 --plant no-feedforward --threads {cores} +echo "skip1024-batch done $(date -u +%FT%TZ)" diff --git a/tools/attack/adv-cache-3/queue/97-adv-cache-3-image-w2-resume.sh b/tools/attack/adv-cache-3/queue/97-adv-cache-3-image-w2-resume.sh new file mode 100755 index 000000000..da1accda4 --- /dev/null +++ b/tools/attack/adv-cache-3/queue/97-adv-cache-3-image-w2-resume.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# adv-cache-3 (owner): the w = 2 exhaustive image census again in full (the 20:22 BST run was released at depth 8 by main's +# order for the class v5 gate). 48 cores at most, --min 16; started only when `lease status` shows no "v5 gate" or "v5 kit" +# waiter (main, 20:2x BST). Runs ON build box 2. +set -u +BIN=/srv/builds/_adv-cache-3/bin/adv-cache-3; D=/srv/builds/_adv-cache-3/logs; mkdir -p $D +T=${THREADS:-48} +echo $$ > $D/image2-batch.pid +while /srv/builds/_bin/lease status 2>/dev/null | grep -qiE "v5|class-v5"; do sleep 30; done +yield_v5() { while /srv/builds/_bin/lease status 2>/dev/null | grep -qiE "v5|class-v5"; do sleep 30; done; } +run() { tag=$1; shift; yield_v5; echo "$(date -u +%FT%TZ) start $tag" >> $D/ledger.txt; /srv/builds/_bin/lease pool $T --min 16 --label "adv-cache-3 $tag" --owner adv-cache-3 -- $BIN "$@" > $D/$tag.log 2>&1; rc=$?; echo "$(date -u +%FT%TZ) end $tag rc=$rc" >> $D/ledger.txt; echo "$tag rc=$rc"; } + +run image-w2-r6-d64-full image --w 2 --rounds 6 --depth 64 --threads {cores} +run image-w2-plant-noff image --w 2 --rounds 6 --depth 6 --plant no-feedforward --threads {cores} +echo "image2-batch done $(date -u +%FT%TZ)" diff --git a/tools/attack/adv-cache-3/queue/98-adv-cache-3-flip-ladder.sh b/tools/attack/adv-cache-3/queue/98-adv-cache-3-flip-ladder.sh new file mode 100755 index 000000000..00458b795 --- /dev/null +++ b/tools/attack/adv-cache-3/queue/98-adv-cache-3-flip-ladder.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# adv-cache-3 (owner): the reduced-round flip-table ladder at 2^18 lines (a flip bias of 2^-8.5 at 6 sigma), rounds 2, 3, 4 and +# the real 6, to put a number on where the single-bit statistics stop (report section 2's caveat). Binary with --dep-samples. +# 48 cores at most, --min 16, yields to any waiter with owner class-v5 or a "v5" label (main, 20:3x BST). Runs ON build box 1. +set -u +BIN=/srv/builds/_adv-cache-3/bin/adv-cache-3-dep; D=/srv/builds/_adv-cache-3/logs; mkdir -p $D +T=${THREADS:-48} +yield_v5() { while /srv/builds/_bin/lease status 2>/dev/null | grep -qiE "v5|class-v5"; do sleep 30; done; } +run() { tag=$1; shift; yield_v5; echo "$(date -u +%FT%TZ) start $tag" >> $D/ledger.txt; /srv/builds/_bin/lease pool $T --min 16 --label "adv-cache-3 $tag" --owner adv-cache-3 -- $BIN "$@" > $D/$tag.log 2>&1; rc=$?; echo "$(date -u +%FT%TZ) end $tag rc=$rc" >> $D/ledger.txt; echo "$tag rc=$rc"; } +echo $$ > $D/flip-batch.pid +run flip-r2-2e18 skip --day 20730 --segments 4160 --rounds 2 --dep-samples 262144 --threads {cores} +run flip-r3-2e18 skip --day 20730 --segments 4160 --rounds 3 --dep-samples 262144 --threads {cores} +run flip-r4-2e18 skip --day 20730 --segments 4160 --rounds 4 --dep-samples 262144 --threads {cores} +run flip-r6-2e18 skip --day 20730 --segments 4160 --rounds 6 --dep-samples 262144 --threads {cores} +echo "flip-batch done $(date -u +%FT%TZ)" diff --git a/tools/attack/adv-cache-3/src/main.rs b/tools/attack/adv-cache-3/src/main.rs index c376ae75b..c3e2aa84c 100644 --- a/tools/attack/adv-cache-3/src/main.rs +++ b/tools/attack/adv-cache-3/src/main.rs @@ -695,7 +695,8 @@ fn cmd_skip(a: &Args) { } // (3) dependence: flip each bit of line_{j-1}, count flips of each bit of line_j; and the word table - let dep_samples = 4096usize.min(segs * (n - 1)); + // --dep-samples N: the flip table over N lines (default 4,096; 2^18 resolves a flip bias of 2^-8.5 at 6 sigma) + let dep_samples = a.usize("dep-samples", 4096).min(segs * (n - 1)); let t1 = Instant::now(); let dep = par(threads, dep_samples, |_, lo, hi| { let mut cnt = vec![0u64; nb * nb];