P1030680: Unbroken Enigma message (U534, 01 May 1945)
enigma.hoerenberg.com
enigma.hoerenberg.com
Until a WREN noticed that the message never contained the letter Z.
One weakness of that generation of Enigma was that it could not self-encode a letter. That is, A was never encrypted to A.
This had no letter Zs. A statistical improbability. Unless, so she reckoned, the entire message consisted of only the letter Z repeated.
Apparently, their best guess was that a bored soldier sent a stream of Zzzzzz to a friend. That was enough to crack that day's key.
Of course, every guide at Bletchley has a range of stories they tell credulous geeks. But it is a delightful tale of how OpSec is everything.
There were tons of bogus messages where the wheels were set to whatever German teenager’s favorite four letter swear word was.
So yes but it was hard so they also took advantage of operator error where ever possible.
This stack exchange explain it well: https://movies.stackexchange.com/questions/30332/why-does-th...
(Really, the biggest reason I had against posting it was the knee-jerk reaction some people will have towards presumed Apple fanboys preempting any consideration that an idea could be relevant. It might be worth giving that a thought.)
Did you use the one at Bletchley park too?
I tried to go back to use it again but it had been stolen and the one they had was locked away behind glass.
That sucks that someone would steal it. Being able to go hands on with one is such a cool experience.
https://www.plushbeds.com/blogs/green-sleep/how-did-the-lett...
That's not just "a weakness", that is afaik the central weakness that allowed the breaking of the enigma in the 30s by Polish codebreakers.
Probably more of a flaw if your message is in German or US English.
I found this:
https://crypto.stackexchange.com/questions/33628/how-many-po...
which says the key space is something like 10^20 or 10^23.
A modern supercomputer does something like 10^18 FLOPS. I assume that an enigma decryption is considerably more than a single floating point operation, but presumably just a few orders of magnitude.
So... if I'm reading that right, we're talking about months, perhaps?
Give or take a few centuries, it's very far from the age of the universe.
TL;DW: With some clever tricks, and the advantage of hindsight, it can be done reasonably quickly on a modern computer.
It's still extremely cool, don't get me wrong, but I don't think it's really what OPs asking. Given what's mentioned in the video (~12:50) and what some other commenters have mentioned I get the impression an actual brute-force is not really practical.
It's text. It's not something formatted.
If I encrypted a JSON string, gave it to you, you can brute-force all day trying to parse the output as a JSON string. If it works, you probably have it right.
But here? Because of how the Engima machine works you still get an output. And since we don't need to decode this output (like JSON to an actual JavaScript Object) we don't have that many ways of validating the output.
It's German from 1945. Abbreviations, different (older) spelling, spelling mistakes, ... all make it really hard to distinguish real output from incorrect output.
This gives you some crude form of error checking.
The rest of it as you mentioned makes it difficult to determine, data mining the possible results for common abbreviations from other plaintext could narrow.It down.
Sure, you could argue that it’s not quite as unambiguous as JSON but, in the realm of all possible plaintext, I’d say JSON and 1945 German aren’t too far apart in terms of likelihood of getting a false positive on a string of non-trivial size.
If you want a bit more certainty you could just try it on another string (which is the next step in the process either way), and then another. At least to me the constraints of “German and a char doesn’t map to itself” seem like pretty limiting factors here.
Also, I agree it doesn’t reduce the search space but I think the post I was replying to was talking more about difficulty of verifying the correctness of a decrypt that reducing the search space. That was definitely my point ant least. Either way, as you say, this definitely doesn’t reduce the search space.
For English, about 13% of letters are "e", so if the frequency is too far off that it is probably not the right key; likewise, if 13% of the letters are "z" it is also not likely to be the right key. By applying frequency checks to the most and least common letters it should be a fairly strong filter for plausible keys.
UUUVIRSIBENNULEINSYNACHRXUUUSTUETZPUNKTLUEBECKVVVCHEFVIERXUUUFLOTTXXMITUUUVIERSIBENNULZWOUNDUUUVIERSIBENNULDREIZURFLENDERWERFTLUEBECKGEHENXFONDORTFOLGTWEITERESX
There's enough code language being used in these messages that frequency analysis is not going to a major help (especially since it doesn't work well on very short texts anyways).
From what I can gather this says something like:
To U4701 Sync message, Lubeck base, From commander 4th U-boat fleet, go with U4702 U4703 to Flender Shipyard Lubeck, more to follow
It's less gibberish than it looks like at first. They really shot themselves in the foot by not having numbers on the enigma system, this would have really made messages much shorter because they had to write them all out.
There's so much specific jargon in there that would make it really easy to detect a correct message IMO. Just make a simple list of very common words and tally up.
Indeed frequency analysis wouldn't work though but it's still pretty possible IMO.
The machine works a bit weirdly, in that as you find some correct settings, your results converge towards the legible result. You can get 95% of the settings correct, and produce quite legible results, at which point you stop solving. So the correct result there might actually be any other three char combo like "ABC" or "UAK", but the analyst stopped investigating, because the rest of the message was reasonably legible.
vier -> vir
sieben -> siben
nul -> null
---
Given that the message is decrypted from German, it seems to be a mix of letters and numbers that are likely military terms, geographical locations, and orders. Here's the translated meaning:
"Vier fünf null eins Y nach R. Stützpunkt Lübeck. Chef Vier. Flotte Mit Vier fünf null zwei und Vier fünf null drei zur Flender Werft Lübeck gehen. Dort folgt Weiteres."
In English, this roughly translates to:
"Four five zero one Y to R. Base Lübeck. Chief Four. Fleet with Four five zero two and Four five zero three go to Flender shipyard Lübeck. More to follow there."
This appears to be a set of instructions for a fleet of ships, possibly submarines (given the context of WWII and German naval operations), directing them to a particular location (the Flender shipyard in Lübeck) and notifying that further instructions will be provided upon arrival. "Four five zero one", "Four five zero two", and "Four five zero three" are likely codes for specific ships or units in the fleet. "Y nach R" could be coordinates or specific route instructions.
https://enigma.hoerenberg.com/index.php?cat=The%20U534%20mes...
> Interpretation (preliminary):
> [An] U-4701, nachrichtlich [an] U-Stützpunkt Lübeck von Chef 4. U-Flottille: Mit U-4702 und U-4703 zur Flender Werft Lübeck gehen. Von dort folgt Weiteres.
> Translation (preliminary):
> [To] U-4701, for information [to] Submarine Base Lübeck from Chief of 4th Submarine Flotilla: With U-4702 and U-4703 go to Flender Dockyard at Lübeck. From there more follows.
I find it interesting that it pulled some kind of interpretation from the string. Far more than I would have. I asked it to translate the English data back into a similarly plaintext string and then asked a second instance to decode it and it came back with a similar, slightly distorted response.
The point is more to say that a language model is exactly the sort of thing that would be used to determine whether a given potentially decoded plaintext string is actually decoded, and given various anachronisms and shorthands our personal language models may not be adequate.
But a giant one that's been fed all sorts of data including examples of text of similar usage sounds actually like it might be exactly the tool for this problem.
With a modern block cipher, a partial key doesn't help. If you have 120 bits of a 128 bit AES key or whatever, decrypting the cipher text with your partial key will give pure noise. Even if you flip just one random bit in the key, the decrypt will be indistinguishable from complete randomness. Not so with Enigma; if you have parts of the key correct, parts of the rotor settings correct, parts of the wheel selection correct, patterns in the plaintext will show up as patterns in the ciphertext. The more of the key you have, the more those patterns will show up when you run the decryption routine against the ciphertext.
Natural language has a quirk where letters are more likely to be repeated. If you calculate the percentage of letters that are repeated, this gives you the incidence of coincidence. Incidence of coincidence is preserved by a partial Enigma key. So in that particular plaintext, all those repeated UUUs, those repeated NN, those XX and TT, those will light up like quasars.
Incidence of coincidence analysis should just tell you outright what all of the rotor settings are. From then you'll need someone familiar with German and the code language to be able to figure out the plugboard settings, but that's not as difficult as you might think.
Also going for longer cribs such as NUL, EINS, ZWEI, DREI etc proves generally fruitful. There is also a story about the crib HEILHITLER toward the end of a message being particularly useful for code breakers but I don't know if that is genuine or contemporary disinformation to cover true code breaking capabilities, akin to the story of carrots being good for darksight[1] as cover for improved radar capability.
[1] https://www.smithsonianmag.com/arts-culture/a-wwii-propagand...
I'd make a fast approx check for some of these properties that can run during brute force, then feed anything that passes that check to a better check, then finally to a human (maybe nowadays put an LLM before the human stage).
There's a chance to miss the translation if it doesn't match other messages but this seems like a decent approach.
Edit: Though it might have been that purely electronic cryptographic machines were just cheaper and stronger by that point.
Given that the message is corrupted and the recipient with the key couldn't decode it, it's not surprising that the message remains unbroken. Even brute force isn't going to work if you start with garbage.
https://web.archive.org/web/20230626181049/https://enigma.ho...
(I wasn't expecting this to hit #1)
- 6 days after US and Soviet forces linked up bisecting Germany
- 1 day after Hitler's suicide
- 5 days before the unconditional surrender of the Flensburg Government
I may be biased, After reading wheel of time, nothing seems too long anymore!
It is a decent book to read once though.
Animal Planet made a fake documentary about Mermaids (a somewhat hokey one at that), with a disclaimer that it was a work of fiction.
Despite that, it's convinced a generation of fools that mermaids are real.
https://www.snopes.com/fact-check/mermaids-the-body-found/
But back to the internet. Plenty of youtube clips from this program where commenters are insistent that it's evidence that Mermaids are real. And comments linking to the footage of the disclaimer, and resulting dumb arguments. Still! In 2023!
I love a bad/earnest low-budget movie. I think they are often much more revealing about the nature of culture, cinema and art than -- to pick a single counterpoint -- really anything in the MCU except Age of Ultron [0].
There were plenty of things in that to like. I watched it only recently, I'm glad they made it, and I hope the people who make it continue to reject the big bucks.
[0] This is a hill I will die on. Almost everything in the MCU is pointless dross except James Spader as Ultron.
See also, Finnegan's Wake. For instance, here's a nonsense claim that sounds plausible: Finnegan's Wake is the best book about the Irish Civil War. You feel the frenzy and delirium of the lucid somnambulism that comes with insomnia on the battlefield. As foggy and vivid as war, the words carefully balance the interregnum between the forbidden, forgotten and forsaken laid bare as poetry. Nothing is clear and there is no closure. It shows how hard narratives are to cobble together using shattered pieces. The deconstruction of the language is married with the deconstruction of life as belligerents fight over conflicting dreams.
Better starting hook that the Last Resort series (US nuclear submarine with intercontinental ballistic missiles refuses weird orders, is fired upon by the US Navy, and decides to occupy a fictitious island).
They could be scored by decrypted content matching structure of priors and context. Along with char difference from the encrypted message on record.
"In the old days, if someone had a secret they didn’t want to share, they went up a mountain, found a tree, carved a hole in it, and whispered the secret into the hole. Then they covered it with mud and leave the secret there forever." - Wong Kar Wai/In The Mood for Love
An enigma message would be typed in to the machine and the output characters written down on a piece of paper, then the message would be transmitted over Morse by hand, transcribed to paper at the other end, then typed through the correspondingly configured Enigma machine to obtain plaintext.
IIRC a transmission started with the rotor settings for the rest of the message encrypted using the daily setting and sent twice. Even sending this much, such that both copies communicated the same setting, would reveal that Enigma was compromised, I think.
Once you have a few months experience in Morse code you are able recognize who is "talking" by the way they operate the key. The radiomen would know pretty quick if some new guy came started sending them bogus messages.
For all we know, some bored German submariner sent garbage over the radio as protest; this message was sent two days after Hitler committed suicide, 7 days before VE day. (8 days if you're of the Soviet persuasion) Morale and discipline has a tendency to break down under those circumstances.
Or it could be a transcription error. Modern cryptanalysis tends to be more resilient to transcription errors; one character wrong is gonna be ok, one character inserted/deleted will tend to produce two messages, one with garbage after the insertion/deletion and another with garbage before it. But Enigma messages were...terse, so a half-successful decrypt that gets half garbage and half plaintext might still be recognized by the cryptanalysis algorithm as the wrong key. I expect there would have to be at least two transcription errors to cause both the original German commo to be unable to decrypt it and modern attempts to fail.
Decoding using enigma was our last question. The word "That's all folks" was encoded in five different ways & configuration for enigma machine would keep changing according to the time of the day. We took reference from computerphile videos & people really loved solving this.
We redirected them to an online enigma decoder (Forgot the link)
Good old times :-)
(A funny sidenote was that he wasn't and admin in our school and had now way of deactivating the screensaver then to walk from desk to desk every 14 minutes and move the mouse.)
Message decrypted but what could it possibly mean?? Raises more questions than answers...
UND REISIND HERZIG ABER MISATOKATSURAGI IST BESTE MADCHEN.
https://ovid.cs.depaul.edu/Classes/CS233-W04/Papers/PurpleMa...
Japan today still hasn't fully grokked how encryption works, as evidenced by the widespread corporate practice of "PPAP", which means sending sensitive info as a password-protected zip file via email, then sending the plaintext password in a separate email to the same recipient address.
https://ja.wikipedia.org/wiki/PPAP_(%E3%82%BB%E3%82%AD%E3%83...