Implementasi Algoritma Vigenere Subtitusi dengan Shift Indeks Prima

  Implementasi Algoritma Vigenere Subtitusi dengan Shift Indeks Prima Muslim Ramli

  Magister Teknik Informatika, Universitas Sumatera Utara

  Rahmadi Asri

  Magister Teknik Informatika, Universitas Sumatera Utara

  Muhammad Zarlis

  Magister Teknik Informatika, Universitas Sumatera Utara m.zarlis@usu.ac.id

  

Abstrak

Kriptografi klasik seperti vigenere cipher merupakan salah satu algoritma kriptografi yang

implementasinya sangat sederhana namun cukup kuat di zamannya. Setelah ditemukan metode kasiski, maka

vigenere cipher sangat mudah untuk dianalisis oleh kriptanalis sehingga mendapatkan kunci kriptografinya.

Hal ini disebabkan karena masih ada keterhubungan yang erat antara cipher, plainteks dan kunci kriptografi.

Algoritma vigenere cihper ternyata dapat dimodifikasi dan dibuat pengamanan berlapis, begitu juga dengan

kunci untuk proses enkripsi dan sebaliknya. Penambahan lapis kemanaan shift indeks prima dianggap dapat

menambah langkah untuk memecahkan informasi rahasia.

  Keywords: Kriptografi, Vigenere, Cipher, plaintext, ciphertext, bilangan prima, kriptanaslis I.

  yang digunakan seringkali dapat disadap oleh

   LATAR BELAKANG pihak lain [1].

  Keamanan data dan informasi merupakan hal Kriptografi (cryptography) merupakan ilmu sangat penting di era reformasi saat ini. dan seni untuk menjaga pesan agar aman. Umumnya, setiap institusi memiliki dokumen-

  (Cryptography is the art and science of keeping dokumen penting dan bersifat rahasia yang hanya messages secure) “Crypto” berarti “secret” boleh diakses oleh orang tertentu. Sistem (rahasia)vdan “graphy” berarti “writing” informasi yang dikembangkan harus menjamin (tulisan). Para pelaku atau praktisi kriptografi keamanan dan kerahasiaan dokumen-dokumen disebut cyrptographers. Sebuah algoritma tersebut. Namun kendalanya bahwa media-media kriptografik (cryptographic algorithm), disebut cipher, merupakan persamaan matematik yang digunakan untuk proses enkripsi dan dekripsi. Biasanya persamaan kedua matematik (untuk enkripsi dan dekripsi) tersebut memiliki hubungan matematis yang cukup erat [2].

  Salah satu algoritma kriptografi klasik yang terkenal adalah Vigenere Cipher. Vigenere Cipher merupakan bentuk pola alphabetic subtitution seperti yang diungkapkan Caesar Chiper, namun menambahkan kunci lebih aman. Ide ini sudah diterapkan berkali-kali, namun pada tahun 1553 metode ini baru dikemukakan oleh Giovan Battista Bellaso di bukunya La cifra del. Sig. Giovan Battista Bellaso. Algoritma ini akhirnya terkenal dengan nama Vigenere Cipher karena pada tahun 1586 Blaise de Vigenere mempublikasikan ide yang sama namun dengan generator kunci yang lebih kuat, yaitu autokey cipher, Hallim (2010: 3).

  Nama lain untuk pesan adalah (plaintext) atau teks jelas (cleartext).

  Cipher dan kunci Algoritma kriptogarfi disebut juga cipher, yaitu aturan untuk enkripsi dan dekripsi, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yang berisi elemen- elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-elemen antara

  d.

  Enkripsi dan dekripsi Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption) atau enciphering (standard nama menurut ISO 7498- 2). Sedangkan proses mengembalikan cipherteks menjadi plainteks semula disebut dekripsi (decryption) atau deciphering (standard nama menurut ISO 7498-2).

  c.

  Pengirim dan Penerima Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan.

  b.

  Pesan, Plainteks, dan Cipherteks Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya.

  Vigenere Cipher sangat terkenal karena mudah untuk dimplementasikan. Metode ini juga cukup kuat untuk menghindari kriptanalis yang menggunakan analisis frekuensi.Pada masa kejayaannya, sistem ini disebut sebagai le chiffre indechifferable. Hingga akhirnya seseorang bernama Frederich Kasiski dapat membuat metode yang efisien dalam memecahkan cipher vigenere.

  Di dalam kriptografi kita akan sering menemukan berbagai istilah atau terminology. Beberapa istilah yang harus diketahui yaitu : a.

  Menurut Kaufman et. al. (2002) menjelaskan bahwa kata Kriptografi berasal dari bahasa yunani dan memiliki makna seni dalam menulis pesan rahasia (The art of secret writing), dimana kriptografi terdiri dari 2 kata yaitu   yang berarti rahasia atau tersembunyi dan  yang berarti tulisan. (Apriandala, 2013: 114).

  Pesan plaintext yang telah dienkripsi (atau dikodekan) dikenal sebagai ciphertext (teks sandi).

  Kriptografi Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. Dalam ilmu kriptografi, terdapat dua buah proses yaitu melakukan enkripsi dan dekripsi. Pesan yang akan dienkripsi disebut sebagai plaintext (teks biasa). Disebut demikian karena informasi ini dengan mudah dapat dibaca dan dipahami oleh siapa saja. Algoritma yang dipakai untuk mengenkripsi dan mendekripsi sebuah plaintext melibatkan penggunaan suatu bentuk kunci.

  Apalagi dengan teknologi yang sudah ada saat ini dan ditemukannya metode kasiski, maka bila ingin menggunakan Vigenere Cipher ini dengan aman, kita perlu melakukan modifikasi dari cara sistem ini bekerja. Cara yang diusulkan kali ini adalah meng-generate sebuah urutan kunci secara random dari kunci yang telah disepakati bersama.

  Algoritma kriptografi klasik seperti Vigenere Cipher sudah ditinggalkan oleh orang-orang karena cukup mudah dianalisis oleh kriptanalis.

