Sabtu, 21 Juli 2012

Berkenalan dengan Algoritma Kriptografi Klasik: Vigènere Cipher

[1x01-072012]-Berkenalan dengan Algoritma Kriptografi Klasik: Vigènere Cipher

Kode vigènere termasuk kode abjad-majemuk (polyalphabetic substitution cipher). Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis, Blaise de Vigènere pada abad 16, tahun 1586. Sebenarnya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1533 seperti ditulis di dalam buku La Cifra del Sig. Algoritma ini baru dikenal luas 200 tahun kemudian dan dinamakan kode vigènere. Vigènere merupakan pemicu perang sipil di Amerika dan kode vigènere digunakan oleh Tentara Konfederasi (Confederate Army) pada perang sipil Amerika (American Civil War). Kode vigènere berhasil dipecahkan oleh Babbage dan Kasiski pada pertengahan abad 19. (Ariyus, 2008).

Algoritma enkripsi jenis ini sangat dikenal karena mudah dipahami dan diimplementasikan. Teknik untuk menghasilkan ciphertext bisa dilakukan menggunakan substitusi angka maupun bujursangkar vigènere. Teknik susbtitusi vigènere dengan menggunakan angka dilakukan dengan menukarkan huruf dengan angka, hampir sama dengan kode geser. Contoh:
Gambar 1 Contoh Tabel Substitusi Algoritma Kriptografi Vigenere Cipher
Plaintext: PLAINTEXT
Kunci: CIPHER
Gambar 2 Contoh Tabel Kriptografi dengan Algoritma Vigenere Cipher
Dengan metode pertukaran angka dengan huruf di atas, diperoleh bahwa teks asli (PLAINTEXT) memiliki kode angka (15,11, 0, 8, 13, 19, 4, 23, 19), sedangkan kode angka untuk teks kunci (CIPHER) yaitu (2, 8, 15, 7, 4, 17). Setelah dilakukan perhitungan, maka dihasilkan kode angka ciphertext (17, 19, 15, 15, 17, 10, 6, 5, 8). Jika diterjemahkan kembali menjadi huruf sesuai urutan awal, maka menjadi huruf RTPPRKGFI.
Sedangkan metode lain untuk melakukan proses enkripsi dengan metode vigènere cipher yaitu menggunakan tabula recta (disebut juga bujursangkar vigènere).
Gambar 3 Contoh Tabula Recta Algoritma Kriptografi Vigenere Cipher
 Kolom paling kiri dari bujursangkar menyatakan huruf-huruf kunci, sedangkan baris paling atas menyatakan huruf-huruf plaintext. Setiap baris di dalam bujursangkar menyatakan huruf-huruf ciphertert yang diperoleh dengan Caesar cipher, yang mana jumlah pergeseran huruf plaintext ditentukan nilai numerik huruf kunci tersebut (yaitu, a=0, b=1, c=2, …, z=25). Sebagai contoh, huruf kunci c (=2) menyatakan huruf-huruf plaintext digeser sejauh 2 huruf ke kanan (dari susunan alfabetnya), sehingga huruf-huruf ciphertext pada baris c adalah:
