The Breaking of German Naval Enigma
by Tony Sale | Back to Naval Enigma Index |

Tony Sale's
Codes and Ciphers

The Banburismus procedure.

Banburismus depends on the bigram tables having been built or pinched.
First, 24 hours of intercepts were collected then the bigram tables were used to decode the pair of trigrams in the two four letter groups in the header.

The second of these two, the indicator, was what the receiving German operator keyed into his Enigma machine, set to the Grundstellung for the day, in order to recover the actual wheel starts for deciphering the message.

The code breakers did not know this Grund therefore could not obtain the true start position, but they did have the indicator.

The Banburismus procedure can now be demonstarted for the U Boat signals for 29th July 1941. The complete set of decoded messages was found by me in the American National Archive(NARA) on a visit to the States in 2000. These are the German texts of the messages. I was also able to recover the Grundstellung for that day and since each message has, in red pencil, on it the wheel start positions, it is possible to re-encipher the messages to produce cipher texts as if they had been intercepted. Thus there are now 36 cipher texts available on which to try Banburismus.

You may wish to print this page to refer to whilst running the simulations.

You can print out the German texts and the cipher texts from July 1941 by opening it and running "Encipher German Signals on original starts". If you then click on the right hand panel and then use "Print" on the browser, you will print the German texts. If you click on the left hand panel and use "Print" you will print the enciphered texts.

You can also "list the original starts" by clicking it. When the list appears in the left hand panel you can also print it by using "Print" on the browser. This listing also contains the indicators and the message lengths. Some of the indicators were penciled on the archive documents, the others have been reverse engineered by enciphering the start trigram at the Grund.

Remember that what the code breakers would have had were the indicators, not the starts. Next sort the indicators into order. Scroll down the right hand panel on "July 1941" until "Sort original Indicators" appears and click on it. Again, you may wish to print the sorted indicator list.

There are only two indicators with the first two letters the same, EJK and EJP. Message numbers 25 and 17. At this stage there is no way of knowing which of these two enciphered into the earliest (lower letter) start. So the sliding of the Banbury Sheets would have to be done first with one sheet on top and then with the other one. However we can cheat by using the knowledge that message 17 has the lower start to save effort.

Now click here to re run "July 1941". Click "Encipher German Texts" and scroll down the right hand panel and click on "Set Banbury sheets". (the default message numbers are 17 and 25).

Now "Move Right" noting the hole counts as you go at increasing offsets.

The count reaches 9 at an offset of 9 and is smaller than this further on. An offset of 9 corresponds (as we know) to the difference in start positions bewteen ICN and ICW.(Note: an offset of 9 means that the Enigma right hand wheel advances 9 places to get from N to W)

But the code breakers would only know from this that the messages with indicators EJK and EJP possibly set in depth with an offset of 9 letters They would not yet know the absolute values of the letters at each end of this offset.

More information is needed from the intercepts but there are now remains only some messages with indicators with the same first letter to be considered. By looking at the sorted indicators list you can see the problems with this.

For instance you can see that, as with the third letter, there is no direct correlation between the middle letter distance between two indicators and the resultant message start middle letter. Now also the message length comes into focus. With differences in middle letter we are talking about possible multiples of 26 differences in the depth positions. The maximum message length is 369 characters (it should never have been more than 250 characters) and these actual messages average 153 which is a maximum of 5 alphabets still allowing for overlap to get a hole count score. Thus the message start middle letters can only differ by max 5 letters. But there is no way of knowing this from the middle letters in the indicators.

The code breakers would just have to try the lot, and a day's intercept would be over 200 messages.

That was the real life situation but we can take advantage of some inside information just to progress things further. Knowing the actual starts, message pairs 13,22 32,21 23,08 11,15 look worth trying. Click here to re run "July 1941". Click "Encipher German Texts" and scroll down the right hand panel and enter the message numbers 13 and 22 in the "Compare messages" boxes. Now click on "Compare just two Ciphers". The left hand panel will show the hole counts at increasing offsets. You can do exactly the same using Banbury Sheets but this quicker.

This gives no hole counts over 7 and the reason is the short length of message 13, only 49 characters. This also applies to messages 32 and 23 so try the 11,15 pair which are a bit longer. Alter the text box contents by "Compare messages" and then click on "Compare just two Ciphers" again.

Neither 11,15 or 15,11 show a clear maximum count.

So that's it, it is just not possible to find enough messages with the right characteristics in such a small sample for Banburismus to work. I had been told that at least 200 intercepts were required before it was worth trying Banbarismus.

Using Test Starts

