“F1.5 design 1: a climb that never breaks the 24 known letters, run in compiled code, measured on planted English before K4 (one free alphabet, Beaufort form, key lengths 23 and 26)”
F1.5, step 2, design 1, on F1.1's two cells (Beaufort form, key lengths 23 and 26), which 0136 showed decidable by the quadgram test in principle (open bits 75 and 90 against 130). Three changes to 0120's climb: (1) every move keeps the 24 known letters consistent (swap two letters' places; if a check breaks, repair with a second swap chosen among those that restore every check), so no penalty term and the forced key values move only as the checks allow; (2) the score is the quadgram mean over all 97 letters with the known letters in place, so the unknown letters next to the known runs are scored in context; (3) the inner loop is compiled C (written out and compiled by this file, loaded with ctypes; about 150 times faster than 0120's Python), so each text gets 1,000 restarts of 100,000 moves instead of 20. Power is measured on 12 planted texts per length before K4's verdict counts.
For one kind of cipher (one scrambled alphabet, a repeating key of 23 or 26 letters, used the BeaufortVigenere The three rules of arithmetic a table can use: add the key letter to the message letter, subtract the message letter from the key letter, or subtract the key letter from the message letter. way), the 24 known lettersthe known letters Sanborn has confirmed that positions 22 to 34 of the message read EASTNORTHEAST and positions 64 to 74 read BERLINCLOCK. cannot rule the carved textthe carved letters The 97 letters cut into the copper at the CIA, shown at the top of every experiment page. in or out, but 73 letters of English could, in principle. An earlier search failed to find hidden Englisha planted message A real English passage, with the 24 known letters written in at their places, enciphered by the method under test with a random key. of this kind even when we planted it ourselves. This search only ever moves between settings that keep the 24 known letters right, reads the whole message including the known words, and runs about 150 times faster, so it can try 1,000 fresh starts per text. Before believing what it says about the carved text, we check how often it notices planted messages compared with scrambled copies.
Words in the margin are defined on the glossary page.
1.1
The method at work
The carved letters go in at the top; the reading comes out at the bottom.
the idea
0136 showed one scrambled alphabet with a 23- or 26-letter key is decidable by English in principle. 0120's climb failed because one swap broke the known letters; this one only moves between alphabets that keep them, and runs 150 times faster.
the check
12 planted English texts and 12 scrambled coppers per length, same climb and effort. K4 scores -5.05 at 23 (coppers -5.13 to -4.94) and -4.95 at 26 (-5.14 to -4.71).
the bound
At 23 the planted texts beat every copper 10 times in 12, passing the bar of 9; at 26 only 5. No planted text was recovered. K4 is inside its coppers at both lengths.
2
Best candidate against the known letters
Laid out as the copper carries K4: OBKR ends the line that finishes K3, then three lines of 31. Left, as carved, the 24 known places in accent. Right, the candidate: a known place it gets right is an accent cell, one it misses is outlined. This is the candidate with most known letters right; none passed every gate.
in: the copper, always the same
as carved, 97 letters; the 24 known places in accent
ECDMRIPFEIMEHNLSSTTRTVDOHW?OBKR
UOXOGHULBSOLIFBBWFLRVQQPRNGKSSO
TWTQSJQSSEKZZWATJKLUDIAWINFBNYP
VTTMZFPKWGDKZXTJCDIGKUHUAUEKCAR
OBKR ends the line that finishes K3, then three lines of 31
out: the candidate
every place read; known places in accent, misses outlined
ECDMRIPFEIMEHNLSSTTRTVDOHW?DUBD
UWORNYOCSPAREDTOPEASTNORTHEASTH
EBUATIIAMFIVLIEFFENOWERLASSMBER
LINCLOCKOFCANHIANGINTAWARYQSEEP
checked: the known letters in place, and the reading turns back into the copper
3
How the score is made
The loss of the best candidate, part by part. Zero is solved.
Known letters missed
0 of 24, ten points each
0.00
English
the 73 free letters score -5.41; English text scores -3.6
1.81
Key
198 bits to write it down (key words are cheap, arbitrary letters 4.7 bits each); each 60 beyond 60 costs a point
2.31
Loss
of 240, the worst possible
4.12 1.7%
4
Walkthrough, by hand
Redo the method on a few letters with pencil and paper.
Write K4 in rows of 23; each column is one key slot.
Choose an order for the alphabet that keeps the known letters consistent: in every column holding two known letters, place(carved) + place(known) must come out the same for both.
The key value of a column with a known letter is that sum; give the other six columns any value.
Decipher every letter: message place = key value minus carved place, mod 26, read back through the alphabet.
Score the whole 97 letters, known words included, by how English their four-letter groups are.
Swap two letters of the alphabet; if a column's two known letters now disagree, swap another pair that makes every column agree again.
Keep the change if the score improves (sometimes even if not, less often as the search cools); repeat 100,000 times, then start again from a new order, 1,000 times.
Do the same on scrambled copies of K4 and on planted English, and compare the best scores.
the worksheet: the first steps by hand, on squared paper
5
Worked example, generated
The same steps run by the code on the real letters.
key length 23, Beaufort form: K4 in rows of 23; each column is one key slot
O B K R U O X O G H U L B S O L I F B B W F L
R V Q Q P R N G K S S O T W T Q S J Q S S E K
Z Z W A T J K L U D I A W I N F B N Y P V T T
M Z F P K W G D K Z X T J C D I G K U H U A U
E K C A R
the seven checks every move keeps (place(carved) + place(known) equal within a column):
column 0: R+S (24) = M+C (70)
column 1: V+T (25) = Z+L (71)
column 2: Q+N (26) = F+O (72)
column 3: Q+O (27) = P+C (73)
column 4: P+R (28) = K+K (74)
column 21: F+E (22) = T+I (68)
column 22: L+A (23) = T+N (69)
best alphabet on K4: UWOXMQNVLFISRKPAZTECJDGYBH
key values: [23, 24, 11, 7, 0, 3, 5, 14, 2, 22, 2, 1, 9, 25, 17, 20, 2, 4, 15, 0, 15, 1, 23]
place 22: carved F at 9, key 1: 1 - 9 = 18 -> E
place 64: carved N at 6, key 4: 4 - 6 = 24 -> B
6
Hypothesis, for a cryptanalyst
Family, key space, the constraint under test, and the clues it reads.
C27(c) (a tableau 'slightly different from the one on Kryptos', research_notes/sanborn_charts and the NYT 'Original Decoding Charts' email, knowledge/11-clue-register.md), C1(b) (the table alone). Model as 0120: one unknown bijection x (letter -> place) on both sides, Beaufort form x(c_i) + x(p_i) = k[i mod L] mod 26, L in {23, 26}; 0119 left only these (form, length) pairs. Given x, the key at a slot holding a known letter is forced; the other slots (6 at 23, 3 at 26) are free. Checks: 7 at L 23 (x(c1)+x(p1) = x(c2)+x(p2) for two known letters in a slot), 1 at L 26. Search: simulated annealing over x restricted to the set where every check holds (start: a random depth-first assignment that satisfies the checks; move: swap two letters' places, repaired by a second swap if a check breaks) and over the free key values; objective the mean log10 quadgram over the whole 97-letter text with the known letters in place; T 0.05 -> 0.002 geometric; 1,000 restarts x 100,000 moves per text. Dry runs on planted texts before this record (scratch, stated here): started from the true alphabet with k random check-keeping swaps (free key values true), the climb returned to the exact plaintext for k up to about 12 and rarely from 15-20; from random starts no restart of 960 (100,000 or 1,000,000 moves) recovered a plant, the best reaching -4.85 to -5.0 against true scores of -4.1 to -4.4, with 11-16 of the 73 unknown letters right. Bar, set before the run, stricter than 0120's half because 0120's 3 of 6 at that bar was judged weak: a plant is found if its best score is above every copper's best at that length; the design passes at a length if at least 9 of 12 plants are found. Recovery (90 or more of 97 letters right) is reported apart. Key cost of a reading here: 88.4 bits of alphabet plus 4.7 per key letter.
7
Prediction
Written before the run; the result decides it.
No planted text recovered (90+ letters right) at either length, as in the dry runs. Detection only through the partial correctness the dry runs showed: at 23, fewer than 9 of 12 plants above every copper, so the design fails the bar; at 26 (one check) fewer still. K4 inside its coppers' range at both lengths. If a length reaches 9 of 12, that length's K4 verdict counts as sampled at the measured power, and a K4 score above every copper stops the queue for a replication.
8
Method
Compile the C climb; check on a planted text that its plaintext equals a Python Beaufort decryption under the alphabet and key it returns.
Draw 12 shuffles of K4 that fit exactly at each length (0119's decider) and 12 planted texts per length (Carter windows, known letters written in, random alphabet and key; 0120's generator).
For K4, each copper and each plant: 1,000 restarts x 100,000 moves, best score kept, restarts done recorded.
Per length: plants found (above every copper), plants recovered, K4 against the coppers.
Return K4's best reading per length as a candidate with the coppers' scores as controls.
9
Result and bounds
The harness's record: candidates, gates, loss, and the negative result this experiment leaves behind.
2candidates returned
0passed every gate
24/24known letters, best
1.7%lowest loss
nonechampion before
All 2 candidates, lowest loss first.
1failed at baseline24/24 known lettersloss 1.7%
ECDMRIPFEIMEHNLSSTTRTVDOHW?DUBD
UWORNYOCSPAREDTOPEASTNORTHEASTH
EBUATIIAMFIVLIEFFENOWERLASSMBER
LINCLOCKOFCANHIANGINTAWARYQSEEP
Beaufort form, one alphabet UWOXMQNVLFISRKPAZTECJDGYBH on both sides, key length 23
2failed at baseline24/24 known lettersloss 1.7%
ECDMRIPFEIMEHNLSSTTRTVDOHW?QEVE
DENGETOPTOANHEANGEASTNORTHEASTC
HERIONYMNSVAGIEVELMAFTKALLYSBER
LINCLOCKINMCUARLOTBORGJANGEREDW
Beaufort form, one alphabet AKDPGNBMLEVURJIXHQOFWCYSZT on both sides, key length 26
L23: K4 -5.050 (rank 9 of 13), coppers -5.130 to -4.941, plants found 10/12, recovered 0; L26: K4 -4.954 (rank 12 of 13), coppers -5.136 to -4.709, plants found 5/12, recovered 0
What was searched, as the harness recorded it.
family
one unknown alphabet on both sides, Beaufort form, periodic key 23 or 26, no move (F1.1's two cells)
search
simulated annealing in the set where every known-letter check holds, compiled C, 1000 restarts x 100,000 moves per text (chunks of 50), T 0.05->0.002 geometric, full-text quadgram mean
not exhaustive
yes
restarts done
min
1,000
max
1,000
c decryption checked
yes
bar
plant found if its best score is above every copper's best; design passes at a length if >= 9 of 12 found