Re:Show HN: I wrote an Enigma machine emulator for the Web
by edent on Monday September 16, 2019 @09:05AM
(#20983589)
This is very clever. But I think you would benefit from testing it with real users. I spend a minute clicking around and nothing seemed to work - then I noticed the low contrast text telling me to configure things.
So I configured them and it still didn't work. Turns out the "lock" setting was now hidden and I had to scroll down.
Re:Show HN: I wrote an Enigma machine emulator for the Web
by jedimastert on Monday September 16, 2019 @01:31PM
(#20986507)
History/math question: I understand that the wiring in the wheels is such that the electricity is sent through the wheels then looped back through. My question is: were the wheels completely random or did they have to be specifically designed to do that?
Re:Show HN: I wrote an Enigma machine emulator for the Web
by lubeskih on Monday September 16, 2019 @01:45PM
(#20986676)
I don't completely understand your question but I will try to answer it.
The wheels were specifically designed to do that. The internal wiring of the wheels was random, but known. For example, every "Rotor I" that exists would have A wired to E, B wired K, C wired to some other letter on the other side etc... But then "Rotor II" would have A pointing to, let's say, M, B to L ..
And yes, they were specifically designed to do that, the whole point of it was for the electrical current to travel randomly and take an unique path throughout the rotors on each key-press.
Re:Show HN: I wrote an Enigma machine emulator for the Web
by jedimastert on Tuesday September 17, 2019 @10:06AM
(#20995220)
Thanks for the response. I love the info provided. I guess my real question is this: if I wired a completely random wheel (of course making two for sender and receiver) and chucked it into an Enigma machine, would it work as intended, break some prescribed rule of the encryption, or just completely destroy the machine?
Re:Show HN: I wrote an Enigma machine emulator for the Web
by kakwa_ on Monday September 16, 2019 @05:18PM
(#20988676)
I'm probably completely wrong, but the wiring of the rotors makes me vaguely think of S-Boxes in modern algorithms. Not sure if the comparison holds to scrutiny however.
Re:Show HN: I wrote an Enigma machine emulator for the Web
by notfashion on Monday September 16, 2019 @07:10PM
(#20989475)
Each rotor implements a permutation of its input terminals. So maybe more like a p-box, but the difference is significant (only two wires in use at a any time, and one is in "reverse") so probably just thinking of it as a permutation is better.
Re:Show HN: I wrote an Enigma machine emulator for the Web
by lubeskih on Monday September 16, 2019 @09:51AM
(#20983977)
Hmm.. Not sure what is causing your problem. I was testing the software on Firefox (69.0) while writing it and it works just fine. Maybe you're blocking JS or something?
So I configured them and it still didn't work. Turns out the "lock" setting was now hidden and I had to scroll down.
Once I got that done, it worked very well.
Maybe pre-configure some default settings so it works immediately upon load. Or perhaps a short video showing its use.
https://observablehq.com/@tmcw/enigma-machine
The wheels were specifically designed to do that. The internal wiring of the wheels was random, but known. For example, every "Rotor I" that exists would have A wired to E, B wired K, C wired to some other letter on the other side etc... But then "Rotor II" would have A pointing to, let's say, M, B to L ..
And yes, they were specifically designed to do that, the whole point of it was for the electrical current to travel randomly and take an unique path throughout the rotors on each key-press.
Check out this more detailed article about the rotor wiring: https://www.cryptomuseum.com/crypto/enigma/wiring.htm
Not sure if this answers your question. I'd be happy to clear out any confusions if you're more specific. :)
http://lh.mk --> views source
http://who.lh.mkI would appreciate if you could open a more detailed issue on the GitHub repository at: https://github.com/lubeskih/enigma-emulator.
Thank you!