At a glanceExisting decipherment · complete
- The documents
- Twelve top-secret reports of the Japanese Army Meteorological Department to the Vice-Minister and then the Minister of War (Tōjō, Itagaki, Hata, Tōjō again), August 1938–October 1940. Each announces a Soviet key change in the enciphered weather broadcasts and gives the method and key to read it.
- Where
- National Institute for Defense Studies, Tokyo, online through JACAR, Ref. C01004558500, C01004559200, C04120597300, C01004559500, C01004816800, C01004816500, C01004816400, C01004816900, C01004816700, C01004832500, C01004832600, C01004818600. The images are all rights reserved and not reproduced.
- The cipher
- Groups of five figures, the international synoptic report, enciphered by subtracting or adding a key figure by figure without carrying. Four generations follow each other, from a fixed additive in the Far East in 1938 to Moscow tables of 1940.
- How it was read
- By the Japanese, in 1938–1940. Here the reports’ method passages were transcribed and translated, the tables of June–July 1940 transcribed cell by cell and frozen before any check, and the worked examples recomputed.
- What it shows
- The eleven rows of each June 1940 table are one 109-figure cycle, shifted; the key group only gives a starting point, so the tables could be rebuilt from a few days of traffic. The figure 0 almost never occurs in a Soviet key.
- Still open
- One figure too many in the October odd-day grid, not located; one key cell of 29 April 1940 probable (8, 6 possible). No enciphered Soviet broadcast of 1940 was found online to test the tables independently.
- Credit
- Brice Dudout (Europe chiffrée) found the reports, transcribed and checked the tables and reviewed doubtful cells on the images; sent on 29 October 2026, working with Claude agents. The British side of the system is Brian Audric’s (2000).
01 The reports
The plain text under every cipher is the international synoptic report: groups of five figures for station, cloud, weather, wind, pressure and temperature. Every system subtracts or adds a key figure by figure without carrying. key.tsv holds every key of the reports.
- August 1938, Far East. Groups 1↔3 and 2↔5 exchanged, +3 on every figure (+4 on the station index). Read the same day, ten hours after it came into service. From September 1938 one additive group per broadcast group, changed every two to four weeks.
- February 1940, Far East. Eleven symbols (0–9 and X); group 1 substituted and then used as running key for the line.
- February–June 1940, Moscow “types” 17040, 05104, 05080, 05188. One indicator figure per group is substituted and fixes the subtractor of the other four. This is the “Russian code” described from the British side by Brian Audric (Met Office IDA unit, 2000); his example deciphers by the same method.
- June–October 1940, Moscow. A key group aaabb sent in clear; 7 and X exchanged; a 109-figure cycle subtracted from the starting point the key group designates. Two tables at a time (odd and even days in Moscow), changed 10 June, 26 June and 12 October 1940. The report of 16 July 1940 encloses the four June tables complete; that of 16 October 1940 the two new grids.
02 The tables
Brice Dudout transcribed the four June–July 1940 tables cell by cell from the photographs (4 tables × 11 rows × 109 figures = 4,796 figures) and the two October grids, and froze them before any check. He then found the structure the Japanese had exploited: the eleven rows of each table are the same 109-figure cycle, shifted (cycles_109.tsv). Every station enciphered with another key yields another overlapping fragment, which is how the tables could be rebuilt from a few days of traffic. The October grids are the same thing condensed, one figure per key, the struck-out cell being the one duplicate of 110 keys for 109 positions.
03 The worked example
The report of 16 July 1940 prints one example: two stations received on 6 July 1940 at 04:00 Japan time (5 July in Moscow, an odd day, so table 3), key group 22244 (row 222, column 44). Station 1 reads 84110 03862 12212 43127 30803 00290: station 841, pressure 943.1 mb, temperature 27, wind direction code 12 force 2. Station 2 (station 933) continues in the same cycle: pressure 1013.2 mb, temperature 28. The clear text is figures, not prose: the code meanings follow the international synoptic code as summarised by Audric; the Soviet variant of 1940 and the station indexes were not checked.
04 Checks
- Rotation: 0 disagreements on 4,796 figures; 3 figures illegible on the photograph (table 3: row 111 col 99, row XXX col 11, row XXX col 88) restored from the structure as 4, 4, 2.
- Held-out example: the key stream drawn from the transcribed table equals the stream printed in the report, and the decipherment gives back the report’s clear text: 60 of 60 figures.
- Type 17040 (February 1940): the example is reproduced, 25 of 25; it settles a figure blurred on the photograph (33556). Audric’s British example: 25 of 25 with his key.
- Visual review by Brice Dudout (28 October 2026): the fifth additive of 12 November 1938 is 34235 (first transcribed 34135); the subtractor for cipher figure 6 on 29 April 1940 is badly stamped (8 probable, 6 possible); ten October cells confirmed.
- No 200-control statistical test: no key was recovered here and no language read; the keys are Japanese, transcribed and checked against the reports’ own examples. The British files (TNA HW 54/4, HW 40/31) are not digitised.
05 What remains uncertain
Count by the 95% rule, in figures: June–July tables, 4,796 figures, 4,793 certain, 3 restored from the cyclic structure, 0 unresolved; worked example, 60 of 60 certain; October grids, 218 figures, not checkable by rotation (one figure per key): in the odd-day grid 2 and 5 occur 13 times and 4 only 11, so one figure is probably misread, not located; the key list has one probable cell. The October grids are key material only, with no cipher text.
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.
Moscow broadcast, two stations received 6 July 1940 04:00 JST (worked example) not prose
Two Soviet synoptic weather observations (stations 841 and 933), deciphered with key 22244 and table 3 of the reconstructed Moscow tables; identical to the Japanese decipherment printed in the report.
Transcription
# Enciphered weather groups copied in the Japanese reports (the only Soviet cipher text in the file). # JACAR C01004832600 image 4 (folio 1104): Moscow broadcast received 6 July 1940 04:00 Japan time, key group 22244. # Groups as printed: III CLCM | WWVhNL | DDFWN | BBBTT | UCHabb | RRjjj (X = the cipher's eleventh symbol) # station 1 X3252 60155 36660 044X1 45X45 X8806 # station 2 298XX 82636 26413 4X8XX 91019 22664
Decryption
# Decipherment of the groups in transcription.txt, recomputed with decode.py from the transcribed tables. # Line 1 = cipher, line 2 = key figures (subtracted without carrying, after exchanging 7 and X), line 3 = clear. # 6 July 1940 04:00 JST = 5 July in Moscow (odd day) -> table 3; key group 22244 -> row 222, column 44. # station 1 X3252 60155 36660 044X1 45X45 X8806 99142 67393 24458 61354 15942 78616 84110 03862 12212 43127 30803 00290 # station 2 (the key continues in the same 109-figure cycle) 298XX 82636 26413 4X8XX 91019 22664 36577 82946 28213 34659 51719 22364 93300 00790 08200 13228 40300 00300
Reading
# Reading of the worked example of 6 July 1940 (JACAR C01004832600, image 4) The clear text is a weather report in the international synoptic code of the period (IIICLCM wwVhNh DDFWN PPPTT UCHapp RRjjj, as in Audric 2000 and in the Japanese 1938 annex). It is figures, not prose, so Daniel Bourdeau's 95 % rule is counted here in figures. Station 1: 84110 03862 12212 43127 30803 00290 - III = 841 (station index, 3-figure numbering before 1949; not identified for lack of a 1940 Soviet station list) - CL = 1, CM = 0 (low and middle cloud) - ww = 03, V = 8, h = 6, Nh = 2 (present weather, visibility, cloud base, amount) - DD = 12, F = 2, W = 1, N = 2 (wind direction, force, past weather, total cloud) - PPP = 431, TT = 27 (pressure 943.1 mb, a station at some altitude; temperature 27) - U = 3, CH = 0, a = 8, pp = 03 (humidity, high cloud, barometric tendency and amount) - RRjjj = 00290 Station 2: 93300 00790 08200 13228 40300 00300 - III = 933, CL = 0, CM = 0; ww = 00, V = 7, h = 9, Nh = 0; DD = 08, F = 2, W = 0, N = 0; PPP = 132 (1013.2 mb), TT = 28; U = 4, CH = 0, a = 3, pp = 00; RRjjj = 00300 60 of 60 figures deciphered, all certain (the key figures drawn from the transcribed table equal those printed in the report).
Translation
# Translation (sense of the worked example of 6 July 1940) Two Soviet weather observations broadcast from Moscow, received in Japan on 6 July 1940 at 04:00 (5 July in Moscow). Station 841: low cloud code 1, middle cloud code 0, present weather code 03, visibility code 8, wind direction code 12 (about 120 degrees if counted in tens of degrees) force 2, total cloud code 2, pressure 943.1 mb (a station at some altitude), temperature 27 degrees. Station 933: no low or middle cloud, present weather code 00, visibility code 7, wind direction code 08 force 2, total cloud 0, pressure 1013.2 mb, temperature 28 degrees. Code meanings follow the international synoptic code of 1929/1935 as summarised by Audric (2000); the exact Soviet variant of 1940 was not checked, and the station indexes are not identified (no Soviet station list of 1940 found online).
Moscow type 17040, example of February 1940 not prose
One Soviet synoptic observation (station 959), deciphered with the substitution and subtractors of type 17040; identical to the Japanese decipherment.
Transcription
# JACAR C01004816500 image 2: Moscow "type 17040", February 1940 (example in the report, five groups). 40455 56145 12425 29112 30365
Decryption
# JACAR C01004816500 image 2, Moscow type 17040 (Feb 1940): line 1 = cipher, line 2 = clear (recomputed with decode.py; the report prints 95900 01690 20203 3355[6] 85810, last figure blurred). # type 17040 (Feb 1940): substitute the 5th figure of group 1 and the 1st figure of each later group, then subtract # from the other four figures the subtractor that goes with the cipher figure (table in key.tsv). 40455 56145 12425 29112 30365 95900 01690 20203 33556 85810
Reading
# Reading of the type 17040 example (JACAR C01004816500, image 2) 95900 01690 20203 33556 85810, read with the international synoptic code (IIICLCM wwVhNh DDFWN PPPTT UCHapp): station 959, CL = 0, CM = 0; ww = 01, V = 6, h = 9, Nh = 0; DD = 20, F = 2, W = 0, N = 3; PPP = 335 (1033.5 mb), TT = 56 (-6 degrees with the convention of adding 50 to negative temperatures, plausible for Moscow in February); U = 8, CH = 5, a = 8, pp = 10. 25 of 25 figures, all certain (the blurred last figure of group 4 is fixed by the decipherment as 6).
Translation
# Translation (type 17040 example) A Soviet weather observation from station 959, February 1940: no low or middle cloud, present weather code 01, wind direction code 20 force 2, total cloud code 3, pressure 1033.5 mb, temperature probably -6 degrees. Station not identified.
Key: key.tsv
06 Sources
- JACAR (jacar.go.jp), the references above; example C01004832600 image 4, tables images 6–7 and 9–10; C01004818600 image 2.
- Brian Audric, The Meteorological Office Dunstable and the IDA Unit in World War II, Royal Meteorological Society, Occasional Papers on Meteorological History no. 2, 2000.
- The National Archives, Kew, HW 54/4 and HW 40/31 (not consulted).
- Prior work: a web search of 28 October 2026 in Japanese and English found nothing on the Japanese Army’s reading of Soviet weather ciphers or any publication of the Moscow tables.
- Brice Dudout, his write-up (site currently offline).
Folder: targets/moscowmeteo1940/ (notes, the reports’ method passages with translations, the keys, the transcribed tables, the worked examples and decode.py, as contributed by Brice Dudout).