ᶜ170 ⁱ100 ᵖ149 ᵈ35 ᴸ77 ˢ233 ᵗ89
che · il · per · …

Madrid → “Garbino” and Ranzo’s correspondents · initial-letter code with numbered word lists · March–April 1528

Ranzo’s code, 1528: the letter to “Garbino” and Ranzo’s letters

An imperial code in which each word is written as its initial and a number; this project could not break it, and two independent decipherments of 6 October 2026, Paolo Rosson’s and George Lasry’s, read most of it.

Daniel Bourdeau · posted · updated

Method: read from existing decipherment · Extent: partial (88% of the cipher)

With George Lasry (solution) and Norbert Biermann (transcription) · Also credited · Paolo Rosson (earlier solution)

Summary. No. 20 of français 3022 is a letter to “Garbino”, Madrid, 11 April 1528, in the code of Hieronimo Ranzo, a kinsman of the Chancellor Gattinara. The same code is used in Ranzo’s signed letters in fr. 2988 and fr. 3019 (DECODE R1894). All 1,315 groups of no. 20 were transcribed here, with about 2,600 more from Ranzo’s own letters, but this project’s solver recovered only function words. Two independent decipherments came on 6 October 2026: Paolo Rosson’s, with Claude, built on this project’s transcription (section 03 measures it), and George Lasry’s, with Claude Opus 5.5 and GPT-6 Astra, from Norbert Biermann’s transcription of five letters (section 04). Outcome: read from existing decipherment, partial. Rosson’s key: 79.8 % of no. 20’s groups and 93.1 % of R1894’s in connected stretches on this transcription. Lasry’s key: values for 95.9 % of non-null occurrences in five letters (coverage, not measured accuracy).

01 The letter to Garbino and Ranzo’s code

BnF fr. 3022 f. 44r: the clear opening to Garbino and the first lines of superscript-number code
f. 44r, no. 20: “R.de […] S.r da poi de haverni scripto per piu l[ette]re”, the dates of letters received (23 November, 3 and 28 December, 4 February), then the code. Every group is a small letter with a number above it. Image: Bibliothèque nationale de France, fr. 3022 f. 44r, via Gallica (btv1b90601558, view 86).

No. 20 is an Italian letter, dated at Madrid on 11 April 1528, endorsed on the back to “Garbino”. It alternates clear and code. The clear passages report that the Chancellor was ill with gout, that fifty galleys were being fitted out, that a million ducats had been raised in Castile and 500,000 more were expected from the Cortes of Aragon, and that the Empress was in the seventh month and the prince would be sworn heir. The coded passages, about two thirds of the letter, are what it was sent for.

Bound after the letter are papers of Garbino’s network, not keys to this letter. On f. 48 is a jargon, with more on f. 49: cover letters signed “Antonio de Cosenza” to “Andrea Romano in Valencia”, news disguised as the price of grain, and a list of cover names. On f. 49v the Emperor is “Joan Jacobo”, del Vasto “portolano de Gergenti”, Garbino himself “antonio petra”. On f. 50 is an “Aditione nel zifra”, an addition to a code key.

The “Aditione” is not the key to this letter. It belongs to another code of the same design, an initial letter with a number, and is shown here only to illustrate how such a code is built. Checked against the transcriptions: of its 113 groups, only one (g217, once) occurs anywhere in the 3,912 groups of no. 20 and Ranzo’s letters, and its numbers overlap those the letters already use (it starts the b list at 157; the letters run to b215). No value in the decipherments below was taken from it as a key.
BnF fr. 3022 f. 50: the Aditione nel zifra, words and syllables with their initial letter and number
f. 50, the “Aditione nel zifra”, an addition to another code of the same design, shown for illustration; it is not the key to no. 20 or to Ranzo’s letters: apresso a327, al garbino a330, Defensione d308, havendo h106, perilche p400. Syllables (ar, are, an, exne) have groups too. Image: Bibliothèque nationale de France, fr. 3022 f. 50, via Gallica (btv1b90601558).

