Enigma Cracker

About the Project

The basic idea behind this software is explained on the home page. Here I am going to describe in more detail my motivations behind making this into a project, what it can be used for, how it works, and where it sits right now.

First of all, I'm not indending that this be used as any sort of serious codebreaking tool. Basically, I have no purpose besides a little recreational, hobbyist codebreaking activity, and also I wrote it for the purpose of challenging myself with the C++ language, and also with cryptanalysis and programming in general. That's what I'm hoping you will find this useful for--not relying on it to dig up dirty little secrets that you stumble across, but rather to learn something useful.

I made this into a SourceForge project simply because I thought that maybe someone other than me would find something interesting or useful in the work that I'm doing. It then occurred to me that maybe someone who knows more about this kind of thing than me (shouldn't be too hard to find a few of those) could bring what they have to the table and help the rest of us along. If you're that person, feel free to email me (link on homepage) and request developer access if you wish.

In the coming week or so I'm expecting to write a detailed description of the algorithm that will actually crack the code--however, I haven't actually developed and fine-tuned that just yet, although I do have a rough idea going in my head. (Check this page for updates on that.) What I can tell you now is that the centerpiece of the whole operation is a collection of C++ classes that simulate an actual Enigma machine. That code is centered in the Enigma.cpp and Enigma.h files in the codebase, and refers to the other files that contain the code simulating other components of the machine.

As of right now, the Enigma machine code is almost complete. There are a few logic issues that need to be worked out, and some bugfixing that needs to happen. See the TODOs page for more details. Basically there are still some features that need to be implemented. The rest of the existing code is intended to be a simple driver that can either take files from the command line or from STDIN/STDOUT and encrypt a file to itself. There are still some logic errors in the Enigma machine code, as this isn't quite working properly.

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.