Enigma Cracker
TODOs
You are at Home : TODOs
- Cracking Algorithm
- We need to develop a specific, polished algorithm that will be used to do the actual ciphertext
cracking. The basic idea I have in my head is that the machine will encrypt a string of one plaintext
letter (such as "EEE...") using each possible machine setting (the user will eventually have options
to set constraints on which settings are used, to limit execution time), and then compare correlation
between the resulting ciphertext, and the ciphertext of the message to crack.
- Support for multiple cracking methods
- One thing that could make the program a bit more useful is multiple methods of cryptanalysis,
and the user would have his/her choice of which method to use, primarily based on the expected
plaintext, structure of the plaintext, cribs, or whatever other information the user has on hand.
For example, we could provide a brute-force attack, an attack based on the three-letter message
key at the beginning, attacks based on cribs or cillies, etc.
- Manpage, Documentation
- A bit tricky at the moment as we don't have a program to document.
- Options for decryption process
- The user should eventually have relatively fine control over exactly how the cracking process is
run. Options should be provided to use only certain machine settings, or to define which plaintext
letter(s) is(are) used to fuel the ciphertext generator (see "Cracking Algorithm" above).
- Ncurses interface
- Eventually the user should have an ncurses-based interface that will allow an interactive
entry of decryption settings and an interactive, real-time progress indicator.
- Shared library
- It might be an interesting possibility to have the code that simulates the Enigma machine
compiled as a solib, to allow its reuse in other programs.
- Walze details
- First of all, the ring setting on each Walze needs to be implemented. Second, we need to
develop a way to deal with the varying position of the tooth on each Walze, and also the
possibility of having multiple teeth to trip the rotation of the next Walze.
- Rotor stepping order
- A bit of research has shown Enigma implementations in which the fastest rotor is not
necessarily the far-right rotor. Some models do step the middle rotor with each
key press, not the right rotor. Although it may not be very commonly used, we could
consider implementing a way to simulate this.
- Modifications to Enigma Machine
- There are a few modifications that could be made to the Enigma machine class to make
its operation a bit more flexible. One possibility is more complete flexibility in the
way that it is set up, such as allowing for any number of Walze units and the omission/
inclusion of the Steckerbrett, etc.
Page created by Mike Stunes, SourceForge developer computer_guy57.
Copyright (C) 2007 Mike Stunes.
Copyright details and other information can be found at the Legal page.