> For the complete documentation index, see [llms.txt](https://cajac.gitbook.io/ctf-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cajac.gitbook.io/ctf-notes/crypto/substitution-ciphers/vigenere-cipher.md).

# Vigenère cipher

The Vigenère cipher is a method of [encrypting](https://en.wikipedia.org/wiki/Encryption) [alphabetic](https://en.wikipedia.org/wiki/Alphabetic) text where each letter of the [plaintext](https://en.wikipedia.org/wiki/Plaintext) is encoded with a different [Caesar cipher](https://en.wikipedia.org/wiki/Caesar_cipher), whose increment is determined by the corresponding letter of another text, the [key](https://en.wikipedia.org/wiki/Key_\(cryptography\)).

The Vigenère cipher is therefore a special case of a [polyalphabetic substitution](https://en.wikipedia.org/wiki/Polyalphabetic_cipher).

{% hint style="info" %}
To get insight into the key, decode the cipher text with the known flag part!
{% endhint %}

## Online Services

### Unknown Key

These services can be used to break ciphers without a key:

Guballa.de - Vigenère Solver: <https://www.guballa.de/vigenere-solver>

### Known Ley Length

These services can be used to break ciphers with known (guessed) key length:

dcode.fr - Vigenere Cipher: <https://www.dcode.fr/vigenere-cipher>

f00l.de - Online Vigenere Analysis: <https://f00l.de/hacking/vigenere.php>

### Known Key

If you know the key, you can use the following services to decode the cipher:

Cryptii - Vigenere cipher: <https://cryptii.com/pipes/vigenere-cipher>

CrypTool-Online - Vigenère and variants: <https://www.cryptool.org/en/cto/vigenere/>

Rumkin.com - Vigenère: <https://rumkin.com/tools/cipher/vigenere/>

## Resources

Polyalphabetic cipher - Wikipedia: <https://en.wikipedia.org/wiki/Polyalphabetic_cipher>

Vigenère cipher - Wikipedia: <https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher>