In a code of this design each group is the initial of the word with a number; in the illustrative addition apresso is a327, Cartagenia c327, soa santità s395, and common syllables get groups of their own. The letter to Garbino follows the same design with its own lists: its groups run to a323, b215, c325, p383, s387. The same code is used in the signed letters of Hieronimo Ranzo in BnF fr. 2988 ff. 2 and 9–10 and fr. 3019 f. 73. Ranzo was a Vercelli nobleman at Charles V’s court, of the family of Gattinara’s mother. Norbert Biermann discussed the addition sheet alongside Ranzo’s code in a 2017 Cipherbrain thread; it is of the same design but, as above, not the same key. The Garbino letter is very likely Ranzo’s.

The letter is bound in français 3022 among imperial papers of 1527–28 that reached French hands, next to letters of the Marquis del Vasto; those are in different ciphers and have their own page.

02 Checked first: no contemporary decipherment

The catalogue says “no decipherment noted”, and the obvious place for a French decipherment was checked first. The eighteenth-century Clairambault copies were searched. Clairambault 327 ff. 279–280 copies no. 20 as “Lettre non signée écrite au seigneur Garbino du 11 d’avril 1528 … partie en chiffre, partie non”, with the cipher copied and nothing deciphered. Clairambault 314 f. 337 copies the addition sheet. Neither carries a decipherment, and none turned up in the neighbouring français volumes.

Cipherbrain (Klaus Schmeh, 2016, with comments by Norbert Biermann and Thomas in 2017) found no known nomenclator for Ranzo’s code.

03 Rosson’s key applied to this transcription

On 14 October 2026 a Cryptoole alert led to Paolo Rosson’s page “The Venetian? cipher with superscript digits of 1528” (Cryptoole IT1520-1, listed solved on 6 October 2026 with George Lasry). Working with Claude, from this project’s transcription of no. 20 and of Ranzo’s letters in fr. 2988, he built a key table of 779 values (117 sure, 595 probable, 67 guesses). Numbers 0–5 are nulls, 6–9 spell single letters, 10 and above index a list of stems under the initial. He estimates about 85 % of tokens right, and checked the transcription against the images, finding that in fr. 2988 57 “g” are s and 63 “t” are r (two hands). No palaeographer has checked the reading.

His key and corrections were applied here to the existing transcriptions (measure_rosson.py). The fit is not independent, since the key was built on them.

TranscriptionGroupsWith a valueNo valueIn runs of six or more sure or probable values
No. 20, fr. 3022 ff. 44r–46v1,31193.8 %4479.8 %
Ranzo, fr. 2988 ff. 9r–10v (DECODE R1894; R4450 is a copy of f. 9)1,77697.2 %2493.1 %
Ranzo, fr. 2988 ff. 2r–v (not R1894)81698.0 %1688.7 %

A value is not yet a reading: the last column is the stricter one, and neither letter reaches the 95 % bar of this site, so both count as deciphered in part, by Rosson with Claude. The decoded text is coherent Italian of 1528. On the last page of Ranzo’s letter, for example, the writer says that fornari has left for Italy with Julian to carry a sum of money for exchange payments to the army; earlier in the same letter he tells the addressee to address letters through Hieronimo Ranzo and to mention nothing of them in his others. The blind controls of his page (87.6 % and 93.4 % on made-up codes) were not rerun here.

The earlier verdict that no. 20 was blocked for lack of key material was therefore wrong in one respect: a key could be built, by a reader who could look at the images and the clear stretches together. This project’s annealer, validated on a control, had stopped at function words.

04 George Lasry’s Ranzo decipherment

Deciphered and contributed by George Lasry, using Claude Opus 5.5 and GPT-6 Astra, from Norbert Biermann’s transcription (2021). The Codex consolidation of 6 October 2026 covers five letters.

Daniel Bourdeau made initial observations on the cipher; George Lasry did not use those observations in this decipherment.

All manuscript references below come from Biermann’s ciphertext transcription. All are held at the Bibliothèque nationale de France. The first source in each row supplies the line layout used here; the other sources are the parallel copies listed in the transcription.

