image thumbnail

Enigma

version 1.1.0.0 (6.05 MB) by Matt Brauer
Enigma M3 Emulator

2.3K Downloads

Updated 12 Oct 2017

From GitHub

View license on GitHub

Editor's Note: This file was selected as MATLAB Central Pick of the Week

Enigma M3 Emulator
This is a MATLAB App for simulating the Enigma encryption machine. It specifically emulates the M3 variant of the machine used during World War II by the German army.
To run the app, type the following at the MATLAB command prompt:

launchEnigma

Perform encryption/decryption by clicking on the round keys at the bottom of the machine. Your input and the machines output will be recorded on the tablet on the right of the App. Keyboard input can also be used.

You can configure the machine in a variety of ways. Click the rotor icon on the top-right of the machine to modify the :
•rotor types
•ring offsets of the rotors
•reflector type
•plugboard connections

You can also modify the position of the rotors by hovering over the rotor images and using the scroll-wheel of the mouse or dragging up or down with the left mouse button pressed.

You can also run the simulation completely from the MATLAB command line. See the startHere.m file for a demonstration.

Related links:
Alan Turing and His Connections to MATLAB
http://www.mathworks.com/company/newsletters/articles/alan-turing-and-his-connections-to-matlab.html

The Enigma Machine and MATLAB
http://www.mathworks.com/videos/the-enigma-machine-and-matlab-107967.html

Contributors to this App were Corey Lagunowich, Cesar Rivadeneyra, Adam Sifounakis and Sean de Wolski

Cite As

Matt Brauer (2021). Enigma (https://github.com/mathworks/Enigma), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2015a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.