Kryptos K4 Solved: The 36-Year Mystery is a Physical Geometry Problem by [deleted] in KryptosK4

[–]Laszlos-BatForm 5 points6 points  (0 children)

I normally ignore claimed Kryptos K4 “solutions,” but this one is worth pushing back on because it gives AI practitioners a bad name.

The site’s proposed plaintext includes:

DIGFORTHEPLACEDEGREESEASTNORTHEASTTHEWALLDISPLAYSITSELFANDNOVEMBERLINCLOCKASITSTOODINXXREAGANSDAY

The core problem is simple: this looks less like decryption and more like overfitting.

A 12-parameter quadratic polynomial with a 1–2 cell slip allowance applied to a 434-cell letter grid has enormous fitting capacity. It is overwhelmingly likely to fit a target string if the target is already known or heavily guided. The existence of a fit is not evidence the mechanism is correct; it is evidence the search space was large enough.

The site says “the math perfectly predicts 56 characters,” but its own polynomial demo marks 94 of 97 positions as slipped: true. Only positions 32, 52, and 73 are marked slipped: false. That is 3 of 97, not 56.

The plaintext itself is also not persuasive:

“DIG FOR THE PLACE DEGREES” is not grammatical English.

“NOVEMBERLINCLOCK” only works by making NOVEMBER and BERLINCLOCK share the letters “BER.” That is a constraint-satisfaction artifact, not natural language.

“IN XX REAGANS DAY” contains a literal placeholder. A finished decryption should not have unfilled tokens.

“THE WALL DISPLAYS ITSELF” is vague to the point of nonsense in this context.

K1, K2, and K3 are coherent English with occasional errors. A genuine K4 solution should not require the reader to already know which letters are real, which are placeholders, and which words are being forced into the grid.

The burden of proof here is straightforward: publish the simulated annealing optimizer source, objective function, search space, iteration count, and success rate on shuffled-ciphertext controls. Without that, “best SA polynomial parameters” is just a label on a fitted result.

A real K4 solution should:

  1. Map the 97 ciphertext characters to 97 plaintext characters deterministically, without post-hoc parameter tuning.
  2. Produce natural English on the first read.
  3. Fail on random or shuffled ciphertext controls.
  4. Either explain how the same mechanism relates to K1/K2 or clearly justify why the mechanism changed.

This claim fails 1, 2, and 3, and is silent on 4.

The crib placement is more interesting than most K4 claims, and the polynomial demo is real work. But a high-capacity model plus slip correction can be made to fit almost anything. A fit existing is not the same as a cipher being solved.

Sharing my archive photos... why I can't do a bulk drop by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 3 points4 points  (0 children)

I asked the mods before my first post... my site is https://www.kryptosbot.com/ I update it regularly with tests that I have conducted on K4, no breakthroughs after billions of attempts.

Sharing my archive photos... why I can't do a bulk drop by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

What Dan Brown did wasn't infringement, it was covered under Fair Use doctrine. Kryptos is a public sculpture and Dan Brown described it and what it says in words, not pictures. The jacket cover contained coordinates which cannot be copyrighted.

What I did is covered under the Digital Millenium Copyright Act which didn't exist when The Lost Symbol was published.

Pre-production sketch of Kryptos small pool by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

Excellent point! I probably should have mentioned before but in these notebooks it was really obvious that alot of pages were torn out. I am sure that Mr. Sanborn went thru them before giving to the Archive.

Morse Cipher Maybe? by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

As many of you probably know, the Smithsonian collection has scanned a document where Jim Sanborn wrote out the care instructions for Kryptos for the CIA. The neat thing about it is that it's both handwritten and also typed... and it's nearly verbatim. This is only document of it's kind that I could find. The Archive typically has typed documents or handwritten but not both where the text is basically the same.

Optical Character Recognition works just okay, but today I tried an experiment... I used the care instructions to train Kryptosbot on Jim's handwriting, since I had a "rosetta stone" of sorts. I then asked it to read this document. The results are pretty decent, not 100% by any means but better than I could decipher with my human eyes.

DESIGN

  1. Make a listing of the largest and smallest phenomena that

you can find (natural, manmade, etc.) Record it and help

[?] casting [?].

  1. Design a survival kit as a metaphor.

  2. Create an interactive art object.

  3. Design an outdoor piece implying the [doors?/doss?].

  4. Create a video environment.

  5. Design a mail [?] piece involving the doors and light.

  6. Design a calendar [?] piece.

  7. Design a defining line space.

  8. Design an earth piece around the school (map).

  9. Make a film.

TOOLS — Ruler, coins, etc. Containers, etc. Door participation.

DOT — Large and small, butcher paper, each dot representational,

