|
Enigma Enciphering Machine
-
Version
1.0
Here is the concept behind this representation of the
Enigma Machine:
The program uses virtual "wheels" that contain all of
the printable characters on the keyboard. Think of the
first wheel as the keyboard you are typing on. All of
the wheels contain the same characters, but in a
random, non-repeating order.
Each time a character is pressed, the location of that
character on the one wheel is used to as the index to
lift the character off of the next wheel. Then the new
character is searched for in the next wheel, and the
pattern repeats itself across each wheel. The character
lifted off of the final wheel is the output.
This step is repeated for each character in the
message. Decryption simply sends the message backwards
through a similar, but reversed process.
What really makes this encryption effective is that
like the real life machine, the wheels rotate either to
the left or right after each character. So the
relationship between each character shifts constantly.
As a result, even repeating characters such as
"AAAAAAAAAA" are represented with garbage such as
"BGPVLKHWCD".
Another great part about an encryption scheme like this
is it's flexibility. You can add more wheels, more
characters per wheel, change the order of the wheels,
the directions the wheels spin, and change the starting
position of each wheel.
NOTE: Binary files require Microsoft's Visual Basic 6.0
Runtime Library (usually pre-installed in Windows XP).
|