II. TINJAUAN PUSTAKA 1.

  dua himpunan tersebut. Misalkan P menyatakan plainteks dan C menyatakan cipherteks, maka : Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka persamaan D(E(P)) = P harus benar.

  Kriptografi mengatasi masalah keamanan data dengan menggunakan kunci, yang dalam hal ini algoritma tidak dirahasiakan lagi, tetapi kunci harus tetap dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enkripsi dan dekripsi. Kunci biasanya berupa string atau deretan bilangan.

  Dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai skema diperlihatkan pada Gambar 1.

  Gambar 1. Skema enkripsi dan deskripsi dengan menggunakan kunci 2.

  Vigenere Chiper Algoritma Vigenere Cipher ini menggunakan bujursangkar Vigenere untuk melakukan enkripsi. Setiap baris di dalam bujursangkar menyatakan huruf-huruf ciphertext yang diperoleh dengan Caesar Cipher. Untuk lebih jelasnya perhatikan gambar di bawah ini.

  Deretan huruf mendatar menunjukkan plaintext, sedangkan huruf menurun menunjukkan kunci.

  Cara kerja table tersebut adalah berdasarkan kunci. Kunci ditentukan oleh si pembuat pesan. Kunci akan menjadi penentu sebuah pesan dengan menggunakan algoritma vegenere cipher berhasil di enkripsi dan dekripsi.

  Gambar 2. Tabel Vegenere Cipher 3.

  Metode Kasiski Kekuatan dari algoritma kriptografi Vigenere adalah tidak mudah dilakukan analisis frekuensi pada cipher karena keterkaitan antara plainteks dan cipher sudah cukup dikurangi dengan penggunaan kunci. Kasiski menemukan sebuah metode analisis dengan mendeduksi panjang dari kunci yang tidak diketahui.

  Bila panjang kunci telah diketahui dengan pasti misalkan n, maka cipher dibariskan secara terurut menjadi n baris, kemudian masing- masing baris kita lakukan analisis frekuensi karena masing-masing baris tersebut adalah monoalphabetic substitution seeprti Caesar Cipher.

  Namun, permasalahannya di sini adalah bagaimana kita dapat dengan cukup akurat mendeduksi panjang dari kunci yang belum kita ketahui? Metode kasiski memanfaatkan analisis frekuensi namun tidak dengan analisis frekuensi alphabet tunggal. Tetapi menggunakan analisis frekuensi beberapa karakter berurutan yang sering ditemui pada bahasa plainteks tersebut dibuat. Bila kita memiliki urutan karakter yang sama berulang-ulang maka jarak-jarak tersebut harus kita rekam. Kemudian dari semua jarak- jarak karakter beurutan yang sering muncul tersebut, kita mencari factor persekutuan terbesar dari selisih-selisih tersebut.

  Angka inilah yang dapat dijadikan dasar yang kuat dalam mendeduksi panjang kunci yang digunakan. Sehingga proses selanjutnya menjadi lebih mudah karena seperti menyelesaikan Caesar Cipher yang sudah terbukti cukup mudah.

  Setelah menggunakan Caesar Cipher dengan dalam proses tersebut, maka kunci tersebut harus disusun ulang agar menjadi kunci yang utuh, namun terkadang kunci yang dihasilkan dari analisis frekuensi tidak akurat sehingga kita harus mencoba-coba dari kunci yang dihasilkan pada cipher teks, apakah benar-benar menjadi plainteks bermakna. Bila masih belum ditemukan plain teks yang benar-benar bermakna, maka kita harus melakukan perubahan pada kunci sesuai dengan kondisi plainteks yang dihasilkan saat ini dengan kemungkinan plainteks yang seharusnya. Dalam hal ini, penguasaan kata-kata dalam bahasa yang digunakan pada plainteks harus cukup baik agar deduksinya benar.

  Namun, mengapa cara dalam menentukan kunci tersebut dapat digunakan adalah bila sebuah substring yang diulang muncul di plainteks dan jarak antar karakter adalah kelipatan dari panjang kunci, maka plainteks yang berulang tersebut dienkripsi dengan urutan kunci yang sama.

  Kekuatan dari algoritma kriptografi Vigenere adalah tidak mudah dilakukan analisis frekuensi pada cipher karena keterkaitan antara plainteks dan cipher sudah cukup dikurangi dengan penggunaan kunci. Kasiski menemukan sebuah metode analisis dengan mendeduksi panjang dari kunci yang tidak diketahui.

  Bila panjang kunci telah diketahui dengan pasti misalkan n, maka cipher dibariskan secara terurut menjadi n baris, kemudian masing- masing baris kita lakukan analisis frekuensi karena masing-masing baris tersebut adalah monoalphabetic substitution seeprti Caesar Cipher.

  Namun, permasalahannya di sini adalah bagaimana kita dapat dengan cukup akurat mendeduksi panjang dari kunci yang belum kita ketahui? Metode kasiski memanfaatkan analisis frekuensi namun tidak dengan analisis frekuensi alphabet tunggal. Tetapi menggunakan analisis frekuensi beberapa karakter berurutan yang sering ditemui pada bahasa plainteks tersebut dibuat. Bila kita memiliki urutan karakter yang sama berulang-ulang maka jarak-jarak tersebut harus kita rekam. Kemudian dari semua jarak- jarak karakter beurutan yang sering muncul tersebut, kita mencari factor persekutuan terbesar dari selisih-selisih tersebut harus melakukan perubahan pada kunci sesuai dengan kondisi plainteks yang dihasilkan saat ini dengan kemungkinan plainteks yang seharusnya. Dalam hal ini, penguasaan kata-kata dalam bahasa yang digunakan pada plainteks harus cukup baik agar deduksinya benar. Namun, mengapa cara dalam menentukan kunci tersebut dapat digunakan adalah bila sebuah substring yang diulang muncul di plainteks dan jarak antar karakter adalah kelipatan dari panjang kunci, maka plainteks yang berulang tersebut dienkripsi dengan urutan kunci yang sama.

