?

Log in

No account? Create an account

Previous Web | Next Web

93

Didn't sleep last night.. gave up at some daft time like 5am...

Have been working on the design side of my software Enigma Machine ever since... lots of research... found some *great* sites:Also, as always when I'm looking into Enigma, I find Robert Harris's book Enigma invaluable, and I remember various bits from the Codebreakers book (which was written by various real Bletchley Park staff, including at least one of the Cryptanalysts).

I've also waded through various sites to do with slightly more peripheral topics, Collosus, Alan Turing, the design of the Bombes to tackle Enigma traffic, the work to decrypt Lorenz traffic (which lead to Collosus). Some of these sites have provided additional insight into the Enigma machine's workings and usage.

One site I have to mention, because it is all about an utterly fascinating and brilliant man, is the one dedicated to Alan Turing.

From all that, I think I've got all the functionality figured out for a real mechanical Enigma, and I think I've got a decent design to work from now.

I've also started deriving classes, which is going well... there aren't really all that many.

Decided to use a single Rotor class, and then inherit from that to create the different instances of Rotors... overriding the wiring structure and the 'carry' notch position within each instance class. This allows me to create, say, rotors I, IV and V to load onto the Enigma machine. These would come out as class Rotor1, class Rotor4 and class Rotor5.

There will then be a RotorBay class that contains the different Rotor instances, plus some over Enigma parts... the reflector and the entry ring... I'm considering making some modifications to both the reflector and the entry wing later on, so they will both be mini-classes for now.

The RotorBay will be part of the overall EnigmaMachine class, which will also contain a Stecker class (plugboard). This Stecker class will do some nice simple mapping of characters. It's in a class to make things neater in the EnigmaMachine.. I'm sure it could probably just sit in there otherwise...

I'm too tired to start writing code right now... but I'm gonna start on the main Rotor class tomorrow... code the properties and some of the methods... enough to put the basic Rotor into a 'box' and test it. Oh, and some test-routines to populate the empty bits of the class... the wirings and so forth.