Ultra
Cryptanalysis of the Enigma machine in Rust.
Install / Use
/learn @iKevinY/UltraREADME
ultra

ultra is a Rust implementation of the Enigma machine that includes the
ability to decrypt ciphertext.
Installation
ultra can be installed from crates.io using Cargo:
$ cargo install ultra
Usage
Encrypt a message with rotors 1-4-2, key setting D-O-G, and ring setting C-A-T:
$ ultra --rotor=142 --key=DOG --ring=CAT "The quick brown fox jumps over the lazy dog."
Ntz ntqlz jmwll art bbnow wzqk keq ievk lzo.
Encrypt a message using random Enigma settings:
$ ultra --randomize "The quick brown fox jumps over the lazy dog."
Kxj mcwzf oqgmz pwr vnfqq iwhv wcr qqgt lgd.
> Rotors: 5-2-3 / Key: A-A-G / Ring: N-W-Q / Plugs: CG EZ HW IJ MP TY
Attempt to decrypt a piece of ciphertext:
$ ultra --decrypt "$(cat ciphertext.txt)"
...
Decryption relies on a combination of index of coincidence, bigram, and quadgram frequencies to infer the original Enigma machine settings, and as a result, it is quite likely that messages shorter than 500 characters will not come anywhere close to being decrypted correctly.
References
The original version of this project was based on James Lyons' articles about the Enigma machine (see this blog post for a brief overview). As of version 0.6.0, the decryption algorithm was updated, inspired by this Computerphile video.
License
ultra is licensed under the MIT License.
Related Skills
himalaya
339.5kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
339.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
coding-agent
339.5kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
