How we read two cipher letters

A human-led research project, with an AI doing the hands-on work. By Thomas Leeming, with Claude Opus 5.5.

Over two days in October 2026 we read one historical cipher letter and about half of a second. The first is a sheet of numbers sent to a man in Amsterdam, kept in the Swedish National Archives and listed in a database of historical ciphers as unsolved. The second is a passage of drawn signs in a letter from the French ambassador in Lisbon, written in December 1558. We found no published reading of either.

This page is the full account of how we did it: who decided what, what worked, what failed, and what is still uncertain. It is drawn from the lab notebook we kept as we went. Claude drafted it from that notebook. Thomas's review of each notebook entry is recorded in the project's review log.

How we worked together

Thomas led the project. Claude, an AI model made by Anthropic, did the hands-on work under that lead. "We" in this account means the two of us. Where it matters who did a thing, we say so. At most turning points the pattern was the same: Claude laid out the options and recommended one, and Thomas decided.

Thomas LeemingClaude Opus 5.5
Set the aim: find a message no one can read, and read itSurveyed what was out there and put candidates forward
Set the working rules: work like scientists, record everything, be open about the AIKept the lab notebook and wrote the code
Chose the targets, and stopped the first one when it drifted from the aimPrepared the page images and ran the AI transcribers
Decided what could be downloaded and kept, what was sent to whom, and when to publishWorked out the two keys and ran the tests
Did the steps that needed a person: the archive database account and the archive site's human checkDrafted the readings and these pages
Pushed the work towards a readable, publishable result, and asked for the key to be firmed upRecorded its own mistakes and corrected them
Reviewed the work and approved it for publication

Neither of us is a specialist in old handwriting. No palaeographer has checked the readings yet. We say what that means at the end.

The rules we set at the start

Thomas set these on the first day, and they shaped everything after.

Claude proposed further rules of method, and we kept to them:

A false start: Linear A

Thomas's first brief was "an unsolved cryptic message, something mankind has lost the ability to comprehend". Claude surveyed twelve candidates, checked six, and recommended Linear A, the undeciphered script of Minoan Crete. Thomas chose it.

A literature review then showed how crowded and how hard that field is. At least seven AI-assisted Linear A projects had been published in the previous three months. Claude narrowed the plan, step by step, until it had become an audit of the numbers on the clay tablets against the printed edition. Each step was put to Thomas and approved. What Claude did not do was ask whether the target itself should change. It was careful work with a written protocol, and it was no longer a decipherment.

Thomas read the protocol and said so:

"I feel like we aren't solving the cryptic message by doing this? I wanted something like the things in the news recently where people have deciphered enigma codes, or messages that no one understood before."

Thomas was right, and stopped it. This was the decisive call of the project. We adopted a rule from it: if the stated goal cannot be reached, ask whether to change the target, and do not quietly shrink the goal.

Finding messages that could be read

Claude sent out four scouts: unread cipher letters in archives, unbroken wartime ciphers, the famous unsolved ciphers, and what had been read recently. Five candidates were then checked by separate agents told not to trust the scouts.

What they reported changed our picture of the field. The famous ciphers are mostly dead ends. By our scouts' account, one researcher, D. Bourdeau, working with an AI, had worked through about 285 archive cipher targets in the previous weeks, and the well-known lists were close to exhausted. What remained fell into three groups: codes with too little text, items locked away, and items where the obstacle was the transcription and not the cipher. The third group is where the real targets were.

Claude showed Thomas three kinds of target: a letter in numbers to Amsterdam that looked nearly ready to read, the Lisbon letters of 1558 as a harder job with good odds, and a wartime cipher as a long shot. Claude recommended the Amsterdam letter first and then Lisbon. Thomas decided on that order.

The Amsterdam letter

The obstacle was a single digit

The letter is 35 lines of numbers. Bourdeau had transcribed it and noticed that the numbers behaved like one language, but no language came out. One of Claude's scouts found why. This writer's 8 has a second loop, like an 8 lying on its side, and it had been read as 0. Every 38 and 48 had become 30 and 40, so the letters i and t had vanished.

With that corrected, the alphabet is as simple as a key can be: the letters in order, starting at 30. Numbers under 30 mean nothing and are there to mislead.

