Mysteries Department
Sign inRequest access
Research session 11 · Voynich Manuscript

the Naibbe cipher tested; section-level hyper-simulation; period cipher practice fitted to the herbal sections

Greshko's Naibbe cipher simulated as published and attacked with a structure-constrained solver: close on glyph statistics, misses 19-20 of 21 statistics, and no Naibbe key reads the text. A 72-variant Naibbe-family grid scored section by section found the two walls (edge dependency, near-twins). Fifteenth-century cipher practice fitted as one family to Herbal A and B by approximate Bayesian computation gave the closest held-out fit yet (re-spaced homophonic stream, sticky homophones), but its key cannot yet be recovered when sign boundaries must be learned. No reading.

Session 1128 Oct 2026Test18 runs9 evidence

What movedNo question changed standing

Is it a cipher of a known language?
+6 evidence, 2 for, 4 against1 answer proposedtaken up again
Latin or Italian under the Naibbe cipher · proposed this session · 2 for, 3 againstPossible
Most likelyunchanged
Most likelyunchanged

What's next4 steps set

Open
Word-internal sign grammar for the period family
Kept on this session, not tied to a questionSet this session
Open
Segmentation-aware solver for the re-spaced stream
Kept on this session, not tied to a questionSet this session
Open
Null keeping the cipher's structure (fitted generator on shuffled Latin)
Kept on this session, not tied to a questionSet this session
Open
Plant identifications as cribs
Kept on this session, not tied to a questionSet this session

Next steps live on their questions, where anyone can take one up.

New questions 1

What was done

Date: 2026-10-28

  • Naibbe as published (M-T36): Greshko's tables, card weights and respacing; Latin of the genres, Pliny NH 16 and Dante laid into the manuscript's pages, 30 corpora each. Close on glyph entropy, word length and commonest words for Currier B; outside the spread on 19-20 of 21 statistics, including vocabulary richness, word order, page locality, form-function coupling and every line effect. Latin and Italian give the same numbers.
  • Naibbe key search (M-T37): class-preserving swap annealing over Greshko's inventory recovers planted keys at 98-99 % on held-out quires; on the manuscript the held-out text is no better than the word-shuffled manuscript (Latin gaps 1.22-1.26 against 1.24-1.30; Italian 1.62 against 1.62). An unconstrained homophonic search failed its own control (11-39 %): structure is what makes keys recoverable. H-CIPHER-NAIBBE added under Q-012.
  • Hyper-simulation (M-T38): 72 Naibbe-family variants x 6 sections x 10 corpora, order-free page clustering (burst_z), every statistic also on word bodies (first glyph removed; o, ch, q, d begin 61 % of words). Keeping one table for 10-20 draws gives page clustering; no variant reaches the edge dependency or near-twins; best variants miss 5-10 of 12 on fresh seeds.
  • Period cipher practice (M-T39): homophones and choice, syllable signs, nomenclator, abbreviation, simplified spelling, dropped vowels, copied nulls, three spacings, positional forms, line layer; 4,600 draws on Herbal A and B training pages (D-HERBAL-SPLIT). Re-spaced stream and sticky homophones favoured in both; best held-out fits miss 3 of 12 (Herbal B) and 5 of 12 (Herbal A). H-PERIOD-STREAM added under the new question on period practice.
  • Crack ladder on Herbal A (M-T40): planted Pliny NH 16 under the fitted setting, key recovered 71 % with true sign boundaries, 11-23 % with learned boundaries; exploratory decode of Herbal A beats its shuffle by 0.26 nats per element but reads as no Latin. Untested beyond rung A.
  • Open: a word-internal sign grammar for T39; a segmentation-aware solver; a null that keeps the cipher's structure; plant identifications as cribs.
  • Files: all code and every output is stored on the site byte for byte (SHA-256 equal to the files as written) and attached to M-T36 to M-T40 and their 18 runs, each run with its command, seeds and environment (Python 3.13, two cores, repository commit d1097e42). This includes the full T38 grid (hyper_genre.csv, 1.6 MB, every section x variant x statistic) and every T39 draw (abc_draws.jsonl, 3.9 MB, 4,600 draws with settings, seed and statistics). The code of T39 round 1, which ran before positional forms were added, was rebuilt from the session's edit history and attached to that run; it reproduces all 2,000 round-1 settings and seeds and the statistics of every draw re-simulated. Greshko's tables and the two plaintexts from his repository are a dataset record pinned to commit 719f2f4c with checksums.
