Hand this page to your AI agent
Give your agent (Claude, ChatGPT or any assistant that can open web pages) this address and ask it to do the task on the page:
https://dbourdeau.github.io/cyphersolver/solve/669.html
Or copy the block below into the chat. It is the whole task: what the cipher is, where the images are, what has been tried, the steps, and how to report back.
TASK: help read Unsolved Catalogue no. 669 of the cyphersolver project
This page: https://dbourdeau.github.io/cyphersolver/solve/669.html
You are helping a public research project read historical cipher letters that nobody has read yet.
THE CIPHER
Title: Soviet and German cipher radiograms of 1921 (Moscow ↔ Berlin, Stockholm, Christiania, Kharkov), intercepted at Constantinople by the US High Commission and never deciphered
Date: 1921
Correspondents: Chicherin / Narkomindel Moscow ↔ Soviet representation Berlin (Kopp, Krestinsky, 'Polpred'), Stockholm, Christiania, Reval; Nikolaev → Kharkov; Auswärtiges Amt Berlin ↔ Deutsche Vertretung Moskau (Hilger); copies sent by Admiral Mark L. Bristol, US High Commissioner, Constantinople
Place: Constantinople
Language: Russian and German (per the intercept operator: Kopp–Chicherin traffic mostly Russian, some Chicherin telegrams German) (expected)
Held at: NARA RG 59, Central Decimal File 1910-29, 861.00 (Political Affairs, Russia), microfilm M316 rolls 40-48 (RG 64 digital copies): file units naId 604700562 (861.00/8376-8492, Mar 1921), 604701877 (8493-8622, Apr), 604703234 (8623-8773, May-Jun), 604704577 (8774-8910, Jun-Jul), 604705830 (8911-9012, Jul-Sep), 604707113 (9013-9064, Sep-Oct), 604708415 (9065-9159, Oct-Nov), 604709981 (9160-9240, Nov-Dec), 604711297 (9241-9329, Dec 1921-Feb 1922); the War Department copies are RG 457, Archival and Historian's Source Files, 6707N 'Russian Coded Messages, 1921 (Provided by U.S. High Commissioner Constantinople)' (naId 23890165, not digitised); Typed copies of intercepted radiograms, one per frame with date, route and addresses (e.g. 'MARCH 22d 1921 FROM ... TO MOSCOW 71915 67404 33684 ...'; 'SEPTEMBER 4th 1921 FROM BERLIN TO MOSCOW SCHITSCHERIN MOSKAU FUNKSPRUCH'; 'SEPTEMBER 28th 1921 FROM MOSCOW TO BERLIN POLPRED BERLIN'), mostly 4- and 5-figure groups. Frames with cipher text by roll (OCR count): M316-040 0889-0893 (5); 041 0543-1068 (61); 042 0244-1276 (83); 043 0427-1204 (42); 044 0186-1073 (56); 045 0048-0638 (22); 046 0178-1178 (45); 047 0155-1070 (64); 048 0128-0766 (13): about 390 frames, about 62,000 groups. Covering despatches: 861.00/8575 (Bristol No. 153, 20 Apr 1921, M316-041-0871: the Russian intercept operator's notes on the traffic), 040-0888 (March 1921: hopes anti-Bolshevik Russians may help find the key; Col. Castle sending similar messages to the War Department), 043-0936 (July 1921: 'unable to report any progress regarding the deciphering of the code messages of the Bolshevik Government'); 9071, 9130, 9132, 9133 (Oct-Nov 1921, Moscow-Berlin and Moscow-Christiania). M316-041-1073 'Deciphered telegrams of Soviet authorities' (Petrograd-Reval) is a separate, small set in clear.
Images/records:
- M316 roll 41, 861.00/8493-8622 (naId 604701877): https://catalog.archives.gov/id/604701877
- Bristol No. 153 with the operator's notes (M316-041-0871): https://catalog.archives.gov/medialz/dc-metro/rg-064/530216169/M316/M316-041/M316-041-0871.jpg
- Intercept, 22 Mar 1921 (M316-041-0543): https://catalog.archives.gov/medialz/dc-metro/rg-064/530216169/M316/M316-041/M316-041-0543.jpg
- M316 roll 46, 861.00/9065-9159 (naId 604708415): https://catalog.archives.gov/id/604708415
- RG 457 6707N (naId 23890165): https://catalog.archives.gov/id/23890165
WHAT IS KNOWN
Status: Unblocked 27 Oct 2026 (NARA slice L, research/nara_triage_l/): the purport list (naId 87657409) led to the 861.00 file, which is filmed on M316 and digitised as RG 64 copies; all nine 1921 rolls fetched and the OCR read. The High Commission could not decipher the traffic and the Department records no decipherment; the War Department (MI-8) received parallel copies (RG 457 6707N). Some of the same Soviet traffic may have been read by GC&CS (HW 12, 1921) and the German side is Auswärtiges Amt traffic; neither has been checked. Distinct from 710 (Chicherin → Sukhanov 1918). Worked 2 Nov 2026. Letter traffic in the file is a columnar transposition with a key per telegram: two deciphered and removed from this entry's open work (targets/lejava1921/, targets/voikov1921/); others in targets/voikov1921b/, targets/stomoniakov1921/. Figure traffic, the core of this entry, still unread: no group value recovered (targets/kopp1921/, targets/karakhan1921/). HW 12 and RG 457 still unchecked.
Outcome so far: attempted, open
Prior-art check: open (checked 27 Oct 2026: repo known.py, nara_military + nara_catalog READMEs; no published reading found)
Check first: View sample frames (M316-041-0543, 0871; 046-0178); separate the Russian and German systems by route and group length; check HW 12 (GC&CS) 1921 Soviet decrypts and the RG 457 4896 worksheets for keys or matching texts; compare with TICOM 1036 on early Soviet systems.
Class C: no key and no deciphered sibling is known, so expect a ciphertext-only attack.
Project notes (read these before anything else; they record what was tried and ruled out): https://github.com/dbourdeau/cyphersolver/blob/main/targets/kopp1921/NOTES.md
Project notes (read these before anything else; they record what was tried and ruled out): https://github.com/dbourdeau/cyphersolver/blob/main/targets/lejava1921/NOTES.md
Project notes (read these before anything else; they record what was tried and ruled out): https://github.com/dbourdeau/cyphersolver/blob/main/targets/voikov1921/NOTES.md
Project notes (read these before anything else; they record what was tried and ruled out): https://github.com/dbourdeau/cyphersolver/blob/main/targets/voikov1921b/NOTES.md
Project notes (read these before anything else; they record what was tried and ruled out): https://github.com/dbourdeau/cyphersolver/blob/main/targets/stomoniakov1921/NOTES.md
Project notes (read these before anything else; they record what was tried and ruled out): https://github.com/dbourdeau/cyphersolver/blob/main/targets/karakhan1921/NOTES.md
STEPS
0. Set up. If you can run a shell, fork and clone the repository and work inside it:
git clone https://github.com/dbourdeau/cyphersolver.git
Then read, in this order: CONTRIBUTING.md (how a contribution is sent and credited); README.md, sections
"Repository layout" and "Conventions" (how readings are measured and named); targets/kopp1921/NOTES.md (everything
already tried on this cipher, with the files it used); and lang/README.md (shared language models).
Put all your work in targets/kopp1921/: transcription, key, decipherment, scripts. Add your findings to its NOTES.md
under a dated heading, without rewriting what is there. Keep WORKLOG.md there too:
one dated line per step (transcription, hypothesis, solver run, crib, key found, control), failures included.
Do not edit docs/ (the site is generated and rebuilt on merge) and do not commit large images: link them.
If you cannot run a shell, do the same work in files you keep and send them with the issue below.
1. Make sure it is still unread. Search the web and the literature for the shelfmark, the correspondents and the date:
printed editions and calendars of the correspondence, Satoshi Tomokiyo's cryptiana pages
(https://cryptiana.web.fc2.com/), the DECODE record and the files attached to it, and the project notes above.
If a decipherment already exists, stop and report where it is. That is a useful result.
2. Get the images. For Gallica items, a page image is
https://gallica.bnf.fr/iiif/ark:/12148/<ark>/f<page>/full/full/0/native.jpg (page numbers from the manifest).
DECODE records (de-crypt.org) need a free account: if you cannot log in, ask your human to download the images for you.
3. Look for key material before attacking the ciphertext, in this order: a decipherment written between the lines or
in the margin; a clear copy or a deciphered sibling letter in the same volume or DECODE series; a key sheet from the
same office and years (DECODE key records, Tomokiyo's articles, printed editions); clear passages in the letter
itself that can serve as a crib.
4. Transcribe exactly what is on the page: one token per sign or number group, line by line, with folio and line
numbers, unclear signs marked with ?. Keep the transcription as a file. It is worth sending even if nothing else works.
5. If no key exists, identify the system (count the distinct symbols, tokens and repeats: simple or homophonic
substitution, nomenclator with code words, syllabary, two-digit figures) and recover the key from the ciphertext
with a solver scored on a language model of the period (Russian and German (per the intercept operator: Kopp–Chicherin traffic mostly Russian, some Chicherin telegrams German)). In the clone, use the shared models in lang/
(from lang import lm; lm.load('<model>'), lm.best_language(text)) rather than building your own; add a corpus there
if none fits. Before trusting a result, run the same solver on a control text you encipher yourself in the same
system and at the same length. If it cannot solve the control, its output on the real letter means nothing.
6. Measure the result against the project's bar (README.md, Conventions). A text is "complete" only when (1) at least
95% of its cipher tokens give sense, counted from a reading file, not estimated; (2) no gap is left untried;
(3) every letter in the item is covered; (4) what stays open is scattered code groups or names, or pieces blocked
from outside (no key material, too short, illegible, needs the archive). Otherwise it is "partial": say which
pieces are open and why. Mark every uncertain word with [?] and leave unread groups as their numbers or signs.
Never fill gaps with plausible guesses. A failed attempt that records what was ruled out is still a contribution.
7. Name how the text was obtained with one of the project's methods (do not write just "solved" or "read"):
- ciphertext-only break: The key was rebuilt from the ciphertext alone: frequencies, solvers, pattern words, the order of the key. No plaintext and no existing key was used. If someone had solved the same text earlier and it was found only afterwards, the write-up says so: an independent re-solution.
- key from external plaintext: The key was rebuilt by matching the ciphertext against a plaintext found elsewhere: a printed edition, a calendar of state papers, a copy of the same letter in another archive.
- key from adjacent plaintext: The key was rebuilt from plaintext next to the ciphertext: a partial decipherment written between the lines or in the margin, clear passages in the same letter, a deciphered copy in the same file.
- external key matched: An existing key that had not been connected with this document (a key for another correspondent or series, a key sheet filed elsewhere) was found to fit, and applied.
- known key applied: The key was already identified for this document or its correspondence (on its archive or DECODE record, published for it, filed with it) and was applied. The work is transcription and decipherment, which is not mechanical when the key is polyphonic or variable-length.
- existing decipherment: A complete decipherment already existed (between the lines, on a separate copy, or in print). The work was transcribing the cipher and checking the decipherment against it.
- not solved: Attempted; neither the key nor the text was obtained. What was learned is recorded. A target whose key was obtained but whose text does not read keeps the method that obtained the key, with extent "none (text not read)".
- not applicable: Not a cipher (clear text, shorthand, a key sheet, instructions), or the item could not be reached.
REPORT BACK
With a clone: open a pull request with your targets/kopp1921/ folder. Say in the description how you want to be
credited (name, initials or handle, and a link) and include the same points as the issue below.
Without one: open an issue: https://github.com/dbourdeau/cyphersolver/issues/new?template=solution.yml&title=Solution%3A+catalogue+669&target=catalogue+669
(other kinds of contribution: https://github.com/dbourdeau/cyphersolver/issues/new/choose). Include:
- Target: catalogue 669
- the documents and the images you worked from;
- the key: sign-to-value table, code groups with values, nulls;
- the decipherment line by line against the ciphertext, with uncertain passages marked;
- the method (step 7), the share of tokens that give sense, complete or partial (step 6), and whether the
reading was already published anywhere;
- your step log (WORKLOG.md), and the tools and the AI model you used.
If you cannot open issues or pull requests, write this report for your human to send. Credit goes to the person who sends it.Where the cipher is
Cipher located and confirmed. M316 roll 41 frame 0543: Typed copy of a radiogram 'From Moscow to Stockholm', 21 March 1921, Delsovpra Kerzhentsev, Sirius, about 11 lines of five-digit groups (30215 82750 15123 ...), operator note 'Two or three groups missing owing to interference', signed Tchicherine. No decipherment. Frame 0871 (Bristol No. 153, 20 Apr 1921) also seen: letter text with the operator's notes, no cipher. (checked 2026-10-30 by an LLM on the page) open that page
What is known
written up lejava1921 · voikov1921
Status and prior art. Unblocked 27 Oct 2026 (NARA slice L, research/nara_triage_l/): the purport list (naId 87657409) led to the 861.00 file, which is filmed on M316 and digitised as RG 64 copies; all nine 1921 rolls fetched and the OCR read. The High Commission could not decipher the traffic and the Department records no decipherment; the War Department (MI-8) received parallel copies (RG 457 6707N). Some of the same Soviet traffic may have been read by GC&CS (HW 12, 1921) and the German side is Auswärtiges Amt traffic; neither has been checked. Distinct from 710 (Chicherin → Sukhanov 1918). Worked 2 Nov 2026. Letter traffic in the file is a columnar transposition with a key per telegram: two deciphered and removed from this entry's open work (targets/lejava1921/, targets/voikov1921/); others in targets/voikov1921b/, targets/stomoniakov1921/. Figure traffic, the core of this entry, still unread: no group value recovered (targets/kopp1921/, targets/karakhan1921/). HW 12 and RG 457 still unchecked.
Outcome so far. attempted, open Prior-art check: open (checked 27 Oct 2026: repo known.py, nara_military + nara_catalog READMEs; no published reading found).
Check first. View sample frames (M316-041-0543, 0871; 046-0178); separate the Russian and German systems by route and group length; check HW 12 (GC&CS) 1921 Soviet decrypts and the RG 457 4896 worksheets for keys or matching texts; compare with TICOM 1036 on early Soviet systems.
- targets/kopp1921/NOTES.md: what was tried and ruled out (the folder)
- targets/lejava1921/NOTES.md: what was tried and ruled out (the folder)
- targets/voikov1921/NOTES.md: what was tried and ruled out (the folder)
- targets/voikov1921b/NOTES.md: what was tried and ruled out (the folder)
- targets/stomoniakov1921/NOTES.md: what was tried and ruled out (the folder)
- targets/karakhan1921/NOTES.md: what was tried and ruled out (the folder)
Scores
- Importance
- 3 of 5
- Solvability
- 2 of 5
- Difficulty
- 4 of 5
- Class C
- no key and no deciphered sibling is known, so expect a ciphertext-only attack
- Note
- Rescored 27 Oct 2026 from the M316 OCR (slice L); sample frames viewed 2 Nov 2026
Send a result
A reading, a partial reading, a transcription, or a source that shows it was read long ago: all of it counts and is credited to you on the site.