LetterSource of the ciphertext transcriptionParallel copy
1Français 2988, f. 2Français 3019, ff. 73–74
2Français 2988, ff. 9–10Français 20506, ff. 136–138
3Français 3022, ff. 44–47Clairambault 327, ff. 279–280
4Français 4050, ff. 79–81—
5Français 6638, pp. 67–70—

For Français 4050 and 6638, Biermann’s transcription supplies the shelfmarks above but no Gallica link.

Paolo Rosson independently obtained a contemporaneous solution using Claude. Tomokiyo’s Cryptiana article, dated 6 October 2026, records receiving Lasry’s report only hours after Rosson’s email. It presents Rosson’s solution, based on Bourdeau’s transcription. The present contribution preserves the separate Biermann-based transcription and key; no priority is claimed.

The working key has 871 observed mappings: 5,967 of 6,221 non-null occurrences receive proposed meanings (95.9% assignment coverage), including 381 tentative mappings used 841 times. There are 207 presumed null occurrences and 254 unassigned non-null occurrences. These are coverage figures, not a measured percentage of correct plaintext. The key was reconstructed through cribs and structural analysis, with selected entries checked against the historical addition at Français 3022 f. 50.

Complete reconstructed visual key (PDF) · Visual key (HTML) · Transcription, key, complete literal decipherment and verification

First page of the reconstructed Ranzo key; open the PDF for all 871 mappings
Reconstructed visual key. Open the PDF or HTML for the complete table. Image: George Lasry, reconstructed with Claude Opus 5.5 and GPT-6 Astra from Norbert Biermann’s transcription of the Ranzo correspondence, 6 October 2026.

In the excerpts, spaces, punctuation and accents are editorial; ? retains tentative readings from the key. Each translation follows the whole quoted passage. The expandable ciphertext is transcribed in the original letter-and-superscript format.

A compact cipher for letters that might be seized

BnF Français 2988 f. 9v; 2:9v:7–2:9v:13

Transcribed ciphertext (102 elements)

2:9v:7 y8 a137 v211 s138 d303 z7 n9 c170 L47

2:9v:8 L99 i100 z15 d48 e75 v114 e7 t30 y19 n90 L43 z8 t30 p10 s10 r41

2:9v:9 m104 q44 c170 m57 e67 n8 p149 t54 t74 p280 f2 z9 n8 v13 r41

2:9v:10 d36 v191 a152 n124 z15 c170 t74 m56 c216 d156 c10 t10 n38 m9 Q13 L108

2:9v:11 q12 p281 r10 n8 s113 r41 b147 m136 i100 p232 m7 y11 p149 m119 o157 f8

2:9v:12 o113 c320 z9 p255 t118 n6 c246 z7 r41 Q18 i11 c320 n7 L10 p251 d78

2:9v:13 z15 c227 L77 a62 n8 c170 h30 r10 n9 z8 d10 r41 p149 g84

Decryption

Et? alcuna volta, se dubitarai? che le lettere in zifra debbiano? esser viste et? non lassate? passare, maxime? quelle che manderai per terra, ti potrai valere de uno altro novo zifra che ti mand? con detto Cataneo. Con lo qual potrai scribere brevemente? in picciolo?. Et? per meglio ordinar ogni cosa potrai comunicare con? Iacomo? così la pratica di zifra como li avisi che haverai a dare per giornata.

English translation

And? if at any time you suspect? that the ciphered letters may? be inspected and? not allowed? through, especially? those you send overland, you may use another new cipher that I send? you with the said Cataneo. With it you will be able to write briefly? and in small writing?. And? to arrange everything better, you may discuss with? Iacomo? both the use of the cipher and the reports you will have to give from day to day.

The recipe for alum-water secret writing

BnF Français 6638 p. 69; 5:69:11–5:69:17

Transcribed ciphertext (73 elements)

5:69:11 L10 d157 a246 z6 L135 n10 t10 f13 z6

