|M-209 Home Page||
IntroductionExerpt of TICOM DF-120 "REPORT ON THE SOLUTION OF MESSAGES IN DEPTH OF THE AMERICAN CIPHER DEVICE M-209".
"If I know the clear text at any position in one of two messages in depth, then, with the help of our slide, the clear text at the same position of the second message is very easy to reconstruct.
In enciphering, the clear text letters are put in on the left hand alphabet, the machine is operated and the right hand alphabet writes the cipher letters corresponding to the internal setting of the machine at the time. Our slides, then, are nothing more nor less than these two circular alphabets unrolled and set next to each other as strips which can be slid against each other.
Thus, if we know the relationship of clear-cipher at one position, the slide immediately furnishes us with the entire substitution alphabet which is effective at this position. This fact can be exploited in the following manner: a word suspected to appear in one message -- for example, a number -- can be set down at all positions of the message and, at each position, corresponding clear text in the other message can be sought. If the suspected word is actually at any position in the message, then, at the same position in the second message, a fragment of clear text must appear."
How to make stripsThe Hagelin serie C cipher machine encryption formula is: (In the same column, for a single letter):
cipher1 = ((key + slide) - plain1) % 26 cipher2 = ((key + slide) - plain2) % 26 We can calculate difference (delta): DELTA = cipher1 - cipher2 = plain2 - plain1 plain2 = DELTA + plain1Each strip contains two alphabets. The first is normal (from "A" to "Z). The second is shifted from the first of DELTA spaces. At the beginning of the strip is indicated the position of the letters in the message.
Alfred Pokorn designed a stuff which can print a strip (the two alphabets simultaneously).
I wrote a Python program which can produce strips from two messages in depth.
Here an example of producing the strips (we must then print them and cut them). It's a good idea to paste strips on wooden rods.
C:\> python difference.py First Cryptogram ? FZGYRZFDRMMZJRVTQZGV Second Cryptogram ? FZGYULMIJELMXSSEXHNG Number (the offset for first character, default=0) ?
How to use the stripsFor example, we search the probable word "ZWHEELZ". At each position we align the strips to form the probable word with the alphabet on the left of each strip. If the probable word is correct at this position, a word appears on the alphabets on the right of each strip.
At the 11th position, a word appears : "MIGHTER".