01 · the message
Decrypt it here
An Enigma I running in your browser with the recovered key.
BSB
indicator BSB NTK
WEGEN FERNSPRECHSTOERUNG TAGESMELDUNG SOFORT DURCH FUNK HIERHER
“Telephone line down. Send the daily report here by radio, now.”
ReflectorB
WheelsV IV I
RingsE X T
PlugboardAU BI CY ET FL HK MP NR OX QV
Message keyTZU
02 · the method
Anneal every rotor position
No guessed words. Simulated annealing on the plugboard at every position, then rescore what survives.
27,418,560
rotor positions, all 60 wheel orders
GPU · 128 anneals each
2,147,043
plugboards that look like German
n-gram score
23,878
rescored by words, indicator, lazy key
CPU · stage 2
1
reads as German
V IV I · EXT · TZU
03 · the signal
The score couldn't find it. The evidence could.
14,877th
by n-gram score alone
1st
by combined evidence: 25.1 vs 19.85 for the next
04 · 1941 radio noise
Five letters misheard in Morse
The receiving operator wrote down a few wrong letters. Three are one lost dot or dash.
pos 7
.-.. vs -
pos 10
--. vs --.-
pos 11
-.- vs --.-
pos 25
.-. vs .
pos 50
.-. vs .-..
05 · the source
The original form
06 · verify
Check it yourself
git clone https://github.com/n4ze3m/enigma-jbiyh-break.git
cd enigma-jbiyh-break
python3 verify.py # decrypts JBIYH with the recovered key