1. VIGENERE CIPHER SUBTITUSI DENGAN SHIFT INDEX BILANGAN PRIMA

  Pada penelitian ini algoritma yang diterapkan adalah Vigenere Cipher dengan metode Subtitusi, dimana juga terdapat modifikasi dalam menentukan Ciphertext dari hasil enkripsi.

  Rumus dalam Vigenere Cipher Subtitusi adalah sebagai berikut: Berikut merupakan table Vigenere Subtitusi sebagai acuan dari pada proses pengujian beserta dengan indeks huruf

  Enkripsi C = P + K mod 26 Dekripsi P = C - K mod 26 Contoh berikut ini merupakan hasil enkripsi dari suatu plaintext Terdapat plainteks “KRIPTOGRAFI” dengan masing-masing indeks pada setiap hurufnya dan key “PYTHON”, jika panjang plainteks lebih besar dari key maka key tersebut akan berulang setiap karakter sampai dengan panjang plainteks tersebut. Pada cipherteks “BSGDSOMIQPB” didapat dengan rumus.

  Enkripsi C = P + K mod 26 + Indeks Bilangan Prima

  Sehingga: = 10 + 15 = 25

  Karakter cipherteks “K” yaitu C

  1

  mod 26 = 25 + 2 = 27 = B = 17 + 24 = 41

  Karakter cipherteks “R” yaitu C

  2

  mod 26 = 15 + 3 = 18 = S = 8 + 19 = 27

  Karakter cipherteks “I” yaitu C

  3

  mod 26 = 1 + 5 = 6 = G = 15 + 7 = 22

  Karakter cipherteks “P” yaitu C

  4

  mod 26 = 22 + 7 = 29 = D, dst Pada tahap dekripsi dilakukan dengan cara yang sama dengan rumus

  Proses penyisipan indeks bilangan prima terhadap chiperteks dapat menjadi salah satu tehnik yang digunakan untuk mempersulit pada proses kriptanalisis.

  Dekripsi (+) C = P - K mod 26 - Indeks Bilangan Prima Dekripsi (-)

