Perbandingan Performansi Algoritme Kriptografi Advanced Encryption Standard (AES) dan Blowfish pada Text di Platform Android

  

Vol. 1, No. 12, Desember 2017, hlm. 1551-1559 http://j-ptiik.ub.ac.id

Perbandingan Performansi Algoritme Kriptografi Advanced Encryption

Standard (AES) dan Blowfish pada Text di Platform Android

1 2 3 Muhammad Taufiqur Rahman , Aryo Pinandito , Eko Sakti Pramukantoro

  Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya 1 2 3 Email: mtaufiqurrahman13@gmail.com, aryo@ub.ac.id, ekosakti@ub.ac.id

  

Abstrak

  Untuk membuat suatu aplikasi Android, developer perlu mempertimbangkan berbagai hal selain segi keamanan, seperti performa aplikasi, karena Android sendiri sebagai perangkat bergerak secara inheren mempunyai keterbatasan sumber daya sehingga usaha untuk meningkatkan performa dari aplikasi yang dikembangkan khusus untuk platform Android perlu dilakukan. Pertanyaan-pertanyaan pada forum developer seperti Stackoverflow mengenai algoritme mana yang performanya lebih baik diplatform Android bermunculan, untuk menjawab pertanyaan tersebut maka akan dilakukan perbandingan performansi antara dua algoritma kriptografi yang kecepatannya baik dan populer digunakan, yaitu AES dan Blowfish. Penelitian ini memilih dua algoritme kriptografi kunci-simetris yang populer digunakan yaitu algoritme Advanced Encryption Standard (AES) dan algoritme Blowfish untuk dibandingkan performanya pada sistem operasi Android. Data yang digunakan didapat dari data generator berdasarkan aturan-aturan tertentu. Perbandingan performa akan dilakukan dengan 3 parameter, yaitu: panjang data, panjang kunci, dan perbedaan arsitektur prosesor. Pengujian tiap data dilakukan 20 kali untuk meningkatkan akurasi performa algoritme. Hasil pengujian menunjukkan bahwa algoritma Blowfish mempunyai performa enkripsi dan dekripsi lebih baik dibandingkan dengan algoritma AES pada pengujian terhadap panjang data dan panjang kunci, pada pengujian terhadap prosesor Intel AES lebih unggul dengan 0.3-0.4 ms lebih cepat sedangkan pada prosesor ARM Blowfish lebih cepat 0.2 ms.

  Kata kunci: kriptografi, AES, blowfish, performa, android

Abstract

To create an Android application, developers need to consider things other than security, such as

application performance, because Android itself as a mobile device inherently has limited resources

so that efforts to improve the performance of applications developed specifically for the Android

platform needs to be done. Questions on developer forums such as Stackoverflow on which algorithms

are performing better on Android platforms are emerging, to answer those questions there will be a

performance comparison between two well-known and popularly used cryptographic algorithms, AES

and Blowfish. The study chose two popular symmetric cryptography algorithms that are used:

Advanced Encryption Standard (AES) algorithms and Blowfish algorithms to compare performance

on the Android operating system. The data used derived from the generator data based on certain

rules. Comparison of performance will be done with 3 parameters, namely: data length, key length,

and differences in processor architecture. Testing each data is done 20 times to improve the accuracy

of algorithmic performance. The test results show that the Blowfish algorithm has better encryption

and decryption performance than the AES algorithm on testing of data length and key length, on

testing of Intel AES processor is superior to 0.3-0.4 ms faster while on ARM processor Blowfish is

faster by 0.2 Ms.

  Keywords: crypthograpy, AES, blowfish, performance, android

  selain segi keamanan, seperti performa aplikasi, 1. karena Android sendiri sebagai perangkat

   PENDAHULUAN

  bergerak secara inheren mempunyai Untuk membuat suatu aplikasi, developer keterbatasan sumber daya sehingga usaha untuk

  Android perlu mempertimbangkan berbagai hal

  Fakultas Ilmu Komputer Universitas Brawijaya

