Cryptography and the Vigenere Cipher

Cryptography is an old game, and even better it has some extremely fascinating history. It’s use of mathematics most specifically modular arithmetic and transposition (things you will see often in the subject matter) is my favorite part. Although I wish it had some differential equations involved (my all time favorite study) when I see the mathematical challenges in cryptography I can’t resist.

WWII is where cryptography became a more serious force to be reckoned with; more complex polyalphabetic ciphers were put in play and even machines both mechanical and electromechanical began to aid faster encryption. Interesting story, a mathematician named Marian Rejewski was employed by the Polish Bureau to crack the German’s infamous Enigma machine. He used the theory of permutations and groups to crack the code which is considered one the biggest breakthroughs in cryptography history. Supposedly (and this is complete speculation) Winston Churchill knew about the planned bombing in Coventry but did nothing because he did not want the Germans to know the Enigma was cracked. I believe recently this has been debunked as a myth though.

If we go even further back in history, while there is even older evidence of cryptography in play, one of the most meaningful contributions is the Vigenere Cipher:

The “Father of Cryptography” Johannes Trithemius built the infamous “tabula recta” a polyalphabetic cipher that provided a progressive yet riggid and predictable system. This however, established a foundational framework for the next man, Giovan Battista Bellaso who made what we know today as the Vigenere Cipher, adding a repeating counter sign (key). Using modular arithmetic to encrypt and decrypt with a key you can see the process here:

http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher#Algebraic_description

I created in python a simple way to encrypt and decrypt the code, and you can find the files here:

https://github.com/CraigglesO/Ciphers

I hope to add to the list as many popular ciphers as I can. There is an international publication I can’t wait to get my paws on:

http://www.springer.com/computer/lncs?SGWID=0-164-6-134338-0

If anyone has some publications they would like to share please do. I would like to become more skilled in this area of study.