# Vigenère cipher
## 介紹
Vigenère cipher 就像是兩個輪盤,每個輪盤上都有26個字母,加密或解密的方法就是讓原本的字母對應成另一個輪盤上的字母。以下圖為例,字母`A`可以對應到字母`O`,`A`隔壁的`B`就會對應到`O`隔壁的`P`。

既然有順序性,我們就可以把它變成一個表。透過key我們把原文加密,像是下圖可以看到原文是 decrypted letter,透過 key 把它加密成 Z。
若回到剛剛的輪盤示例,意思就是 key 決定了兩個輪盤要如何對應,當key的字母不同時,兩個輪盤就要重轉成步一樣的配對方式。

## 範例
以 picoCTF 的 [Vigenere](https://play.picoctf.org/practice/challenge/316?category=2&page=2) 為例子,他的 key 是 `CYLAB`。
假如輸入的句子為 `Helloeveryone`,則這個 key 的使用方法為:
```
H e l l o e v e r y o n e
C Y L A B C Y L A B C Y L
```
透過表,`H` 會用 `C` 這個 key,所以得到,`J`;`e` 會用 `Y` 這個 key,所以得到,`C`,大小寫差異就忽略。
## ref
圖片來源:
https://pages.mtu.edu/~shene/NSF-4/Tutorial/VIG/Vig-Devices.html
https://laurencetennant.com/assets/vigenere_decrypt.png