1551 meningkatkan performa dari aplikasi yang dikembangkan khusus untuk platform Android perlu dilakukan. Pertanyaan-pertanyaan pada forum developer seperti Stackoverflow mengenai algoritme mana yang performanya lebih baik diplatform Android bermunculan, untuk menjawab pertanyaan tersebut maka perlu dilakukan perbandingan performansi antara dua algoritma kriptografi umum yang kecepatannya baik dan populer digunakan.

  Blowfish adalah cipher block berkunci yang didesain oleh Bruce Schneier pada tahun 1993 yang mencakup jumlah besar cipher dan enkripsi. Blowfish memberikan hasil enkripsi yang baik (sulit untuk dipecahkan) dan sampai saat ini belum ada kriptanalisis yang mengklaim telah dapat memecahkannya. Hal tersebut mungkin juga dikarenakan sistem enkripsi lain yang lebih banyak mendapat perhatian seperti Advanced Encryption Standard (Narendra, 2013). AES sendiri awalnya adalah sebuah kompetisi yang diadakan oleh Nasional Institute of Standards and Technology (NIST) untuk memilih algoritme block cipher yang paling tepat untuk digunakan sebagai standar. Rijndael, sebuah block cipher yang dikembangkan oleh Vincent Rijmen dan Joan Daemen memenangkan kompetisi ini dan algoritme yang mereka kembangkan digunakan dalam AES. AES pada awalnya dikembangkan untuk menggantikan algoritme Data Encryption Standard (DES) yang telah ditemukan kelemahannya dan dapat dijebol dalam beberapa jam saja dengan menggunakan komputer biasa. Kekuatan algoritme AES jauh melebihi DES, jika mesin yang digunakan untuk menjebol DES digunakan untuk menjebol AES, maka diperlukan waktu jutaan tahun hingga AES dapat terpecahkan (Erwin, 2015).

  Walaupun Blowfish mempunyai masalah kunci lemah (Kara & Manap, 2008) kedua algoritme tersebut memiliki tingkat keamanan yang tinggi, karena sampai sekarang belum ditemukan algoritme atau mesin yang mampu untuk memecahkan data hasil enkripsi algoritme kriptografi tersebut dengan cepat. Tiap-tiap algoritme memiliki perbedaan dalam tingkat kerumitan dan proses perhitungannya, maka dari itu penelitian ini akan menguji dan membandingkan performa daripada keamanan kedua algoritme tersebut untuk menemukan algoritme mana yang lebih unggul dalam hal performa dari kedua algoritme tersebut pada aplikasi Android.

  Untuk mengoptimalkan performa maksimal kedua algoritme (AES dan Blowfish) pada aplikasi teks Android, ukuran data akan digunakan sebagai pembanding terhadap waktu proses algoritme karena panjang data adalah sangat penting untuk aplikasi teks, dan perlu diketahui untuk aplikasi yang mendukung plaintext yang panjang seperti aplikasi email atau yang membatasi panjang plaintext seperti aplikasi SMS, manakah enkripsi yang lebih baik performanya.

  Selanjutnya, kunci juga faktor yang vital pada enkripsi karena semakin panjang kunci dari sebuah enkripsi maka dapat semakin lama juga proses enkripsi, tetapi akan lebih aman juga hasil enkripsinya, sehingga perlu diuji apakah panjang kunci dapat mempengaruhi performa aplikasi secara signifikan dan algoritme mana yang performanya lebih baik dengan kunci yang lebih panjang/pendek.

  Perlu juga diuji performa kedua algoritme jika dihadapkan dengan arsitektur prosesor yang berbeda (ARM dan Intel) untuk mengetahui algoritme enkripsi mana yang lebih baik diantara AES dan Blowfish untuk masing- masing prosesor.

  Hasil dari perbandingan kedua algoritme dapat digunakan sebagai acuan data dua algoritme enkripsi yang populer saat ini, juga dapat digunakan developer Android untuk memilih algoritme enkripsi mana yang sesuai dengan aplikasi yang dikembangkan, dapat juga digunakan sebagai bahan referensi penelitian yang berkaitan dengan algoritme enkripsi AES dan Blowfish.

  2. LANDASAN KEPUSTAKAAN

  2.1. Kriptografi

  Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Menurut Bruce Scheiner dalam bukunya "Applied

  Cryptography" , kriptografi adalah ilmu

  pengetahuan dan seni menjaga pesan-pesan agar tetap aman (Scheiner, 1996).

  Di bidang kriptografi, enkripsi adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus (MyCrypto, 2016). Dalam Gambar 2.1 berikut menggambarkan proses enkripsi-dekripsi.

