24 September 2026. Method validated on six constructed examples; no new Liber Primus plaintext.
A small independent experiment confirms a gap in our earlier searches: if encryption sometimes discards key symbols, aligning one key symbol with each ciphertext rune can fail even with the correct key. A decoder that considers those skipped positions recovered all six controls exactly. A bounded test on the unsolved text found no coherent continuation.
Why test this?
Dukotah's public solver repository describes a skip-aware search. Its internal scope audit reports a planted derived-key control and challenges overly broad claims of impossibility. We took the alignment hypothesis as a testable idea, not an established description of Cicada's cipher. The linked implementation could not be retrieved; this is an independently specified experiment, not an exact reproduction of that author's program or reported scores. Links refer to mutable master-branch pages consulted today.
Our Session 5 exclusion rule removes the previous ciphertext rune from an ordered alphabet. It does not consume a variable number of key symbols. Thus this experiment tests a different mechanism. It does not invalidate the bounded conclusions of the earlier fixed-alignment tests.
Precisely specified hypothetical encoder
Rune values use our existing 29-symbol ordering. Form a candidate ciphertext rune as (plaintext + key) mod 29. If it equals the preceding emitted rune, reject it with probability 0.82, advance the key, and retry the same plaintext rune. Otherwise emit it and advance both plaintext and key. The first rune has no rejection check. Word boundaries are preserved but do not affect this rule.
The key stream is SHA-256 of UTF-8 seed bytes, one zero byte, and a four-byte big-endian counter starting at zero. Accept digest bytes below 232 and reduce them modulo 29. This encoding convention is our explicit test choice, not a known Cicada instruction.
The decoder considers zero, one or two skipped symbols per emitted rune. Every skipped candidate must equal the preceding ciphertext rune. It scores the implied plaintext with a continuous rune trigram model plus rejection/acceptance probabilities, retaining at most 128 states. Equivalent states with the same key position and final two plaintext runes are merged. This is a bounded beam search, not exhaustive decoding.
Controls: language training excludes the test message
Each control encrypts the 184-rune solved LP1 warning. The language model uses the other four solved groups and never trains on that warning. Six deterministic random seeds, 4900–4905, govern rejection. The six planted text seeds are included in a 16-seed candidate set.
| Planted seed | Key symbols skipped | Ordinary decoding correct | Skip-aware decoding correct | Seed rank among 16 |
|---|---|---|---|---|
| CICADA3301 | 8 | 5.4% | 100% | 1 |
| 3301 | 4 | 39.7% | 100% | 1 |
| CICADA | 7 | 6.0% | 100% | 1 |
| LIBER PRIMUS | 5 | 22.8% | 100% | 1 |
| DIVINITY | 5 | 9.8% | 100% | 1 |
| CIRCUMFERENCE | 9 | 27.7% | 100% | 1 |
The initial gate required at least 90% recovery and a better score than a wrong-key control in all six cases. A subsequent seed-selection check also placed every planted seed first. No decoder parameters were adjusted after these results. These are six encryptions of one message, not six independent language samples. The largest planted skip run is two, within the decoder's specified limit.
Real-text screen
Tested the 16 declared seeds on the first 200 runes of each of eight substantial unsolved sections: 128 prefix decodes. For each section, selected the best seed, then locked that seed and its complete prefix path and continued through the next 200 runes. The continuation can choose new skip positions but cannot revise the prefix. No parameter or seed selection uses the continuation.
| Section | Prefix-selected seed | Prefix score per rune | Continuation score per rune |
|---|---|---|---|
| 0 | EMERGENCE | -5.024 | -5.067 |
| 1 | INTELLIGENCE | -5.021 | -5.158 |
| 2 | CIRCUMFERENCE | -5.001 | -5.029 |
| 4 | CRYPTONOMICON | -5.028 | -4.922 |
| 5 | INTELLIGENCE | -4.801 | -5.085 |
| 6 | WELCOME | -4.831 | -5.398 |
| 7 | KNOW THYSELF | -5.010 | -5.090 |
| 8 | CRYPTONOMICON | -4.802 | -5.081 |
All eight continuations remain incoherent. The constructed correct-key scores are approximately -2.95 to -2.89, whereas their wrong-key scores are -5.32 to -5.04. These descriptive comparisons are not a calibrated significance test or a universal language threshold. A seed winning its section does not support its literary theme: CRYPTONOMICON's appearances here provide no evidence of Stephenson's involvement.
What this establishes and leaves open
We now have a working test for one variable-alignment mechanism. We have not established that Cicada used it. The 16-seed screen covers one hash construction, one rune ordering, one arithmetic sign, zero initial offset, section resets and one suppression probability. It does not rule out key skipping, hash-derived keys, other languages, other stream formats or literary sources generally. The 184-rune controls do not independently validate the longer 200+200 continuation protocol; they validate decoder recovery and seed ranking at their own length.
A useful next experiment would test a small, predeclared set of byte-encoding and counter conventions, with longer held-out-language controls, before expanding the seed dictionary. No huge wordlist is justified by this negative screen alone.
Reproduce
- Independent Python implementation
- Full results, seed list, decoded runes and rankings
- Shared rune utilities and known solved groups
Run python -B keyskip_audit.py with NumPy and the companion files in the same directory. The script records the transcription SHA-256; the source is unchanged from Session 48. No external solver code is executed.