Vigenère chiper(sandi) adalah nama yang diambil dari Blaise de Vigenère. walaupun Giovan Batista Belaso telah menemukan sandinya lebih dulu, tetapi Vigenère menemukan 'autokey chiper' yang lebih kuat. Sandi ini telah ditemukan kembali beberapa kali. Metodenya dideskripsikan oleh Giovan Batista Belaso dalam buku yang berjudul La cifra del. Sig. Giovan Batista Belaso. Namun, menjadi Blaise de Vigenère pada abad ke-19, dan sekarang terkenal dengan sebutan Vigenère chiper.
Vigenère chiper adalah metode untuk mengenkripsi teks alfabet dengan menggunakan jenis Caesar cipher yang berbeda berdasarkan pergeseran huruf - huruf dari kata kunci. Itu merupakan bentuk sederhana dari sistem substitusi poly-alphabetic. Sistem substitusi yaitu mengganti huruf - huruf pesan asli menjadi huruf - huruf sandi.
Sandi ini terkenal karena walau mudah untuk dipahami dan diimplementasikan, tetapi sulit untuk dipecahkan bagi pemula dan telah banyak orang telah berusaha untuk mengimplementasikan enkripsi ini.
Dalam melakukan penyandian ini kita bisa menggunakan tabel Vigenère atau dikenal dengan sebutan 'tabula recta'. Tabel ini terdiri dari alfabet yang dituliskan 26 kali pada baris yang berbeda, setiap alfabet digeser ke kiri disesuaikan dengan alfabet sebelumnya.
Contoh:
Kita akan menggunakan pesan 'MAKAN ASAM GARAM' dengan jumlah huruf 14.
Lalu kita pilih kata kuncinya, misal 'PISANG' dan kita harus mengulang huruf - huruf pada kata kunci agar panjangnya sama dengan pesan, yaitu 'PISANGPISANGPI'
Tabel:

Huruf pertama pada pesan adalah 'M' dan dienkripsi dengan alfabet pada baris 'P', caranya adalah kita harus mencari titik temu antara baris P dan kolom M dan kita akan menemukan huruf 'B'. Huruf kedua pada pesan adalah 'A' dan kata kunci 'I' maka huruf pada kolom A dan baris I adalah 'I', dan begitu pula huruf - huruf berikutnya pada pesan
Plaintext : MAKAN ASAM GARAM
Key : PISANGPISANGPI
Chipertext : BICAA GHIE GNXPU
Untuk proses dekripsi kita mencari posisi huruf sandi pada baris, lalu kita dapat menemukan label pada kolom sebagai huruf pesan. Sebagai contoh, kita cari posisi huruf 'B' pada baris P maka kita akan menemukan kolom M, maka huruf 'M' sebagai huruf pada pesan.
Vigenere dapat juga dihitung secara matematis, caranya kita anggap huruf A-Z sebagai angka 0-25
Maka rumus untuk enkripsinya adalah :
Ci = (Pi + Ki) % 26
dan rumus untuk deskripsinya adalah :
Pi = (Ci - Ki) % 26
dengan penjelasan :
Ci = Chipertext --> huruf ke-i pada sandi
Pi = Plaintext --> huruf ke-i pada pesan
Ki = Key --> huruf ke-i pada kata kunci
% = Modulo --> sisa hasil pembagian misal 5 % 26 = 5
Jika ingin mendownload program C++ sederhana buatanq
klik disini