Gambar 2.1 Proses Enkripsi-Dekripsi

  2.6. Pengujian di Android

  3. METODOLOGI

  melihat performa dari proses enkripsi dan dekripsi algoritme kriptografi, setelah proses enkripsi atau dekripsi selesai waktu yang dibutuhkan untuk pemrosesan akan ditampilkan di logcat.

  Logcat akan digunakan sebagai alat untuk

  oleh perintah logcat. Logcat dapat digunakan dari shell ADB untuk melihat pesan log.

  buffer yang kemudian dapat dilihat dan disaring

  Android studio mempunya tool tersendiri yang dapat membantu menganalisis performa aplikasi yaitu logcat yang berisi log dari berbagai aplikasi dan bagian dari sistem dikumpulkan dalam serangkaian circullar

  Pengujian aplikasi di platform Android sendiri dapat dilakukan di IDE yang tersedia seperti Android Studio.

  Blowfish merupakan algoritme kunci simetrik cipher blok yang dirancang pada tahun 1993 oleh Bruce Schneier untuk menggantikan DES. Pada saat itu banyak sekali rancangan algoritme yang ditawarkan, namun hampir semua terhalang oleh paten atau kerahasiaan pemerintah Amerika. Schneier menyatakan bahwa Blowfish bebas paten dan akan berada pada domain publik (Scheiner, 1996). Dengan pernyataan Schneier tersebut Blowfish telah mendapatkan tempat di dunia kriptografi, khususnya bagi masyarakat yang membutuhkan algoritme kriptografi yang cepat, kuat, dan tidak terhalang oleh lisensi.

  Sumber: (Muchad, 2010)

  2.5. Blowfish

  AES merupakan standar enkripsi dengan kunci-simetris yang diadopsi oleh pemerintah Amerika Serikat. Standar ini terdiri atas 3 blok cipher, yaitu AES-128, AES-192 and AES-256, yang diadopsi dari koleksi yang lebih besar yang awalnya diterbitkan sebagai Rijndael. Masing-masing cipher memiliki ukuran 128-bit, dengan ukuran kunci masing-masing 128, 192, dan 256 bit, untuk keperluan pengujian disini akan digunakan varian AES-256 karena merupakan varian yang paling aman dibandingkan dengan kedua varian lainnya. AES telah dianalisis secara luas dan sekarang digunakan di seluruh dunia, seperti halnya dengan pendahulunya, Data Encryption Standard (DES).

  2.4. Advanced Encryption Standard (AES)

  Dalam kriptografi, kunci adalah suatu informasi yang mengendalikan jalannya sebuah algoritma kriptografi (MyCrypto, 2016). Dalam enkripsi, kunci memberikan cara khusus bagaimana suatu algoritma mentransformasikan teks terang (plaintext) menjadi teks tersandi (ciphertext), ataupun proses sebaliknya (disebut dekripsi). Teks tersandi dapat diubah menjadi teks terang, jika sang pembaca mengetahui algoritma yang digunakan, dan memiliki kunci yang benar. Dengan kata lain, kunci bertindak sebagai suatu password dalam algoritma tersebut. Selain enkripsi, kunci juga digunakan pada algoritma kriptografi lainnya, seperti tanda tangan digital dan kode otentikasi pesan.

  2.3. Kunci

  Plaintext yaitu suatu pesan atau informasi yang tidak disandikan, adalah pesan yang hendak dikirimkan (berisi data asli) atau juga disebut clear text. Sebuah cipher adalah sebuah algoritma untuk menampilkan enkripsi dan kebalikannya dekripsi, serangkaian langkah yang terdefinisi yang diikuti sebagai prosedur. Ciphertext sendiri adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi (MyCrypto, 2016).

  2.2. Plaintext dan Chipertext

  Dekripsi sendiri adalah kebalikan dari proses enkripsi yaitu proses konversi data yang sudah dienkripsi (ciphertext) kembali menjadi data aslinya (original plaintext) sehingga dapat dibaca dan dimengerti kembali.

  Pada bab metodologi ini akan dijabarkan mengenai langkah-langkah yang digunakan dalam penelitian ini. Langkah-langkah tersebut meliputi studi literatur, perancangan, implementasi obyek penelitian, pengujian, pengolahan data uji, dan terakhir pengambilan kesimpulan seperti pada Gambar 3.1.

