The "Ednigma" machine is a simpler version of the German’s Enigma machine, designed to make it easier to understand some of the ideas developed by the Poles and the British to crack the Enigma codes. Here is a comparison of the two machines:
"Ednigma" Machine |
Enigma Machine |
|
alphabet |
{A,E,I,O,C,D,M,N,R,T} |
all 26 letters |
number of plugs |
at most three |
at most ten(?) |
rotors |
two, using both |
seven, using three or four at a time |
rotor settings/ machine states |
200 |
over 17,000 |
Here is the reflector for the "Ednimga" Machine:
The "Ednigma" Machine has two rotors:
I:
II:
We will refer to the rotor settings (machine states) by a three-digit number XYZ. X tells you the ordering of the rotors (X = 0 means I is the fast rotor and II is the slow rotor.
X = 9 means I is the slow rotor and II is the fast rotor.)
Y tells you the rotor setting of the slow rotor. Y = 0 means A, Y = 1 means E,
Y = 2 means I, Y = 3 means O, and so on, following the order of the letters given in the rotors above. Interpret the rotor setting as follows: It tells you how far to the right to move in the top row of the rotor matrix. So, for example, if Y = 6, then A becomes M before it enters the rotor, E becomes N, I becomes R, O becomes T, C becomes A, and so on.
Z tells you the rotor setting of the fast rotor. We follow the same rules as above.
With each letter that is coded, the machine state increases by one. (e.g, 47, 48, 49, …). 100 is the same as 0, and 1000 is the same as 900.
To code a letter with the "Ednigma" machine, we use the following algorithm:
1. Change the letter (possibly) via the plugboard.
2. Adjust the letter due to the rotor setting of the fast rotor.
3. Change the letter via the fast rotor.
4. Adjust the letter due to the rotor setting of the slow rotor.
5. Change the letter via the slow rotor.
6. Change the letter via the reflector.
7. Change the letter via the slow rotor (in reverse).
8. Adjust the letter due to the rotor setting of the slow rotor (in reverse).
9. Change the letter via the fast rotor (in reverse).
10. Adjust the letter due to the rotor setting of the fast rotor (in reverse).
11. Change the letter (possibly) via the plugboard.
Here is an example where we code the phrase COME IN. We assume the following plugs are being used: (C T) (I M) (E N), and that the initial state of the machine is 48.
Crib: |
C |
O |
M |
E |
I |
N |
Machine State: |
48 |
49 |
50 |
51 |
52 |
53 |
Step 1 |
T |
O |
I |
N |
M |
E |
Step 2 |
N |
I |
I |
R |
R |
C |
Step 3 |
E |
O |
O |
C |
C |
A |
Step 4 |
D |
N |
R |
T |
T |
D |
Step 5 |
C |
A |
I |
M |
M |
C |
Step 6 |
O |
N |
D |
E |
E |
O |
Step 7 |
M |
A |
O |
C |
C |
M |
Step 8 |
I |
M |
R |
T |
T |
E |
Step 9 |
A |
D |
T |
O |
O |
N |
Step 10 |
I |
M |
T |
I |
E |
C |
Step 11 |
M |
I |
C |
M |
N |
T |
Code: |
M |
I |
C |
M |
N |
T |
Problem #1: Code the message NOT NICE with the "Ednigma" machine using the plugs
(A N) and (O D) and beginning with state 14.
Problem #2: Code the message DEAR TODD with the "Ednigma" machine using the plugs
(A R) and (T D) and beginning with state 98.
Click here to see the solutions to these two problems. (You will have to use PAGE DOWN to see the answer to #2. Do not page down too much, or else you will see the answers to problems #3 and #4.)
Problem #3:
You discover that the "Ednigma" machine has been used to create
the following code: R R R C N N D C
from the following crib: E D M A D M A N
Like the Bletchley crew, we need to eliminate many machine state/plug pairs. (See English work to crack Enigma for a lesson on this subject.) Come up with three pairs that we can be certain were not used.
Click here to see what plugs and machine states were used for this message. Are your answers consistent with this information?
Problem #4: Here is a code: C N M O C N C. Here is its crib: I C E M O O N
Come up with three pairs that we can be certain were not used.
Click here to see what plugs and machine states were used for this message.
An implementation of the Ednigma machine in Maple V, Release 5, is also available.