✖

Sandi Vigenère

Sandi Vigenère adalah sandi terkenal yang menggunakan beberapa alfabet sandi. Karena itu, sandi ini jauh lebih tahan terhadap analisis frekuensi klasik.

Prinsip enkripsi dan dekripsi

Cara enkripsinya dapat dijelaskan dengan bantuan sandi Caesar. Kunci sandi Vigenère adalah sembarang kata yang tersusun dari huruf-huruf alfabet Latin, yaitu a—z. Misalnya, kuncinya bisa berupa kata “bcf”. Enkripsi dilakukan sebagai berikut: tulis teks asli, lalu tepat di bawahnya tulis kunci. Kunci diulang-ulang sampai panjangnya sama dengan panjang teks asli. Untuk teks asli “selamatmalam”, hasilnya seperti ini:

Teks asli:selamatmalam
Kunci:bcfbcfbcfbcf

Sekarang setiap huruf teks asli dienkripsi dengan sandi Caesar menggunakan kunci yang sesuai, yaitu kunci di kolom yang sama. Sandi Caesar adalah sandi geser. Kunci menentukan sejauh berapa huruf sebuah huruf teks asli harus digeser, diukur dari huruf “a”. Misalnya, huruf “b” berarti pergeseran satu huruf “ke kanan” dalam alfabet. Huruf “d” berarti pergeseran tiga huruf ke kanan. Dengan sandi Caesar dan kunci “b”, kata “halo” dienkripsi menjadi “ibmp”.

Pada sandi Caesar, seluruh teks dienkripsi dengan satu huruf, sedangkan pada sandi Vigenère biasanya digunakan beberapa huruf. Enkripsi teks “selamatmalam” dengan kunci “bcf” menghasilkan:

Teks asli:selamatmalam
Kunci:bcfbcfbcfbcf
Teks sandi:tgqbofuofmcr

Huruf pertama “s” dienkripsi dengan kunci “b”, yaitu pergeseran satu huruf, sehingga hasilnya huruf “t”. Huruf “e” dienkripsi dengan kunci “c”, yaitu pergeseran dua huruf, sehingga hasilnya huruf “g”. Begitu seterusnya.

Dekripsi dilakukan dengan cara yang persis sama. Bedanya, huruf-huruf tidak digeser “ke kanan”, tetapi “ke kiri”.

Alat daring untuk enkripsi dan dekripsi sandi Vigenère

Teks:
Kunci:

Bujur sangkar Vigenère

Seluruh proses enkripsi dan dekripsi juga dapat dijelaskan dengan bujur sangkar Vigenère, yaitu alat bantu yang dapat dipakai selama enkripsi. Bujur sangkar Vigenère adalah tabel dengan 26 baris dan 26 kolom. Setiap baris berisi alfabet, dan pada setiap baris alfabet itu bergeser satu huruf:

Dengan bujur sangkar Vigenère, enkripsi dilakukan sebagai berikut: ambil huruf teks asli dan cari baris yang dimulai dengan huruf tersebut. Kemudian ambil huruf kunci dan cari kolomnya. Huruf teks sandi adalah huruf pada perpotongan baris dan kolom tersebut.

Pada contoh sebelumnya, kita mengenkripsi “selamatmalam” dengan kunci “bcf”. Jadi, kita mencari baris yang dimulai dengan “s” dan kolom yang dimulai dengan “b”. Pada perpotongan baris dan kolom tersebut terdapat huruf “t”, yaitu huruf teks sandi yang dihasilkan.

Untuk dekripsi, langkahnya dibalik. Jika kita ingin mendekripsi huruf “t” dengan kunci “b”, kita mencari kolom “b”, lalu di kolom itu kita mencari baris yang memuat huruf “t”. Huruf di awal baris tersebut adalah huruf teks asli.

Kekuatan utama sandi Vigenère

Mengapa sandi Vigenère pada masanya begitu kuat? Karena sandi ini sangat mempersulit analisis frekuensi klasik. Misalnya, pada sandi Caesar, dua huruf yang sama pada teks asli selalu dienkripsi menjadi huruf yang sama pada teks sandi. Pada sandi Vigenère, hal ini tidak berlaku, setidaknya tidak selalu.

Jika teks “Bagus bagus bagus” kita enkripsi dengan kunci “kopi”, diperoleh teks sandi “lovcc ppoeg qiqih”. Meskipun teks asli terdiri atas tiga kata yang sama, setiap kata dalam teks sandi terlihat sama sekali berbeda. Kata yang di tengah, “ppoeg”, bahkan memuat dua huruf “p” yang berasal dari dua huruf teks asli yang berbeda: “ba”.

Pemilihan kunci

Keamanan sandi Vigenère sangat dipengaruhi oleh pemilihan kunci. Pada sandi Caesar, huruf apa pun yang kita pilih sama saja, asalkan bukan “a”. Pada sandi Vigenère, kunci yang berbeda menghasilkan tingkat keamanan yang berbeda pula.

  • Kunci yang hanya terdiri atas satu huruf mengubah sandi Vigenère kembali menjadi sandi Caesar.
  • Kunci yang terdiri atas beberapa huruf yang sama, misalnya “mmm”, juga menghasilkan sandi Caesar.
  • Teks yang dienkripsi dengan kunci pendek sangat mudah dipecahkan.
  • Teks sandi yang cukup panjang dan dienkripsi dengan kunci yang tidak terlalu pendek (sekitar lima puluh karakter) juga sangat mudah dipecahkan. Dengan komputer, hanya perlu beberapa detik.
  • Teks yang dienkripsi dengan kunci yang benar-benar acak dan sama panjangnya dengan teks itu sendiri tidak mungkin dipecahkan.