Abstrak - Dalam hal komunikasi data antar komputer maupun transfer file dari satu device ke device lain yang melalui suatu jaringan, keamanan data sangatlah penting. Oleh karena itu, diperlukan cara untuk mengamankan data yang kita kirimkan, dan salah satu caranya adalah dengan melakukan enkripsi terhadap data kita.
Untuk menemukan metode enkripsi yang paling efektif, melalui tugas akhir ini akan melakukan analisis terhadap beberapa metode enkripsi yang mewakili jenis-jenis enkripsi yang telah disebutkan di atas. Enkripsi simetris block cipher akan diwakili oleh AES (Advance Encryption Standard), enkripsi stream cipher akan menggunakan Grain V1, sedangkan ElGamal Encryption merepresentasikan salah satu algoritma enkripsi asimetris untuk block cipher. Studi kasus yang digunakan adalah melalui enkripsi gambar masakan pada aplikasi resep masakan yang bisa digunakan pada smartphone berbasis Android. Secara garis besar, aplikasi ini bekerja sebagai berikut. Gambar resep masakan akan dienkripsi terlebih dahulu sebelum dikirim melalui jaringan. Setelah sampai ke penerima, file gambar tersebut didekripsi untuk mendapatkan isi gambar yang asli.
Dari hasil uji coba di atas, ketiga metode enkripsi dekripsi di atas, akan dinilai metode mana yang paling efektif dilihat dari waktu enkripsi dekripsi serta ukuran data hasil enkripsi. Dan hasil uji coba telah menunjukkan bahwa algoritma Grain V1 rata-rata lebih cepat 703,33 ms dari AES pada proses enkripsi, selain itu pada proses dekripsi Grain V1 rata-rata lebih cepat 2261,55 ms dari AES. Grain V1 rata-rata lebih cepat 57043,22 ms dari ElGamal pada proses enkripsi, selain itu pada proses dekripsi Grain V1 rata-rata lebih cepat 6508,63 ms dari ElGamal. Sedangkan untuk ukuran file hasil enkripsi, Grain V1 rata-rata lebih kecil 47,09 bytes dari AES dan rata-rata lebih kecil 172,67 bytes dari ElGamal.
Kata kunci: enkripsi, Grain V1, AES, Advanced Encryption Standard, ElGamal, Android, resep masakan.
1. PENDAHULUAN
Salah satu hal yang penting dalam komunikasi data antar komputer melalui jaringan adalah keamanan data. Keamanan data bisa dijaga dengan berbagai cara, salah satunya adalah dengan cara
melakukan enkripsi terhadap data yang dikirimkan. Dengan enkripsi, user lain selain yang kita inginkan tidak bisa membaca data yang kita berikan. Secara umum enkripsi bisa dibagi menjadi dua jenis, yaitu enkripsi simetris dan enkripsi asimetris. Enkripsi dikatakan simetris bila hanya menggunakan satu buah kunci yang sama untuk melakukan enkripsi dan dekripsi. Sedangkan enkripsi asimetris menggunakan dua buah kunci yang berbeda untuk enkripsi-dekripsi, yaitu kunci publik dan kunci privat. Selain itu berdasarkan cara pengolahan data juga terdapat dua macam enkripsi, yaitu stream cipher dan block cipher. Stream cipher digunakan untuk enkripsi yang simetris. Sedangkan block cipher bisa digunakan untuk enkripsi simetris maupun asimetris. Perbedaan antara stream cipher dan block cipher adalah dalam pemrosesan data, block cipher memproses setiap blok data sedangkan stream cipher memproses per-bit data.
Dari berbagai macam enkripsi yang telah dijelaskan di atas, melalui Tugas Akhir ini akan dianalisis beberapa algoritma yang mewakili jenis enkripsi tersebut. Enkripsi simetris block cipher akan diwakili oleh AES (Advance Encryption Standard), enkripsi asimetris block cipher akan menggunakan ElGamal, sedangkan Grain V1 merepresentasikan enkripsi stream cipher.
Dalam menganalisis ketiga algoritma di atas, dalam Tugas Akhir ini akan dipergunakan gambar resep masakan. Ketiga algoritma enkripsi ini akan digunakan dalam proses transfer gambar pada aplikasi resep masakan. Gambar akan dienkripsi dahulu, lalu dari server dikirim ke client untuk kemudian client akan mendekripsi menjadi gambar semula. Melalui aplikasi ini, akan dianalisis algoritma enkripsi dekripsi AES, ElGamal dan Grain V1 dalam hal waktu enkripsi dekripsi serta ukuran data setelah dienkripsi.
2. DASAR TEORI
Disini akan dijelaskan beberapa hal mengenai teori yang berkaitan dengan perangkat lunak yang diimplementasikan. Hal ini ditujukan untuk memberikan gambaran secara umum terhadap sistem yang akan dibuat. Selain itu hal tersebut berguna untuk menunjang pembuatan sistem sehingga kebutuhan akan sistem dapat diketahui.
2.1 Kriptografi
Berdasarkan metode mengolah data ada dua macam kriptografi yaitu stream cipher dan block cipher. Stream cipher adalah cipher yang
ANALISIS ALGORITMA ENKRIPSI ELGAMAL, GRAIN V1, DAN
AES DENGAN STUDI KASUS APLIKASI RESEP MASAKAN
Dimas Zulhazmi W.1, Ary M. Shiddiqi2, Baskoro Adi Pratomo3
1,2,3Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Email : [email protected], [email protected]2, [email protected]3
beroperasi pada bit satuan, yaitu proses enkripsi dan dekripsi dilakukan bit per bit. Cipher akan mengenkripsi data bit per bit setiap kali transformasi. Kunci yang digunakan untuk enkripsi pada stream cipher disebut KeyStream. Sedangkan block cipher adalah sebuah cipher yang beroperasi pada kelompok-kelompok bit yang memiliki panjang yang tetap. Kelompok-kelompok bit tersebut yang kita namakan blok. Misalkan sebuah algoritma block cipher menggunakan 128-bit plaintext sebagai input, maka output yang dikeluarkan algoritma tersebut adalah 128-bit ciphertext. Begitu juga saat dekripsi input text berupa ciphertext 128-bit maka output yang dihasilkan adalah sebuah text yang memiliki besar 128-bit.
Proses pengubahan kode plaintext ke ciphertext disebut enkripsi, sedangkan pengembalian kode ciphertext menjadi plaintext semula disebut dekripsi. Proses ini dapat dilihat pada Gambar 1.
Enkripsi Ciphertext Dekripsi Plaintext semula Plaintext
Gambar 1 Diagram Proses Kriptografi 1. Enkripsi Simetris
Kriptografi yang pertama kali dibuat menggunakan algoritma simetris. Algoritma simetris menggunakan kunci yang sama untuk proses enkripsi dan dekripsi data. Diagram algoritma simetris dapat dilihat pada Gambar 2.
Enkripsi Dekripsi Kunci
A Plaintext Ciphertext Plaintext B Gambar 2 Diagram Algoritma Simetris 2. Enkrips Asimetris
Algoritma asimetris menggunakan dua buah kunci yang disebut sebagai kunci publik dan kunci rahasia. Kunci publik bisa diketahui oleh semua orang karena sifatnya yang tidak rahasia. Sedangkan kunci rahasia tentu bersifat rahasia sehingga tidak semua orang mengetahuinya, hanya orang-orang yang diberi kewenangan yang mengetahui dan dapat menggunakan kunci rahasia ini. Diagram algoritma asimetris dapat dilihat pada Gambar 3.
Enkripsi Dekripsi Kunci
A Plaintext Ciphertext Plaintext B Public key Private key
Gambar 3 Diagram Algoritma Asimetris
3. AES
Advance Encryption Standard termasuk enkripsi block cipher yang memiliki kunci simetris. Dalam proses enkripsi input, diperlukanlah empat macam operasi yang dilakukan berulang-ulang dalam beberapa putaran dan menggunakan kunci cipher. Jumlah putaran yang digunakan algoritma ini ada tiga macam seperti pada Tabel 1.
Tabel 1 Jumlah Putaran Pengoperasian AES
Tipe Panjang
Kunci Blok Input Panjang Putaran Jumlah AES-128 128 bit 128 bit 10 AES-192 192 bit 128 bit 12 AES-256 256 bit 128 bit 14
Proses dari enkripsi dan dekripsi AES dapat dilihat pada Gambar 4.
Gambar 4 Diagram Proses Enkripsi Dekripsi AES
4. ElGamal
ElGamal termasuk enkripsi block cipher yang memiliki kunci asimetris. Keamanan algoritma ElGamal terletak pada kesulitan penghitungan logaritma diskret pada bilangan modulo prima yang besar sehingga upaya untuk menyelesaikan masalah logaritma ini menjadi sangat sukar. Algoritma ElGamal mempunyai kunci publik berupa tiga pasang bilangan dan kunci rahasia berupa satu bilangan. Algoritma ini mempunyai kerugian pada ciphertext-nya yang mempunyai panjang dua kali lipat dari plaintext-nya.
a. Proses Pembentukan Kunci
Proses pembuatan kunci pada ElGamal dijelaskan pada Gambar 5.
Penentuan bilangan prima aman yang bernilai besar dengan cara: Tentukan bilangan prima p ≥ 5 p = 2.q + 1
Penentuan elemen primitif
Bila α2 mod p ≠ 1 dan α q mod p ≠ 1
Pembentukan kunci berdasarkan bilangan prima aman dan elemen primitif
Pilih a ∈{0,1,..., p − 2} sembarang β = α a mod p
Gambar 5 Proses Pembuatan Kunci ElGamal b. Proses Enkripsi
Proses enkripsi pada ElGamal dijelaskan pada Gambar 6.
Ambil sebuah karakter dalam pesan yang akan dienkripsi dan transformasi karakter tersebut ke dalam
kode ASCII sehingga diperoleh bilangan bulat M Hitung nilai r dan t dengan persamaan berikut:
k ∈{0,1,..., p − 1} r = α k (mod p)
t = β k M (mod p)
Diperoleh ciphertext untuk karakter M tersebut dalam blok (r, t).
Lakukan proses di atas untuk seluruh karakter dalam pesan
Gambar 6 Proses Enkripsi ElGamal
c. Proses Dekirpsi
Proses dekripsi pada ElGamal akan dijelaskan pada Gambar 7.
Ambil sebuah blok ciphertext dari pesan yang telah dienkripsikan pengirim
Dengan menggunakan a yang dirahasiakan oleh penerima, hitung nilai plaintext dengan menggunakan
M = t (ra) -1 mod p dan
(ra) -1 = r -a = r p-1-a mod p
Gambar 7 Proses Dekripsi ElGamal
5. Grain V1
Grain V1 termasuk enkripsi stream cipher yang memiliki kunci simetris. Grain cipher adalah bit oriented synchronous stream cipher. Pada synchronous stream cipher; keystream dibangkitkan secara terpisah dari plaintext. Grain cipher didasarkan pada dua shift register, pertama dengan linear feedback (LFSR) dan kedua dengan nonlinear feedback (NFSR). Grain Cipher terdiri dari sebuah LFSR, sebuah NFSR, dan sebuah fungsi penyaring (filter). Linerar feedback shift register (LFSR) adalah shift register yang bit input-annya merupakan fungsi linear dari state sebelumnya. Diagram umum Grain cipher dapat dilihat pada Gambar 8.
Gambar 8 Diagram Umum Grain Cipher
3. DESAIN DAN IMPLEMENTASI
Dalam Tugas Akhir ini, akan dibuat sebuah emulator untuk menguji ketiga algoritma enkripsi yang dipakai pada Tugas Akhir ini. Kemudian ketiganya akan diujicobakan juga pada android melalui aplikasi yang telah dibuat. Melalui uji coba ini, akan didapatkan algoritma enkripsi mana yang paling efektif jika digunakan untuk mengenkripsi file gambar resep masakan. Ukuran keefektifan akan didasarkan pada waktu enkripsi-dekripsi yang dibutuhkan serta besarnya ukuran data hasil enkripsi pada masing-masing algoritma. Algoritma yang paling efektif inilah yang akan dipakai seterusnya pada aplikasi Droid Cookbook.
Tugas akhir ini dikembangkan di sisi client dan server. Client dalam hal ini adalah aplikasi mobile berbasis Android yang memiliki fitur secara umum:
1. Melakukan proses update daftar resep masakan pada server melalui mekanisme xml-rpc.
2. Melakukan proses mungunduh file gambar resep masakan dari server.
3. Memilih algoritma enkripsi yang diinginkan dalam proses enkripsi file gambar resep masakan.
4. Melakukan proses dekripsi terhadap file gambar resep masakan yang telah diunduh.
5. Mengetahui waktu yang dibutuhkan untuk mendekripsi file gambar resep masakan dari masing-masing algoritma serta
mengetahui ukuran file gambar resep masakan setelah dienkripsi,
Sedangkan untuk server dibangun dengan menggunakan teknologi PHP-MySQL dengan memiliki fitur secara umum:
1. Menyediakan layanan untuk menangani request client untuk web service berbasis xml-rpc untuk proses update daftar resep masakan.
2. Melakukan proses enkripsi terhadap file gambar resep masakan yang akan diunduh oleh client.
3. Menyediakan layanan untuk menangani request unduh file gambar resep masakan dari client.
4. Mengetahui waktu yang dibutuhkan untuk proses enkripsi dan dekripsi pada file gambar resep masakan serta ukuran file gambar resep masakan setelah dienkripsi. Aplikasi client – server memerlukan koneksi jaringan agar aplikasi client yang berupa aplikasi mobile bisa melakukan proses komunikasi dari dan ke server. Secara umum arsitektur client – server untuk keseluruhan sistem ditunjukkan pada Gambar 9.
Gambar 9 Skema Sistem Client-Server pada Aplikasi
Droid Cookbook
Rancangan arsitektur secara keseluruhan dari sistem yang dibangun dalam tugas akhir ini ditunjukkan pada Gambar 10.
Gambar 10 Arsitektur Sistem
3.1 Perancangan Use Case
Rancangan diagram use case pada sistem dari aplikasi Droid Cookbook ini dapat dilihat pada Gambar 11. Perancangan use case berdasarkan kebutuhan akan sistem yang akan dibangun.
Gambar 11 Diagram Use Case
Seperti yang terlihat pada Gambar 11 terdapat 1 aktor pada sistem ini, yaitu User. Untuk penjelasan use case pada masing-masing aktor dapat dilihat pada Tabel 2.
Tabel 2 Tabel Deskripsi Use Case
Kode Use
Case
Nama Use
Case
Penjelasan
UC-01 Use Case
Update Daftar Resep Masakan Memperbaharui daftar resep masakan terakhir yang telah ada di
server.
UC-02 Use Case
Download File Gambar Resep Masakan Mengunduh file gambar setelah dienkripsi di server.
UC-03 Use Case
Memilih Algoritma Enkripsi Memilih algoritma enkripsi untuk mengenkripsi file gambar resep masakan.
UC-04 Use Case
Melihat Resep Masakan
Melihat daftar resep masakan saat ini dan isi resep masakan.
3.2 Perancangan Perangkat Lunak
Pada bagian ini akan ditunjukkan algoritma yang digunakan pada proses-proses yang terjadi dan digambarkan dalam diagram alur (flowchart). A. Perancangan Aplikasi Server
System
User
Update daftar resep masakan
Download file gambar resep masakan
Melihat resep masakan Memilih algoritma enkripsi
1. Flowchart Proses Enkripsi Menggunakan Algoritma AES
PadaAlgoritma enkripsi gambar menggunakan AES dapat dijelaskan pada Gambar 12.
Mulai
Selesai
File Gambar diblok-blokan, yang isi dari tiap blok adalah
bit-bit
Dengan menggunakan key, setelah mendapatkan 1 blok akan langsung dienkripsi dan
menghasilkan ciphertext
Apakah semua blok sudah dienkripsi?
Tidak
Ya
Gambar 12 Flowchart Proses Enkripsi Menggunakan Algoritma AES
2. Flowchart Proses Enkripsi Menggunakan Algoritma ElGamal
PadaAlgoritma enkripsi gambar menggunakan ElGamal dapat dijelaskan pada Gambar 13.
Mulai
Selesai File Gambar diblok-blokan, yang isi dari tiap blok adalah
bit-bit
Dengan menggunakan public key, setelah mendapatkan 1 blok akan langsung dienkripsi
dan menghasilkan ciphertext
Apakah semua blok sudah dienkripsi?
Tidak
Ya
Gambar 13 Flowchart Proses Enkripsi Menggunakan Algoritma ElGamal
3. Flowchart Proses Enkripsi Menggunakan Algoritma Grain V1
PadaAlgoritma enkripsi gambar menggunakan Grain V1 dapat dijelaskan pada Gambar 14.
Mulai
Selesai File Gambar diambil per-bit
Dengan menggunakan key dan IV, setiap 1 bit akan langsung dienkripsi dan menghasilkan ciphertext
Apakah semua bit sudah dienkripsi?
Tidak
Ya
Gambar 14 Flowchart Proses Enkripsi Menggunakan Algoritma Grain V1
B. Perancangan Aplikasi Client
1. Flowchart Proses Dekripsi Menggunakan Algoritma AES
Pada Algoritma dekripsi gambar menggunakan AES dapat dijelaskan pada Gambar 15.
Mulai
Selesai
Ciphertext diblok-blokan, yang isi dari tiap blok adalah bit-bit
Dengan menggunakan key, setelah mendapatkan 1 blok akan langsung didekripsi dan
menghasilkan plaintext
Apakah semua blok sudah didekripsi?
Tidak
Ya
Gambar 15 Flowchart Proses Dekripsi Menggunakan Algoritma AES
2. Flowchart Proses Dekripsi Menggunakan Algoritma ElGamal
Pada Algoritma dekripsi gambar menggunakan ElGamal dapat dijelaskan pada Gambar 16.
Mulai
Selesai
Ciphertext diblok-blokan, yang isi dari tiap blok adalah bit-bit
Dengan menggunakan private key, setelah mendapatkan 1 blok akan langsung didekripsi dan menghasilkan plaintext
Apakah semua blok sudah didekripsi?
Tidak
Ya
Gambar 16 Flowchart Proses Dekripsi Menggunakan Algoritma Grain V1
3. Flowchart Proses Dekripsi Menggunakan Algoritma Grain V1
Pada Algoritma dekripsi gambar menggunakan Grain V1 dapat dijelaskan pada Gambar 17.
Mulai
Selesai Ciphertext diambil per-bit
Dengan menggunakan key dan IV, setiap 1 bit akan langsung didekripsi dan menghasilkan palintext
Apakah semua bit sudah didekripsi?
Tidak
Ya
Gambar 17 Flowchart Proses Dekripsi Menggunakan Algoritma Grain V1
4. UJI COBA
Pada bab ini dibahas tentang hasil uji coba dan analisis kinerja aplikasi. Uji coba ini dibagi menjadi dua studi kasus meliputi uji coba fungsionalitas dan uji coba performa.
4.1 Uji Coba Fungsionalitas
Uji coba ini di lakukan untuk melihat apakah fungsi-fungsi dasar dari perangkat lunak ini berjalan seperti yang di harapkan atau tidak. Uji coba fungsionalitas dilakukan dengan cara menjalankan aplikasi yang telah dibuat, dan melakukan pengujian terhadap fitur-fitur yang telah dibuat. Aplikasi yang telah diimplementasikan akan diuji secara keseluruhan yang melingkupi aplikasi server dan client. Arsitektur uji coba fungsionalitas dalam tugas akhir ini ditunjukkan pada Gambar 18.
Gambar 18 Arsitektur Uji Coba Fungsionalitas 1. Uji Coba Lama Waktu Enkripsi
Uji coba ini dilakukan melalui software Eclipse dengan melihat hasil compile. Gambar 19 merupakan screenshot view lama waktu enkripsi.
Gambar 19 Tampilan Lama Waktu Enkripsi 2. Uji Coba Update Daftar Resep Masakan
Uji coba ini bertujuan untuk mencoba memperbarui daftar resep masakan. Proses ini dilakukan dengan cara user menekan tombol update. Tampilan ini dapat dilihat pada Gambar 20.
Gambar 20 Tampilan Update Resep Masakan 3. Uji Coba Memilih Algoritma Enkripsi dan Uji
Setelah user memilih salah satu resep masakan, user akan memilih metode enkripsi. Pilihan algorima enkripsi ada tiga, yaitu: AES, ElGamal, dan Grain V1. Tampilan ini dapat dilihat pada Gambar 21.
Gambar 21 Tampilan Pilih Metode Enkripsi Setelah user menekan salah satu tombol metode enkripsi, maka akan mengunduh file gambar resep masakan yang dipilih ke server. Server akan mengenkripsi gambar tersebut dan mengirimkan ke client, kemudian client akan mendekripsi gambar tersebut dan ditampikan beserta lama waktu dekripsi. Uji coba ini dilakukan untuk melakukan proses enkripsi pada server, dekripsi pada client, dan mengetahui lama waktu dekripsi dengan menggunakan algoritma yang diinginkan. Apabila proses berhasil maka akan terlihat seperti pada Gambar 22.
Gambar 22 Tampilan Melihat Waktu Dekripsi 4. Uji Coba Ukuran File Enkripsi
Uji coba ini dilakukan dengan melihat ‘Details’ file gambar resep masakan setelah dienkripsi yang sudah tersimpan di client. Gambar 23 merupakan screenshot view besar ukuran file setelah dienkripsi.
Gambar 23 Tampilan Ukuran File Enkripsi 4.2 Uji Coba Performa
Uji coba ini bertujuan untuk mengetahui dan membandingkan performa dari aplikasi pada tugas akhir ini. Uji coba performa meliputi uji coba perbandingan waktu dekripsi pada client, uji coba perbandingan waktu enkripsi pada server, dan uji coba mengetahui besar ukuran file enkripsi.
1. Uji Coba Perbandingan Rata-Rata Waktu Dekripsi Antara Algoritma AES, ElGamal, dan Grain V1
Dalam uji coba ini terdapat tiga skenario proses. Pada setiap skenario akan dilakukan proses dekripsi AES, ElGamal, dan Grain V1. Kemudian dari masing-masing proses akan diukur waktu prosesnya dengan cara mengurangkan waktu selesai dengan waktu mulai. Hasil uji coba dapat dilihat pada tabel 3 dan grafik hasil uji coba dapat dilihat pada gambar 24.
Tabel 3 Hasil Uji Coba Perbandingan Waktu Dekripsi AES, ElGamal, dan Grain V1 Skenario
(dimensi gambar)
Rata2 Waktu (milidetik) AES ElGamal Grain V1 Skenario1 (250x250) 1517,66 3171 240,66 Skenario2 (1024x861) 6808,33 17220,33 687,33 Skenario3 (20x20) 405,33 831 131
Gambar 24 Grafik Hasil Perbandingan Waktu Dekripsi AES, ElGamal, dan Grain V1
0 5000 10000 15000 20000 AES Elgamal Grain v1
2. Uji Coba Perbandingan Rata-Rata Waktu Enkripsi Antara Algoritma AES, ElGamal, dan Grain V1
Dalam uji coba ini terdapat tiga skenario proses. Pada setiap skenario akan dilakukan proses enkripsi AES, ElGamal, dan Grain V1. Kemudian dari masing-masing proses akan diukur waktu prosesnya dengan cara mengurangkan waktu selesai dengan waktu mulai. Hasil uji coba dapat dilihat pada tabel 4 dan grafik hasil uji coba dapat dilihat pada gambar 25.
Tabel 4 Hasil Uji Coba Perbandingan Waktu Enkripsi AES, ElGamal, dan Grain V1 Skenario
(dimensi gambar)
Rata2 Waktu (milidetik) AES ElGamal Grain V1 Skenario1 (250x250) 1238,66 4587,66 1111,66 Skenario2 (1024x861) 1592,33 17790 1129,33 Skenario3 (20x20) 1102,33 1982 989
Gambar 25 Grafik Hasil Perbandingan Waktu Enkripsi AES, ElGamal, dan Grain V1 3. Uji Coba Perbandingan Rata-Rata Ukuran File
Enkripsi Antara Algoritma AES, ElGamal, dan Grain V1
Dalam uji coba ini terdapat tiga skenario proses. Pada setiap skenario akan dilakukan proses pengukuran file enkripsi AES, ElGamal, dan Grain V1. Hasil uji coba dapat dilihat pada tabel 5 dan grafik hasil uji coba dapat dilihat pada gambar 26.
Tabel 5 Hasil Uji Coba Perbandingan Ukuran File Enkripsi AES, ElGamal, dan Grain V1 Skenario
(dimensi gambar)
Ukuran File (bytes) AES ElGamal Grain V1 Skenario1 (250x250) 49,328 98,688 30,826 Skenario2 (1024x861) 314,384 628,8 196,486 Skenario3 (20x20) 12,944 25,92 8,082
Gambar 26 Grafik Hasil Perbandingan Ukuran File Enkripsi AES, ElGamal, dan Grain V1
5. KESIMPULAN
Dari hasil pengamatan selama perancangan, implementasi perangkat lunak yang dilakukan, dapat diambil simpulan sebagai berikut:
1. Pada tugas akhir ini telah berhasil diimplementasikan sebuah sistem yang terdiri dari sebuah aplikasi client berupa aplikasi mobile berbasis Android yang dapat melakukan proses dekripsi menggunakan algoritma AES, ElGamal, dan Grain V1 dan sebuah aplikasi server berbasis web yang dapat menangani semua request dari client dan melakukan enkripsi menggunakan AES, ElGamal, serta Grain V1 terhadap file gambar resep masakan.
2. Berdasarkan hasil uji coba performa, perbandingan antara proses enkripsi dekripsi algoritma AES, ElGamal, dan Grain V1 diperoleh kesimpulan bahwa Grain V1 rata-rata lebih cepat 703,33 ms dari AES pada proses enkripsi, selain itu pada proses dekripsi Grain V1 rata-rata lebih cepat 2261,55 ms dari AES. Dan Grain V1 rata-rata lebih cepat 57043,22 ms dari ElGamal pada proses enkripsi, selain itu pada proses dekripsi Grain V1 rata-rata lebih cepat 6508,63 ms dari ElGamal.
3. Berdasarkan hasil pengujian performa, perbandingan antara proses enkripsi dekripsi algoritma AES, ElGamal, dan Grain V1 diperoleh kesimpulan bahwa proses Grain V1 hasil ukuran file enkripsinya rata-rata lebih kecil 47,09 bytes dari AES dan rata-rata lebih kecil 172,67 bytes dari ElGamal.
6. DAFTAR PUSTAKA
[1] Ifanto, Mukhammad. Metode Enkripsi dan Dekripsi dengan Menggunakan Algoritma Elgamal. Institut Teknologi Bandung. 2009. [2] Adiwidya, B.M.D. Algoritma AES (Advanced
Encryption Standard) dan Penggunaannya dalam Penyandian Pengompresian Data. Institut Teknologi Bandung. 2009.
0 10000 20000 AES Elgamal Grain v1 0 200 400 600 800 AES Elgamal Grain v1
[3] Stallings, William. Cryptography and Network Security Principles and Practices, Fourth Edition. New Jersey: Prentice Hall; 2005. [4] Herlambang, Stephen. Studi dan Analisis
Grain Cipher. Institut Teknologi Bandung. 2010.
[5] Setyaji, Rahmat. Sejarah DES (Data Encryption Standard) [Internet]. 2010 [diakses terakhir pada: 19 Januari 2012]. http://rahmat- set.web.ugm.ac.id/web/04/sejarah-des-data-encryption-standard
[6] Suhendra, Arianto. Pengenalan Web Framework: Apache Struts 2008 Oct 5 [diakses terakhir pada: 2 Juni 2011] [Internet]. ttp://suhearie.wordpress.com/2008/10/05/peng enalan-web-framework-apache-struts/
[7] Astuti, Indri. Algoritma ElGamal [Internet]. 2010 [diakses terakhir pada: 19 Januari 2012]. http://www.scribd.com/doc/77103165/Algorit ma-ElGamal
[8] Srinivasan, R. Remote Procedure Call Version 2 [Internet]. 1995 [diakses terakhir pada: 20 Mei 2011]. http://www.ietf.org/rfc/rfc1831.txt [9] Walsh, Norman. A Technical Introduction to
XML [Internet]. 1998 [diakses terakhir pada: 3 Juni 2011]. http://www.xml.com
[10]Model – View – Controller in PHP [Internet]. 2009 [diakses terakhir pada: 29 Mei 2011]. http://php-html.net/tutorials/model-view-controller-in-php/
[11]OSSFest Tim. Sejarah Android (Sistem Operasi) [Internet]. 2010 [diakses terakhir pada: 20 Mei 2011]. http://ossfest- indonesia.web.id/2010/10/sejarah-android-sistem-operasi/