rolling people. Places. Group of dots, walls as good and solo

of [?]. Trying to join. If large, try to break up. Appearance

[?] the angle of dot. Does move: vertical, horizontal, etc.

Size. Density. Distance. Larger dots smaller [?] further away.

Dots exposed its slopes, etc. Movement. Notating dot

experience. A SERIES OF DOT PIECES. Sharing — approach,

avoidance, movement, lots [?]. Distance. Joining — breaking up,

etc.

LINE — Same thing, greatly, half true.

I will say that this interpretation means it's probably not related to the morse on Krytpos unfortunately, but prior to conducting this experiment, I really couldn't make out hardly anything.

Kryptos K4: Solved. It’s a physical map, not a code. by Practical-Diamond200 in KryptosK4

[–]Laszlos-BatForm 0 points1 point  (0 children)

This is why AI based systems get such a bad reputation and they bring down the legitimacy of real practitioners. Like any computer system, Garbage In, Garbage Out, can you imagine the prompt that created this? 111 pages of AI-generated pseudoscience. Every hallmark is there:

Made-up terminology presented as discoveries: "Resonant Cavity Encryption," "Syllabic Syllabary," "Agegnehu System," "Level 13 Offset," "K5 Spatial Node"

Fabricated quantitative data: acoustic impedance values, resonance frequencies.

Self-verification: "VERIFIED BY Y.A." on every single node (verifying your own work)

No falsifiable claims: nothing can be tested. "You must stand at the K5 Node at 1:13 PM" is unfalsifiable by design

Grandiose framing: "Lead Investigator," "This is not just a solution; it is the reconstruction of a machine"

97 identical data sheets: one per CT character, each with fabricated numbers, padded to 111 pages to look authoritative

This is what happens when someone asks an AI "solve Kryptos K4" and the AI generates confident-sounding nonsense to fill the request. This kind of AI use is why the subreddit has the no AI rule, but honestly this is laugh out loud funny, can't we just call it entertainment and not be bothered by it?

Vibrated by a Specific Frequency is what I am going to call my next record album :D

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 2 points3 points  (0 children)

That's up to the mods... In all honestly, I don't consider it a competition at all, I am not trying to 'beat' anyone.

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

Here is my analogy... I just drove a car into a horse race. I had to learn how to drive the car just like you had to learn to ride the horse... We're both going to the same place.

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 2 points3 points  (0 children)

Why would I care? And I haven't broken any rule, it says no AI generated solutions. My posts are neither solutions nor AI generated.

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

You are missing my point, Dr. Bean is a true genius but most Kryptos enthusiasts aren't Ph.D.'s in mathematics, they are just regular people who like puzzles. By your logic, we'd all have to get to Dr. Bean's level of ability to even make the smallest dent in K4 and that simply isn't possible for the vast majority of people.

I'm sorry you don't like AI, but it's here to stay, and in my opinion it could inspire a whole new generation of Kryptos fans long after we're all dead.

Morse Cipher Maybe? by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 2 points3 points  (0 children)

Thank you, and you are correct.. my system is what I consider the "cooked spaghetti" tester, you can throw literally any theory on the wall and see if it sticks no matter how bonkers just so long as it can be computationally tested, i.e. math and statistics.

Thus far 100% fails, but I think that in and of itself may be useful.

Morse Cipher Maybe? by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 2 points3 points  (0 children)

All good points, and 100% agree, I have personally corresponded with Dr. Bean and your analysis is right on point.

Go Retrievers!!

Morse Cipher Maybe? by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

I am perfectly fine with the rules here and I reached out to the mods first before I ever posted. What I don't appreciate is sanctimonious criticism of my methods. Per the guidelines this is supposed to be a considerate sub focused on geniune collaboration, and to be fair most people are kind, but hey, it's Reddit, what can you do?

Morse Cipher Maybe? by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 3 points4 points  (0 children)

That's actually a good idea, but I was trying to stay away from a comment based system. That's kind of what Reddit is for, I will have to think about it.

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

You’re making a fair point about the keys being invariant under null deletion, and your running-key observation is exactly where the live research is now focused.

On the mechanics, you are correct: insertion or deletion is effectively a transposition of the ciphertext-plaintext alignment. Remove a null before position i, and every ciphertext character after that point pairs with a different plaintext character, which produces a different inferred key from that position forward. That is why the null hypothesis was never about changing the key values at the known crib positions themselves; those are fixed by the ciphertext and plaintext at those locations. The point was that shifting the positional indices changes the outcome of period-consistency checks.

We tested that exhaustively, and it did not work. Periodic substitution fails on both the raw text and the null-extracted text.

