A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://crypto.interactive-maths.com/vigenegravere-cipher.html below:

Vigenère Cipher - Crypto Corner

Vigenère Cipher

Crypto Corner © Daniel Rodriguez-Clark 2020

What is today known as the Vigenère Cipher was actually first described by Giovan Battista Bellaso in his 1553 book

La cifra del. Sig. Giovan Battista Bellaso

. However, in the 19th Century, it was misattributed to Blaise de Vigenère, who had presented a similar cipher (the

Autokey Cipher

) in 1586.


At the time, and for many centuries since its invention, the Vigenère Cipher was renowned for being a very secure cipher, and for a very long time it was believed to be unbreakable. It was this thought that earned it the nickname "le chiffre indéchiffrable" (French for "the unbreakable cipher"). Although this is not true (it was fully broken by Friedrich Kasiski in 1863), it is still a very secure cipher in terms of paper and pen methods, and is usable as a field cipher.

In essence, the Vigenère Cipher is an adaptation of the Trithemius Cipher, but instead of systematically progressing through the ciphertext alphabets in the Tabula Recta, it uses a keyword to pick which columns to use.

Tabula Recta

Encryption
To encrypt a message using the Vigenère Cipher you first need to choose a keyword (or keyphrase). You then repeat this keyword over and over until it is the same length as the plaintext. This is called the keystream.

Now for each plaintext letter, you find the letter down the left hand side of the tabula recta. You also take the corresponding letter from the keystream, and find this across the top of the tabula recta. Where these two lines cross in the table is the ciphertext letter you use.

As an example, we shall encrypt the plaintext "a simple example" using the keyword battista. First we must generate the keystream, by repeating the letters of the keyword until it is the same length as the plaintext.

The keystream using the keyword battista.

Now we must use the tabula recta and the information in the table above. The keystreamb means we choose the column with B at the top, and the plaintext "a" means we choose the row with A at the left. We get the ciphertext "B".

For the second plaintext letter "s", we go down to S on the left, and use the keystream a to go to A along the top. We get the ciphertext letter "S".

With the plaintext letter "i", we go down to I on the left, and the keystream letter t means we go to T across the top. We get the ciphertext letter "B".

Continuing in this way we get the final ciphertext "BSBF XDXEYA FITW".

We have inserted some random spaces in the final ciphertext to make it even more tricky to break the message. Notice that the "a" and "i" both encrypt to "B", and also that the three "e"s that appear encrypt to "X", "E" and "W".

Decryption
To decrypt a ciphertext with the keyword, we first have to generate the keystream by repeating the keyword until we have a keystream the same length as the ciphertext. Then you find the column with the letter of the keystream at the top, and go down this column until you find the ciphertext letter. Now read across to the far left of the table to reveal the plaintext letter.

As an example we shall decipher the ciphertext "ZPSPNOXMOFAORMQDPUKZ" which has been encoded using the keyword giovan. We start by generating the keystream.

The keystream generated using the keyword giovan.

We look along the top row to find the letter from the keystream, G. We look down this column (in yellow) and find the ciphertext letter "Z" (in green). We then go along this row (in blue) to the left hand edge, and the letter here (in purple) is the plaintext letter. In this case it is "t".

In the same way as above, we find the keystream letter I, and find the ciphertext letter "P" in this column. We then follow this row to find the plaintext letter "h".

Continuing in this way we retrieve the ciphertext "the unbreakable cipher".

The fully decrypted plaintext.

Discussion
The Vigenère Cipher was the biggest step in cryptography for over 1000 years. The idea of switching between ciphertext alphabets as you encrypt was revolutionary, and an idea that is still used to make ciphers more secure. One of the most famous examples of codes and ciphers in history, the ENIGMA machine, is just a modified polyalphabetic substitution cipher!

But why is the Vigenère Cipher so secure? What is it that makes this cipher better than the

Mixed Alphabet Cipher

? Let's take a look at an example. We shall encrypt the following text using the Mixed Alphabet Cipher and the Vigenère Cipher, both with the keyword

