Cracking Enigma

The Enigma Encryption
System
Andrew Regan
CSC 290
Key Components for Encryption/Decryption
• Plugboard
• 3 Rotating
Removable
Rotors
• Reflector
Sample Encryption/Decryption
Enigma
Enigma Properties
•
•
•
•
3 rotors  26x26x26 = 17,576 initial settings
Rotor order  3x2x1 = 6 possible arrangements
Swapping 6 letters  100,391,791,500
Approximately 1016 = 10,000,000,000,000,000
keys
• Later versions of the Enigma had even more
keys.
– Swapped more than 6 letters
– Selected 3 rotors from set of 5
Ciphertext-Only Attack
Developed by James Gillogly.
Step 1:
Step 2:
• Find initial rotor setting and
rotor order.
• Uses Index of Coincidence.
z
IC 
 f (f
i a
i
i
 1)
N ( N  1)
• Iterate through all possible
initial rotor settings and rotor
orders with no plugboard.
• Largest IOC is the most
likely rotor arrangement.
• Uses rotor settings from step
1.
• Finds one new plugboard
setting for each iteration.
• Decrypt the text with every
possible character pair.
– 25x26 = 650 pairs.
• Trigram analysis on the 650
decrypted texts. Add the
setting to the plugboard with
the best decrypted text.
Ciphertext-Only Attack Step 1 Results
120000
100000
I
n
d
e
x
o
f
80000
60000
I 40000
O
C
20000
0
50
100
150
200
250
300
350
Number of Characters
400
450
500
t01
t02
t03
t04
t05
t06
t07
t08
t09
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
t25
t26
t27
t28
t29
t30
t31
t32
t33
t34
t35
t36
t37
t38
t39
t40
Ciphertext-Only Attack Step 1 Results Cont.
# Characters
Avg. IOC Index
out of 105,456
# Characters
Successful
Decryptions
50
19405.025
50
0.0
100
10059.05
100
0.0
150
2878.45
150
.1
200
453.725
200
.3
250
91.75
250
.475
300
10.6
300
.675
350
1.15
350
.875
400
.2
400
.925
450
.05
450
.975
500
0
500
1
Current Trigram Results
• Attempted analyzing text based on most probable
trigrams in English plaintext.
– +1 for “good” trigram, -1 for “bad.”
– Highest score wins.
– To many swaps initially to be accurate.
• Currently working on developing trigram statistics for
partially decrypted Enigma texts to use in the initial
rounds of finding the plugboard settings.