A fresh transcription, made without the key

A key found from someone else's transcription is not enough. Claude cut the page into enlarged strips and had two AI readers transcribe all of it independently, one from the top and one from the bottom. They were told how this writer forms each digit. They were not told the key or the language. They agreed on 462 of 471 positions. Eleven places were settled on a second look, each with its reason written down.

The key, applied by code, gave Dutch on every one of the 35 lines.

Reading the Dutch

Three AI readers of early modern Dutch then worked on the decoded letters: two independently, and one told to attack Claude's reading. All three judged the key correct. Two put about nine words in ten as certain; the sceptic put about five-sixths of the text as secure in sense. The letter is a short political report: the writer will answer in person, two envoys have left, mistrust is beginning between two parties, and "I rest neither night nor day".

A check we did not plan

The Dutch readers noticed that the meaningless numbers never fall between two words. Claude counted by code: 22 runs of them, all 22 inside a word. By chance that would happen about once in 360 tries. The transcribers knew nothing of this habit, so it supports both the transcription and the key. One limit: where the words divide is our own reading of the Dutch.

The names we could not find

Five numbers in the letter (101, 105, 106, 113, 114) stand for people or powers. Their key is not in the letter. Here the work needed a person. Thomas created an account with the DECODE database, to try the locked records of the archive box, and passed the human check on the Swedish National Archives' site so that its catalogue could be searched. Both gave a clear negative. The new account unlocked nothing: 21 records could be viewed, all of them public. By our one search of the archive's catalogue, none of the collection is online, and the card index of 1934 that should list the key is in the reading room.

So the letter is read, and the writer, the recipient and the five names are not known. The year is open too: three lines of evidence point three ways.

The Lisbon letter

What was on the pages

The volume holds several letters from Michel de Seure, French ambassador in Lisbon, written in December 1558 and partly in cipher. For two of the letters to the King, a clerk of the period wrote out the deciphered text, and those sheets are bound in. The clerk even marked the cipher passages A, B and C. For the letter to the secretary of state, de Fresne, we found no such sheet. That passage was our target.

We worked from the library's online scans of black-and-white microfilm, not from the original, and looked only at the openings around these letters.

Naming the signs

This cipher is not numbers. It is a stream of drawn signs with no spaces: hash shapes, crosses, loops, letter-like forms. Before anything could be decoded, each sign needed a name, so that two readers copying the same line would write the same thing. Two AI cataloguers worked independently on different pages. One listed 61 signs and the other 78. The transcribers ended up using about ninety names; how many truly distinct signs there are is not settled.

Running out of allowance, twice

Twice the work stopped dead because the AI usage allowance ran out while agents were mid-task, and their unfinished work was lost. We changed the method: jobs of six to ten lines each, so that each agent finishes quickly and its result is saved as it lands.

The automatic method failed

Claude wrote a program to recover the key by lining the cipher up against the clerk's text. Tested first on made-up data, it recovered most of an invented key. On the real letter it failed. A key built from passage B alone read passage C no better than shuffled signs did. Keys built from two different passages agreed on only 16 signs of 53; on made-up data shaped like the real letter, the same comparison gave 53 of 57 and 53 of 58.

That gap was informative. The real letter differed from the made-up one in two ways we had not allowed for: the clerk wrote the deciphered text in the clerk's own spelling, and the cipher has stretches the clerk's text does not follow sign for sign.

Reading a clean stretch by hand

In the middle of passage B the program's line-up showed whole words standing together: sont mal armez de toutes choses, qui partit dicy en octobre. From those lines Claude wrote down 37 sign values. That was the step that opened the cipher. It is a homophonic cipher: each common letter has several signs, a few signs stand for whole words, and numbers are padding. When the key was later fitted to more text, 32 of those 37 values held and five were corrected.

Testing the key on text it had not seen

Before using a key on the unknown letter, we tested it on a passage that had played no part in building it. After the first reading, Thomas asked for the key to be firmed up, and we ran three more such tests. In each, the passage tested played no part in building the key applied to it, and each has the clerk's own text to compare against.

