5-figure code of the Baltic Navy


5-figure codes were the main cryptographic system used by the Soviet Navy in the Baltic Sea during WWII. Swedish signal intelligence intercepted the traffic on a regular basis, and made efforts to break the system. Just when the Swedish code breakers were beginning to get a grasp of the code in early January 1940, the Russians changed it. Despite this, the new code was cracked and the traffic readable by May 1940!

The code was superenciphered with a so called additive, which was printed on a sheet - changed daily - having ten columns, and 30 rows with random 5-figure groups. Each row on the sheet was marked with a 3-figure number, and each column with a 2-figure number.
The first few rows of a sheet could look something like this:

 04091529335058648296
01758201100355718400472337271848310622373107451223295
02367844989448421617402902461977497823981517378504471
02744380534780571375739489216093599042638560274443826

The code clerk chose a group on the sheet at random as starting point, and formed a 5-figure indicator group by combining the 3-figure row number with the 2-figure column number. Using the mock-sheet above, and starting on row two, column two, would result in the indicator group 02309. This group was later hidden in the final telegram.
Starting at the group chosen on the sheet (=98944 following the example), the clerk then proceeded to write out one group from the sheet under each group he had looked up in the code book when doing the basic encoding of the plaintext. Then the groups were added together, figure by figure, using non-carrying addition ignoring the "tens" (i.e. 8+4 equals 2, not 12), the result of this operation being the final cryptogram.
Let's say our first group from the code book is 82697 meaning Warship "Karl Marx". Adding 98944 to this group by non-carrying addition would result in 70531.

The system was further complicated in March 1941 by performing a double superencipherment. The code clerk chose two, different starting points in the series on the sheet, and thus two numbers were added to each code group. This posed a formidable obstacle to cryptanalysis, and the new system was not broken until June 1942, more than a year later.

One final note: If you study the code groups in the scan below, you will notice that the first two figures of every group is either both odd or even, a fact which aided cryptanalysis somewhat.


Extract from the reconstructed code book showing code groups for units.
The column headings, in Swedish, say (from top to bottom, left to right)
Submarine brigades, Subs, Vessels, Aircraft, Numbers, Divisions.
Extract from the 5-figure Baltic code
Back to index page
© Torbjörn Andersson.Torbjörn Andersson Fecit