Analisis Performansi Algoritma AES dan Blowfish Pada Aplikasi Kriptografi Wiwin Styorini1), Dwi Harinitha2) 1) Jurusan Teknik Elektro, Politeknik Caltex Riau, Pekanbaru 28265, email:
[email protected] 2) Jurusan Teknik Elektro, Politeknik Caltex Riau, Pekanbaru 28265, email:
[email protected] Abstrak – Keamanan untuk menjaga informasi adalah hal yang sangat penting . Sehingga dikembangkan suatu seni untuk menjaga informasi tersebut. Kriptografi merupakan salah satu seni untuk menjaga keamanan informasi. Algoritma yang digunakan dalam kriptografi sudah berkembang sangat pesat. Algoritma ini digunakan untuk proses enkripsi dan dekripsi data. Advance Encrytion Standard (AES) dan Algoritma Blowfish merupakan algoritma yang akan digunakan dalam penelitian ini. Kedua algoritma tersebut sudah memenuhi kebutuhan pengacakan data sehingga bisa dimanfaatkan untuk sistem keamanan data. Tetapi, diantara keduanya secara performansi algoritma AES lebih baik dibanding dengan algoritma blowfish, perbandingannya menunjukkan 1:3. Kata Kunci : Kriptografi, AES, Blowfish, enkripsi, dekripsi. Abstract - To maintain information security is a very important thing. Thus developed an art to keep such information. Cryptography is one of the arts to maintain information security. The algorithm used in cryptography has been growing very rapidly. This algorithm is used for encryption and decryption of data. Advance encrytion Standard (AES) and the Blowfish algorithm is an algorithm that will be used in this study. Both algorithms are already scrambling to meet the needs of data that can be used for data security systems. However, the performance between the two is better than the AES algorithm with a blowfish algorithm, the comparison shows 1: 3. Keywords: Cryptography, AES, Blowfish, Encrytion, Decryption.
2. LANDASAN TEORI 1. PENDAHULUAN 2.1. Kriptografi Dengan Perkembangan dunia digital saat ini, keamanan informasi menjadi hal yang sangat penting. Akhir-akhir ini penyadapan terhadap informasi yang rahasia sering terjadi. Sehingga perlu adanya perlindungan informasi tersebut, salah satunya adalah dengan enkripsi. Enkripsi adalah suatu proses untuk melindungi informasi dengan menggunakan algoritma tertentu, sehingga informasi tersebut menjadi informasi yang tidak bisa dibaca oleh penyadap. Algoritma enkripsi yang biasa digunakan adalah DES (Data Encryption Standard), Blowfish, Twofish, AES (Advance Encryption Standard), AAES (advance AES), Camellia dll. Setiap algoritma mempunyai spesifikasi dan karakter yang berbeda. Masing- masing mempunyai kelemahan dan kelebihan. Salah satu hal yang penting pada enkripsi adalah terletak pada kuncinya. Sehingga untuk perlindungan informasi supaya lebih aman, perlu penentuan algoritma enkripsi yang tepat juga efektif.
Kata kriptografi berasal dari bahasa Yunani yaitu cryptos dan graphein. Cryptos berarti rahasia dan graphein berarti tulisan. Kriptografi disebut juga sebagai ilmu pengetahuan dan seni untuk menjaga keamanan pesan [1]. Kriptografi terdiri dari dua proses utama yaitu enkripsi dan dekripsi. Berdasarkan kunci yang digunakan dalam proses enkripsi dan dekripsi, terdapat dua jenis algoritma kriptografi yaitu kunci asimetri dan simetri [2]. Algoritma kunci asimetri adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi. Algoritma ini menggunakan dua buah kunci yaitu kunci publik dan kunci privat. Kunci publik digunakan untuk proses enkripsi dan boleh diketahui oleh umum, sementara kunci privat digunakan untuk proses dekripsi dan hanya boleh diketahui oleh pihak yang berkepentingan saja. Algoritma kunci asimetri pertama kali diciptakan adalah RSA pada tahun 1978 dan kemudian disusul oleh ElGamal pada tahun 1985 [3]. Algoritma kunci simetri merupakan algoritma yang menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi pesan. Algoritma ini disebut juga kunci privat karena kunci yang digunakan
hanya boleh diketahui oleh pihak yang berkepentingan. Oleh karena itu, dibutuhkan persetujuan antara pihak pengirim dan penerima mengenai kunci yang akan digunakan. Hampir semua algoritma kriptografi yang berkembang saat ini termasuk algoritma kunci simetri, diantaranya adalah DES (Data Enryption Standard), AES (Advanced Enryption Standard), Blowfish dan RC6. Algoritma kunci simetri terbagi ke dalam dua kategori [3], yaitu: 1. Stream cipher Algoritma ini mengolah data dalam bentuk bit-bit tunggal. Proses enkripsi/dekripsi akan dilakukan pada satu bit dalam satu waktu. 2. Block cipher Algoritma ini memecah data yang masuk menjadi beberapa blok dengan panjang data tertentu. Proses enkripsi/dekripsi akan dilakukan pada satu blok data dalam satu waktu. 2.2. Algoritma Blowfish Blowfish dikembangkan untuk memenuhi kriteria desain yang cepat dalam implementasinya dimana pada keadaan optimal dapat mencapai 26 clock cycle per byte, kompak dimana dapat berjalan pada memori kurang dari 5 KB, sederhana dalam algoritmanya sehingga mudah diketahui kesalahannya, dan keamanan yang variabel dimana panjang kunci bervariasi (minimum 32 bit, maksimum 448 bit, Multiple 8 bit, default 128 bit). Algoritma Blowfish terdiri atas dua bagian, yaitu : a.
Gambar 1. Blok diagram enkripsi Blowfish
Key-Expansion
Ekspansi kunci berfungsi untuk merubah kunci (maksimum 448-bit) menjadi beberapa array subkunci dengan total 4168 byte. Kunci dimasukkan ke dalam K-array K1, K2, ... Kn , dimana 1 ≤ n ≤ 14 Blowfish menggunakan subkunci yang besar. Subkunci tersebut harus dihitung terlebih dahulu sebelum melakukan enkripsi atau dekripsi data. b. Enkripsi data Terdiri dari 16 kali putaran, dengan masukan berupa 64-bit elemen data x. Operasi yang digunakan adalah operasi penambahan dan XOR pada variabel 32 bit serta empat penelusuran tabel array berindeks untuk setiap putaran. Gambar 1 dan gambar 2 adalah blok diagram alir enkripsi dan dekripsi dari algoritma blowfish [1]. Gambar 2. Blok diagram dekripsi Blowfish
data. 2.3. Algoritma AES AES merupakan algoritma block cipher dengan menggunakan sistem permutasi dan substitusi (P-Box dan S-Box) bukan dengan jaringan Feistel sebagaiman block cipher pada umumnya. Ada beberapa jenis AES yang sudah ditetapkan , yaitu : AES-128, AES-192, dan AES-256. Pengelompokkan jenis AES ini adalah berdasarkan panjang kunci yang digunakan. Angkaangka di belakang kata AES menggambarkan panjang kunci yang digunakan pada tipa-tiap AES. Selain itu, hal yang membedakan dari masing-masing AES ini adalah banyaknya round yang dipakai. AES-128 menggunakan 10 round, AES-192 sebanyak 12 round, dan AES-256 sebanyak 14 round. Gambar 3. Menunjukkan diagram proses enkripsi AES [2].
3. Gambar 3. Diagram proses enkripsi AES
3. HASIL DAN PEMBAHASAN Pada Penelitian ini sistem yang dirancang untuk menunjang analisa yaitu aplikasi algoritma AES dan Blowfish menggunakan bahasa pemrograman java. Data yang diambil dari aplikasi ini adalah waktu proses yaitu proses enkripsi dan dekripsi masingmasing algoritma dengan masukan berupa plaintext dan panjang kunci (password).
3.1 Interface dari sistem Gambar 4 adalah gambar dari interface aplikasi yang akan digunakan utuk pengujian dan pengambilan
Gambar 4. interface dari sistem Pada aplikasi ini ada 5 proses yang dibuat yaitu proses encrypt, decrypt, Mode Enkripsi, Waktu encypt dan waktu decrypt. Input dari proses diatas adalah plaintext dan outputnya adalah chipertext. Mode Enkripsinya ada dua pilihan yaitu algoritma AES atau Blowfish. Pada proses eknkripsi ini user diminta untuk memasukkan kunci atau password, jika kunci sudah dimasukkan maka proses enkripsi akan dimulai dan waktunya dapat dilihat pada bagian waktu encrypt. Pada proses dekripsi, kunci atau password yang dimasukkan harus sama dengan kunci enkripsinya, jika sudah benar maka waktu dekripsinya bisa dilihat pada bagian waktu decrypt. 3.2 Pengujian Untuk pengujian sistem pada aplikasi algoritma AES dan Blowfish ini ada beberapa metode yang dilakukan. Dimana tujuan dibuat metode adalah untuk memudahkan dalam analisa performansi masingmasing algoritma. Perlu diketahui bahwa lingkungan pengujian dilakukan pada sebuah laptop berprosessor intel atom 1,6 GHz dengan sistem operasinya windows. Beberapa metode tersebut antara lain : Metode 1 : menguji kecepatan kedua algoritma dalam mengenkripsi dan mendekripsi file teks yang berukuran relatif kecil (69 kb). Hasil yang diperoleh pada pengujian ini dapat dilihat pada gambar 5 sampai gambar 10 dan tabel 1. Metode 2 : menguji kecepatan kedua algoritma dalam mengenkripsi dan mendekripsi file yang berukuran 125MB. Hasil yang diperoleh pada ini dapat dilihat pada tabel 2. Dari metode 1 dan metode 2 dapat dilihat bahwa untuk mengenkripsi data yang kapasitasnya besar algoritma AES membutuhkan proses yang lebih cepat dibanding dengan algoritma blowfish. Yaitu algorima AES membutuhkan waktu 25 detik sedangkan blowfish membutuhkan waktu 34 detik. Sehingga dapat disimpulkan bahwa AES memiliki performansi yang lebih baik dari pada Blowfish baik dari segi enkripsi maupun dekripsi.
Gambar 5. Proses encrypt dan input password dengan algoritma AES
Gambar 7. Proses encrypt dan input password dengan algoritma Blowfish
Gambar 6. Waktu enkripsi dan dekripsi pada algoritma AES
Gambar 8. Waktu enkripsi dan dekripsi pada algoritma dekripsi pada algoritma Blowfish
Untuk memudahkan pengamatan maka waktu enkripsi dan dekripsi masing-masing algoritma dengan input sebesar 69 kb dapat dilihat dalam tabel 1:
Tabel 1. Waktu enkripsi dan dekripsi algoritma AES dan Blowfish
Algoritma Waktu
Waktu
Enkripsi
Dekripsi(ms)
(ms) AES
242
91
Blowfish
85
51
Tabel 1 diatas dapat dilihat bahwa waktu yang dibutuhkan utuk mengenkripsi data lebih lama dibandingkan dengan waktu yang dibutuhkan untuk mendekripsi data. Waktu yang dibutuhkan masingmasing algoritma sangat singkat, keduanya kurang dari 1 menit.
Hasil yang didapatkan pada metode 3 ini adalah bahwa pada algoritma AES dan Blowfish, file teks tidak berubah, sedangkan pada blok yang dikurangi ada beberapa karakter yang berubah dan dilanjutkan deretan blok-blok acak tidak sesuai dengan file teks asal sampai akhir file. Metode 4 : Beberapa bit sebanyak jumlah bit yang diacak dari hasil enkripsi menggunakan dua algoritma tersebut ditambah, kemudian didekripsi kembali sehingga akan terlihat perubahannya. Metode ke 4 ini hasilnya sama dengan metode ke-3 yaitu tidak ada perubahan pada file teks, dan terjadi perubahan beberapa karakter pada blok yang dikurangi. Kemudian deretan blok-blok acak tidak sesuai dengan file teks asal sampai akhir file. Kerusakan file yang muncul dikarenakan bergesernya titik awal semua blok setelah terjadinya penambahan atau pengurangan bit, sehingga proses dekripsi file memberikan hasil yang berbeda jauh dari file asal.
4. KESIMPULAN
Tabel 2 Waktu enkripsi dan dekripsi algoritma AES dan Blowfish dengan input 125 MB
Algoritma
Waktu
Waktu
Enkripsi
Dekripsi(s)
(s) AES
25
12
Blowfish
34
27
Algoritma AES dan Blowfish dapat memenuhi kebutuhan pengacakan data sehingga dapat dimanfaatkan untuk sistem keamanan data. Performansi algoritma AES dari parameter waktu proses enkripsi dan dekripsi jauh lebih bagus dibandingkan dengan algoritma blowfish. Dengan perbandingan 1: 3. Hasil Penambahan dan pengurangan bit pada blok hasil enkripsi AES maupun blowfish dapat menyebabkan kerusakan pada file informasi. DAFTAR REFERENSI
Metode 3 : Beberapa bit sebanyak jumlah bit yang diacak dari hasil enkripsi menggunakan dua algoritma tersebut dihapus, kemudian didekripsi kembali sehingga akan terlihat perubahannya.
[1] Schneier, Bruce,” Applied Cryptography 2nd. John Wiley & Sons”,1996. [2] Munir, Rinaldi., “ Bahan Kuliah IF3058 Kriptografi.”,
[3]
Program Studi Informatika, Institut Teknologi Bandung, 2009. Menezes, A., Oorschot, P. and Vanstone, S. ,“Handbook of Applied Cryptography”, CRC Press,2009.