Gambar 3.1 Metode Penelitian 4.

   PERANCANGAN

4.1. Pengujian

  Pada tahap ini dilakukan perancangan pengujian performa terhadap algoritme AES dan Blowfish dalam prototipe aplikasi text. Pengujian yang dilakukan adalah sebagai berikut:

  1. Pengujian performa algoritme enkripsi AES dan Blowfish terhadap panjang data aplikasi teks.

  3. Pengujian performa algoritme enkripsi AES dan Blowfish terhadap perbedaan arsitektur prosesor (ARM dan Intel).

  Pada pengujian kemungkinan akan muncul nilai yang abnormal dikarenakan proses Android yang berjalan di latar, nilai yang condong/abnormal akan diabaikan dan dihapus untuk kemudian diganti dengan nilai dari hasil pengujian baru yang normal dari pengujian lain. Pengujian untuk penggantian nilai yang abnormal dilakukan diluar lingkup 20 kali pengujian. Data yang didapat dari pengujian akan digunakan untuk perbandingan performa algoritme AES dan Blowfish. Tiap-tiap pengujian mempunyai skenario pengujian yang berbeda, menurut Jakob Nielsen pengujian kuantitatif dengan

  20 kali pengujian mempunyai tingkat kepercayaan 90% (Nielsen, 2006), oleh karena itu dalam pengujian ini setiap pengujian akan diulang sebanyak 20 kali untuk mengurangi batas kesalahan (margin of error).

  Saat prototipe dijalankan aplikasi akan mengambil data teks dan kunci dari database, setelah itu untuk keperluan pengujian data teks dan kunci tersebut akan dilakukan proses enkripsi dan dicatat kecepatan eksekusi enkripsi, hasil enkripsi akan disimpan didalam database untuk selanjutnya dilakukan proses dekripsi, setelah proses dekripsi dijalankan kecepatan eksekusi dekripsi akan dicatat dan disimpan, proses pencatatan waktu eksekusi akan diulang 20 kali untuk meningkatkan tingkat ketepatan waktu eksekusi yang sebenarnya. Skema pengujian bisa dilihat dalam Gambar 4.1.

Gambar 4.1 Diagram Skenario Pengujian

  4.2. Logika Prototipe

  Untuk melakukan pengujian dibutuhkan sebuah prototipe untuk menampung data pengujian dan pengimplementasian algoritme kriptografi, alur program dijelaskan dalam Gambar 4.2 dimulai dengan Main Activity saat prototipe pertama kali dibuka, dalam awal program terdapat 3 buah tombol, yaitu tombol Uji AES, tombol Uji Blowfish, dan tombol SQLite.

2. Pengujian performa algoritme enkripsi AES dan Blowfish terhadap panjang key.

  Tombol Uji AES jika ditekan akan menuju halaman Intent yang berisi pengujian algoritme AES untuk ketiga skenario pengujian baik pengujian enkripsi maupun pengujian dekripsi AES, ketika tombol pengujian ditekan maka hasil pengujian akan ditampilkan di Logcat Android Studio. Kemudian ada tombol UJI Blowfish yang akan menampilkan halaman Intent yang berisi pengujian algoritme Blowfish untuk ketiga skenario pengujian baik enkripsi maupun dekripsi, ketika tombol ditekan maka hasil pengujian Blowfish akan ditampilkan di Logcat Android Studio. Terakhir ada tombol SQLite yang berfungsi sebagai pembantu untuk melihat basis data.