encrypt

.


Aged twenty six, Vigènere was sent to Rome on a diplomatic mission. It was here that he became acquainted with the writings of Alberti, Trithemius and Porta, and his interest in cryptography was ignited. For many years, cryptography was nothing more than a tool that helped him his diplomatic work, but at the age of thirty nine, Vigènere decided that he had amassed enough money to be able to abandon his career and concentrate on a life of study. It was only then that he began research into a new cipher.

Using the Mixed Alphabet we get:

ETYR QVYIQX OBW, UBTYIYMY VEO OYIQ QJ MJHY JI E RBKGJHEQBC HBOOBJI. BQ VEO AYMY QAEQ AY NYCEHY ECLSEBIQYR VBQA QAY VMBQBITO JP EGNYMQB, QMBQAYHBSO EIR KJMQE, EIR ABO BIQYMYOQ BI CMXKQJTMEKAX VEO BTIBQYR. PJM HEIX XYEMO, CMXKQJTMEKAX VEO IJQABIT HJMY QAEI E QJJG QAEQ AYGKYR ABH ABO RBKGJHEQBC VJMF, NSQ EQ QAY ETY JP QABMQX IBIY, UBTYIYMY RYCBRYR QAEQ AY AER EHEOOYR YIJSTA HJIYX QJ NY ENGY QJ ENEIRJI ABO CEMYYM EIR CJICYIQMEQY JI E GBPY JP OQSRX. BQ VEO JIGX QAYI QAEQ AY NYTEI MYOYEMCA BIQJ E IYV CBKAYM.

And using the Vigenère we get:

ETGU RLXRGA JGM, OMTGECGX ANU JCCM XB TFKT HR N FZNAHQNVZA BBWFKFL. XM ANU YCGX XUCK FT UIPCDC PVUHCZLIXH JKKF IAI JTZRXGKF QW YAUIEVZ, RGBXUGDGJL EAF GMGME, NPU FXL MAVVPTLX VP TPNIXBIIYEAC JCJ GVGMGGU. DDK QNPP WTTVF, EIWEMSTTRNWR ANU EMIAMAI DMGX XUCE Y IHSY VYYI AIYRVB WBQ UKJ BXIPBORRXV ABTB, ZJM EG VYC PZI BH KFXKXL PZLT, OMTGECGX HREZBTW XUCK FT AEQ CDYHLIQ GEMJZL ZQECN MS OG RZAX XB CSYCWSA JZQ RTVRGI YCW GBPTCCMVNVV MC T PVHV MU LXHFP. GI PEF QEJN MLRP KFPM LR DVEPG VRUVYGVL VPKM P GIJ EZNWXV.

The Frequency distribution of the plaintext.

The Frequency distribution of the ciphertext using the Vigenère Cipher.

The Frequency distribution of the ciphertext using the Mixed Alphabet Cipher.

These frequency distributions show how many times each letter appears in the relevent text. We can see a clear relationship between the top two, with the same peaks just in different places.

The final distribution, for the Vigenère Cipher, is different to the others, and the distribution of letters is much more smoothed out. And even though there is a little bit of a peak at "G" (which we might think to be "e"), in the penultimate word "new" is "GIJ", so "G" is "n", but in the first word "aged" is "ETGU" so "G" is "e". This shows that the same letter can be achieved by different plaintext letters.

Although more difficult, it is not impossible to break the Vigenère Cipher (despite its nickname). In 1854 Charles Babbage cracked the Vigenère Cipher, but his work was not published in his lifetime. In fact it wasn't for over 100 years that his amazing discovery was found.

However, in 1863 Friedrich Kasiski independently broke the Vigenère Cipher and published his work. The method used to break it is called the

Kasiski Examination

in his honour, and relies on discovering a possible key length by looking for repeated patterns within the ciphertext. This is then used to split the ciphertext into sections, and perform frequency analysis on each of the parts that were encrypted using the same letter from the keyword. This weakness is due to the repeating nature of the keystream in the Vigenère Cipher, and this can be improved upon as we shall see.



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4