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

Two-rune linear feedback remains too flat

Result: No new plaintext. The complete fixed, linear two-ciphertext-rune feedback family tested here cannot reproduce the most-common-rune frequency of our solved LP benchmark. This is an exact finite-corpus calculation under explicit assumptions, not a proof excluding every English message or every cipher with memory.

Why this test

Session 32 confirmed the same six ciphertext runes at two locations. Sessions 33–34 bounded fixed and short-cycle rules using the previous ciphertext rune; Session 35 tested previous-plaintext feedback. Session 4 also searched linear rules with one previous ciphertext rune. None of those tests covers this particular two-rune linear rule.

We test:

p[i] = (A*c[i] + B*c[i-1] + C*c[i-2] + K) mod 29
A and C: 1..28; B and K: 0..28

The natural Gematria index order is used. A nonzero A makes encryption invertible; a nonzero C ensures the rule really uses the second preceding rune. Coefficients remain fixed within a section. Words, punctuation and page boundaries do not reset the state. No skipped F, inserted nulls or additional key stream is included.

The eight substantial unsolved sections contain 12,947 runes. Excluding the first two of each section leaves 12,931 scored positions, independent of the unknown initial states. The nine-rune section 3 remains outside this established scope. These are previously examined data, not a fresh holdout.

What the repeated phrase forces

Offsets are zero-based and count runes only. These are rune labels, not an English translation.

LP2 page Phrase offset Previous two runes Repeated phrase
27 28 B F, values 17, 0 D J U · B E I
55 70 K X, values 5, 14 D J U · B E I

Subtracting the second location's decoded phrase from the first, assuming the same coefficients at both locations, gives:

[15*B + 12*C, 15*C, 0, 0, 0, 0] mod 29

Consequently:

  • The last four plaintext runes must match.
  • The second plaintext rune must differ, since C is nonzero and 29 is prime.
  • The first plaintext rune may match or differ.
  • Identical six-rune plaintext at both occurrences is impossible under this shared-key model.

The script checks this identity for all 812 permitted B,C pairs. A and K cancel algebraically. Separate keys for the two sections remove this cross-occurrence constraint. This tells us how to reject incompatible guesses; it supplies no plaintext guess itself.

Exhausting the frequency possibilities

Divide the equation by A modulo 29 and write:

q[i] = c[i] + a*c[i-1] + b*c[i-2] mod 29
a = B/A; b = C/A
p[i] = A*q[i] + K mod 29

Multiplication by a nonzero A and addition of K merely permute the 29 histogram bins. They cannot change maximum rune frequency or histogram entropy. Therefore 812 normalized rules cover the frequency possibilities of all 659,344 coefficient settings. There is no need to rank thousands of apparent words or fit a language model.

Scope Highest possible frequency of any decoded rune
One coefficient set shared across all eight sections 541 / 12,931 = 4.1837%
Independently chosen coefficient set in every section 698 / 12,931 = 5.3979%
Solved LP1 benchmark, with first two runes per group excluded 247 / 1,953 = 12.6472%
Solved LP2 page 57, with first two runes excluded 15 / 93 = 16.1290%

The independently keyed maximum is also exact: choose each section's maximizing normalized rule, then choose its K to map its peak bin to the same plaintext rune. The counts sum to 698. This generous allowance still produces a much flatter distribution than the benchmark.

For the shared-key family, the smallest achievable histogram entropy is 4.854649 bits per rune, compared with 4.261170 in the LP1 benchmark. These are empirical histogram summaries, not estimates of language entropy rate or statistical p-values. The peak and entropy optima occur under different normalized rules.

Section Scored runes Maximum count Maximum frequency
0 727 46 6.3274%
1 1,143 68 5.9493%
2 1,727 93 5.3851%
4 1,892 98 5.1797%
5 1,019 63 6.1825%
6 1,522 89 5.8476%
7 1,587 86 5.4190%
8 3,314 155 4.6771%

Controls and reproducibility

Two solved rune streams were cycled to the observed section lengths and encrypted under different known keys, including a B=0 case. Both decode exactly, including the first two symbols when their initialization is supplied. Normalized decoding also matches the scored plaintext exactly. Their frequency sweeps admit their true peaks: 12.8451% and 15.7606%. The screen therefore does not automatically flatten messages genuinely encrypted by this family.

An independent five-symbol fixture exhausts all 400 full coefficient settings and compares the exact extrema with its 20 normalized rules. Both maximum frequency and minimum entropy agree. These are checks of the mathematics and implementation, not claims of unknown-key cryptanalytic recovery. Cycled control text is not an independent natural-language sample.

The source transcription SHA-256 is:

b0b2e13c3cd35512ee5955a2d9a56c22d7410e283d35dd9c90abbaa7b99279eb

Run the audit alongside its inputs with Python 3 and NumPy:

python3 -B two_rune_feedback_audit.py

Interpretation and limits

This family cannot attain the benchmark's peak frequency on the retained positions. That makes it a poor candidate for a direct decoder into text resembling the solved pages. It does not prove that deliberately balanced writing, another language or intermediate encoded material is impossible.

A fixed substitution after this decoder preserves these frequency limits. An arbitrary alphabet permutation before the arithmetic, nonlinear feedback, a changing key, longer memory, boundary resets and null handling remain untested by this calculation. More flexibility needs a specific motivating clue and recovery controls; a failure here does not itself point to one of those alternatives.

The useful outcome is a precise constraint and a bounded negative result. We have not decrypted another page or established a previously unknown community discovery.