Gambar 4.2 Alur Prototipe

  Menu pertama dan kedua dalam Gambar 4.3 sebelah kiri akan menuju activity seperti

  Kedua algoritme akan diimplementasikan dengan memanfaatkan library yang tersedia di Android.

  Untuk algoritme AES library yang digunakan adalah AESCrypt-Android yang dibuat oleh user scottyab dan dipublikasikan di github, untuk mengimplementasikan library ini kedalam prototipe aplikasi akan digunakan Maven Dependency yang disediakan.

  Untuk algoritme Blowfish library yang digunakan adalah jBlowfish yang dibuat github user dorneanu, untuk pengimplementasiannya karena tidak ada Maven Dependency yang disediakan maka kelas jBlowfish akan dimasukkan kedalam prototipe agar dapat dipanggil saat dibutuhkan.

  4.4. UI Prototipe

  Dalam pengujian dibutuhkan aplikasi berbasis Android dengan pengimplementasian algoritme AES dan Blowfish didalamnya, kedua algoritme akan digunakan untuk mengenkripsi dan dekripsi text/bytes dalam aplikasi Android. Pada tampilan awal akan ditampilkan menu yang terdiri dari: 1.

Gambar 4.3 Rancangan UI Prototipe 5.

  ada dan masing-masing skenario akan dilakukan proses pengujian enkripsi dan dekripsi, saat tombol enkripsi test atau dekripsi test pada setiap skenario ditekan maka proses enkripsi atau dekripsi akan dijalankan dilatar dan hasil prosesnya akan ditampilkan didalam logcat pada Android Studio.

  4.3. Implementasi Algoritme

Gambar 4.3 sebelah kanan, Terdapat 3 bagian yang merepresentasikan ketiga skenario yang

IMPLEMENTASI PROTOTIPE

  M enu pertama dari aplikasi yaitu “UJI AES” akan menuju activity class yang mengimplementasikan enkripsi dan dekripsi ketiga skenario menggunakan algoritme AES, sedangkan menu ked ua “UJI BLOWFISH” akan menuju activity class yang mengimplemetasikan enkripsi dan dekripsi algoritme Blowfish, kedua menu tersebut berfungsi untuk memproses data dari tiap-tiap skenario yang sebelumnya telah disimpan di basis data untuk kemudian dilakukan proses enkripsi/dekripsi menggunakan masing-masing algoritme. Menu ketiga “SQLITE” berfungsi untuk menampilkan isi dari basis data yang berisi data dari ketiga skenario yang telah dimasukkan.

  AES, menu kedua menampilkan skenario pengujian algoritme Blowfish, menu ketiga menampilkan basis data dari prototipe ini.

  Rancangan dari menu dapat dilihat dalam

  Uji AES 2. Uji Blowfish 3. SQLite

  Setelah prototipe aplikasi dibuat, objek penelitian akan dipasang pada prototipe tersebut agar data pengujian dapat diolah dengan algoritme AES atau Blowfish. Tampilan awal prototipe aplikasi saat pertama dibuka ditunjukkan dalam Gambar 5.1 sebelah kiri, saat prototipe pertama dibuka data uji akan diload di thread lain agar tidak mengganggu UI thread, ada 3 tombol yang tampak pada halaman awal yaitu tombol Uji AES, Uji Blowfish, dan SQLITE.

  Selanjutnya jika tombol Uji AES atau tombol Uji Blowfish ditekan maka prototipe akan menampilkan Intent pada Gambar 5.1 sebelah kanan, pada halaman ini terpisah menjadi 3 bagian untuk masing-masing skenario, setiap skenario menampilkan tombol pengujian enkripsi dan pengujian dekripsi, saat tombol ini ditekan aplikasi akan mengambil

Gambar 4.3 sebelah kiri, menu pertama akan menampilkan skenario pengujian algoritme data pengujian pada basis data untuk diolah dan didapatkan hasil waktu eksekusi algoritme.

Gambar 5.1 Prototipe Aplikasi 6.

  Kecepatan kedua algoritme hampir sama, tetapi kecepatan algoritme Blowfish sedikit lebih cepat daripada algoritme AES.

  1 1,5 2 2,5 3 3,5

PENGUJIAN DAN KOMPARASI

