A C++ implementation of the Enigma cipher machine, integrated with Python via Pybind11. Unlike the original, this version supports fully customizable rotors, reflectors, and plugboards, allowing for alphabets larger than the traditional 26 letters — including extended symbol sets such as all printable ASCII characters (as demonstrated in the demo notebook).
-
Fully customizable rotors, reflectors, and plugboards
Supports arbitrary character sets, including all printable ASCII characters. -
Python integration via Pybind11
Enables interactive use from Python scripts or Jupyter notebooks. -
Interactive demo notebook
Demonstrates encryption, configuration, and extended alphabet usage.
Make sure you have CMake and Pybind11 installed. Then, build the module by running:
mkdir build && cd build
cmake ..
makeCheck out demo.ipynb for an interactive walkthrough and showcase of functionalities.
This project is licensed under a GPL-3.0 license.