Passage, and the key applied unchangedSignsDecoded letters found, in order, in the clerk's textSame signs shuffled: best of 200
C (first reader), with the 37 values from B386222 of 295 (75%)160 (54%)
C (second reader), with the 37 values from B386208 of 287 (72%)162 (56%)
A, with the key from B and C1,157745 of 1,022 (73%)504 (49%)
Letter no. 40 to the King, with the key from B and C1,084682 of 906 (75%)458 (51%)
Its postscript, with the key from B and C352242 of 317 (76%)156 (49%)

The measure is generous, since shuffled signs already score about half. What counts is that the true order beats every one of 200 shuffles by a wide margin, every time. Here is the start of the postscript as the code decoded it, above the clerk's text, to show the real quality:

ieoub?bio?ysa?ssqueimaisadi?s?luatre?g?miees?uzmorciit?amentauroy

ioublioysauousdirequelaroynemaryelaissaplusdequatrecensmilescuzenortestamentauroy

What the tests show: the common sign values are right far beyond chance, and all five passages are in one cipher. What they do not show: that any single sign value is right, or that any one reading in the unknown letter is right. That also depends on its transcription and on the letters we supplied. Limits of the first test: the 37 values were chosen by reading and not by a fixed rule, and passage C had already been used in the automatic attempts that failed. It was first run before one reader's last six lines had come back, with the other reader's lines standing in (77% and 72%, against 55% for shuffles); the first two rows are the re-run on the complete transcription. The measure in the table was adopted after that failure, which had been scored on a different one.

The letter with no known plaintext

Each line of the target passage was transcribed by four independent AI readers, who were not given the key or any expected text, and merged by vote: 407 signs, with all four agreeing on 348. There were four readers because Claude re-ran the two-reader job by mistake; the second pair was independent, so we kept it. The key was applied by code, with nothing adjusted to make sense. French came out.

Three AI readers of sixteenth-century French then read it, one of them told to attack our reading. They agreed on the outline. The firmest sentence, first as the code printed it and then as we read it:

i e neu / e u cx Pl u s DE m eure ric y [?]u / ieres l o n g ue ment DE au Pis / ale r ny u eu g queache uer mes / DE[?] u g ans

Ie ne ueu[l]x plus demeurer icy [g]uieres longuement … au pis aler n'y ueu[x] que acheuer mes deu[x] ans.

I do not wish to stay here much longer … at worst I want only to finish my two years here.

Letters in square brackets were supplied or changed against the decoded signs. The x of ueux and deux is from sense: the known passages give that sign the value g more often than x. One sign with no value, inside deux, is passed over.

About seven weeks later, on 30 January 1559, Seure asked the King for a successor, in a letter printed in 1895. This passage shows the same wish already put in cipher to the secretary of state in December. We have not read Seure's other despatches of 1558, so we cannot say it is the first time.

About half of the passage is read. Most of lines 2 to 4, a few words in lines 8 to 10 and the last line are not.

How independent the AI readers are

Every transcriber and reader was a separate run of the same model, Claude Opus 5.5, given the same images and instructions. They are independent of each other's answers, not of each other's habits. The French readers had been told that Seure asked for a successor in January 1559; the sentence above was already legible in the code's output before they saw it.

What went wrong, and what we changed

We kept a record of mistakes because Thomas's rules required it, and because a reader should be able to see them.

Where the AI stopped, and two judgement calls

Claude does not create accounts or type passwords for a person. Thomas created the account and signed in. No messages were sent to anyone during the work. Claude would not tick an "I am not a robot" box, even with Thomas's permission. Where a site asked for a human, the human was Thomas.

Two judgement calls are on the record.

What we are not claiming

By the numbers

Days of work2 (2 and 3 October 2026)
Lab notebook entries32
Amsterdam letter35 lines, 468 signs, 2 independent transcribers
Lisbon: text with a clerk's plaintext5 passages, 3,402 signs
Lisbon: the unread passage20 lines, 407 signs, 4 independent transcribers
Held-out tests of the Lisbon key4 passages; each beat all 200 shuffles
Sign values in the key from passages B and C65 held in at least half of a sign's occurrences; 59 keep the same value when all five passages are used

Credit

Corrections

If you read early modern Dutch or sixteenth-century French hands and can correct a reading, we would be glad to hear it. Write to rightaboutnothing@gmail.com with CORRECTIONS in the subject line. Every doubtful place is marked on the two letter pages.