Mathematics of the Vigenere Cipher

by fortenforge, Aug 21, 2009, 9:21 PM

Ok, so I lied. I said that the next post was going to be about why frequency analysis fails on the Vigenere cipher but I decided to talk about how to mathematically define the cipher.

Let us say that we have already translated our plaintext into numbers (A = 0, B = 1, C = 2, ...). Let us say that the numbers are $ p_0, p_1, p_2, \cdots p_n$.

Let us say that we have chosen a key of length $ x$ and the letters of our key transformed into numbers are $ k_0, k_1, \cdots k_x$.

To encrypt plaintext number $ p_i$ we use $ k_j$ where $ j \equiv i \pmod{x}$. This accounts for the fact that the key is repeated over each letter of the plaintext. We use mod $ x$ because $ x$ is the length of the keyword.

Call $ c_i$ the corresponding ciphertext number to $ p_i$.

$ c_i \equiv p_i + k_j \pmod{26}$ where $ k_j \equiv i \pmod{x}$.

The first part is just the Caesar Cipher mathematically. The only difference is that as $ p_i$ changes $ k_j$ changes as well. This is what makes the Vigenere cipher a much better code.

Let's take an example:

plaintext: BLITZKRIEG
Numerical equivalent: 1 11 8 19 25 10 17 8 4 6

keyword: WAR
Numerical equivalent: 22 0 17

For the $ 0$th number of our plaintext, $ 1$, to find the equivalent key letter we take $ 0 \pmod{3} = 0$. So we take the $ 0$th keyword number which is $ 22$.

For the $ 5$th number of our plaintext, $ 10$ to find the equivalent key letter we take $ 5 \pmod{3} = 2$. So we take the $ 2$nd keyword number which is $ 17$.

We would continue this process for all the letters there by finding each letters keyword equivalent.

Notice that the first number in our list is being considered as our 0th number and the 2nd number is being considered as the 1st number to make the math work. In cryptography this is normal.

You can see that this method works by verifying it here:

WARWARWARW
BLITZKRIEG

The math method and the visual method match up, the 0th plaintext letter corresponds to the 0th key letter and the 5th plaintext letter corresponds to the 2nd key letter.

If we wanted to encrypt the 0th letter mathematically we would find:

$ 1 + 22 \pmod{26} \equiv 23$. So our 0th ciphertext number is 23.

If we wanted to encrypt the 5th letter mathematically we would find:

$ 10 + 17 \pmod{26} \equiv 1$. So our 5th ciphertext number is 1.

We would continue the process for all the letters.

Again when doing it mathematically and doing it without math you get the same ciphertext:

XLZPZBNIVC.

Learning what a cipher is mathematically is not much useful if you are decrypting a message by hand, but it is enormously useful if you are trying to program a cipher on a computer.

Comment

0 Comments

A guide to the science of secrecy

avatar

fortenforge
Archives
Shouts
Submit
  • Good website!

    by bluegoose101, Aug 5, 2021, 6:28 PM

  • uh-huh, a great place here

    by fenchelfen, Sep 1, 2019, 11:30 AM

  • uh, yeah he is o_O

    by SonyWii, Oct 8, 2010, 2:11 PM

  • dude i think you're my roommate from camp :O

    by themorninglighttt, Aug 29, 2010, 10:06 PM

  • what i'm still not a contrib D:

    by SonyWii, Aug 6, 2010, 2:20 PM

  • I see what you did there

    by Jongy, Aug 1, 2010, 11:52 PM

  • omg, apparently you like cryptography; and apparently I'm not a contribb D:

    by SonyWii, Jul 26, 2010, 9:48 PM

  • Thank You

    by fortenforge, Jan 17, 2010, 6:35 PM

  • Wow this is a really cool blog

    by alkjash, Jan 16, 2010, 7:04 PM

  • Hi :)

    by fortenforge, Jan 7, 2010, 12:12 AM

  • Hi :)

    by Richard_Min, Jan 5, 2010, 9:29 PM

  • Hi :) :)

    by fortenforge, Jan 3, 2010, 10:14 PM

  • HELLO FORTENFORGE I AM THE PERSON SITTING NEXT TO YOU IN IDEAMATH

    by ButteredButNotEaten, Dec 24, 2009, 4:19 AM

  • @dragon96 Not if you celebrate Christmas with neon lights
    @batteredbutnotdefeated Sure, You are now a contributer

    by fortenforge, Dec 20, 2009, 4:39 AM

  • I too share a love for cryptography and cryptanalysis, may I be a contrib?

    by batteredbutnotdefeated, Dec 20, 2009, 2:38 AM

  • The green is too bright for Christmas. :P

    by dragon96, Dec 20, 2009, 2:12 AM

  • I thought I'd change the colors for the Holidays :lol:

    by fortenforge, Dec 13, 2009, 10:53 PM

  • hi, some "simple" cryptography here: http://www.artofproblemsolving.com/Forum/weblog_entry.php?t=317795

    by phiReKaLk6781, Dec 12, 2009, 3:46 AM

  • Yeah, that is binary, for modern cryptography, most text is converted to binary first and then algorithm's for encryption are preformed on the binary rather than the English letters. The text is converted using the ASCII table or UNICODE.

    by fortenforge, Oct 13, 2009, 10:33 PM

  • Whoa, I love your background! Is that binary?

    by pianogirl, Oct 13, 2009, 8:34 PM

  • Sure, I'll add you as a contributer...

    by fortenforge, Oct 2, 2009, 4:44 AM

  • May I make a post on one cipher I made up? (It's a good code for science people! *hint hint*)

    by dragon96, Oct 2, 2009, 4:04 AM

  • Nice blog, this is interesting... :lol:

    and guess who i am :ninja:

    by Yoshi, Sep 21, 2009, 4:02 AM

  • Thanks :lol:

    by fortenforge, Sep 17, 2009, 1:33 AM

  • Very interesting blog. Nice!

    by AIME15, Sep 16, 2009, 5:21 PM

  • When you mean 'write' do you mean like programming? Much of cryptography has to do with programming and most modern cryptographers are excellent programmers because modern complex ciphers are difficult to implement by hand.

    See if you can write a program for the substitution cipher. The user should be able to enter the key and the message. I know it is possible to do it in pretty much any language because I was able to do it in c.

    by fortenforge, Aug 7, 2009, 8:17 PM

  • Hello. I don't know much about advanced cryptography but I did write a Caeser Chipher encrypter and decrypter!

    by Poincare, Jul 31, 2009, 8:55 PM

27 shouts
Tags
About Owner
  • Posts: 200
  • Joined: Jan 17, 2009
Blog Stats
  • Blog created: Jun 21, 2009
  • Total entries: 48
  • Total visits: 126817
  • Total comments: 16
Search Blog
a