Research journal / Session 66Notebook updated 12 Oct 2026
Session 66 / 73

Recency ciphers without guessing the starting alphabet

Follow-up: Session 67 exhausts affine input relabeling and samples arbitrary input permutations, with constructed controls and frozen continuations. The tested frequency gap persists; all 29! permutations are not covered. Read the input-key test.

9 October 2026. No new plaintext. Two simple changing-alphabet rules remain poor matches for the unsolved text, even when their starting and final alphabets may be arbitrary permutations. This strengthens Session 5, which searched particular starting orders. It does not discover a new cipher or eliminate every changing-alphabet mechanism.

The strongest result concerns the direction that treats each ciphertext value as a position in the current alphabet: with one fixed key, every reset policy tested produces a maximum output-rune frequency below 3.86%. Changing the starting alphabet cannot fix that, because it only renames the outputs. The saved solved-page sample peaks at 12.63%.

The reverse direction has uncertainty at first occurrences. Its exact recurrence constraints and a shared-order upper bound also narrow the family. Frequent resets and additional key changes leave explicit gaps.

What is being tested

Start with an ordered list of the 29 rune values. After selecting a symbol, move it either to the front or to the back, preserving the order of all other symbols. Apply a fixed bijective substitution to the output. There are two possible lookups:

Direction Input interpretation Output before the final substitution
Symbol to rank Find the ciphertext symbol in the current list Its zero-based position
Rank to symbol Treat the ciphertext value as a list position The symbol currently at that position

Both the starting order and final output substitution may be any of the 29! permutations. This includes many keys omitted by Session 5. The result is obtained from structural bounds, not by enumerating those keys or fitting language scores.

The rank-to-symbol direction still uses the fixed Gematria Primus values 0 through 28 as input positions. An arbitrary substitution of those input indices is not included. In the symbol-to-rank direction, relabeling input symbols is already absorbed by the arbitrary starting order.

The source is the unchanged master transcription: all 12,956 runes on unsolved LP2 pages 0 through 55, including the nine-rune section. Five reset policies are compared: no reset, section, page plus section, paragraph plus section, and corrected lexical word. These create 1, 9, 57, 15 and 2,896 nonempty reset blocks respectively. Punctuation does not consume a position or update the list. Paragraph resets use &, $ and §; the last does not occur in this unsolved source. Apostrophes inside rune words stay within the word, as corrected in Session 42.

No skipped updates, null symbols, length changes, phase-dependent final substitutions or additional state are assumed. The three separator-class corrections reviewed in Session 63 do not alter these reset policies or the rune stream.

Why an unknown starting order can be bounded

For move-to-front in the symbol-to-rank direction, a symbol's second and later occurrences have a known rank: the number of distinct other symbols encountered since its previous occurrence. Its starting position no longer matters. Move-to-back gives the complementary rank, 28 minus that number.

Only a symbol's first occurrence within a reset block is uncertain. If it is the d-th new symbol, counting from zero, its front rank is at least d. Consequently a particular rank r can receive at most min(K, r+1) first occurrences from a block containing K distinct symbols. Adding that allowance to the known recurrence counts gives an exact maximum for that rank within one block when its starting order is unrestricted. Combining blocks independently gives a valid upper bound when they must share a starting order.

A tighter check requires one fixed starting position j for each symbol across the blocks that share a key. On a first occurrence after d distinct symbols, its rank must lie between max(j,d) and min(28,j+d). A maximum-weight assignment gives each of the 29 symbols a different initial position and maximizes eligible occurrences at each output rank.

This assignment deliberately ignores which other symbols were encountered. It can therefore overestimate what a real initial order achieves. It is an upper bound, not a recovered key or an exact optimum for the full cipher. Its purpose is to exclude possibilities without mistaking a relaxed fit for a decipherment.

For rank-to-symbol, the result is simpler. Replace the initial list by 29 distinguishable placeholders. The ciphertext indices determine all list movements and which placeholder is emitted. Any starting permutation and fixed final substitution only rename those placeholders, leaving their frequencies unchanged. Independent keys for different reset blocks can align each block's most frequent output; this more permissive case is also calculated.

Frequency results

The reference is the same saved five-group solved LP1 sample used in earlier tests: 1,963 runes, with a pooled peak of 248/1,963 = 12.63%. Individual group peaks range from 8.92% to 14.67%. These are empirical comparisons, not a theorem that every English text must have this distribution.

For symbol-to-rank, front and back have the same maximum-frequency bounds because their ranks are reversed. The first two columns below include the starting-position assignment constraint. The last allows a fresh arbitrary initial order and output map at every reset block.

