Sandi Vigeniere
Sandi Vigenère dinamai untuk menghormati Blaise de Vigenère (gambar), sekalipun Giovan Batista Belasomenemukannya sebelum Vigenère. |
Sandi Vigenère adalah metode menyandikan teks alfabet dengan menggunakan deretan sandi Caesar berdasarkan huruf-huruf
pada kata kunci. Sandi Vigenère merupakan bentuk sederhana dari sandi substitusi
polialfabetik.
Kelebihan sandi ini dibanding sandi Caesar dan sandi
monoalfabetik lainnya adalah sandi ini tidak begitu rentan
terhadap metode pemecahan
sandi yang disebut analisis
frekuensi.
Giovan Batista Belaso menjelaskan metode ini dalam buku La cifra del. Sig. Giovan
Batista Belaso (1553); dan disempurnakan oleh diplomat Perancis Blaise
de Vigenère,
pada 1586. Pada abat ke-19, banyak
orang yang mengira Vigenère adalah penemu sandi ini, sehingga, sandi ini
dikenal luas sebagai "sandi Vigenère".
Sandi ini dikenal luas karena cara kerjanya
mudah dimengerti dan dijalankan, dan bagi para pemula sulit dipecahkan. Pada
saat kejayaannya, sandi ini dijuluki le chiffre indéchiffrable (bahasa
Prancis:
'sandi yang tak terpecahkan'). Metode pemecahan sandi ini baru ditemukan pada
abad ke-19. Pada tahun 1854, Charles Babbage menemukan cara untuk
memecahkan sandi Vigenère. Metode ini dinamakan tes Kasiskikarena Friedrich
Kasiski-lah
yang pertama mempublikasikannya.
Cara
kerja
Sandi Vigenère sebenarnya merupakan
pengembangan dari sandi
Caesar.
Pada sandi Caesar, setiap huruf teks terang digantikan dengan huruf lain yang
memiliki perbedaan tertentu pada urutan alfabet. Misalnya pada sandi Caesar
dengan geseran 3, A menjadi D, B menjadi E and dan seterusnya. Sandi
Vigenère terdiri dari beberapa sandi Caesar dengan nilai geseran yang berbeda.
Untuk menyandikan suatu pesan, digunakan
sebuah tabel alfabet yang disebut tabel Vigenère (gambar). Tabel Vigenère berisi
alfabet yang dituliskan dalam 26 baris, masing-masing baris digeser satu urutan
ke kiri dari baris sebelumnya, membentuk ke-26 kemungkinan sandi Caesar. Setiap
huruf disandikan dengan menggunakan baris yang berbeda-beda, sesuai kata kunci
yang diulang
serbuberlin
Sedangkan kata kunci antara pengirim dan
tujuan adalah "Pizza"
"PIZZA" diulang sehingga
jumlah hurufnya sama banyak dengan teks terang:
PIZZAPIZZAP
Huruf pertama pada teks terang, S, disandikan dengan
menggunakan baris berjudul P, huruf pertama pada kata
kunci. Pada baris P dan kolom S di tabel Vigenère, terdapat
huruf H. Demikian pula untuk huruf kedua, digunakan
huruf yang terletak pada baris I (huruf kedua kata kunci)
dan kolom E (huruf kedua teks terang),
yaitu huruf M. Proses ini dijalankan
terus sehingga
Cara
kerja
Teks terang:
|
serbuberlin
|
Kata kunci:
|
PIZZAPIZZAP
|
Teks bersandi:
|
HMQAUQMQKIC
|
Proses sebalinya (disebut dekripsi), dilakukan dengan mencari
huruf teks bersandi pada baris berjudul huruf dari kata kunci. Misalnya, pada
contoh di atas, untuk huruf pertama, kita mencari huruf H (huruf pertama teks
tersandi) pada baris P (huruf pertama pada kata
kunci), yang terdapat pada kolom S, sehingga huruf pertama
adalah S. Lalu M terdapat pada baris I di kolom E, sehingga diketahui huruf
kedua teks terang adalah E, dan seterusnya hingga
didapat perintah "serbuberlin".
Enkripsi (penyandian) dengan sandi
Vigenère juga dapat dituliskan secara matematis, dengan menggunakan penjumlahan
dan operasi
modulus,
yaitu:
atau C = P + K kalau jumlah dibawah 26 &
- 26 kalau hasil jumlah di atas 26
dan dekripsi,
atau P = C - K kalau
hasilnya positif & + 26 kalau hasil pengurangan minus
Keterangan: Ci adalah huruf ke-i pada teks
tersandi, Pi adalah huruf ke-i pada teks
terang, Ki adalah huruf ke-i pada kata
kunci, dan mod adalah operasi modulus (sisa pembagian).
Pehitungan
Sandi Vigenere
Rumus enkripsi vigenere
cipher :
atau
Ci = ( Pi + Ki ) – 26 kalau hasil penjumlahan Pi dan Ki lebih dari 26
Rumus dekripsi vigenere cipher :
atau
Pi = ( Ci – Ki ) + 26 kalau hasil pengurangan Ci dengan Ki minus
Dimana:
Ci = nilai desimal karakter
ciphertext ke-i
Pi = nilai desimal karakter
plaintext ke-i
Ki = nilai desimal karakter
kunci ke-i
Nilai desimal karakter:
A=0 B=1 C=2 ... Z=25
Sebagai contoh, jika plaintext adalah STIKOMBALI dan kunci adalah KAMPUS maka proses enkripsi yang terjadi adalah sebagai berikut:
Plaintext:
|
STIKOMBALI
|
Key:
|
KAMPUSKAMP
|
Ciphertext:
|
CTUZIELAXX
|
Pada contoh diatas kata
kunci KAMPUS diulang sedemikian rupa hingga panjang kunci
sama dengan panjang plainteksnya. Jika dihitung dengan rumus enkripsi
vigenere plainteks huruf pertama S (yang memiliki nilai Pi=18) akan dilakukan pergeseran
dengan huruf K (yang memiliki Ki=10) maka prosesnya sebagai
berikut:
Ci = ( Pi + Ki
) mod 26
=
(18 + 10) mod 26
=
28 mod 26
=
2
Ci=2 maka huruf ciphertext
dengan nilai 2 adalah C . Begitu seterusnya
dilakukan pergeseran sesuai dengan kunci pada setiap huruf hingga semua
plainteks telah terenkripsi menjadi ciphertext. Setelah semua huruf terenkripsi
maka proses dekripsinya dapat dihitung sebagai berikut:
Pi = ( Ci – Ki
) + 26
= (
2 – 10 ) + 26
=
–8 + 26
=
18
Pi=18 maka huruf plainteks dengan
nilai 18 adalah S. Begitu seterusnya
dilakukan pergeseran sesuai dengan kunci pada setiap huruf hingga semua
ciphertext telah terdekripsi menjadi plainteks
sekarang coba pecahkan sandi ini :" VVVRBACP"
gunakan dari apa yang telah kalian pelajari di atas, kalau sudah kalian bisa mencocokkannya dengan jawaban di bawah
gunakan dari apa yang telah kalian pelajari di atas, kalau sudah kalian bisa mencocokkannya dengan jawaban di bawah
sumber wikipedia
Judul Spoiler:
Komentar
Posting Komentar