29 September 2017

Vigenere Cipher

<<Hill Cipher
Vigenere Cipher merupakan polyalphabetic substitution cipher yang paling sederhana dan paling banyak dikenal. Sandi Vigenere 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. Kelebihannya dibanding Caesar Cipher dan cipher monoalfabetik lainnya adalah cipher ini tidak begitu rentan terhadap metode pemecahan cipher yang disebut analisis frekuensi.
  • CARA KERJA VIGENERE CIPHER
Untuk menyandikan suatu pesan, digunakan sebuah tabel alfabet yang disebut tabel Vigenère (gambar di samping kanan). Tabel Vigenere 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

Misalnya, plaintext yang hendak disandikan adalah perintah "SERBU BERLIN", sedangkan kata kunci antara pengirim dan penerima adalah "PIZZA". Maka kata kunci "PIZZA" diulang sehingga jumlah hurufnya sama banyak dengan plaintext-nya: "PIZZAPIZZAP".

Huruf pertama pada plaintext, yaitu huruf S, disandikan dengan menggunakan huruf pertama pada kata kunci yaitu huruf P. Pada baris P dan kolom S di tabel Vigenere, terdapat huruf H sehingga ciphertext huruf pertama adalah huruf H. Demikian pula untuk huruf kedua, digunakan huruf yang terletak pada baris I (huruf kedua kata kunci) dan kolom E (huruf kedua plaintext), yaitu huruf M. Proses ini dijalankan terus sampai selesai. Sehingga menjadi seperti ini :

Plaintext         : S  E  R B U B E  R  L  I   N
Kata kunci      : P  I   Z Z  A P I   Z  Z  A P
Ciphertext      : H M Q A U Q M Q K  I  C
Proses dekripsi dilakukan dengan mencari huruf ciphertect pada baris huruf dari kata kunci. Misalnya, pada contoh di atas, untuk huruf pertama, kita mencari huruf H (huruf pertama ciphertext) 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 plaintext adalah E, dan seterusnya hingga selesai. Maka akan didapatkan plaintext  "SERBU BERLIN".

Enkripsi dengan Vigenere Cipher juga dapat dituliskan secara matematis, dengan menggunakan penjumlahan dan operasi modulus, yaitu: \[C_{i}\equiv \left(P_{i}+K_{i} \right)\bmod26\] Dekripsinya dapat dituliskan sebagai berikut : \[P_{i}\equiv \left(C_{i}-K_{i} \right)\bmod26\]
Berikut adalah contoh implementasinya pada Sagemath:

Berikut ini adalah contoh Enkripsi dan Dekripsi Vigenere Cipher dengan Kunci Acak.

Berikut adalah contoh implementasi Vigenere Cipher menggunakan Bahasa Python yang telah di-parse dengan Sage.

No comments:

Post a Comment

SAAT RESTORAN DIBUKA KEMBALI, INILAH YANG HARUS ANDA KETAHUI TENTANG AC, ALIRAN UDARA, DAN COVID-19

Pengunjung yang makan di restoran mungkin bisa memberi tahu banyak tentang bagaimana para penggiat bisnis restoran berusaha mengurangi risik...