Vigenere Cipher

Nama : Muhammad Baso Adrian Ibrahim
Kelas: 3B TKJ
Mata Kuliah: Cyber Security
Dosen: Irfan Syamsuddin, ST, PG.Dipl.BEC, M.Com.ISM,Ph.D

Sandi Vigenère adalah salah satu penyandian teks alfabet dengan menggunakan sandi Caesar Cipher akan tetapi alfabet yang dijadikan sebagai kata kuncinya. Sandi Vigenère merupakan bentuk sederhana dari sandi substitusi polialfabetik. Vigenere Chiper termasuk dalam cipher abjadmajemuk (polyalphabetic substitution Chiper) yang dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis, Blaise de Vigenere pada abad 16 tahun 1586 (Arjana et al. 2012).

How to work ?

Sandi Vigenère 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 DB menjadi E and dan seterusnya. Sandi Vigenère terdiri dari beberapa sandi Caesar dengan nilai geseran yang berbeda.
Gambar 1.1 Tabel Vigenere
Untuk menyandikan suatu pesan, digunakan sebuah tabel alfabet yang disebut Tabel Vigenère (gambar 1,1). Tabel Vigenère 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, teks terang yang hendak disandikan adalah perintah "Serbu Berlin":
serbuberlin
Sedangkan kata kunci antara pengirim dan tujuan adalah "Pizza"
"PIZZA" diulang sehingga jumlah hurufnya sama banyak dengan teks terang:
PIZZAPIZZAP
Huruf pertama pada teks terang, S, disandikan dengan menggunakan baris berjudul P, huruf pertama pada kata kunci. Pada baris P dan kolom S di tabel Vigenère, terdapat huruf H. Demikian pula untuk huruf kedua, digunakan huruf yang terletak pada baris I (huruf kedua kata kunci) dan kolom E (huruf kedua teks terang), yaitu huruf M. Proses ini dijalankan terus sehingga
Teks terang:serbuberlin
Kata kunci:PIZZAPIZZAP
Teks bersandi:HMQAUQMQKIC
Proses sebaliknya (disebut dekripsi), dilakukan dengan mencari huruf teks bersandi pada baris berjudul huruf dari kata kunci. Misalnya, pada contoh di atas, untuk huruf pertama, kita mencari huruf H (huruf pertama teks tersandi) 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 teks terang adalah E, dan seterusnya hingga didapat perintah "serbuberlin".

Rumus - Rumus Vigenere Cipher
  
Rumus enkripsi vigenere cipher:
atau
Ci = ( Pi + Ki ) – 26 kalau hasil penjumlahan Pi dan Ki lebih dari 26
Rumus dekripsi vigenere cipher:
atau
Pi = ( Ci – Ki ) + 26 kalau hasil pengurangan Ci dengan Ki minus
Dimana:
Ci = nilai desimal karakter ciphertext ke-i
Pi = nilai desimal karakter plaintext ke-i
Ki = nilai desimal karakter kunci ke-i
Nilai desimal karakter:
A=0 B=1 C=2 ... Z=25
Sebagai contoh, jika plaintext adalah STIKOMBALI dan kunci adalah KAMPUS maka proses enkripsi yang terjadi adalah sebagai berikut:
Plaintext:STIKOMBALI
Key:KAMPUSKAMP
Ciphertext:CTUZIELAXX
Pada contoh diatas kata kunci KAMPUS diulang sedemikian rupa hingga panjang kunci sama dengan panjang plainteksnya. Jika dihitung dengan rumus enkripsi vigenere  plainteks huruf pertama S (yang memiliki nilai Pi=18) akan dilakukan pergeseran dengan huruf K (yang memiliki Ki=10) maka prosesnya sebagai berikut:
 Ci = ( Pi + Ki ) mod 26 
    = (18 + 10) mod 26
    = 28 mod 26
    = 2    
Ci=2 maka huruf ciphertext dengan nilai 2 adalah C . Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada setiap huruf hingga semua plainteks telah terenkripsi menjadi ciphertext. Setelah semua huruf terenkripsi maka proses dekripsinya dapat dihitung sebagai berikut:

 Pi = ( Ci – Ki ) + 26
    = ( 2 – 10 ) + 26
    = –8 + 26
    = 18
Pi=18 maka huruf plainteks dengan nilai 18 adalah S. Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada setiap huruf hingga semua ciphertext telah terdekripsi menjadi plainteks.

Contoh Penggunaan Vigenere Ciphere with Javascript





Daftar Pusataka
  1. Arjana, Putu H., Tri Puji Rahayu, Yakub, and Hariyanto. 2012. “Implementasi Enkripsi Data Dengan Algoritma Vigenere Chiper.” Sentika 2012(Sentika):164–69.
  2.  wikipedia.org. "Sandi Vigenere". Diakses pada 4 Juni 2020, dari  https://id.wikipedia.org/wiki/Sandi_Vigenère
  3. nayuki.io. "Vigenere Cipher (Javascript)". Diakses pada 4 Juni 2020, dari  https://www.nayuki.io/page/vigenere-cipher-javascript


Post a Comment

5 Comments

  1. sumpah bang, js lu nyelametin nilai gua wkwk thanks thanks bang ilmu nyaa

    ReplyDelete
  2. Aku masih belum ngerti, aku bukan anak komputer tp penasaran sm ilmu komputer ad yg lebih rinci g?

    ReplyDelete
    Replies
    1. Ilmi komputer kompleks mba kalo mau rinci ya perlu pelajari satu2 atau fokus dalami satu bidang biar jadi expert

      Delete
  3. Bang izin tanya, untuk misahin teks kapital dengan kunci tidak kapital menghasilkan enkripsi teks kapital, atau sebaliknya, apakah menggunakan tabel acuan baru bang.?

    ReplyDelete