6.1. Panjang Data

  Dengan kondisi perangkat yang sama dengan pengujian enkripsi, uji dekripsi dengan total hasil pengujian 1280 data yang didapat kemudian dijalankan, dalam Gambar 6.2 warna biru merepresentasikan kecepatan dekripsi algoritme AES sedangkan warna merah merepresentasikan algoritme Blowfish.

  50

  Pengujian enkripsi AES direpresentasikan dengan warna biru dalam Gambar 6.1, sedangkan hasil enkripsi Blowfish direpresentasikan dengan warna merah, total data yang didapat dari proses enkripsi kedua algoritme adalah 1280 data, dari komparasi performa kedua algoritme terhadap panjang data terlihat algoritme Blowfish lebih cepat dalam melakukan proses enkripsi walaupun perbedaan kecepatan enkripsi dengan algoritme AES tidak terlalu jauh.

  Panjang Data AES Blowfish

  5 20 35 50 65 80 95 110125140155 W ak tu (ms )

Gambar 6.1 Komparasi Enkripsi Terhadap

  Panjang Data AES Blowfish 0,5

  95 110 125 140 155 W ak tu ( ms )

  80

  65

  35

  Perbedaan Panjang Data

  20

  5

  Komparasi performa menggunakan dua algoritme yaitu AES dan Blowfish diuji performa kecepatan enkripsi dan dekripsinya. Panjang data yang diuji adalah 5 sampai 160 bytes kelipatan 5, setiap data diuji 20 kali kemudian diambil rata-ratanya, total data pengujian yang dihasilkan pada uji ini adalah 2560 data.

  0,5

  Pengujian enkripsi AES direpresentasikan dengan warna biru dalam Gambar 6.3, sedangkan hasil enkripsi Blowfish direpresentasikan dengan warna merah, total data yang didapat dari proses enkripsi kedua algoritme dalah 2120 data, dari komparasi performa kedua algoritme terhadap panjang kunci terlihat algoritme Blowfish lebih cepat dalam melakukan proses enkripsi walaupun perbedaan kecepatan enkripsi dengan algoritme AES tidak terlalu jauh.

  Komparasi performa menggunakan dua algoritme yaitu AES dan Blowfish diuji performa kecepatan enkripsi dan dekripsinya. Panjang kunci yang diuji adalah 4 sampai 56 byte, setiap data diuji 20 kali kemudian diambil rata-ratanya, total data pengujian yang dihasilkan pada uji ini adalah 4240 data.

  6.2. Panjang Kunci

  Perbedaan Panjang Data

Gambar 6.2 Komparasi Dekripsi Terhadap

  1 1,5 2 2,5

Gambar 6.3 Komparasi Enkripsi Terhadap

  4 8 12 16 20 24 28 32 36 40 44 48 52 56 W ak tu (ms )

  Bytes|key ARM AES (en) ARM Blowfish (en) Intel AES (en) Intel Blowfish (en)

  3 W ak tu (ms )

  1 1,5 2 2,5

  Panjang Kunci AESde (ns) Blowde (ns) 0,5

  W ak tu (ms )

  1 1,5 2 2,5 3 4 8 12 16 20 24 28 32 36 40 44 48 52 56

  0,5

  Panjang Kunci AESen (ns) Blowen (ns)

  1 1,5 2 2,5

  Perbedaan Panjang Kunci

  0,5

  Pada pengujian dekripsi dilakukan dengan perangkat yang sama dengan pengujian sebelumnya, hasil enkripsi dalam Gambar 6.6 menunjukkan bahwa proses dekripsi dengan menggunakan algoritme AES di prosesor ARM membutuhkan waktu 1.2-3.1 ms, sedangkan di prosesor Intel terlihat lebih cepat membutuhkan waktu 0.9-1.3 ms. Untuk algoritme Blowfish, proses dekripsi di prosesor ARM membutuhkan waktu 1.6-2.3 ms dan di prosesor Intel membutuhkan 1.2-1.5 ms.

  Perbedaan Arsitektur Prosesor

Gambar 6.5 Komparasi Enkripsi Terhadap

  Dalam pengujian enkripsi akan dilakukan pemberian input dengan bytes data dan kunci yang bervariasi, bytes data yang digunakan adalah 10, 20, 30 sedangkan kunci yang digunakan adalah 8, 16, 32. Hasil enkripsi dalam Gambar 6.5 menggunakan AES baik di perangkat dengan prosesor ARM maupun Intel adalah kurang dari 2 ms, sedangkan untuk enkripsi yang menggunakan Blowfish di perangkat ARM terlihat beberapa melampaui 2 ms tetapi di Intel hasilnya lebih stabil antara 1.2-1.5 ms.

  Komparasi performa menggunakan dua algoritme yaitu AES dan Blowfish diuji performa kecepatan enkripsi dan dekripsinya. Kedua pengujian dilakukan dengan input yang sama tetapi akan dilakukan di dua perangkat dengan prosesor yang berbeda (ARM dan Intel), dari pengujian didapatkan 1440 data. Komparasi terhadap panjang data dibagi menjadi 2 bagian, yaitu komparasi enkripsi dan komparasi dekripsi.

  Perbedaan Panjang Kunci