Reset policy One key across the corpus: upper peak One key per section: upper peak Fresh key at every reset block: upper peak
No reset 4.00% Not this model 4.00%
Section 4.74% 5.72% 5.72%
Page and section 9.46% 10.98% 15.48%
Paragraph and section 5.37% 6.40% 6.99%
Lexical word 11.17% 13.36% 94.85%

For example, page resets initially allowed a 14.72% peak with a shared output substitution but independently relaxed starting orders. Requiring one shared initial-position assignment lowers that upper bound to 1,226/12,956 = 9.46%. Allowing one initial and output key per section raises it to 1,422/12,956 = 10.98%. Both are below the pooled reference, but above the least concentrated individual reference. Do not describe this as a proof that page resets cannot encode English.

For rank-to-symbol, the one-key values are exact histogram peaks under every possible initial and final substitution. The table takes the larger of the front and back results at each reset policy. The separate-block values are exact maxima under the stated permission to change both keys at every block.

Reset policy One shared key: exact peak, worse of front/back Independent block keys: maximum peak, worse of front/back
No reset 3.78% 3.78%
Section 3.86% 4.39%
Page and section 3.82% 6.16%
Paragraph and section 3.85% 4.62%
Lexical word 3.74% 29.04%

The continuous, section and paragraph cases stay below every individual solved-group peak even under the permissive independent-block key assumption. Rank-to-symbol remains below that range with independent page keys as well. An arbitrary starting permutation cannot remove these particular frequency barriers.

Word-reset symbol-to-rank with section-specific keys, and models with a fresh key at every word, are not excluded by this frequency comparison. Earlier whole-word and singleton tests impose different constraints on fixed word mappings; see Sessions 41 and 42.

What happens to the repeated phrase

The two copies of ᛞᛄᚢ ᛒᛖᛁ remain at global rune offsets 6,555 and 12,950, on LP2 pages 27 and 55. Their ciphertext values are [23,11,1 | 17,18,10]. This session uses the image-confirmed reading from Session 32; it does not perform another image audit.

Under continuous symbol-to-rank move-to-front, their determined outputs before final substitution are:

Occurrence Six ranks, with the word boundary retained
Page 27 27,21,4 | 4,16,15
Page 55 16,27,20 | 15,12,8

The first copy forces the last letter of the first word to equal the first letter of the second. The second copy forces those two letters to differ. This contradiction survives section, paragraph and page resets, because those particular ranks remain known. Moving to the back reverses the ranks and preserves the equality contradiction. Separate fixed output substitutions for the two locations cannot repair it.

Thus, under these non-word-reset symbol-to-rank models, the repeated ciphertext cannot represent the same six-rune plaintext phrase. This is conditional on an intended plaintext repetition: identical ciphertext might instead encode different text, or be copied or planted for another purpose. The contradiction is not a universal rejection of the cipher family.

In rank-to-symbol move-to-front, both occurrences instead have the internal pattern A B A | C D E, with five distinct symbols. Their first words must have matching first and last symbols; that identifies no word. Move-to-back gives six distinct symbols. With word resets and one shared key, both copies decode identically in either direction. Those patterns must be considered alongside the frequency results, not treated as translations.

Checks and what comes next

Sixteen constructed messages use the known koan and divinity plaintext, both directions, both update rules, and continuous or paragraph resets. Random arbitrary starting and final permutations are used. Every message recovers exactly, and every applicable frequency bound retains the true plaintext. In rank-to-symbol the predicted peak equals the actual peak, as the placeholder argument requires.

An exhaustive three-symbol check covers all 243 length-five input strings and all six starting permutations in both directions and both update rules: 5,832 decodes. It confirms the exact single-block per-rank maxima and placeholder relabeling. A further 1,458 shared-order checks with a reset midstream confirm that the assignment bound contains every tested key.

This closes much of the arbitrary-starting-order gap in Session 5 for these two update rules. It does not cover that session's other update rules or every stateful alphabet. Deprioritize more searches over starting permutations here: the main barrier is structural.

One distinct remaining question is arbitrary input-index relabeling in rank-to-symbol. A change from index 23 to index 4 alters the list movements themselves, so the placeholder frequency result above does not cover it. A future test must state and constrain that extra key explicitly. It should reproduce a constructed message before fitting the real text and retain an unchanged continuation for validation. This is a proposed next test, not a current result.

Reproduce and inspect

Use Python with NumPy and SciPy. The recorded run used NumPy 2.3.5 and SciPy 1.17.0; see the results JSON for the exact local versions. Keep the script and the linked shared modules together with the master transcription.

python -B recency_key_bound.py

Master SHA-256: b0b2e13c3cd35512ee5955a2d9a56c22d7410e283d35dd9c90abbaa7b99279eb. The script checks this hash before running. No transcript or prior result file is modified.