But it is possible to cheat sightly in order to demononstrate the Banbarismus technique. In the demonstration "July 1941" is a set of test starts which can be selected rather than the original 1941 starts. These have been selected to cover a restricted range, all with the same first letter and with a restricted range on the middle letter. These could have been selected out from a large batch of over 200 intercepts.

You can see all this by clicking here to run "July 1941" on test starts. Now scroll down and click on "Encipher German Texts on Test Starts". You can now list and print the test starts and the reverse engineered indicators by clicking on "list the test starts" and by scrolling down to the bottom you can print a test starts list sorted on indicators by clicking on "Sort test Indicators".

You could now work on these in pairs with Banbury Sheets but an easier way is to let your computer take the strain and get all combinaions of messages in one operation, but it takes a long time, up to 20 minutes to do all 32 messages. To do this scroll to "Compare from message number .. " and enter 01 in the first box and 32 in the second. Now click on "Compare all Test Ciphers". When the slow running Alert box comes up click on "No".

When the listing appears, click on the left hand panel and then print it. (19 pages). The printing does not extend far enough to the right for some depths and large offsets. You need to scroll the right hand panel to show these and add them by hand to the printout.

I have shown an "^" at the position where the pair of messages are in depth and you can immediately see that even with this test set not many pairs give a maximum at this point.

By going through this printout and looking for the indicator pairs that give a clear maximum at the indicated point, the following depths can be found. They are listed with message numbers then as per Bletchley Park as "First Indicator plus offset equals Second Indicator"
01,14 DXL + 26 = DIL
01,15 DXL + 28 = DIO
02,05 DXO + 6 = DXE
02,06 DXO + 8 = DXW
02,08 DXO + 12 = DXZ
02,14 DXO + 24 = DIL
03,06 DXI + 6 = DXW
03,14 DXI + 22 = DIL
03,21 DXI + 36 = DIC
04,28 DXZ + 48 = DAO
05,06 DXE + 2 = DXW
05,14 DXE + 18 = DIL
05,21 DXE + 32 = DIC
06,07 DXW + 2 = DXD

    06,29 DXW + 46 = DAI
    07,29 DXD + 44 = DAI
    11,25 DXR + 28 = DIK
    12,14 DXK + 4 = DIL
    14,15 DIL + 2 = DIO
    14,17 DIL + 6 = DIZ
    15,22 DIO + 14 = DIV
    17,18 DIZ + 2 = DIE
    17,19 DIZ + 4 = DIW
    17,20 DIZ + 6 = DID
    17,22 DIZ + 10 = DIV
    20,21 DID + 2 = DIC
    21,31 DIC + 20 = DAE
    29,31 DAI + 4 = DAE
Any offset greater than 26 can have 26 subtraced from it. For instance the second pair, 01,15 is interpreted as the middle indicator letters encipher into two adjacent letters whilst the third letters encipher into two letters at 2 offset.

So start with right hand letter "O" since this is the most frequent.

O<-6->E in 02,05 (meaning O and E encipher into letters at 6 offset)
E<-2->W in 05,14
O<-8->W in 02,06

Now this can represented by:


In this way the complete network of offsets can be built up for most of the depths, remembering that the direction of offsets might be backwards and modulo 26 ie 26-offset. The result, which you can verify with some patience, is:


Now the magic trick is to find the absolute letters for the indicator letters.
(A P Mahon in his History of Hut 8, calls this "Scritching")
It involves writing the above letters at the right spacing onto squared paper and then sliding the letters under a repeated alphabet looking for a place where no contradictions or crashes occur.


This is the correct position with no crashes and CO and EI confirmed.
(You can verify that this is the only possible position)

This reconstructs a partial alphabet for the right hand Enigma wheel at Grund+2. But more importantly identifies the right hand wheel as wheel I because that is the only wheel whose turnover (R) falls outside the U to O range in which there cannot be a turnover.

It was usually possible to be certain of the right hand wheel number, and most times to get the middle wheel as well.
This would reduce the number of wheel orders to be run from 336 down to possibly 20.
If a good crib was available this could be run on the Bombes, otherwise a special menu could be built up based on the trigram distances.
If you really want to experiment you can edit the wheel numbers, to say 372, and then go through the whole procedure again, enciphering the German texts on test starts and a Grund of wheels 372 or 274 or anything else that takes your fancy. You can also modify individual test starts to try various effects. What you can't alter are the German texts without modifying the Javascript.

Happy Banbarismusing!

This page was originally created by the late Tony Sale
the original curator of the Bletchley Park Museum