149
Implementasi Algoritma Vigenere Subtitusi
dengan Shift Indeks Prima
Muslim Ramli
Magister Teknik Informatika, Universitas Sumatera Utara muslimramli@students.usu.ac.id
Rahmadi Asri
Magister Teknik Informatika, Universitas Sumatera Utara rahmadiasri@students.usu.ac.id
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. LATAR BELAKANG
Keamanan data dan informasi merupakan hal sangat penting di era reformasi saat ini. Umumnya, setiap institusi memiliki dokumen-dokumen penting dan bersifat rahasia yang hanya boleh diakses oleh orang tertentu. Sistem informasi yang dikembangkan harus menjamin keamanan dan kerahasiaan dokumen-dokumen tersebut. Namun kendalanya bahwa media-media
yang digunakan seringkali dapat disadap oleh pihak lain [1].
Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman. (Cryptography is the art and science of keeping
messages secure) “Crypto” berarti “secret” (rahasia)vdan “graphy” berarti “writing”
150 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).
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.
Algoritma kriptografi klasik seperti Vigenere Cipher sudah ditinggalkan oleh orang-orang karena cukup mudah dianalisis oleh kriptanalis. 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.
II. TINJAUAN PUSTAKA
1. 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. Pesan plaintext yang telah dienkripsi (atau dikodekan) dikenal sebagai ciphertext (teks sandi).
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).
Di dalam kriptografi kita akan sering menemukan berbagai istilah atau terminology. Beberapa istilah yang harus diketahui yaitu : a. Pesan, Plainteks, dan Cipherteks
Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah (plaintext) atau teks jelas (cleartext).
b. 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.
c. 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).
d. Cipher dan kunci
151 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.
152 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
153 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.
Sehingga:
Karakter cipherteks “K” yaitu C1 = 10 + 15 = 25
mod 26 = 25 + 2 = 27 = B
Karakter cipherteks “R” yaitu C2 = 17 + 24 = 41
mod 26 = 15 + 3 = 18 = S
Karakter cipherteks “I” yaitu C3 = 8 + 19 = 27
mod 26 = 1 + 5 = 6 = G
Karakter cipherteks “P” yaitu C4 = 15 + 7 = 22
mod 26 = 22 + 7 = 29 = D, dst
Pada tahap dekripsi dilakukan dengan cara yang sama dengan rumus
Enkripsi
154 Proses penyisipan indeks bilangan prima
terhadap chiperteks dapat menjadi salah satu tehnik yang digunakan untuk mempersulit pada proses kriptanalisis.
III.KESIMPULAN DAN SARAN 1. Kesimpulan
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.
DAFTAR PUSTAKA
[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 [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 Eletronika Negeri.
[4] Muhammad Fairuzabadi, "Implemetasi Kriptografi Klasik menggunakan Borland Delphi," Jurnal Dinamika Informatika, pp. 65-78, September 2010.
[5] Wade Trappe and Lawrence C. Washington,Introduction to Cryptography with Coding Theory. Second edition. Pearson Prentice Hall, 2006.
Dekripsi (+) C = P - K mod 26 - Indeks
Bilangan Prima
Dekripsi (-) C = P - K mod 26 - Indeks