Gambar 6.4 Komparasi Dekripsi Terhadap

  Dengan kondisi perangkat yang sama dengan pengujian enkripsi, uji dekripsi dengan total hasil pengujian 2120 data yang didapat kemudian dijalankan, dalam Gambar 6.4 warna biru merepresentasikan kecepatan dekripsi algoritme AES sedangkan warna merah merepresentasikan algoritme Blowfish. Kecepatan kedua algoritme hampir sama, tetapi kecepatan algoritme Blowfish sedikit lebih cepat daripada algoritme AES.

6.3. Perbedaan Aritektur Prosesor

  3,5 3 1,5 )

  2,5

  1

  2 (ms tu

  0,5 1,5 ak

  1 W 0,5 Enkripsi Dekripsi AES Blowfish

  Bytes|key

Gambar 6.7 Komparasi AES & Blowfish pada

  Skenario 1 ARM AES (de)

  Pada pengujian terhadap panjang kunci

  ARM Blowfish (de)

  didapat 4240 data pengujian, pada Tabel 6.2

  Intel AES (de) menunjukkan rata-rata performa keseluruhan

  data, pada proses enkripsi didapatkan performa

  Intel Blowfish (de)

  1.14 ms untuk algoritme AES dan untuk 0.96 ms untuk Blowfish, sedangkan untuk proses

Gambar 6.6 Komparasi Dekripsi Terhadap

  dekripsi algoritme AES menghasilkan 1.17 ms

  Perbedaan Arsitektur Prosesor

  dan 0.91 ms untuk proses dekripsi menggunakan algoritme Blowfish.

6.4. Analisis Kesimpulan

Tabel 6.2 Kecepatan Rata-Rata Algoritme pada

  Skenario 2

  Pada pengujian terhadap panjang data

  Tipe AES (ms) Blowfish (ms)

  didapat 2560 data pengujian, rata-rata dari semua data pengujian enkripsi ditunjukkan pada

  Enkripsi 1.146506 0.96263

Tabel 6.1 menggunakan AES didapat 1.19 ms

  Dekripsi 1.172907 0.916703

  dibandingkan dengan rata-rata performa enkripsi Blowfish yaitu 0.99 ms terbukti proses Dari data diatas dapat disimpulkan bahwa enkripsi menggunakan Blowfish lebih cepat. untuk pengujian terhadap panjang kunci

  Dari sisi dekripsi performa AES yaitu 1.3 ms Blowfish lebih cepat daripada AES seperti juga lebih lambat dari dekripsi menggunakan terlihat dalam Gambar 6.8, perbedaan keduanya Blowfish yaitu 1.18 ms. sama dengan hasil dari skenario sebelumnya

Tabel 6.1 Kecepatan Rata-Rata Algoritme pada

  yaitu perbedaan performa tidak lebih dari 0.2 Skenario 1 ms.

  Tipe AES (ms) Blowfish (ms) 1,5

  Enkripsi 1.191691 0.995949

  1 Dekripsi 1.306787 1.181375 0,5

  Untuk pengujian terhadap panjang data Blowfish sedikit lebih cepat daripada AES baik dari segi enkripsi maupun dekripsi seperti

  Enkripsi Dekripsi

  dalam Gambar 4.8, meskipun begitu perbedaan

  AES Blowfish kedua algoritme tidak lebih dari 0.2 ms.

Gambar 6.8 Komparasi AES & Blowfish pada

  Skenario 2

  Pada pengujian terhadap prosesor yang berbeda didapat 1440 data pengujian, pada

Tabel 6.3 menunjukkan hasil rata-rata dari keseluruhan data pengujian, hasil dari perangkat

  ARM ditunjukkan pada baris 1 dan 2, enkripsi menggunakan AES didapat 1.43 ms sedangkan untuk Blowfish 1.56 ms, untuk dekripsi pada prosesor ini sendiri didapat 2.11 ms untuk algoritme AES dan 1.99 ms untuk algoritme baik daripada algoritme AES secara Blowfish. Pada perangkat Intel sendiri terdapat keseluruhan dengan keunggulan 0.2 ms saat pada baris 3 dan 4, saat menguji enkripsi enkripsi dan 0.12 ms saat dekripsi. didapatkan untuk algoritme AES 1 ms dan 2.

  Blowfish memiliki performa kecepatan untuk Blowfish 1.3 ms, sedangkan untuk proses algoritme terhadap panjang kunci sedikit dekripsi algoritme AES menghasilkan 1.09 ms lebih baik daripada algoritme AES secara dan untuk Blowfish menghasilkan 1.42 ms. keseluruhan dengan keunggulan 0.18 saat

Tabel 6.3 Kecepatan Rata-Rata Algoritme pada enkripsi dan 0.26 saat dekripsi.

  Skenario 3 3.

  AES dan Blowfish performa kecepatan

  Tipe AES (ms) Blowfish (ms)

  algoritmenya hampir sama di perangkat

  Enkripsi(ARM) 1.433477 1.561135

  Android dengan prosesor ARM dengan algoritme Blowfish sedikit lebih unggul

  Dekripsi(ARM) 2.111118 1.994007

  sekitar 0.2 ms, sedangkan di perangkat

  Enkripsi(Intel) 1.006473 1.382202

  Android dengan prosesor Intel algoritme

  Dekripsi(Intel) 1.099686 1.422959

  AES 0.3-0.4 ms lebih cepat dibandingkan dengan algoritme Blowfish. Dari hasil pengujian seperti terlihat dalam

Gambar 6.9 didapatkan algoritme AES dan 8.

DAFTAR PUSTAKA

  Blowfish performanya hampir sama dengan Schneier, Bruce. 1996. Applied Cryptography. Blowfish sedikit lebih unggul di prosesor ARM, John Wiley & Sons, Inc. sedangkan di prosesor Intel didapatkan hasil algoritme AES performanya lebih baik daripada

  Erwin. 2015. Penggunaan AES pada Enkripsi Blowfish dengan margin 0.3-0.4 ms lebih cepat.

  Data Perangkat Mobile dengan Sistem Operasi Android . Program Studi

  Teknik Informatika Institut Teknologi

  2,5 Bandung.

  2 1,5

  Narendra, Dendy. 2013. Metoda Enkripsi

  1 Blowfish . Program Studi Teknik 0,5

  Informatika STEI ITB. MyCrypto. Encryption Algorithms. [online]

  Enkripsi Dekripsi Enkripsi Dekripsi

  Tersedia di:

  (ARM) (ARM) (INTEL) (INTEL)

  <http://www.mycrypto.net/encryption/c

  AES Blowfish rypto_algorithms.html> [Diakses 18

  September 2016]

Gambar 6.9 Komparasi AES & Blowfish pada

  Nielsen, Jakob. 2006. Quantitative Studies:

  Skenario 3 How Many Users to Test?. nngroup.

  Pada perbandingan pada arsitektur prosesor Kara, Orhun. Manap, Cevat. 2008. A New Class didapatkan hasil kecepatan eksekusi algoritme

  of Weak Keys for Blowfish . TUBITAK

  AES lebih cepat daripada algoritme Blowfish, UEKAE. ini disebabkan prosesor Intel modern dilengkapi dengan teknologi yang mensupport algoritme kriptografi AES, sehingga saat performa AES yang normalnya lebih lambat daripada Blowfish (seperti ditunjukkan dipengujian pada prosesor ARM), AES dapat melampaui performa algoritme Blowfish diprosesor Intel.

7. KESIMPULAN

  Berdasarkan perancangan, implementasi dan hasil pengujian dari studi perbandingan performa algoritme kriptografi AES dengan Blowfish pada text di platform Android, maka didapatkan kesimpulan sebagai berikut:

  1. Blowfish memiliki performa kecepatan algoritme terhadap panjang data sedikit lebih