Enigma machine simulator in JavaScript for didactic purposes.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
LICENSE
README.md
enigma.html
enigma.js
main.css
test_enigma.js

README.md

enigma-machine

Enigma machine simulator in JavaScript for didactic purposes.


As part of my #100DaysOfCode initiative, I developed an Enigma machine simulator from the ground up. For about three weeks, I’ve studied the machine technical details, wrote the simulator code in JavaScript and Node.js using a Test-Driven Development approach, created a web interface, and documented the steps in blog articles.

This is a simulator for the Enigma machine, one of the most incredible applications of cryptography during World War I and II. German militaries would send encrypted messages through the air using telegraphs about bombing locations with security, considering one would have to know the precise combination of rotor positioning, plugboard configuration, and other pieces in order to decode captured messages.

Even though several weaknesses were discovered - specially by the Allies forces - allowing one to break the code, the Enigma encryption algorithm is a fun way to study a little bit of cryptography.

Of course, studying the Enigma is also a tribute to Alan Turing.

Web interface

http://matheusportela.com/enigma/

References