5:69:12 n9 i100 q49 m212 c185 s8 p249 z8 z9 p3 L135 s251 s7

5:69:13 d78 p246 b84 c170 p242 n8 h29 y31 p228 s325 L108 b58

5:69:14 d18 m167 L106 i100 a246 c174 s251 s9 b28 s6 z6 L10 q20

5:69:15 d78 z8 L135 y28 p261 s234 r168 z7 t10 L10 q10 Q23

5:69:16 L107 z9 L135 p149 t133 h79 y24 p246 p280 z7 n8 n38

5:69:17 s113 r41

Decryption

La detta acqua alumenata farai in questo modo: cioè piglia alume sufficiente? di più bianco che possi havere et? pestalo bene. Dapoi mettilo in acqua che? sufficiente? baste a la quantità di alume. Et? poiché? sia reposata? l’aqua con? lo alume per tre hore o più, potrai ne scribere.

English translation

Prepare the said alum water in this manner: take a sufficient? quantity of the whitest alum you can obtain and? pound it well. Then put it into water that? is sufficient? for the quantity of alum. And?, after? the water with? the alum has rested? for three hours or more, you will be able to write with it.

The full working decipherment retains unresolved codes and tentative assignments. These two passages are examples, not evidence that every part of the five letters is settled.

05 Why our solver could not decode it

An initial-letter code is usually weak for one reason: if each letter’s list is in alphabetical order, the number tells you roughly where in the dictionary the word sits. That was the first thing tested. The distribution of the numbers within each initial was compared with where frequent Italian words fall in an alphabetical list, against shuffled orders. No. 20 scores z = −0.5. The same test run on Castiglione’s letters encoded with a genuinely alphabetical code scores about +6.5. Ranzo’s numbering is not alphabetical, so a number says nothing about its word beyond the initial.

What is left is a word substitution under one constraint, the initial letter, with about 550 group types in no. 20 and 730 in Ranzo’s own letters. All 1,315 groups of no. 20 were transcribed from full-resolution scans, and about 2,600 more from the six Ranzo pages. The two share 316 group types, which confirms the key is one table. An annealer then assigned each group a word with the right initial, treating the z groups as nulls, and scored the result with a word-bigram model built from Castiglione’s Lettere (diplomatic Italian written from Spain in these same years) and Guicciardini. It was first run on a control: 3,900 words of Castiglione held out of the model and encoded the same way.

TestTokens rightGroup types right
Control, 3,900 encoded words of Castiglioneabout 46 %about 9 %
No. 20 and Ranzo, 3,900 groupsSame function words on every restart; content words vary from run to run

That is the limit of the method, and the control shows it. Frequent words come out, because their contexts fix them: c170 che, i100 il, p149 per, n38 non, r41 re, s233 sua, m170 mi, p246 più. The words that carry the news occur once or twice each and do not. Nor was there a crib to be had. No Ranzo page repeats a passage of no. 20 (the longest shared run is a stock three-group phrase), the copy marked “dup.ª” duplicates another Ranzo letter rather than this one, and the Clairambault copy carries no decipherment. The other “pièces en chiffre” of fr. 2988 are a different, French, symbol cipher.

06 What would finish it

The code is open at the margin. What remains is a comparison of Rosson’s readings with the images page by page, the 44 groups of no. 20 and 24 of R1894 that have no value, his guesses, and the other Ranzo letters (fr. 2988 ff. 2r–v and the fr. 3019 f. 73 duplicate). Ranzo’s own base table would settle the rest: any of his letters that was deciphered at the time or survives in clear. The places to look are Gattinara’s papers in the Archivio di Stato di Vercelli, the imperial correspondence in Simancas and Vienna, and the other side of the Garbino network. The transcriptions and the solver are ready for a key or a crib; with even a few hundred words of known plaintext the substitution would close quickly.

07 Sources and files

Notes, transcriptions and scripts are in targets/ranzo1528/. Until 14 October 2026 this material was part of the page “Del Vasto to Charles V, and a letter to Garbino” (vasto1527).