Gambar 4 Potongan Tabula Recta Baris ke-C
Bujursangkar vigènere digunakan untuk memperoleh ciphertert dengan menggunakan kunci yang sudah ditentukan. Jika panjang kunci lebih pendek daripada panjang plaintext, maka kunci diulang penggunaannya (sistem periodik). Bila panjang kunci adalah m, maka periodenya dikatakan m. Sebagai contoh, jika plaintext adalah THIS PLAINTEXT dan kunci adalah sony, maka penggunaan kunci secara periodik sebagai berikut:
Plaintext : THIS PLAINTEXT
Kunci     : sony sonysonys
Untuk mendapatkan ciphertext dari teks dan kunci di atas, untuk huruf plaintext pertama T, ditarik garis vertikal dari huruf T dan ditarik garis mendatar dari huruf s, perpotongannya adalah pada kotak yang berisi huruf L. Dengan cara yang sama, ditarik garis vertikal dari huruf H dan ditarik garis mendatar pada huruf o, perpotongannya adalah pada kotak yang juga berisi berisi huruf V. hasil enkripsi seluruhnya adalah sebagai berikut:
Plaintext             : THIS PLAINTEXT
Kunci                 : sony sonysonys
Ciphertext          : LVVQ HZNGFHRVL
Variasi-variasi vigènere cipher pada dasarnya perbedaannya terletak pada cara membentuk tabel atau cara menghasilkan kuncinya, sedangkan enkripsi dan dekripsi tidak berbeda dengan vigènere cipher standar. Beberapa variasi tersebut sebagai berikut:
1.    Full Vigènere Cipher
Pada varian ini, setiap baris di dalam tabel tidak menyatakan pergeseran huruf, tetapi merupakan permutasi huruf-huruf alfabet. Misalnya, pada baris a susunan huruf-huruf alfabet adalah acak seperti di bawah ini:
Gambar 5 Contoh Potongan Tabula Recta Full Vigenere Cipher
2.    Auto-Key Vigènere cipher
Idealnya kunci tidak digunakan secara berulang. Pada auto-key vigènere cipher, jika panjang kunci lebih kecil dari panjang plaintext, maka kunci disambung dengan plaintext tersebut. Misalnya, untuk mengenkripsi pesan NEGARA PENGHASIL MINYAK dengan kunci INDO, maka kunci tersebut disambung dengan plaintext semula sehingga panjang kunci menjadi sama dengan panjang plaintext:
Plaintext: NEGARA PENGHASIL MINYAK
Kunci: INDONE GARAPENGH ASILMI
3.    Running-Key Vigènere cipher
Pada varian ini, kunci bukan string pendek yang diulang secara periodik seperti pada vigènere cipher standar, tetapi kunci adalah string yang sangat panjang yang diambil dari teks bermakna (misalnya naskah proklamasi, naskah Pembukaan UUD 1945, terjemahan ayat di dalam kitab suci, dan lain-lain). Misalnya untuk mengenkripsi plaintext NEGARA PENGHASIL MINYAK dapat menggunakan kunci berupa sila ke-2 Pancasila: KEMANUSIAAN YANG ADIL DAN BERADAB. Selanjutnya enkripsi dan dekripsi dilakukan seperti biasa. (Munir, 2006)

Daftar Referensi:
Ariyus, Dony., 2008, Pengantar Ilmu Kriptografi: Teori, Analisis, dan Implementasi. Penerbit Andi, Yogyakarta.
Munir, Rinaldi., 2006, Kriptografi. Penerbit Informatika, Bandung.

Keyword: algoritma vigenere cipher, kriptografi klasik, algoritma kriptografi, rinaldi munir, keamanan pesan, enkripsi pesan, enkripsi vigenere cipher, ciphertext, plaintext, penyandian pesan, algoritma enkripsi, pengertian enkripsi, sejarah vigenere cipher, pengertian vigenere cipher ilmu kriptografi, dony ariyus.

10 komentar:

  1. Balasan
    1. Sama-sama, terima kasih sudah sudi mampir..

      Hapus
  2. Balasan
    1. Semoga bermanfaat, terima kasih sudah berkunjung..

      Hapus
  3. Cara dekripsinya gmn kak untuk yang vignere bujur sangkar. Trus tolong dibahas juga dong untuk vignere 2 ke kanan. Makasih kakak ^_^

    BalasHapus
    Balasan
    1. O iya, belum ada cara dekripsinya ya? Boleh juda masukannya, mungkin next post mungkin.

      Vigenere 2 ke kanan maksudnya gimana?

      Hapus
  4. membantu sekali artikelnya,
    berikut artikel yang sudah saya rangkum http://arfianhidayat.com/algoritma-kriptografi-vigenere-cipher
    sudah saya buat DEMO PROGRAMnya juga, bisa dilihat, makasih

    BalasHapus
    Balasan
    1. Terima kasih sudah berkenan membuat programnya. :D

      Hapus