Skip to main content

A simple yet faithful library to emulate different Enigma machines models using Python

Project description

Enigma Python library

About

Welcome to enigmapython, a Python package designed to emulate the legendary Enigma cryptographic machine used during World War II. enigmapython provides a faithful implementation of the Enigma machine, allowing users to explore and understand the workings of this historic device.

Key Features

  • Flexible Configuration: enigmapython allows customization of the Enigma machine configuration, enabling users to experiment with different rotor settings, reflectors, and ring positions.
  • Easy Extension: enigmapython is designed to be easily extensible, allowing developers to add new features or enhance the existing implementation.
  • Simple yet faithful: don't be fooled by its simplicity; enigmapython implements 100% the algorithms of many Enigma machine models, allowing to decode a message that has been encoded by a real Enigma machine and also the contrary.

Machines implementations

The following Enigma machine models (along with their rotors, reflectors and plugboards) have been implemented:

Enigma I

Scrambler Wiring Notch Implemented
Plugboard (passthrough+swappable) N/A N/A
ETW (passthrough) abcdefghijklmnopqrstuvwxyz N/A
Rotor I ekmflgdqvzntowyhxuspaibrcj q
Rotor II ajdksiruxblhwtmcqgznpyfvoe e
Rotor III bdfhjlcprtxvznyeiwgakmusqo v
Reflector A ejmzalyxvbwfcrquontspikhgd N/A
Reflector B yruhqsldpxngokmiebfzcwvjat N/A
Reflector C fvpjiaoyedrzxwgctkuqsbnmhl N/A

Enigma I Norway (Norenigma)

Scrambler Wiring Notch Implemented
Plugboard (passthrough+swappable) N/A N/A
ETW (passthrough) abcdefghijklmnopqrstuvwxyz N/A
Rotor I wtokasuyvrbxjhqcpzefmdinlg q
Rotor II gjlpubswemctqvhxaofzdrkyni e
Rotor III jwfmhnbpusdytixvzgrqlaoekc v
Rotor IV fgzjmvxepbwshqtliudykcnrao j
Rotor V hejxqotzbvfdascilwpgynmurk z
Reflector UKW mowjypuxndsraibfvlkzgqchet N/A

Enigma I Sondermaschine (special machine)

Scrambler Wiring Notch Implemented
Plugboard (passthrough+swappable) N/A N/A
ETW (passthrough) abcdefghijklmnopqrstuvwxyz N/A
Rotor I veosirzujdqckgwypnxaflthmb q
Rotor II uemoatqlshpkcyfwjzbgvxidnr e
Rotor III tzhxmbsipnurjfdkeqvcwglaoy v
Reflector UKW ciagsndrbytpzfulvhekoqxwjm N/A

Enigma M3

Scrambler Wiring Notch Implemented
Plugboard (passthrough+swappable) N/A N/A
ETW (passthrough) abcdefghijklmnopqrstuvwxyz N/A
Rotor I ekmflgdqvzntowyhxuspaibrcj q
Rotor II ajdksiruxblhwtmcqgznpyfvoe e
Rotor III bdfhjlcprtxvznyeiwgakmusqo v
Rotor IV esovpzjayquirhxlnftgkdcmwb j
Rotor V vzbrgityupsdnhlxawmjqofeck z
Rotor VI jpgvoumfyqbenhzrdkasxlictw m, z
Rotor VII nzjhgrcxmyswboufaivlpekqdt m, z
Rotor VIII fkqhtlxocbjspdzramewniuygv m, z
Reflector B yruhqsldpxngokmiebfzcwvjat N/A
Reflector C fvpjiaoyedrzxwgctkuqsbnmhl N/A

Enigma M4

Scrambler Wiring Notch Implemented
Plugboard (passthrough+swappable) N/A N/A
ETW (passthrough) abcdefghijklmnopqrstuvwxyz N/A
Rotor I ekmflgdqvzntowyhxuspaibrcj q
Rotor II ajdksiruxblhwtmcqgznpyfvoe e
Rotor III bdfhjlcprtxvznyeiwgakmusqo v
Rotor IV esovpzjayquirhxlnftgkdcmwb j
Rotor V vzbrgityupsdnhlxawmjqofeck z
Rotor VI jpgvoumfyqbenhzrdkasxlictw m, z
Rotor VII nzjhgrcxmyswboufaivlpekqdt m, z
Rotor VIII fkqhtlxocbjspdzramewniuygv m, z
Beta leyjvcnixwpbqmdrtakzgfuhos N/A
Gamma fsokanuerhmbtiycwlqpzxvgjd N/A
Reflector B Thin enkqauywjicopblmdxzvfthrgs N/A
Reflector C Thin rdobjntkvehmlfcwzaxgyipsuq N/A

Prerequisites

  • Python 3.11
  • Clone this repo, checkout the desired branch/tag and install requirements (pip install -r requirements.txt) or directly from PyPI using pip install enigmapython

Getting started

Please have a look of the examples folder

Documentation

TBD, for now... code (and comments) are the documentation

Credits/references

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

enigmapython-1.0.0.tar.gz (10.8 kB view hashes)

Uploaded Source

Built Distribution

enigmapython-1.0.0-py3-none-any.whl (23.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page