Wednesday, November 7, 2012

Vigenère Cipher

Viginere Cipher merupakan salah metode kriptografi klasik polyalphabetic. Viginere cipher ini sendiri sebenarnya merupakan pengembangan dari Caesar cipher, dimana jika setiap karakter pada plaintext digeser dengan jumlah pergeseran yang sama, namun pada Viginere cipher setiap karakter digeser dengan jumlah pergeseran yang berbeda.

Untuk mengenkripsikan plaintext, kita membutuhkan sebuah tabel viginere yang berisi alfabet yang dituliskan dalam 26 baris, masing-masing baris digeser satu urutan ke kiri dari baris sebelumnya, membentuk ke-26 kemungkinan Caesar cipher. Setiap huruf disandikan dengan menggunakan baris yang berbeda-beda, sesuai kata kunci yang diulang.




Gambar 1. Tabel Viginere

Misalnya, plaintext yang hendak disandikan adalah "Sukses Besar" dan kunci "apel". Maka kita buang terlebih dahulu spasi pada plaintext, dan mengulang-ulang kunci hingga jumlah hurufnya sama menjadi:

plaintext : suksesbesar
kunci : victoryvict

Untuk mengenkripsi plaintext diatas caranya :
  • Ambil huruf-1 plaintext yaitu "s" dan tarik 1 kolom "s" lurus pada tabel viginere, kemudian ambil huruf-1 kunci yaitu "v" dan kita tarik 1 baris lurus sehingga memotong kolom sebelumnya. maka ciphertext untuk huruf pertama adalah "n".
  • Ambil huruf-2 plaintext yaitu "u" dan tarik 1 kolom "u" lurus pada tabel viginere, kemudian ambil huruf-2 kunci yaitu "i" dan taris 1 baris lurus sehingga memotong kolom sebelumnya, maka ciphertext untuk huruf kedua adalah "c".
  • dst
Sehingga menghasilkan Ciphertext ncmlsjzzack

Keuntungan Viginere cipher  dibanding Caesar cipher, adalah lebih aman dari serangan Analisis Frekuensi.


Sedangkan untuk dekripsinya proses yang kita lakukan adalah sebaliknya contoh:
  • Ambil huruf pertama kunci yaitu "v" kemudian cari huruf ciphertext pertama yaitu "n", maka plaintext nya merupakan kolom yang ditempati huruf "n" yaitu "s".
  • dst
Sehingga menghasilkan Plaintext suksesbesar.


Referensi:
http://id.wikipedia.org/wiki/Sandi_Vigenere

No comments:

Post a Comment