III.KESIMPULAN DAN SARAN 1.

  Algoritma Vigenere Cipher bekerja lebih optimal apabila menggunakan metode subtitusi shif indeks bilangan prima.

  2. Penggunaan module dan penyematan shift index bilangan prima akan menambah langkah kriptanalis dalam memecahkan informasi pesanyang dirahasiakan

  3. Proses enkripsi dan dekripsi algoritma vigenere cipher menggunakan shift indeks bilangan prima dapat berjalan dengan baik.

  2. Saran a.

  Untuk meningkatkan level keamanan dapat menggunakan modifikasi lain selain penggunaan bilangan prima dan penambahan nilai module.

  B.

  Sangat disaranakan untuk membuat sebuah algoritma baru untuk key atau kunci yang akan digunakan untuk me-enkripsi dan dekripsi sebuah plaintext dan ciphertext. Hal ini dilakukan untuk menambah level keamanan bagi kriptanalis.

  Kesimpulan 1.

  C = P - K mod 26 - Indeks Bilangan Prima + 26

DAFTAR PUSTAKA

  [5] Wade Trappe and Lawrence C. Washington,Introduction to Cryptography with Coding Theory. Second edition.

  Pearson Prentice Hall, 2006.

  Informatika , pp. 65-78, September 2010.

  Eletronika Negeri. [4] Muhammad Fairuzabadi, "Implemetasi Kriptografi Klasik menggunakan Borland Delphi," Jurnal Dinamika

  [2] Jati Sasongko, "Pangamanan Data Informasi menggunakan Kriptografi Klasik," DINAMIK, vol. X, no. 3, pp. 160-167, September 2005. [3] Hallim, Abd, 2010, Pembuatan Perangkat Lunak Me- dia Pembelajaran Kriptografi Klasik. Sura- baya.Politeknik

  [1] Apriandala, Rio, 2013, Sistem Keamanan Menggunakan Rubik Dengan Algoritma Kriptografi Encryption, Tugas Besar I Makalah Kriptografi, Universitas Bengkulu. 375 Hal Daryanto. 2003. Belajar Komputer Visual Basic