D. SANDI VIGENÈRE
Salah satu pemikiran agar memperoleh perlindungan yang lebih baik pada pesan rahasia adalah dengan menggunakan sandi yang menjamin
bahwa huruf-huruf yang sama dari teks-asal yang diberikan saat dienkripsi, tidak selalu menghasilkan huruf yang sama pada teks-sandi. Hal ini dapat
dilakukan dengan menggunakan rangkaian huruf dengan panjang tertentu yang disebut kata kunci. Misalnya pada sandi Geser maupun sandi Affine,
saat sebuah kunci telah dipilih maka setiap huruf dipasangkan secara tunggal ke huruf yang lain. Oleh karena itu, sandi yang demikian disebut
monoalfabetik. Berikut ini akan dibahas salah satu sandi yang bukan monoalfabetik, atau biasa dikenal dengan polyalfabetik. Sandi tersebut yaitu
Sandi Vigenère. Sandi ini berasal dari nama seorang diplomat Perancis yang melayani Raja Charles IX, yaitu Blaise de Vigenère.
Pada abad ke-16, Blaise de Veginere menulis sebuah buku yang berjudul Traite des Chiffres. Dalam buku tersebut diuraikan kriptografi pada
saat itu, dan memperkenalkan sistem-kripto polyalfabetik. Dengan menggunakan ide dasar dari sandi Caesar, dia membentuk persegi square
yang terdiri dari huruf horizontal dan huruf vertikal. Seperti pada
table berikut.
Tabel 3.2: Persegi Vigenère Standar
Baris pertama dalam tabel tersebut merupakan susunan huruf alfabet standar. Huruf tersebut mewakili karakter huruf untuk teks-asal. Setiap baris
setelah baris pertama mewakili satu pergeseran ke kiri terhadap baris di atasnya. Huruf-huruf untuk kolom pertama juga merupakan susunan huruf
alfabat standar. Huruf tersebut mewakili karakter huruf pada kata kunci yang digunakan.
Untuk proses enkripsi perlu dilakukan tiga hal dalam menggunakan tabel tersebut:
Letakkan huruf teks-asal pada baris pertama. Letakkan huruf untuk kata kunci pada kolom pertama.
Ganti setiap huruf teks-asal dengan huruf pada perpotongan antara kolom yang diawali oleh teks-asal dan baris yang diawali oleh huruf
dari kata kunci pada tabel tersebut. Sebagai
contoh, Boby
ingin mengirim
pesan yang
berbunyi “ ” kepada Alice dengan menggunakan Tabel 3.2.
Diandaikan juga bahwa dalam perjanjiannya, Boby dan Alice telah berbagi sebuah kata rahasia, yaitu
. Kata rahasia itu yang disebut kata kunci, dan digunakan bersama dengan tabel tersebut untuk mengenkripsi pesan.
Pertama, Boby menulis kata kunci berulang kali di bawah pesan yang ingin dia kirim. Seperti berikut ini:
Untuk mengenkripsi huruf , Boby menulis huruf di bawah huruf .
Kemudian dia melihat ke Tabel 3.2 dan menemukan huruf pada perpotongan antara kolom yang diawali dengan huruf
dan baris yang dimulai dengan huruf
, sehingga dia memperoleh . Ini berarti dienkripsi sebagai
. Dengan cara yang sama, dia mengganti dengan karena berada pada perpotongan antara kolom yang diawali dengan
dan baris yang dimulai dengan
, dan mengenkripsi dengan karena berada pada perpotongan antara kolom yang diawali dengan
dan baris yang dimulai dengan
, dan seterusnya sehingga semua teks-asal terenkripsi dan diperoleh:
.
Dua buah karakter huruf pada teks-asal tidak lagi dienkripsi
menjadi teks-sandi yang sama. Selain itu, dua buah huruf juga
menghasilkan teks-sandi yang berbeda. Karena huruf-huruf pada teks-asal tidak selalu dinyatakan ke dalam huruf-huruf teks-sandi yang sama, maka
hal tersebut meningkatkan keamanan sistem tersebut secara signifikan. Untuk mendekripsi pesan, Alice harus membalikkan proses tersebut.
Misalnya untuk mendekripsi huruf , Alice harus menemukan pada baris
yang diawali dengan sehingga dapat dilihat bahwa huruf berada pada
kolom yang diawali dengan huruf . Dengan cara yang sama untuk
mendekripsikan , Alice harus menemukan pada baris yang diawali
dengan sehingga diperoleh , karena berada pada kolom yang diawali
dengan huruf , dan seterusnya. Seperti berikut ini:
Dengan demikian dapat ditarik kesimpulan bahwa juga terdapat tiga hal yang harus dilakukan untuk mendekripsikan pesan rahasia dengan
menggunakan Tabel 3.2, yaitu: Letakkan huruf dari kata kunci pada kolom pertama.
Letakkan huruf dari teks-sandi pada baris yang diawali dengan huruf dari kata kunci.
Gantilah huruf dari teks-sandi dengan huruf pertama pada kolom dimana teks-sandi berada.
Sekarang akan ditunjukkan bagaimana menggunakan modulo dan
korespondensi dari huruf-huruf pada Tabel 3.1 untuk melakukan proses enkripsi dan dekripsi dari Sandi Vigenère. Ingat bahwa kata kunci rocky
diubah terlebih dahulu berdasarkan Tabel 3.1 menjadi , , , dan .
Untuk proses enkripsi teks-asal dapat digunakan rumus berikut: ,
, ,
, .
Sedangkan untuk mengenkripsi huruf letaknya yang lebih besar dari panjang kunci maka rumus yang akan digunakan adalah sebagai berikut:
, , dan seterusnya.
Demikian rumus yang digunakan untuk proses enkripsi dari sandi Vigenère. Untuk lebih formal dapat dilihat dalam definisi berikut ini.
Definisi 3.6 Sandi Vigenère
Didefinisikan bahwa . Misalkan
dan merupakan bilangan bulat positif, dimana
. Dengan adalah banyaknya huruf pada kata kunci dan
adalah banyaknya huruf pada teks-asal. Untuk kata
kunci , maka fungsi enkripsi dan fungsi
dekripsi didefinisikan sebagai berikut:
dan
dimana ,
, dan
.
Contoh 3.6: Misalkan
dan kata kunci yang digunakan adalah “ ”. Menurut Tabel 3.1, kunci ini bersesuaian dengan
. Dimana teks-asalnya adalah:
dan dienkripsikan menjadi:
Dimana penjumlahan dilakukan di dalam modulo , kemudian saat diubah
kembali ke dalam huruf-huruf menghasilkan teks-sandi yang berbentuk:
.
Contoh 3.7: Misalkan suatu teks-sandi yang berbentuk
, sedangkan kata kunci yang digunakan adalah
. Menurut Tabel 3.1, kata kunci tersebut bersesuaian dengan
, dan teks- sandinya bersesuaian dengan
Kemudian teks tersebut didekripsi dengan menggunakan Sandi Vigenère sehingga diperoleh:
.
Dapat dilihat bahwa teks-asal tersebut berbunyi: .
E. SANDI HILL