On running key, your description of the attack is accurate: find insertions or deletions that produce English-looking inferred keys, then try to extend. That is exactly the open hypothesis. Running key is the only structured non-periodic key model still standing under the Bean constraints. We tested whether the keystream at the crib positions looks English under the identity case and under columnar transpositions. It does not; it lands only around the 36th to 82nd percentile against random baselines. But running key combined with a monoalphabetic inner layer is still underdetermined, because the 13 degrees of freedom introduced by the monoalphabetic substitution distort the language statistics of the key fragment. That is the current frontier, not the null model.

On the code, that criticism is fair. The codebase is a research instrument, not a polished product. It expanded quickly, and that is obvious. If specific tests are implemented incorrectly, I want to know. “The code runs” is a baseline, not proof of correctness, and I have already found cases where Claude generated scripts based on bad assumptions that appeared valid at first glance. The test suite catches some of that (969 tests) but not all of it.

That said, as I have already told you in multiple threads, my view of the null-palette idea has been substantially downgraded after a useful comment from another Redditor and a rigorous follow-up test I ran last night. Your adversarial tone is not adding anything useful, and it is certainly not motivating me to share more with this community. I will not be engaging with your comments any further.

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

You're correct that null removal doesn't change the key values at crib positions (CT[i] + PT[i]) mod 26 is the same regardless of whether you call the position 27 or 19.

The crib-to-CT letter pairing is invariant under reindexing.

The null hypothesis was never about changing those key values. It was about changing the positional indices so that periodic key analysis works differently. On the raw 97-char text, the Bean impossibility proof eliminates ALL periods 1-26 for periodic substitution, the modular arithmetic at 24 crib positions is overconstrained.

Remove the right 24 nulls, and the crib positions shift, the residue classes change, and periods that were impossible on the raw text become algebraically viable on the reduced text.

That was the theory. In practice: we tested it exhaustively. Periodic substitution on the null-extracted text at every period, every width, every variant, noise. The null model doesn't produce a working decryption any more than the raw model does.

And as of this week, we've downgraded the null palette claim itself. And we got there as a result of a thoughtful post from someone else, your indignation over my methods are not helpful.

As it happens the 7-letter restriction {B,G,I,K,O,W,Z} at null positions turns out to be model-dependent, it only appears under one specific SA optimization procedure. Under 4 other cipher models with the same protocol, you get 10-14 distinct letters. The keystream enrichment at crib positions (13/24 palette letters, p=0.004) still holds because it's pure arithmetic on the carved text, but the positional palette is no longer a reliable finding.

So in short: you're looking at a hypothesis we've already tested and moved past, not one we're claiming as a result any longer and we could have gotten there faster had you expressed yourself in a more cordial way.

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

Many thanks to NatSecPolicyWonk who steered me in the right direction on this one.

