The German "ENIGMA" cipher used by the Nazis during World War II was thought by them to be unbreakable. However, "ENIGMA" had two weaknesses that enabled the eventual breaking of the code. My genius ass has discovered a way of making ENIGMA unbreakable.
ENIGMA is a "rotor-encryption" device. Basically, pressing the key for letter "A" would send a pulse of electricity first through a "plugboard", where it would be sent to a position corresponding to sone other letter, say, "Q". From the plugboard the pulse would be sent to one of three or four rotors and enter that rotor at. say, "B".
Wiring within the rotor would cause the pulse to exit at another letter, say, "L". A contact on the first rotor would cause the pulse to enter at the second rotor at, say, position "M". The pulse would exit at, say, J and enter the third rotor at "R" or whatever.
The pulse would then enter a "reflector" at some random letter and exit at another random letter, be reflected back through the rotors and the plugboard and come back as "D". A lighted display would then exhibit a glowing "D".
The method was not a simple "substitution cipher" however. Every time a key was pressed, the rotors would change position. Once the pulse reached "Z" on the first rotor, the next key-press would result in the pulse entering at, say, "R". Thus, "AAAAAAAAA" would result in - say - "QGRESVEGT".
Therin lay the weakness of the ENIGMA cipher. "A" could not be encrypted to "A". Coupled with the German tendency to type "Heil Hitler" and other such standard phrases into the encrypted messages, the code was soon broken.
The German method of encryption was at first to establish "ground settings" for all nachines on a daily basis. That is, everyone would know to set their machines to use three of five rotors in a specific order, and a specific setting of the plugboard. The sender would then type in his code key twice (to avoid transmission errors). Say the sender wanted to use the code key "EIN". He would type in "EIN EIN", which would come out (possibly) "QRE ZXD". He would then set his rotors to "EIN" and send his message, prefacing it with "QRE ZXD". The reciever would - using the standard "ground settings" - type in "QRE ZXD"; get "EIN EIN"; reset his rotors to "EIN" and decrypt the message.
Later in the war, German ctyptologists were instructed to set their machines to uniform settings as to rotor orders and plugboard settings, as usual. But there was no more standard setting for the rotors. Instead, the signal corpsman would set his rotors to some random order. Say the "ground setting" was: rotors 4-3-2; plugboard k-o, f-h, m-s. The sender wanted to tell his recipient that the code key was "KBW" He would set the rotors to - say - LKF - and type in "KBW". The result might be "PXH". He would then preface the message with "LKF PXH'. The reciever would know to set his rotors to "LKF" and type in PXH. This would yield the code key "KBW". The recipient would then set his rotors to KBW and decrypt the message.
However, as I have said ENIGMA had the weakness of not being able to encrypt a letter to itself. This is very easily corrected.
Very simply, having everyone in the network equipped with a "secondary key" - which can be varied if need be from day to day and/or among recipients - with which to decrypt nessages. Let's say you wanted to send: MEET ME AT NOON. Code it any way you want, Say you set your "plugboard" to "K-E L-B G-D F-V" and used wheels 1-4-2, Set everything according to plan, and came up with "SDFG KI OF UYLE".
BUT then you used the standard secondary "ground setting" of rotors 3.4.5 and plugboard setting "K-L J-E M-O" . Type in SDFGKIOFUYLE" and get "NBLFOPAJTELW". Note that the "A" in "at" encrypts to itself using this method.
And it need not really be all that complex, either. Standard ENIGMA encryption can be re-encrypted by simply re-setting the rotors to a pre-assigned position. Simply stated, the first encryption reduces the plaintext to gobbledygook. What made ENIGMA breakable was the relation of the gobbledygook to the plaintext. With re-encryption, the "plaintext" itself is gobbledygook, with the added benefit that letters in the original plaintext will randomly encrypt to themselves with the second encryption.
And it need not really be all that complex, either. Standard ENIGMA encryption can be re-encrypted by simply re-setting the rotors to a pre-assigned position. Simply stated, the first encryption reduces the plaintext to gobbledygook. What made ENIGMA breakable was the relation of the gobbledygook to the plaintext. With re-encryption, the "plaintext" itself is gobbledygook, with the added benefit that letters in the original plaintext will randomly encrypt to themselves with the second encryption.
Right now there are "stand alone" apps available which will work even offline. For maximum cffectiveness, you'll need to have a machine which NEVER goes online and which has one of these ENIGMA apps available. Once you have your app installed, ensure that everyone in your network has a separate machine with the same app, and that the machines NEVER go online. Once you have done that, you can send encrypted messages over the net, to be decoded by your offline machine. Your actual encryption/decryption machines must NEVER go online, as there are "keystroke-logging" technologies available. But an encoded message can be sent "in the clear" using the methods I have outlined without fear of having unauthorized parties reading it. So long as the machines actually encrypting and decrypting the message are offline, no one but you and your intended recipient will have any idea what you are trying to communicate.
Oh, and hey? Homeland Security? DO YOU IDIOTS THINK I AM THE FIRST PERSON TO THINK OF THIS?? Cripes, we are doomed.
No comments:
Post a Comment