CS Unplugged activity
Vigenère Cipher: one keyword, many shifts
Why one shift is not enough
If you have done the Caesar cipher activity, you know its weakness: one shift for the whole message means the most common letter in the ciphertext is always the same real letter, so counting letters cracks it fast. The Vigenère cipher fixes this with a keyword: each letter of the keyword picks its own shift, so the same real letter can turn into a different cipher letter almost every time it appears.
How a keyword picks a shift
Turn each keyword letter into a shift the same way you number the alphabet: A shifts 0, B shifts 1, C shifts 2, and so on up to Z, which shifts 25. Repeat the keyword under your message for as long as the message runs, and shift each letter by the keyword letter under it. Spaces do not shift and do not use up a keyword letter.
Here is the keyword KEY used on HELLO:
| Plain | H | E | L | L | O |
|---|---|---|---|---|---|
| Key | K | E | Y | K | E |
| Shift | +10 | +4 | +24 | +10 | +4 |
| Cipher | R | I | J | V | S |
HELLO becomes RIJVS. The two Ls turn into two different letters (J and V), because each one lines up with a different keyword letter, something one Caesar shift could never do.
Decode these
Use the Vigenère square on the last page.
Every message below was encoded with the same keyword.
Keyword: OCEAN
Encode one of your own
Pick a keyword (3 to 6 letters), write a short message in capital letters, and use the square to encode it. Copy just the finished message below and swap with a partner.
Keyword: Message to swap:
Check with a partner: decode each other’s message using the square. You are both right if you each land back on real words.
Why doesn’t counting letters crack this? A Caesar cipher always turns the same real letter into the same cipher letter, which gives away the shift. A Vigenère keyword breaks that: the shift changes letter by letter, so counting letters here will not point at a single answer the way it does for a Caesar cipher. Learn more.
Your lookup tool: the Vigenère square
Find your keyword letter down the left side, run your finger along that row to your plain letter along the top, and read off the cipher letter (to decode, find your cipher letter in that row instead, and read the plain letter off the top of its column).
| key ↓ plain → | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
| B | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A |
| C | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B |
| D | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C |
| E | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D |
| F | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E |
| G | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F |
| H | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G |
| I | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H |
| J | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I |
| K | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J |
| L | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K |
| M | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L |
| N | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M |
| O | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N |
| P | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| Q | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P |
| R | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q |
| S | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R |
| T | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S |
| U | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T |
| V | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U |
| W | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
| X | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W |
| Y | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X |
| Z | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y |
Check your answers
Decode these (keyword OCEAN).
Version history
- Loading commit history…