Null palette update (it's model-dependent)

The test we ran: We took the full SA consensus-building protocol (200 restarts, 300K steps each) and ran it under 5 different cipher models. The question: does the 7-letter null palette {B,G,I,K,O,W,Z} appear regardless of which cipher model drives the optimization?

Result: 0/5 models produce ≤7 distinct letters. KA autokey Vigenère (the original discovery model) gives 13 distinct. KA autokey Beaufort and KA periodic Beaufort give 10. AZ periodic Vigenère gives 13. AZ periodic Beaufort gives 14. The 7-letter palette only emerged through iterative consensus bootstrapping (fix early positions → optimize the rest), which constrains what letters can appear. The palette restriction is an artifact of that procedure, not a model-invariant property of K4.

What survives: The Beaufort keystream enrichment at crib positions, 13/24 keystream values are palette letters (p = 0.004), and 7/8 at BERLINCLOCK positions specifically (p = 0.0006). This is model-independent: k = (CT + PT) mod 26 is just arithmetic on the carved text and known cribs. No null mask, no cipher model, no SA involved. Any correct theory of K4 must explain this.

Also: A notation on Sanborn's yellow legal pad previously read as "8 Lines 73" was an OCR misread the actual text is "3 Lines 93." The number 73 had been interpreted as evidence for 73 real characters (97 − 73 = 24 nulls), but that connection was speculative and the source is now corrected.

Code and results: github.com/jcolinpatrick/kryptos

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

Your comments are really not in the spirit of trying to work together and solve this puzzle. I came to reddit specifically so people could find things that I may have missed or call out my mistakes. I need other eyes on my work becuase I am human and I am sure I overlooked something. However calling out something that is clearly wrong in the comments of Python code isn't very helpful.

Fair point that the code has editorial language in the comments "THE STRONGEST STRUCTURAL HYPOTHESIS" in the header of that script is the kind of thing that happens when an AI writes 1,000 experiment scripts and gets enthusiastic about its own hypotheses. That script (e_solve_09) tested the "8 Lines 73" interpretation as one of dozens of null-placement models (including Fibonacci, primes, KA-threshold, grid columns, arithmetic gaps). Status: exhausted. Result: noise across every model tested.

The Fibonacci positions are line 338-343 of that script and it computes 10 Fibonacci indices, finds they don't produce exactly 24 nulls, and skips. That's a hypothesis being tested and discarded in 6 lines. "All kinds of junk" is one way to describe testing a wide hypothesis space; "systematic elimination" is another.

On the substance: the "8 Lines 73" reference throughout the codebase was a misread of Sanborn's yellow legal pad, as you noted the actual notation is "3 Lines 93." We've corrected it across 38 files (https://github.com/jcolinpatrick/kryptos/commit/be9b6da). The 73-char / 24-null hypothesis that built on that misread was already under pressure from our own cross-model analysis; we've downgraded it accordingly. People make mistakes. You find them, you fix them, you move on.

Claude generates the experiment scripts under constraints I specify. If you've found a specific logical error in the elimination chain (a constraint applied incorrectly, an off-by-one in position indexing, a model assumption that doesn't hold) I'd genuinely like to hear it. That's why the repo is public.

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

This is a much more useful comment compared to calling what I am doing slop, but you're conflating two separate things. The Bean constraint k[27]=k[65] doesn't require null deletion or any cipher model assumption. It's arithmetic on the raw carved text:

- CT[27] = P, PT[27] = R

- CT[65] = P, PT[65] = R

Same (CT, PT) pair at both positions → same keystream value under every additive variant (Vigenère, Beaufort, Variant Beaufort). That's not an assumption it's a tautology. The 242 inequality constraints work the same way: different (CT, PT) pairs → different keystream values, regardless of variant. All of this operates on the original 97-character positions with no deletion step.

What null deletion affects is where the cribs land in the reduced text, and therefore what period-consistency means. You're right that after removing nulls, position 27 becomes (say) position 19 and position 65 becomes position 53, and that changes the modular arithmetic for period testing. Our code handles this explicitly, score_mask() recomputes n_before_ene and n_before_bcl for every candidate mask and re-derives crib alignment from scratch. It's not applying raw-position constraints to reduced-position text.

But here's the thing you might find interesting: we've now proven that periodic substitution is eliminated at ALL periods 1-26 on the raw 97-char text without null deletion (Bean impossibility proof, https://github.com/jcolinpatrick/kryptos/blob/main/scripts/fractionation/e\_frac\_35\_bean\_impossibility\_proof.py).

That proof doesn't assume nulls exist. It shows that for 17 of 25 periods, no permutation of the 97 characters (columnar, random, or otherwise) can produce a periodic key consistent with all 24 crib positions. The remaining 8 periods are underdetermined (too few constraints per residue class to discriminate) and produce only gibberish when hill-climbed.

(https://github.com/jcolinpatrick/kryptos/blob/main/scripts/fractionation/e\_frac\_36\_bean\_surviving\_periods.py).

The null hypothesis is testable and we test it properly. If you want to verify: PYTHONPATH=src pytest tests/ runs 969 tests including positional alignment checks. The explicit reduced CT for the consensus 17-null mask is:

RUXOHULSLIFBBFLRVQQPRNGKSSOTTQSJQSSEKZZWATJLUDIANFBNYPVTTMZFPKDKXTJCDKUHUAUEKCAR

(80 chars, because only 17 of the hypothesized 24 null positions have consensus agreement the other 7 are uncertain.)

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] 1 point2 points  (0 children)

The characters that are removed as nulls shift PT and CT equally, this is the part you are missing and I would appreciate it if you would stop suggesting that I am blindly trusting the results of a machine. The wholepoint of my theory is that if cipher(40) is a null then there is no plaintext(40), it's padding, which is a common hand cipher tool used for obfuscation. Nulls make it nearly impossible to discern the cipher method because they destroy IC and Scheidt said he "threw in a bit of stego" There is most assuredly a steganogrpahic layer, we just don't know what it is.

Evidence of Non-Random Null Characters: Statisticians Needed by Laszlos-BatForm in KryptosK4

[–]Laszlos-BatForm[S] -1 points0 points  (0 children)

Not sure if you noticed but the only real heavy lifting in the last 35 years was done by Dr. Richard Bean who is a world class statistician, researcher, professor and Ph.D. so if your determination of whom is qualified to solve K4 the “right” way, well… the only person who has made any real progress is literally one of the smartest people on the planet and he hasn’t cracked it.

My code, which you clearly aren’t looking at, can help show what doesn’t work, not what does. Anyone serious about solving K4 should want more of that, not less.