One of the keys to deciphering the
Enigma encryption system was
the probable word attack. In this attack, a guess is made as to
a word that may occur in the text. For example the guess that
the words 'fuehrerhauptquartier' (the Führer's headquarters)
exists in the following encrypted document. It is known that the
Enigma machine never encodes a letter as itself (this is also true of the
Playfair cipher and
caesar shift cipher systems). Thus:
KENMMBFZBFVNPQFZETYMENFFYWTKWTBVB ....
fuehrerhauptquartier
fuehrerhauptquartier
fuehrerhauptquartier
fuehrerhauptquartier
fuehrerhauptquartier
etc..
The word cannot occur starting in the second or third position because
the 'Q' matches in the second, and the 'E' matches in the third.
From this, it is possible to make guesses as to the locations of words.
The enigma machine was not capable of encoding
numbers, and thus rather
than '1', the word
eins had to be spelled out. This provided
the
Bletchley Park decoders many possibilities as to the correct settings
on the
Enigma machine.
The plaintext words that were assumed to be contained in the encoded
signal where called 'cribs' in the jargon of Bletchly Park. It was
these cribs that were encoded and matches where looked for.
There are many ways to avoid the probable word attack - which should
be, if not used, at least taken into consideration even with modern
encryption systems.
- Preface the message with random nonsense. Encrypted random nonsense
is very hard to decrypt and wastes allot of time for people to look at it.
This can also confuse the frequency analysis of various characters and
display arbitrary patterns that turn out to be red herrings.
- Insert nulls in long words.
The word 'abracadabra' is a nice long word with a notable pattern to it.
By instead encoding 'abraZcadaXbra', the characters are shifted - enough
to make it look like the word isn't where it actually could be.
- Use a 'burying procedure' for stereotypical or repeated parts of
a message. Examples of this include "Dear John" at the beginning of a message or "Sincerely" at the end. .sig files are excellent examples of this.
- Use a simple transposition cipher such as serration to move the text around.
This helps in making the system as unpredictable, and un-mechanical
as possible without loosing the ability for the legitimate receiver
to
decode it and understand the
message.