All Projects → iKevinY → ultra

iKevinY / ultra

Licence: MIT License
Cryptanalysis of the Enigma machine in Rust.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to ultra

enigma
Enigma cipher machine emulator (CLI + library) written in Go
Stars: ✭ 50 (+257.14%)
Mutual labels:  enigma, enigma-machine
pyEnigma
Python Enigma cypher machine simulator.
Stars: ✭ 44 (+214.29%)
Mutual labels:  enigma, enigma-machine
samson
Cryptanalysis and attack library
Stars: ✭ 21 (+50%)
Mutual labels:  cryptanalysis
cry
SageMath/Python Toolkit for Cryptanalytic Research
Stars: ✭ 23 (+64.29%)
Mutual labels:  cryptanalysis
cryptanalysis
Go package to perform common cryptanalysis functions.
Stars: ✭ 15 (+7.14%)
Mutual labels:  cryptanalysis
sparkle
Sparkle, Schwaemm and Esch: Lightweight Symmetric Cryptography for the Internet of Things
Stars: ✭ 20 (+42.86%)
Mutual labels:  cryptanalysis
crypto-watchdog
Crypto Watchdog is an open-source developer friendly project, periodically queries crypto market and notifies potential pumps & recently added tokens/coins via web-hooks.
Stars: ✭ 22 (+57.14%)
Mutual labels:  cryptanalysis
discovery-cli
Command Line Interface (CLI) for the Discovery Enigma Protocol developer testnet
Stars: ✭ 12 (-14.29%)
Mutual labels:  enigma
enigma-go
Go library for consuming Qlik's Associative Engine.
Stars: ✭ 36 (+157.14%)
Mutual labels:  enigma
sboxgates
Program for finding low gate count implementations of S-boxes.
Stars: ✭ 30 (+114.29%)
Mutual labels:  cryptanalysis
ENIGMA
The ENIGMA Toolbox is an open-source repository for accessing 100+ ENIGMA statistical maps, visualizing cortical and subcortical surface data, and relating neuroimaging findings to micro- and macroscale brain organization. 🤠
Stars: ✭ 66 (+371.43%)
Mutual labels:  enigma
coinwatch
Coinmarketcap console client to keep track of your crypto currency trades - are you winning or losing?
Stars: ✭ 73 (+421.43%)
Mutual labels:  cryptanalysis
enigma-docker-network-deprecated
A containarized Enigma Protocol environment to start writing secret contracts
Stars: ✭ 50 (+257.14%)
Mutual labels:  enigma
SecretNetwork
𝕊 The Secret Network
Stars: ✭ 466 (+3228.57%)
Mutual labels:  enigma

ultra Build Status crates.io docs.rs License

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].