Skip to content

Enigma machine simulator in JavaScript for didactic purposes.

License

Notifications You must be signed in to change notification settings

matheusportela/enigma-machine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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