IJCCS, Vol.x, No.x, Julyxxxx, pp. 1~5 ISSN: 1978-1520 1007
IMPLEMENTASI ALGORITMA KRIPTOGRAFI KLASIK BERBASIS KARAKTER UNTUK ENKRIPSI FILE BINER Gde Sastrawangsa Program Studi Sistem Komputer, STMIK STIKOM Bali Jl Raya Puputan no 86 Renon, Denpasar
[email protected]
Abstrak Pengamanan data dibutuhkan untuk mencegah informasi dapat dipahami pihak lain yang tidak berkepentingan. Salah satu upaya pengamanan informasi adalah dengan melakukan enkripsi. Tujuan yang ingin dicapai dalam penelitian ini adalah untuk mengamankan file biner dengan menggunakan algoritma kriptografi klasik populer, sehingga mudah untuk diimplentasikan menggunakan bahasa pemrograman tingkat tinggi. Algoritma yang dipilih adalah Vigenere dan Autokey cipher yang berbasis karakter. Algoritma tersebut tidak dapat diterapkan secara langsung untuk mengenkripsi/mendekripsi file biner. File biner akan diencode menjadi string terlebih dahulu sebelum dienkripsi/didekripsi. Algoritma encoding yang digunakan adalah Base64. Tabel Vigenere dan Autokey dimodifikasi, disesuaikan dengan jangkauan karakter yang digunakan pada Base64 encoding. Kunci enkripsi/dekripsi dapat berupa file biner lain. Hasil enkripsi/dekripsi di-decode kembali menjadi file biner. File biner asli dan file biner hasil enkripsi memiliki ukuran yang identik. Kata kunci—enkripsi, vigenere, autokey, file biner
Abstract Securing data is needed to prevent the information to be understood by the other party who is not concerned with it. One way to secure information is doing encryption. The aim of this research is to secure binary files using popular classic cryptographic algorithms, making it easy to be implementedby using high-level programming languages. The selected algorithm are Vigenere and Autokey cipher. The algorithm can not be applied directly to encrypt / decrypt the binary files. Binary files will be encoded into a string before encrypted / decrypted. The algorithm used is Base64 encoding. Vigeneretable is modified, customized with Base64 characters range. The key for encryption / decryption can be another binary file. The results of encryption / decryption decoded back into a binary file. The original binary file had identical size with the result from the encryption. Keywords—encryption, vigenere, autokey, binary file
1. PENDAHULUAN Semakin berkembangnya pemanfaatan teknologi informasi dalam membantu pekerjaan manusia di berbagai bidang, maka keamanan data menjadi salah satu aspek yang harus diperhatikan. Data digital dengan mudah dapat dipindahkan, digandakan atau dimanipulasi dengan bantuan komputer. Beberapa data dan informasi sensitif umumnya hanya ditujukan bagi segolongan orang tertentu. Pengamanan data dibutuhkan untuk mencegah informasi tersebut dipahami pihak lain yang tidak berkepentingan. Sehingga adanya kemungkinan kebocoran atau penyalahgunaan data dapat dihindari. Received June1st,2012; Revised June25th, 2012; Accepted July 10th, 2012
IJCCS 1008
ISSN: 1978-1520
Salah satu upaya pengamanan data yang dapat dilakukan adalah dengan kriptografi. Kriptografi adalah ilmu atau seni untuk mengamankan pesan dengan membuat pesan tersebut tidak dimengerti oleh pihak lawan. Ilmu kriptografi sudah dikenal sejak 1900 sebelum masehi [1]. Dalam kriptografi, teknik untuk mengacak pesan menjadi pesan yang tak dapat dibaca atau tidak dapat dipahami disebut sebagai enkripsi. Lawan dari enkripsi adalah dekripsi, yaitu teknik mengembalikan pesan yang teracak menjadi pesan yang dapat dibaca dan dipahami. Autokey cipher adalah salah satu algoritma kriptografi klasik yang cukup populer sampai sekarang. Algoritma kriptografi tersebut diciptakan oleh Blaise de Vigenère pada tahun 1585, merupakan perbaikan keamanan dari metode sebelumnya yaitu Vigenere cipher[1]. Kedua algoritma kriptografi tersebut sama-sama berbasis karakter, yaitu melakukan pergantian karakter atau huruf pesan berdasarkan huruf kuncinya menggunakan tabel alphabet. Perbedaan kedua algoritma tersebut terletak pada penggunaan kuncinya. Kriptanalisis terhadap Autokey cipher dan Vigenere cipher dapat dilakukan dengan teknik analisa frekuensi, dengan salah satu syaratnya mengetahui bahasa yang digunakan dalam plaintext-nya. Di era teknologi informasi saat ini enkripsi dan dekripsi dilakukan dengan bantuan komputer untuk mengamankan data digital. Algoritma kriptografi modern tidak lagi melakukan pergantian huruf pesan seperti algoritma kriptografi klasik, tapi melakukan operasi bit kode data digitalnya[2]. Komputer dapat digunakan untuk menjalankan algoritma kriptografi modern maupun klasik. Kriptografi modern diterapkan untuk pengamanan data digital yang memerlukan proses sangat cepat hampir real-time, biasanya menggunakan bahasa pemrograman komputer tingkat rendah. Sedangkan kriptografi klasik lebih ditujukan untuk pengamanan data teks yang tidak mengutamakan kecepatan proses, dan umumnya tidak bisa digunakan untuk melakukan enkripsi data biner secara langsung. Dalam penelitian ini, file biner akan dienkripsi dengan menggunakan salah satu dari dua algoritma kriptografi klasik yang dibahas, yaitu Autokey cipher dan Vigenere cipher. File biner terlebih dahulu diubah menjadi teks dengan base64 encoding, sehingga tabel alphabet vigenere dan autokey yang digunakan harus dimodifikasi disesuaikan dengan jumlah karakter dalam base64.
2. METODE PENELITIAN 2.1 Alur Enkripsi/Dekripsi Algoritma Autokey dan Vigenere cipher tidak dapat langsung diterapkan untuk mengenkripsi atau mendekripsi file biner. Ada beberapa tahapan yang harus dilalui sebelum enkripsi/dekripsi dapat dilakukan. Gambar 1 menunjukkan tahapan proses enkripsi/dekripsi dalam penelitian ini. Encoding file biner dengan Base64
Bersihkan data dari Base64 padding
Enkripsi / Dekripsi dengan Algoritma Kriptografi Klasik
Bersihkan key dari Base64 padding
Encoding key dengan Base64
Tambahkan Base64 padding pada hasil
Decoding hasil dengan Base64
Mulai
Selesai
Gambar 1 Alur proses enkripsi/dekripsi file biner Algoritma kriptografi klasik berbasis karakter yang akan diimplementasikan adalah algoritma Autokey dan Vigenere Cipher. Selama ini algoritma kriptografi klasik hanya digunakan untuk mengenkripsi data teks dengan kunci teks juga. Namun dalam penelitian ini,
Title of manuscript is short and clear, implies research results (First Author)
IJCCS
ISSN: 1978-1520
1009
kedua algoritma tersebut juga akan digunakan untuk mengenkripsi file biner, dan kunci enkripsi juga dapat menggunakan file biner. Saat dienkripsi/dekripsi, file dan kunci harus dalam format string. File biner dan kunci biner diubah menjadi string sebelum proses enkripsi/dekripsi, dan dikembalikan ke biner lagi setelah proses enkripsi/dekripsi. Perubahan dari biner menjadi string atau sebaliknya menggunakan base64 encoding. 2.2 Base64 Encoding Base64 adalah sebuah standar encoding yang digunakan untuk mengubah data biner menjadi string atau sebaliknya. Sejarah Base64 berawal dari surat elektronik yang menggunakan protokol berbasis teks. Encoding yang digunakan adalah ASCII. Tidak masalah jika mengirim email teks saja. Masalah muncul ketika email berkembang, menjadi punya kemampuan untuk mengirim attachment berupa file apa saja termasuk file biner. Untuk mengatasi masalah ini, dibuatlah Base64 encoding. Cara kerja Base64 adalah dengan mengkodekan setiap 6 bit menjadi satu karakter string. Sehingga karakter string yang dibutuhkan adalah 26 = 64. Karakter yang dipakai adalah huruf latin besar A-Z, huruf latin kecil a-z, dan angka 0-9. Semua berjumlah 62. Dua sisanya memakai simbol + dan / sehingga totalnya adalah 64[3]. Tabel 1 Karakter yang digunakan dalam Base64 encoding
Karena semua data biner menggunakan encoding berukuran 1 byte atau 8 bit, maka tidak semua data biner memiliki jumlah bit yang habis dibagi 6, sehingga kemungkinan akan ada kekurangan bit. Base64 bekerja dengan cara mengelompokkan setiap 24 bit, kemudian membaginya menjadi 4 karakter base64[4]. Jika pada kelompok terakhir kekurangan bit, maka ditambahkan dengan padding bit yang bernilai 0, sampai kelompok terakhir tersebut memiliki 24 bit. Untuk encodingpadding bit, ditambahkan satu karakter khusus yaitu simbol “=”. Bila dalam kelompok 3-byte itu satu byte terakhir adalah padding bit, maka satu karakter “=” ditambahkan. Bila dua byte adalah padding bit, maka dua karakter “=” ditambahkan menjadi “==”[5]. 2.3 Penanganan Padding Bit Hasil encoding kemungkinan masih mengandung padding bit pada bagian akhir data. Karakter “=” yang digunakan untuk padding bit, tidak ikut diproses enkripsi/dekripsi. Karakter ini akan dipisahkan dari data, dan akan ditambahkan kembali setelah proses enkripsi dan dekripsi. Tidak semua karakter Base64 dapat berada di akhir data bersama simbol padding bit “=”. Padding bit “==” hanya menempel pada karakter yang memiliki 4 bit terakhir adalah 0, yaitu karakter “A”, “Q”, “g”, dan “w”. Sedangkan padding bit “=” hanya menempel pada Title of manuscript is short and clear, implies research results (First Author)
IJCCS 1010
ISSN: 1978-1520
karakter yang memiliki 2 bit terakhir adalah 0, yaitu karakter “A”, “E”, “I”, “M”, “Q”, “U”, “Y”, “c”, “g”, “k”, “o”, “s”, “w”, “0”, “4”, dan “8”. Oleh sebab itu, pemisahan padding bit juga termasuk dengan satu karakter di depan padding bit. 2.4 Vigenere Cipher Algoritma Vigenere cipher pertama kali dijelaskan oleh Giovan Battista Bellaso dalam bukunya pada tahun 1553. Nama Vigenere cipher adalah kesalahan penyebutan metode ini dalam publikasi-publikasi pada abad ke-19, dan kesalahan tersebut dilakukan sampai sekarang. Vigenere adalah nama seorang kriptografer Perancis yang nantinya akan memperbaiki atau meningkatkan keamanan metode ini[1]. Algoritma Vigenere cipher melakukan substitusi menggunakan bantuan tabel alpabet yang disebut tabula recta,tabel vigenere atau vigenere square.Tabel vigenere adalah tabel dengan kolom dan baris berjumlah sama. Tabel ini menggunakan alpabet A-Z sebagai sisi atas dan sisi kiri tabelnya, sehingga tabel vigerene berukuran 26x26. Vigenere cipher menggunakan kunci untuk proses enkripsi dan dekripsinya. Panjang kunci dibuat sama dengan panjang plaintext. Jika panjang kunci lebih pendek, maka kunci diulang kembali terus menerus sampai panjangnya sama dengan plaintext. Pada tabel vigenere, bagian atas adalah plaintext, bagian kiri adalah kunci, dan tabel yang ditengah adalah ciphertext. Setiap satu karakter plaintext dan satu karakter kunci dalam posisi yang sama, dicocokkan dalam tabel vigenere square untuk dicari perpotongannya pada bagian ciphertext. Contoh plaintext misalnya “Pasukan di ujung barat”, dengan kunci “Merpati”. Maka proses enkripsinya adalah sebagai berikut: PASUKANDIUJUNGBARAT MERPATIMERPATIMERPA BEJJKTVPMLYUGONEIPT Huruf P posisi pertama pada plain text, disilangkan di tabel vigenere dengan huruf M posisi pertama pada kunci, maka akan menghasilkan huruf B sebagai karakter posisi pertama ciphertext. Jika seluruh plaintext telah dienkripsi semua, makaciphertext yang diperoleh adalah “BEJJKTVPMLYUGONEIPT”. Proses enkripsi vigenere cipher dapat juga dilakukan secara matematis, dengan cara mengubah alpabet menjadi angka, dengan huruf A sama dengan angka 0, B sama dengan 1, dan seterusnya hingga Z sama dengan 25. Masing-masing angka plaintext dan kunci dijumlahkan, kemudian hasilnya dioperasikan mod 26. Hasil mod tersebut dikembalikan menjadi huruf kembali, maka ciphertext didapatkan. Rumus lengkapnya adalah sebagai berikut: Ci = (Pi + Ki) MOD 26 (1) Contoh penerapan dengan huruf pertama: P1 = P = 15, K1 = M = 12 C1 = (15 + 12) MOD 26 C1 = 27 MOD 26 = 1 = B Kelemahan vigenere cipher terletak pada kunci yang berulang. Metode kasiski dapat digunakan untuk menyerang vigenere cipher. Metode ini pertama kali dicetuskan oleh Friedreich Kasiski pada tahun 1863[6]. Ide Kasiski adalah menentukan panjang kunci yang digunakan dengan menganalisis perulangan huruf yang terdapat dalam ciphertext. Hal yang mendasari metode Kasiski adalah pada suatu bahasa terdapat pola huruf yang terdiri dari dua huruf atau lebih yang sering berulang. Sebagai contoh, pada bahasa Inggris pola huruf yang sering berulang adalah ‘THE’. Dengan mengetahui panjang kunci, maka cipher text dapat diserang dengan menggunakan teknik analisa frekuensi. Title of manuscript is short and clear, implies research results (First Author)
IJCCS
1011
ISSN: 1978-1520
2.5Autokey Cipher Autokey Cipher merupakan perbaikan dari algoritma vigenere. Algoritma ini pertama kali dicetuskan oleh Blaise de Vigenère pada tahun 1585. Vigenere melakukan perbaikan dengan tidak mengulang kunci yang pendek, tetapi menambah panjang kunci dengan plaintext itu sendiri[1]. Proses berikutnya sama dengan proses vigenere cipher. Contoh: PASUKANDIUJUNGBARAT MERPATIPASUKANDIUJU BEJJKTVSIMDENTEILJN Dengan perbaikan kunci tersebut, maka panjang kunci menjadi sangat susah ditebak, sehingga metode Kasiski pun menjadi sia-sia. 2.5Modifikasi Tabel Vigenere Tabel vigenere aslinya berukuran 26x26, didapatkan dari jumlah karakter dalam alphabet. Dalam penelitian ini, tabel vigenere dimodifikasi agar dapat melakukan enkripsi pada data hasil dari encoding dengan algoritma Base64. Tabel vigenere hasil modifikasi memiliki ukuran 64x64, sesuai dengan jumlah karakter yang digunakan dalam algoritma Base64 encoding. 3. HASIL DAN PEMBAHASAN Hasil dari aplikasi ini adalah file dalam format yang sama dengan file input. Ukuran file hasil akan persis sama dengan ukuran file aslinya, karena proses enkripsi dan dekripsi dengan algoritma Vigenere atau Autokey hanya melakukan substitusi karakter base64 tanpa melakukan penambahan dan pengurangan karakter. Penambahan padding bit pada akhir proses dilakukan sesuai dengan padding bit yang dikurangi diawal proses. Pengujian Algoritma dilakukan dengan beberapa sample file biner, menggunakan 2 kunci yang hanya memiliki perbedaan 1 bit. Tujuannya adalah untuk mengetahui avalance effects secara umum dari algoritma yang telah diimplementasikan. Setiap sample file biner akan dienkripsi dan didekripsi dengan masing-masing kunci. Pada Tabel 2 ditunjukkan hasil enkripsi 2 file biner yang dituliskan dalam format heksadesimal. Tabel 2 Hasil Pengujian Algoritma Key : 717765727479 Nama File Plaintext 4D756861726A6F20 73656F72616E6720 78656E6F666F6269 data1.dat 6120756E69766572 73616C2E20233132 3334353637383930 53617961206C6968 617420666F746F20 48616D656E676B75 data2.dat 6275776F6E6F2058 562062657273616D 61204962756E7961 Key : 717765727439 Nama File Plaintext 4D756861726A6F20 73656F72616E6720 78656E6F666F6269 data1.dat 6120756E69766572 73616C2E20233132 3334353637383930 53617961206C6968 data2.dat 617420666F746F20
Vigenere Ciphertext BEEC8DD3E6A3DC97 98D7D3ABD2D58C92 EC9EDFD68BDDD6A2 D2979ADCDDAFD6E9 98D3D067919A56A0 A76DA6AD5CAAAD69 C0D89ED394A5DADF 86E6949FDCEB9492 BC9ADEDC93D5DFAE D3EC9CDDD2A891CF BB92D69EE3EA86DF D559BAD99ADCED9A
Autokey Ciphertext BEEC8DD3E6A3B895 9BC6D19CCC8E9A85 D797CFCD8D8FDA8E CF8F9BD9CB9FC692 A8CFC56485956493 9F225559286A6C24 C0D89ED394A5B8C9 9AD54092D4DC9094 6887D8D99D87A396 CFDAA5D2C9A482CD 8D8FC09492CBB78D C345BBD596DBDA41
Vigenere Ciphertext BEEC8DD3E663DC97 98D7D36BD2D58C92 EC5EDFD68BDDD662 D2979ADCDD6FD6E9 98D3D027919A56A0 A72DA6AD5CAAAD29 C0D89ED39465DADF 86E6945FDCEB9492
Autokey Ciphertext BEEC8DD3E663B895 9BC6D19CCC8E9A85 D797CFCD8D8FDA8E CF8F9BD9CB9FC692 A8CFC56485956493 9F225559286A6C24 C0D89ED39465B8C9 9AD54092D4DC9094
Title of manuscript is short and clear, implies research results (First Author)
IJCCS 1012
ISSN: 1978-1520 48616D656E676B75 6275776F6E6F2058 562062657273616D 61204962756E7961
BC5ADEDC93D5DF6E D3EC9CDDD26891CF BB92D65EE3EA86DF D519BAD99ADCED5A
6887D8D99D87A396 CFDAA5D2C9A482CD 8D8FC09492CBB78D C345BBD596DBDA41
Dari Tabel 2 dapat dilihat bahwa kedua algoritma telah berhasil melakukan enkripsi, namun perubahan 1 bit pada kunci yang disiapkan tidak dapat memberikan perbedaan chipertext yang besar. Hal ini berarti algoritma yang diterapkan memiliki nilai avalance effecs yang kecil. 4. KESIMPULAN Dari pembahasan diatas maka dapat ditarik kesimpulan sebagai berikut: 1. Algoritma kriptografi klasik tetap dapat digunakan untuk melakukan enkripsi file biner dengan cara melakukan encoding sebelum dilakukan proses enkripsi. Hasil enkripsi dikembalikan dengan decoding menjadi file biner kembali. 2. Algoritma kriptografi klasik tidak melakukan proses data biner, tetapi merupakan proses pengolahan karakter dalam format string, sehingga memudahkan untuk diimplementasikan pada bahasa pemrograman tingkat tinggi. 3. Jumlah karakter ciphertext hasil enkripsi dengan algoritma kriptografi Vigenere dan Autokey Cipher, sama dengan jumlah karakter pada plaintext-nya. Pada file biner, ukuran file sebelum dan sesudah enkripsi akan tetap sama. 4. Kunci untuk melakukan enkripsi berupa file, sehingga dapat memudahkan untuk melakukan distribusi kunci. 5. Kelemahan dari hasil penelitian ini adalah, hasil enkripsi memiliki avalance effecs yang kecil. Perubahan 1 bit pada kunci tidak memberikan perubahan yang besar terhadap hasil enkripsi. 5. SARAN Pada penelitian ini, tingkat avalance effecs hanya dinilai secara visual dengan membandingkan hasil enkripsi, belum dilakukan perhitungan untuk mendapatkan nilai pastinya. Pada penelitian selanjutnya dapat melakukan analisa algoritma dengan lebih mendalam, menghitung nilai avalance effecs, waktu proses serta sumber daya yang dibutuhkan. Atau membuat rancangan algoritma kriptografi klasik yang hybrid untuk mengenkripsi file biner dengan nilai avalance effects yang cukup tinggi. DAFTAR PUSTAKA [1] SANS Institute, 2001,History of Encryption, SANS Institute [2] Schneier, B., 2006,Applied Cryptography, John Wiley & Sons, ISBN 0-471-11709-9 [3] Josefsson, S., 2006, The Base16, Base32, and Base64 Data Encodings, IETF, RFC 4648, https://tools.ietf.org/html/rfc4648, diakses tanggal 30 April 2016 [4] Yu, L., Wang, Z., dan Wang, W., 2012, The Application of Hybrid Encryption Algorithm in Software Security, Fourth International Conference on Computational Intelligence and Communication Networks, hal. 762-765 [5] Shirali-Shahreza, M., dan Shirali-Shahreza, S., 2009, Sending Pictures by SMS, The 11th International Conference of Advanced Communication Technology (ICACT 2009), hal. 222-223 [6] Carter, B. danMagic, T., 2007, Introduction to Classical Ciphers and Cryptanalysi
Title of manuscript is short and clear, implies research results (First Author)