40 41 67 18 38 · 94 43 47 41 39 45 53 40 47
kluch (gloss: klug) · smolinsko
15 = a · 77 = a · 22 = e · 81 = e · 94 = s

Moscow → Stockholm · two-digit letter code with homophones · 1662–1666 · key rebuilt from contemporary glosses

Adolf Ebers in Moscow, 1662–1666: the key of his code

Go to the full text ↓

The Swedish commissary’s German letters from Moscow were deciphered at the time between the lines; the key, rebuilt from those glosses and tested once on a page not used to build it, is now a reusable table.

Daniel Bourdeau · posted

Method: key recovered based on adjacent plaintext · Extent: complete · On the map

With Brice Dudout (transcription, verification, solution) · Also credited · Contemporary key or decipherment (earlier solution)

At a glanceKey from adjacent plaintext · complete

The letters
Letters of Adolf Ebers (ennobled Eberschildt), Swedish commissary in Moscow, to Charles XI (the Regency), in German, 1662–1666, with the sensitive passages in number code.
Where
Riksarkivet, Stockholm, Diplomatica Muscovitica, SE/RA/2113/2113.1/3/b/602 (172 images, series R0003225). Not on DECODE.
The cipher
A German letter substitution with homophones: two-digit groups 15–95 separated by dots, mixed with clear German.
How the key was found
Learned from the glossed words of one letter (images 106 and 108), frozen by SHA-256, then measured once on image 138: 0.909 of the letters against 0.047 for the best of 200 shuffled keys.
What it says
On the measured page: envoys to go to Poland for the boundary commission, the voivodes at Smolensk, treating with the Poles; Marselis and Nashchokin are named.
Credit
Key, transcription and test by Brice Dudout (pull request #383). The decipherment itself is the clerk’s of the 1660s. The lead came from the project’s Riksarkivet sweep.
Still open
Two values added after the test (53 = s, 55 = t) are untested; 46 is unresolved. Every run carries its gloss, so no unglossed page is left to test on.

01 The letters

The volume holds the letters of the Swedish commissary in Moscow to the Regency that governed for the young Charles XI. They are in German, and the passages to be kept secret are written in numbers. A clerk wrote the German decipherment over every run of numbers: the project’s leads review of 6 November 2026 found it on every page it zoomed and noted that “only the key is of further use”. This target supplies that key.

Image 138, left page: dotted two-digit code groups with the German decipherment written above them
Image 138, the held-out page: dotted two-digit groups mixed with clear German, the gloss written above each run (“Smolinsko”, “Commission”, “consideration nimt”). Image: Riksarkivet, Stockholm, SE/RA/2113/2113.1/3/b/602, bildid R0003225_00138, via the Riksarkivet IIIF service.

Brice Dudout used three images. Images 106 (Moscow, 17 July 1664) and 108, a second copy of the same letter, were used to learn the key. On image 138, the first 160 cipher groups of the left page were held out and measured once. Code runs occur on nearly every image from about 98 to 145 and at 81 and 160; beyond these three images they were not transcribed, since the gloss over them is already their decipherment.

02 The key

The order is roughly alphabetical: 15 a, 16 b, 18 c, 20 d, 22 e, 24 f, 36 g, 38 h, 39 i, 40 k, 41 l, 43 m, 45 n, 47 o, 48 p, 51 r, 94 s, 95 t, 67 u, 68 v, 69 w, 72 z. Frequent letters have a second number (77 a, 81 e, 25 f, 89 n, 90 o), and doubled letters their own (42 ll, 44 mm, 54 ss). 74 = ä rests on one word. Arabic numerals (3, 12, 2000, 2500) are written in clear.

The frozen key has 31 codes. After the measurement, glosses on images 101, 103 and 138 gave 53 = s (nichts, etwas, smolinsko, naschokin) and 55 = t (tractiren). These two rows are marked “post” in key.tsv and were not tested. Group 46 (image 106, “51.43.15.46”) is unresolved. The key table is released under CC BY 4.0.

03 The held-out test

The protocol was written down and hashed before any of the held-out part was transcribed. The key was learned from 53 glossed words of images 106 and 108 only, then frozen. On image 138 the first 160 cipher groups were transcribed and frozen first; only then was the gloss above them read and frozen. One measurement compared the decode with the gloss letter by letter (a local alignment, after normalising spelling such as u/v/w and umlauts):

The 9 groups outside the frozen key (five of 53 and 55, four cut in the binding) counted as wrong. One bias is declared: the gloss is on the same image and was visible while the numbers were transcribed. On integration the measurement script was run again on the frozen files and gave the same figures, the SHA-256 hashes check out, and the decode of the transcription with key.tsv matches the decryption file line for line.

04 The measured page

Of the 160 groups, 151 are in the frozen key, 5 are 53 and 55, and 4 are cut in the binding. The decode with the full key, with the gloss’s word division:

alles in considerati[o]n nimt eben kluch von hier gehn gekommen ist hier beschlossen gesanten nach [p]olen commission [g]renzen zu
woiwoden smolinsko die polen zu tracti[r]en marselius naschokin in gnadge

The gloss of the time reads:

alles ?? consideration nimt eben klug von hier gehen gekommen ist hier beschlossen gesandten nach polen commission grentzen zu
woiwoden smolinsko die polen zu tractiren marselius naskokin in gnade

They differ only in spellings (kluch/klug, gesanten/gesandten, naschokin/naskokin) and in the letters cut in the binding, shown in brackets. These are phrases, not a running text: the clear German between the runs was not transcribed. In English: “takes everything into consideration … just as prudent … to go from here … has come … decided here … envoys to Poland … commission … boundaries … the voivodes, Smolensk … to treat with the Poles … Marselis … Nashchokin … in favour”.

05 What remains open

The code of Johan von Lilienthal, the Swedish resident in Moscow from 1665, is a different cipher, with its own page: Lilienthal in Moscow, 1665–1667.

Full texts

The transcription and the decryption of every document on this page, so that the reading can be used and checked. Short files are shown here; all are in the repository.

Images 106 and 108: the 53 glossed words the key was learned from not prose

The training pairs: each glossed word of the letter of 17 July 1664 (image 106, and its second copy on 108) as cipher groups beside the gloss written over them at the time, e.g. "zeit von 3 wochen gestelt" and "sie 12 millionen".

Transcription

PAIRES-EBERS.tsv

# Paires chiffré / glose d'époque, Ebers (R0003225), lues sur recadrages 3000 px. image	code	glose (lecture)
106L	72.22.39.95.68.47.45.3.69.47.18.38.22.45.36.22.94.95.22.41.95	zeit von 3 wochen gestelt
106L	94.39.22.12.43.39.41.39.47.45.22.45	sie 12 millionen
106L	36.47.41.20.22.44	golde(s?)
106R	94.18.38.69.39.22.36.22.51.68.15.95.22.51	schwieger vater
106R	39.45.36.22.38.22.39.43	in geheim
106R	22.39.45.22.45	einen
106R	36.22.38.22.39.43.22.45	geheimen
106R	18.47.51.22.94.48.47.45.20.22.45.95.22.45	corespondenten
106R	51.39.36.15.94.18.38.77.25.22.45	riga sch?? (gloss 'Riga schicken'?)
106R	39.38.43	ihm
106R	69.39.54.22.45	wi(ss)en
106R	69.15.54.39.45	(gloss 'cousinen'?) incertain
106R	94.18.38.69.22.20.22.45	schweden
106R	48.47.41.22.45	polen
106R	48.15.94.39.51.95	passirt
106R	39.95.72.39.36.22.51.72.22.39.95	itzige zeit
106R	72.47.16.22.41.45.36.22.16.22.45	(z?)obel ...geben (zobeln gegeben ?)
106R	20.15.38.39.45	dahin
106R	94.22.45.20.22.45	senden
106R	24.22.94.95.72.67	fest zu
106R	39.15.51.41.39.18.38	iarlich
106R	51.22.39.18.38.94.95.15.41.22.51	reichstaler
106R	68.22.51	ver
106R	36.22.15.45.69.47.51.95.22.95	geantwortet
106R	45.39.18.38.95	nicht
106R	22.39.45.41.39.22.24.22.51	einliefer(n)
106R	22.39.45.22.45	einen
106R	41.39.18.38.22.45.18.47.44.39.54.15.51.39.22.45	lichen commi(ss)arien
106R	94.95.47.18.40.38.47.41.43	stockholm
106R	36.22.16.51.67.18.38	gebruch
106R	45.39.18.38.95	nicht
106R	20.39.45.36.22.38.15.16.22.45	dinge haben
106R	41.22.45.36.94.95	lengst
106R	36.22.48.51.15.18.95.39.18.39.51.95	gepracticirt
108R	45.39.18.38.95.69.22.39.95.22.51.94.47.42.22.45	nicht weiter sollen
108R	43.15.41.18.47.45.95.15.45.95.22.45	malcontenten
108R	39.45.43.47.94.40.77.67	in moskau
108R	38.22.41.24.95.22	helfte
108R	38.77.51.95	hart
108R	68.22.51.38.39.45.20.81.51.89	verhindern
108R	40.90.44.22.45	kommen
108R	39.94.95.38.39.22.51	ist hier
108R	40.47.48.24	kopf (lecture du 4e groupe incertaine)
108R	16.22.94.18.38.67.41.20.39.36.22.95	beschuldiget
108R	18.47.51.77.36.39	corage
108R	20.81.45	den
108R	24.22.39.45.95	feint
108R	15.16.24.47.20.22.51.45	abfodern
108R	40.45.22.94.39.67.51.36.39	knes iurgi
108R	20.47.41.36.77.51.67.40.15	dolgaruka
108R	20.47.41.36.90.51.67.40.15	dolgoruka
108R	94.95.81.42.22	stelle
108R	18.47.44.22.45.20	commend(irt)
Decryption

PAIRES-EBERS.tsv

# Paires chiffré / glose d'époque, Ebers (R0003225), lues sur recadrages 3000 px. image	code	glose (lecture)
106L	72.22.39.95.68.47.45.3.69.47.18.38.22.45.36.22.94.95.22.41.95	zeit von 3 wochen gestelt
106L	94.39.22.12.43.39.41.39.47.45.22.45	sie 12 millionen
106L	36.47.41.20.22.44	golde(s?)
106R	94.18.38.69.39.22.36.22.51.68.15.95.22.51	schwieger vater
106R	39.45.36.22.38.22.39.43	in geheim
106R	22.39.45.22.45	einen
106R	36.22.38.22.39.43.22.45	geheimen
106R	18.47.51.22.94.48.47.45.20.22.45.95.22.45	corespondenten
106R	51.39.36.15.94.18.38.77.25.22.45	riga sch?? (gloss 'Riga schicken'?)
106R	39.38.43	ihm
106R	69.39.54.22.45	wi(ss)en
106R	69.15.54.39.45	(gloss 'cousinen'?) incertain
106R	94.18.38.69.22.20.22.45	schweden
106R	48.47.41.22.45	polen
106R	48.15.94.39.51.95	passirt
106R	39.95.72.39.36.22.51.72.22.39.95	itzige zeit
106R	72.47.16.22.41.45.36.22.16.22.45	(z?)obel ...geben (zobeln gegeben ?)
106R	20.15.38.39.45	dahin
106R	94.22.45.20.22.45	senden
106R	24.22.94.95.72.67	fest zu
106R	39.15.51.41.39.18.38	iarlich
106R	51.22.39.18.38.94.95.15.41.22.51	reichstaler
106R	68.22.51	ver
106R	36.22.15.45.69.47.51.95.22.95	geantwortet
106R	45.39.18.38.95	nicht
106R	22.39.45.41.39.22.24.22.51	einliefer(n)
106R	22.39.45.22.45	einen
106R	41.39.18.38.22.45.18.47.44.39.54.15.51.39.22.45	lichen commi(ss)arien
106R	94.95.47.18.40.38.47.41.43	stockholm
106R	36.22.16.51.67.18.38	gebruch
106R	45.39.18.38.95	nicht
106R	20.39.45.36.22.38.15.16.22.45	dinge haben
106R	41.22.45.36.94.95	lengst
106R	36.22.48.51.15.18.95.39.18.39.51.95	gepracticirt
108R	45.39.18.38.95.69.22.39.95.22.51.94.47.42.22.45	nicht weiter sollen
108R	43.15.41.18.47.45.95.15.45.95.22.45	malcontenten
108R	39.45.43.47.94.40.77.67	in moskau
108R	38.22.41.24.95.22	helfte
108R	38.77.51.95	hart
108R	68.22.51.38.39.45.20.81.51.89	verhindern
108R	40.90.44.22.45	kommen
108R	39.94.95.38.39.22.51	ist hier
108R	40.47.48.24	kopf (lecture du 4e groupe incertaine)
108R	16.22.94.18.38.67.41.20.39.36.22.95	beschuldiget
108R	18.47.51.77.36.39	corage
108R	20.81.45	den
108R	24.22.39.45.95	feint
108R	15.16.24.47.20.22.51.45	abfodern
108R	40.45.22.94.39.67.51.36.39	knes iurgi
108R	20.47.41.36.77.51.67.40.15	dolgaruka
108R	20.47.41.36.90.51.67.40.15	dolgoruka
108R	94.95.81.42.22	stelle
108R	18.47.44.22.45.20	commend(irt)

Image 138, left page: the 160 held-out cipher groups with the contemporary gloss not prose

Ebers reports that something has been taken into consideration and decided here: envoys are to go to Poland for the boundary commission, with the voivodes at Smolensk, to treat with the Poles; Marselis and Nashchokin are named, and someone is in favour ('in gnade').

Transcription

transcription.txt

# ebers1664 - transcription of the held-out part: Riksarkivet R0003225 image 138, left page (bildid R0003225_00138).
# Cipher groups only, in reading order, 160 groups; "|" = clear German written between the runs (not transcribed);
# "?" = group cut in the binding or illegible; struck-through groups omitted. Frozen copy: frozen/H_E-CHIFFRE.txt (SHA-256 53d9f22a...4edf).
# Transcribed by one AI agent from the 3000 px IIIF image, after the key was frozen and before the gloss was read out.
L01 15 42 22 53 39 45 | 18 47 45 94 39 20 22 51 77 95 39 ?
L02 45 45 39 43 95 | 22 16 22 45 | 40 41 67 18 38
L03 68 47 45 38 39 22 51 36 22 38 45 | 36 22 40 47 44
L04 22 45 39 94 95
L05 38 39 22 51 16 22 94 18 38
L06 41 47 54 22 45 | 36 22 94 15 45 95 22 45 45 77 18 38 ?
L07 47 41 22 45 | 18 47 44 39 54 39 47 45 | ?
L08 51 22 45 72 22 45 72 67 | 69 47 39
L09 69 47 20 81 45 | 94 43 47 41 39 45 53 40 47
L10 20 39 22 48 47 41 22 45 72 67 95 51 15 18 55 39 ?
L11 22 45 43 77 51 94 22 41 39 67 53 | 45 15 53 18 38 47 40
L12 39 45 | 39 45 36 45 15 20 36 22

# Contemporary gloss written above these runs, read after the cipher was transcribed (frozen/G_E-GLOSE.txt, SHA-256 341b8d3f...0d80);
# "?" = letter not read on the gloss:
alles ?? consideration nimt eben klug von hier gehen gekommen ist hier beschlossen gesandten nach polen commission grentzen zu woiwoden smolinsko die polen zu tractiren marselius naskokin in gnade

# Training pairs (images 106 and 108, cipher group string = gloss) are in frozen/PAIRES-EBERS.tsv.
Decryption

decryption.txt

# ebers1664 - decode of the held-out part (image 138, left page) with key.tsv, including the two post-measurement rows
# (53 = s, 55 = t). "?" = group cut or illegible. Runs separated by "|" as in transcription.txt. The contemporary gloss
# (last block) is the reading of the time; our decode only confirms it.
L01  allesin | considerati?
L02  nnimt | eben | kluch
L03  vonhiergehn | gekomm
L04  enist
L05  hierbesch
L06  lossen | gesantennach?
L07  olen | commission | ?
L08  renzenzu | woi
L09  woden | smolinsko
L10  diepolenzutracti?
L11  enmarselius | naschok
L12  in | ingnadge

# As words (decode, with the gloss's word division):
alles in considerati[o]n nimt eben kluch von hier gehn gekommen ist hier beschlossen gesanten nach [p]olen commission [g]renzen zu
woiwoden smolinsko die polen zu tracti[r]en marselius naschokin in gnadge

# Contemporary gloss:
alles ?? consideration nimt eben klug von hier gehen gekommen ist hier beschlossen gesandten nach polen commission grentzen zu
woiwoden smolinsko die polen zu tractiren marselius naskokin in gnade

# Differences decode vs gloss: kluch/klug, gehn/gehen, gesanten/gesandten, renzen/grentzen, naschok(in)/naskokin, gnadge/gnade
# (cipher clerk's or glossator's spellings); [o], [p], [g], [r] = groups cut in the binding.
Translation

translation.md

# ebers1664 - English rendering of the measured portion (image 138, left page)

The code runs only, after the contemporary gloss; the clear German between them is not transcribed, so these are phrases, not
sentences. Words in brackets are cut or unread.

| run (gloss) | English |
|---|---|
| alles [..] consideration nimt | takes everything [..] into consideration |
| eben klug | just as wise (prudent) |
| von hier gehen | to go from here |
| gekommen ist | has come |
| hier beschlossen | decided here |
| gesandten nach polen | envoys to Poland |
| commission | commission |
| grentzen zu | boundaries, to |
| woiwoden smolinsko | the voivodes, Smolensk |
| die polen zu tractiren | to treat (negotiate) with the Poles |
| marselius | Marselis |
| naskokin | Nashchokin |
| in gnade | in favour (grace) |

Key: key.tsv

06 Sources

Key, transcription, frozen test and notes: targets/ebers1664/.

Cite this page

Daniel Bourdeau and Brice Dudout, “Commissary Adolf Ebers in Moscow, 1662–1666: the key of his code”, Cyphersolver, posted 11 November 2026, https://cyphersolver.com/ebers1664.html.