Runs 18
RunMeasuredResultAgainstDecision
Naibbe as published, laid into the manuscript's pages: statistics outside the cipher's spreadStatistics (of 21: T15 FIT and HELD, layout MI first/last, glyph H1, word-length sd, top-10 share) with |z| > 2whole book: 20/20/20 of 21 (genre Latin / Pliny 16 / Dante); Currier B: 20/20/19; Currier A: 19/19/19Plain Latin of the genres in the same lines: 20 (book), 17 (B), 21 (A)Not supported: the published cipher reproduces the manuscript on no statistic except repeated 4-word phrases (rare in both) and, for A and for Dante on B, the top-10 word share
Naibbe as published against Currier B: glyph entropy, word length and top-word shareH2 glyph units / H1 glyph units / mean word length / share of 10 commonest words: manuscript vs Naibbe meanh2 2.105 vs 2.167; H1 3.845 vs 3.851; mean length 4.66 vs 4.80; top-10 0.147 vs 0.152Plain Latin in the same lines: h2 3.349 · H1 3.973 · mean length 5.61 · top-10 0.128Close but outside the spread (z -12, -3, -13, -3): the cipher moves Latin most of the way to the manuscript's glyph statistics, as Greshko reports, without matching them
Naibbe as published: vocabulary richness and word-order informationShare of word types seen once (hapax) / bits per word saved by word order / repeated 3-word phrases / word-length sdCurrier B: hapax 0.693 vs 0.452; order gain 0.314 vs 0.125; repeated 3-grams 103 vs 27; length sd 1.69 vs 1.51. Whole book: hapax 0.705 vs 0.393; order gain 0.404 vs 0.143; 3-grams 145 vs 56; sd 1.77 vs 1.51Plain Latin in the same lines (Currier B): hapax 0.633, order gain 1.73, 3-grams 1,097, sd 2.57Fails (z 33, 8, 16, 22 on B): the cipher's vocabulary is too closed (too few one-off words) and its word sequence carries even less information than the manuscript's, whose weak word order is itself far below Latin
Naibbe as published: page locality, form-function coupling and edge-glyph dependencyAdjacent-page vocabulary z / Spearman(form, context) / near-twin rate within 10 words / MI last glyph to next first glyph (bits)Currier B: locality 8.93 vs 1.11; coupling 0.144 vs 0.014; near-twins 0.263 vs 0.142; edge MI 0.265 vs 0.010. Whole book: 16.2 vs 1.7; 0.149 vs 0.019; 0.262 vs 0.140; 0.212 vs 0.008Plain Latin of the genres in the same lines (Currier B): locality 7.89, coupling 0.036, near-twins 0.056, edge MI 0.049Fails (z 27, 12, 52, 297 on B). The plaintext has topical page structure (plain Latin locality 7.9, the manuscript 8.9); after Naibbe encipherment almost none survives (1.1), because card-drawn homophones and random respacing break every recurrence of a plaintext word
Naibbe as published: information of line position about the first and last glyphMI(line position; first glyph) / MI(line position; last glyph) / JS divergence of line-initial first glyphs, bitsCurrier B: 0.133 / 0.062 / 0.264 vs Naibbe 0.001 / 0.001 / 0.001. Whole book: 0.112 / 0.056 / 0.198 vs 0.001 / 0.001 / 0.001Plain Latin in the same lines: 0.002 / 0.001 / 0.002Fails, as it must: no step of the cipher depends on the line, so it has none of the manuscript's line-edge layer (S-007, 46 rules)
Share of the manuscript's words that Greshko's grammar can readTokens that are a unigram type or split into prefix + suffix / of which unigram types / word types that parsewhole book 78.2 % (41.7 % unigram), types 36.5 %; Currier B 81.3 % (47.0 %); Currier A 72.4 % (30.8 %)Naibbe ciphertext 100 % (about 47 % unigram) · plain Latin 2 %Descriptive: a fifth of the running text is outside the cipher's word grammar
Naibbe key search, planted-key controls: Pliny NH 16 and Paradiso under an unknown Naibbe keyHeld-out letters decoded correctly / held-out gap (nats/letter) / dict5 / restart agreementLatin: 98.0 % / -0.018 / 0.543 / 0.997. Italian: 99.1 % / 0.069 / 0.443 / 1.000Same key with letters permuted within each class: gap 2.93 (Latin), 3.31 (Italian) · dict5 0.003, 0.001Control passes: the solver recovers a Naibbe key from ciphertext alone and the key read on the held-out quires gives the plaintext
Naibbe key fitted on the training quires, read on the held-out quires (Latin)Held-out gap (nats/letter) / dict5 / restart agreement, manuscript vs its words shuffled across the bookmanuscript: gap 1.231, 1.222, 1.259; dict5 0.040, 0.038, 0.042; agreement 0.40, 0.38, 0.45. Shuffled: gap 1.299, 1.279, 1.242; dict5 0.033, 0.030, 0.040; agreement 0.44, 0.36, 0.36Planted-key control: gap -0.018, dict5 0.543, agreement 0.997 · permuted fitted key: gap 2.79-3.06Not supported: the held-out gap is 1.2 nats/letter worse than the control and no better than on the order-free shuffle (mean difference 0.04, ranges overlap); dictionary coverage equals the shuffle's; restarts do not agree on a key
Naibbe key fitted on the training quires, read on the held-out quires (Italian; Currier B alone)Held-out gap (nats/letter) / dict5whole book, Italian: 1.622 / 0.009 (shuffled 1.618 / 0.013). Currier B only: Latin 1.389 / 0.034; Italian 1.709 / 0.012Italian control: 0.069 / 0.443Not supported: Italian does no better on the real word order than on the shuffle, and restricting to Currier B, the pages the tables were built for, does not help
T38 grid: held-out statistics missed by the best Naibbe-family variant in each section (fresh seeds)Held-out statistics (of 12) with |z| > 2 for each section's best variant, re-scored on fresh seedstext B 5 (stay95, codebook, shuffle, layer); herbal B 6 (stay90, codebook, layer); pharmaceutical A 7 (per-unit, codebook, layer); stars B 8 (per-unit, codebook, layer); herbal A 9 (stay50, codebook, layer); biological B 10 (stay95, shuffle, layer)Picked from the grid on the selection seeds: 4, 5, 7, 8, 7, 9 · plain Latin in the same pages 9-12 · the section's words shuffled across its pages 10-12Not supported: no variant reproduces any section; the best settings differ by section and lose one to two statistics on fresh seeds
T38 grid: page clustering against how long the scribe stays on one tableBurst z (topical clustering of the 200 commonest words over pages, no page order used)manuscript: stars B 38.7, biological B 17.2, herbal A 15.2, text B 14.1, herbal B 6.3, pharmaceutical A 6.0. Naibbe per unit (published) -0.7 to 2.2; keep table p = 0.90: 3.4 to 13.5; p = 0.95: 6.8 to 28.3; p = 0.99: 39 to 94; one table per page: 87 to 265Plain Latin and published Naibbe · the section's own words shuffled across pages give 0 by constructionPartly supported: keeping a table for about 10 to 20 draws (p 0.90 to 0.95) gives every section its page clustering, which the published per-unit draw cannot
T38 grid: word-to-word glyph dependency and near-twins, every variant, as written and without the first glyphMI between a word's last glyph and the next word's first (edge MI, bits); share of words with a one-glyph variant within the next 10 words (twin10); edge MI on word bodiesedge MI: manuscript 0.19-0.32 by section, the 72 variants 0.01-0.10; on bodies 0.11-0.27 against 0.01-0.12. twin10: manuscript 0.24-0.33, variants 0.13-0.19The section's own words shuffled across its pages: edge MI 0.02-0.08, twin10 0.18-0.27Not supported: no variant in any section comes within the spread on either statistic
Word-initial glyph layer: published Naibbe against each sectionShare of words beginning with the four commonest glyphs / entropy of word-initial glyphs (bits)top-4 share manuscript vs Naibbe: stars B 0.644 vs 0.638, pharmaceutical A 0.661 vs 0.650, text B 0.616 vs 0.632, biological B 0.688 vs 0.637, herbal B 0.603 vs 0.644, herbal A 0.596 vs 0.642. Whole book: o 20 %, ch 16 %, q 16 %, d 9 % begin words (61 %); qo- 15 %Plain Latin: top-4 share about 0.37, entropy 4.05 bitsDescriptive: the cipher reproduces the concentrated word openings within |z| 2 in three of six sections; it is not where Naibbe fails, and removing first glyphs does not rescue the statistics it misses
T39 round 1: which period-cipher settings fit the herbal training pages (2,000 prior draws)Posterior share among the best 5 % (prior share in brackets), Herbal A / Herbal Bspacing stream 0.66 (0.35) / 0.48 (0.32), word 0.34 / 0.52, sign-as-word 0.00 / 0.00; nomenclator 400 words 0.44 (0.26) / 0.40 (0.26); no syllable signs 0.58 (0.34) / 0.48 (0.34); homophone column kept 98 % 0.32 (0.18) / 0.24 (0.18); copying nulls 30 % 0.56 (0.26) / 0.28 (0.24); vowels dropped 0.34 (0.24) / 0.54 (0.25)Prior shares · best distance 1.45 (Herbal A), 1.36 (Herbal B), median 2.2Exploratory: signs written inside words (stream or word spacing), sticky homophones, a large nomenclator and copied nulls are favoured; one sign per written word is excluded. All draws still write words too long and too varied (Herbal A best 5 %: mean length 5.8 against 4.3, TTR 0.64 against 0.40, glyph h2 3.1 against 2.37) and too few common word openings (top-4 share 0.48 against 0.60)
T40 rung A, planted control: key recovery with the true sign boundariesHeld-out key accuracy by use / character similarity to the true plaintext / dictionary coverage (true plaintext's)300k iterations: 0.627 / 0.634 / 0.294 (0.697); 1.5M iterations: 0.706 / 0.728 / 0.336 (0.697)Protocol bar: 70 % of the plaintext's dictionary coverage (0.49) or 50 % word accuracyPartly passes: the key is largely recoverable when the boundaries are known (held-out decode '...sce mpesr ibusme a ... risior e u a smon t iusex e...' for '...in campestribus melior autem ... crispiora quae in montibus excepti...'), but coverage stays below the bar
T40 rung B, planted control: key recovery with the sign boundaries learnedHeld-out key accuracy by use / character similarity / dictionary coverage (true plaintext's)V 450, signs up to 6 glyphs: 0.114 / 0.062 / 0.232 (0.697); V 200, signs up to 3 glyphs: 0.228 / 0.082 / 0.271 (0.697)Rung A (true boundaries): 0.706 / 0.728 / 0.336Fails: with learned boundaries the key is not recovered, so by the protocol the manuscript is untested beyond rung A for this family
T39 confirmation: best period-cipher settings re-scored on held-out herbal pages (fresh seeds)Held-out statistics missed (|z| > 2, of 12), and of all 30 including fit and word-body statistics, on held-out pagesHerbal B best: 3 / 12 held-out, 9 / 30 all (stream spacing, no nomenclator, abbreviation, vowels dropped, simplified spelling, 3 homophones per vowel and 2 per consonant kept 95 % of the time, 15 % copied nulls, line layer 0.5). Herbal A best: 5 / 12, 15 / 30 (stream spacing, 50-word nomenclator, 1 homophone per vowel and 4 per consonant kept 90 %, simplified spelling, 30 % copied nulls, line layer 0.5)Naibbe family in the same sections (T38, fresh seeds): 5-10 / 12 · published Naibbe 9-12 / 12 · plain Latin 9-12 / 12Closest fit in the programme, still not a fit: the remaining misses in Herbal B are glyph predictability (h2, z -5.7), one-off words (hapax, -5.0), the edge dependency (+3.8), held-out bigram gain (-3.0) and glyph context gain (+2.2); in Herbal A also word length, TTR, form-function coupling and the line-initial measures
T40 exploratory: Herbal A decoded with learned sign boundaries, against its own words shuffledHeld-out element-trigram score (nats per element; Latin's own -2.418) / dictionary coverage of the decoded held-out textHerbal A -2.563 / 0.296; shuffled -2.824 / 0.216Planted control under the same rung-B pipeline: -2.767 / 0.271 (true plaintext 0.697)Exploratory, not a reading: the real word order beats its shuffle by 0.26 nats per element, but the decoded text is not Latin ('iumu ae s io s e i nea n un a li d uee u uei i u n tu e n ti oru u') and the pipeline fails its control at this rung
Answers proposed 2
Answers taken up again 1
Evidence found 9
Used: methods 5
Used: datasets 4
Used: sources 1

Cite it

Mysteries Department. (2026). Session 11: the Naibbe cipher tested; section-level hyper-simulation; period cipher practice fitted to the herbal sections [Research session SES0DCDMFZAWWNC]. https://mysteriesdept.com/mysteries/voynich-manuscript/sessions/SES0DCDMFZAWWNC/session-11-the-naibbe-cipher-tested-section-level-hyper
Private beta Downloads are for beta members

We're in a private beta while we get things right. Everything here is free to read; downloading datasets, sources and code is open to members for now.

It takes a couple of minutes. We'll reply by email.