MAKALAH SEMINAR TUGAS AKHIR
IMPLEMENTASI KRIPTOGRAFI PADA SISTEM MOBILE AGENT MENGGUNAKAN METODE DATA ENCRYPTION STANDARD (DES) Ahmad Fuadi – Ary Mazharuddin Siddiqi S.Kom, M.Comp.Sc. – Henning Titi Ciptaningtyas S.Kom. Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember e-mail :
[email protected] Beberapa system terdistribusi sangat mungkin menjadi subjek serangan pada sistem keamanannya. Beberapa isu seperti enkripsi, otorisasi, otentifikasi, non-repudiasi seharusnya tercakup dalam sistem mobile agent ini. Selanjutnya, sebuah sistem mobile agent yang aman harus memproteksi host sebagus agent dari serangan man in the middle attack. Hingga saat ini tidak ada usul yang benar-benar bisa mengatasi masalah keamanan pada mobile agent secara komplit. Contohnya adalah membatasi kapabilitas mobile agent, seperti melakukan enkripsi pada informasi yang dibawa agent. Ini tidak akan mungkin melindungi agent seratus persen aman. Namun setidaknya ini bisa membantu mengatasi masalah keamanan pada mobile agent. Oleh karena itu, disini penulis akan mengimplementasikan kriptografi pada mobile agent dengan menggunakan metode yang paling umum digunakan yaitu Data Encryption Standard. 2 Mobile Agent Teknologi mobile agent adalah suatu teknologi dimana suatu agent mempunyai kemampuan untuk memindahkan dirinya sendiri, program, dan state, melalui jaringan komputer, dan dapat melakukan eksekusi pada remote site. Ide dari mobile agent ini adalah sangat sederhana. Ide ini bertujuan agar mobile agent mampu menggantikan konsep RPC (Remote Procedure Call) sebagai suatu proses untuk berkomunikasi antar jaringan. Satu hal yang penting dalam konsep RPC adalah, komunikasi dilakukan secara asynchronous. Oleh karena itu satu proses dari host asal akan melakukan blok mulai dari dimulainya eksekusi dari instruksi, sampai pada waktu host yang dituju mengembalikan return value. Jika host yang dituju tidak pernah mengembalikan return value karena ada kegagalan dalam jaringan, maka host asal akan berada dalam kondisi suspend, menunggu reply dari host yang dituju yang tidak akan pernah datang. Oleh karena itu koneksi jaringan antara host asal dan host yang dituju harus selalu terbuka, walaupun tidak sedang digunakan.
Abstrak - Teknologi mobile agent adalah metode dari aplikasi komputasi terdistribusi yang dapat menjadi sebuah alternatif dari model client-server konvensional. Namun teknologi ini tidak terlalu populer karena beberapa masalah pada sisi keamanan. Fakta bahwa komputer mempunyai kontrol penuh atas semua program membuat teknologi ini menjadi sangat sulit untuk diproteksi dari host yang tak dikenal. Pada Tugas Akhir ini, penulis membangun sebuah aplikasi untuk memproteksi kerahasiaan pesan serta mempertahankan integritas pesan yang dibawa oleh mobile agent dari serangan man in the middle. Pendekatan ini mengadopsi kriptografi mobile seperti yang diusulkan pertama kali oleh Sander dan Tschudin. Teknik tersebut dapat meminimalisir beberapa masalah yang ditemukan pada gagasan asli dari kriptografi mobile [4]. Untuk mengimplementasikannya, penulis menggunakan metode kriptografi Data Encription Standard (DES). DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. Aplikasi Mobile Agent sendiri dibangun dengan Teknologi J2SE menggunakan library JADE. Hasil penelitian menunjukkan bahwa masalah keamanan dalam mobile agent bisa didieliminasi dengan aplikasi ini. Dengan penerapan model kriptografi ini, pesan yang dienkripsi dikirim dari satu host ke host lain dapat meminimalisir masalah keamanan pada sistem mobile agent dari serangan man in the middle. Kata Kunci : Kriptografi, Mobile Agent, Enkripsi, Dekripsi, DES. 1 Pendahuluan Mobile Agent akan menjadi tren utama dari sistem dan aplikasi terdistribusi beberapa tahun yang akan datang. Ini dapat membawa keuntungan, seperti mengurangi network load dan mengatasi network latency. Namun, keamanan merupakan salah satu faktor penghambat dari pengembangan sistem ini. Masalah keamanan utama yang belum teratasi adalah masalah kebohongan yang mungkin terjadi pada beberapa malicious host yang dapat memanipulasi data dan eksekusi agent.
1
AHMAD FUADI - 5106100148
MAKALAH SEMINAR TUGAS AKHIR
Gagasan dari mobile agent ini menggantikan RPC dengan cara mengirimkan semua objek agent ke remote location untuk melakukan komputasi. Metode ini merupakan pengganti dari proses pengiriman prosedur, dimana proses dari host asal akan mengirimkan mobile agent ke proses host yang dituju. Pada saat agent selesai melakukan interaksi, maka agent tersebut akan kembali ke host asal dengan membawa hasil dari proses komputasi di host yang dituju. Selama proses interaksi berlangsung, maka koneksi dibutuhkan hanya pada saat proses pengiriman agent dari host asal ke host yang dituju, dan sebaliknya. Hal ini meyebabkan penggunaan resource pada jaringan dapat efisien. 3 Framework JADE JADE (Java Agent DEvelopment Framework) adalah suatu framework software yang secara sederhana mengimplementasikan sistem multi agent melalui middleware, dengan mengikuti spesifikasi dari FIPA (Foundation for Intelligent Physical Agent). platform agent tersebut dapat didistribusikan antar mesin dan konfigurasinya dapat dikontrol melalui remote GUI. JADE merupakan middleware yang memberikan fasilitas untuk mengembangkan dan membangun suatu sistem multi agent. Komponen-komponen yang dimiliki oleh JADE antara lain: • Runtime environtment, dimana agent dapat hidup, dan harus aktif pada host sebelum agent dieksekusi. • Libarary, dari kelas yang dapat digunakan untuk mengembangkan agent. • Graphical Tools, untuk memudahkan proses administrasi dan monitoring dari agent yang sedang aktif. Arsitektur komunikasi dari framework ini menawarkan pemrosesan pesan secara fleksibel dan efisien , dimana JADE membuat dan mengatur antrian dari pesan yang masuk, dan bersifat pribadi untuk setiap agent. Suatu agent dapat mengakses antrian tersebut dengan menggunakan kombinasi beberapa mode, yaitu: blocking, polling, timeout, dan pengenalan pola dari suatu pesan. 4 Enkripsi Di bidang kriptografi, enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi.
4.1
Cipher Sebuah cipher adalah sebuah algoritma untuk menampilkan enkripsi dan kebalikannya dekripsi, serangkaian langkah yang terdefinisi yang diikuti sebagai prosedur. Alternatif lain ialah encipherment. Informasi yang asli disebuh sebagai plaintext, dan bentuk yang sudah dienkripsi disebut sebagai chiphertext. Pesan chipertext berisi seluruh informasi dari pesan plaintext, tetapi tidak dalam format yang didapat dibaca manusia ataupun komputer tanpa menggunakan mekasnisme yang tepat untuk melakukan dekripsi. Cipher pada biasanya memiliki parameter dari sebagian dari informasi utama, disebut sebagai kunci. Prosedur enkripsi sangat bervariasi tergantung pada kunci yang akan mengubah rincian dari operasi algoritma. Tanpa menggunakan kunci, chiper tidak dapat digunakan untuk dienkirpsi ataupun didekripsi. 4.2 Tipe-tipe Cipher Ada banyak sekali variasi pada tipe enkripsi yang berbeda. Algoritma yang digunakan pada awal sejarah kriptografi sudah sangat berbeda dengan metode modern, dan cipher modern dan diklasifikasikan berdasar pada bagaimana cipher tersebut beroperasi dan cipher tersebut menggunakan sebuah atau dua buah kunci. Sejarah cipher pena dan kertas pada waktu lampau sering disebut sebagai cipher klasik. Cipher klasik termasuk juga cipher pengganti dan cipher transposisi. Pada awal abad 20, mesin-mesin yang lebih mutakhir digunakan untuk kepentingan enkripsi, mesin rotor, merupkan skema awal yang lebih kompleks. Metode enkripsi dibagi menjadi algoritma symmetric key dan algoritma asymmetric key. pada algoritma symmetric key (misalkan, DES dan AES), pengirim dan penerima harus memiliki kunci yang digunakan bersama dan dijaga kerahasiaanya. Pengirim menggunkan kunci ini untuk enkripsi dan penerima menggunakan kunci yang sama untuk dekripsi. Pada algoritma asymmetric key (misalkan, RSA), terdapat dua kunci terpisah, sebuah public key diterbitkan dan membolehkan siapapun pengirimnya untuk melakukan enkripsi, sedangkan sebuah private key dijaga kerahasiannya oleh penerima dan digunakan untuk melakukan dekripsi. Cipher symmetric key dapat dibedakan dalam dua tipe, tergantung pada bagaimana cipher tersebut bekerja pada blok simbol pada ukuran yang tetap (block ciphers), atau pada aliran simbol terus-menerus (stream ciphers).
2
AHMAD FUADI - 5106100148
MAKALAH SEMINAR TUGAS AKHIR
5
Data Encryption Standard Algoritma ini didesain untuk mengenkripsi dan mendekripsi blok data sepanjang 64 bit dengan kunci berukuran 64bit (dimana 8 bit diantaranya merupakan parity bits sehingga ukuran kunci sebenarnya adalah 56-bit). Dekripsi dilakukan dengan menggunakan kunci yang sama dengan yang digunakan saat enkripsi dengan pengubahan pengalamat bit-bit kunci sehingga menghasilkan proses kebalikan dari proses enkripsi. Sebuah blok yang akan dienkripsi pertama-tama dipermutasikan dengan permutasi IP, kemudian di komputasi dengan algoritma kompleks yang dibentuk dari kunci dan akhirnya dikenakan permutasi balikan dari permutasi awal IP-1. Komputasi dengan kunci dapat didefinisikan dengan sebuah fungsi f, yang disebut fungsi cipher, dan sebuah fungsi KS, yang disebut key schedule. Gambaran umum dari proses enkripsi dan dekripsi dapat dilihat pada gambar 5.1
4.3
Kunci Dalam kriptografi, kunci adalah suatu informasi yang mengendalikan jalannya sebuah algoritma kriptografi. 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. Kunci enkripsi modern kadang sulit untuk dihafal. Hal ini menyebabkan kunci harus dituliskan, dan disimpan dari orang yang tidak berwenang. Kadang-kadang, hal ini dapat dibobol dengan pencurian, penipuan, social engineering, penggeledahan, dan lain sebagainya. Algoritma enkripsi yang menggunakan kunci yang sama untuk enkripsi dan dekripsi disebut algoritma kunci simetrik. Sedangkan algoritma kunci asimetrik, yang baru ditemukan pada 1970an, menggunakan sepasang kunci. Kunci publik (public key), yang digunakan untuk enkripsi, diumumkan kepada publik sedangkan kunci pribadi (private key) yang digunakan untuk dekripsi hanya disimpan di satu tempat. Kunci pribadi harus dibuat sedemikian rupa sehingga tidak dapat ditebak sekalipun kunci publik diketahui. 4.4 Man In The Middle Attack Dalam kriptografi, man in the middle attack (sering disingkat MITM) adalah sebuah bentuk dari eavesdropping (menguping) secara aktif di mana attacker membuat koneksi independen dengan victim. Attacker me-relay pesan dari victim dan membuat victim percaya bahwa mereka berhubungan secara langsung melalui koneksi private. Padahal faktanya keseluruhan dari percakapan telah dikontrol oleh attacker. Attacker harus bisa mencegat semua pesan antara kedua victim dan menginject salah satu dari mereka secara langsung dalam berbagai keadaan (sebagai contoh, seorang attacker sedang berada di dalam area wireless access point yang tidak terenkripsi, mereka bisa masuk sebagai man in the middle). Sebuah serangan man in the middle bisa berhasil hanya jika attacker dapat menirukan setiap kepuasan endpoint yang lain – ini adalah serangan terhadap otentifikasi timbal balik. Kebanyakan protokol kriptografi memasukkan beberapa bentuk autentifikasi endpoint khususnya untuk mencegah serangan MITM. Sebagai contoh, SSL mengotentifikasi server menggunakan otoritas sertifikasi yang saling dapat dipercaya.
Gambar 5.1 Gambaran dasar proses enkripsi dengan DES
6
Desain dan Implementasi Sistem Pada tugas akhir ini, penulis akan membuat sebuah implementasi kriptografi pada sistem keamanan teknologi mobile agent. Teknologi mobile agent adalah sebuah paradigma baru dari aplikasi komputasi terdistribusi yang dapat menggantikan peran model client-server konvensional. Namun teknologi ini tidak terlalu populer karena masalah pada sisi keamanan. Fakta bahwa komputer mempunyai control penuh atas semua program membuat teknologi ini menjadi sangat sulit untuk diproteksi dari host yang tak dikenal. Pada aplikasi ini, penulis akan berusaha melakukan proteksi mobile agent dari man-in-the-middle attack. Proteksi ini dilakukan untuk mencegah serangan terhadap privasi dan integritas pesan yang dibawa oleh mobile agent. Pendekatan ini merupakan pengembangan dari kriptografi mobile seperti yang diusulkan pertama kali oleh Sander dan Tschudin, yang dapat meminimalisir beberapa masalah yang ditemukan pada gagasan asli dari kriptografi mobile. Untuk mengimplementasikannya, penulis akan menggunakan metode kriptografi Data Encription Standard (DES). DES merupakan salah satu metode kriptografi yang paling banyak digunakan hingga saat ini. DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. Aplikasi
3
AHMAD FUADI - 5106100148
MAKALAH SEMINAR TUGAS AKHIR
Mobile Agent sendiri dibangun dengan Teknologi J2SE menggunakan library JADE. Implementasi kriptografi pada mobile agent ini membutuhkan tersedianya koneksi Internet agar bisa saling terhubung. Gambaran umum proses yang terjadi dalam aplikasi ini adalah sebagai berikut :
6.2
Implementasi Untuk implementasi ada dua program terpisah, yaitu aplikasi book trading dan aplikasi enkrisi/dekripsi. Aplikasi book trading menggunakan library JADE untuk mengimplementasikannya. Aplikasi ini merupakan program komplek, sehingga banyak fungsi yang dilibatkan. Yang kedua adalah aplikasi enkripsi/dekripsi. Aplikasi ini menangani system keamanan dari aplikasi Book Trading. Aplikasi sistem keamanan ini menggunakan metode Data Encryption Standard (DES) yang merupakan metode enkripsi kunci simetri. Pada implementasinya, DES ini menggunakan tiga kelas. Proses yang ditangani pada aplikasi ini ada dua, yaitu Enkripsi dan Dekripsi.
Gambar 6.1 Skema man in the middle attack
fungsi string doEncrypt(String message, String kunci) { this.message Æ message; this.keyString Æ kunci; Bits cipher Æ Bits.fromBytes(IV) Bits key Æ Bits.fromBytes(keyString.getBytes()) Bits [] subkey = DES.getSubkey(key) String masukan Æ this.message byte [] rubah Æ masukan.getBytes() int panjang Æ masukan.length() + modulus 8 byte [] baru Æ new byte[panjang] if Æ masukan.length()%8 != 0 { for Æ i = 0 to masukan.length() baru [i] Æ rubah[i] for i = masukan.length to panjang baru [i] Æ 0 else for i = 0 to masukan.length() baru [i] Æ rubah [i] String masuk Æ new String(baru) for i = 0 to panjang{ String sub Æ masuk.substring(i, i+8) StringBuilder logString Æ new StringBuilder() Bits result Æ enkrip data result.xor(Bits .fromBytes(sub.getBytes()) cipher Æ (Bits) result.clone() tampung Æ result } return tamping
Berdasarkan gambar 6.1, utuk melakukan simulasi ini dibutuhkan minimal 3 host yang terhubung satu sama lain. Dalam hal ini satu host bertindak sebagai server, satu lagi sebagai client, kemudian yang berada di tengah bertindak sebagai man in the middle, yaitu host yang akan melakukan serangan. Untuk mengimplementasikannya, dua buah host yaitu client dan server harus tertanam program untuk melakukan kriptografi, sehingga data yang dikirim, baik itu dari client ke server maupun sebaliknya sudah dalam bentuk ciphertext (string yang sudah terenkripsi). 6.1 Aplikasi Book Trading Aplikasi book trading ini meliputi book seller dan book buyer software agent yang idealnya dimiliki oleh beberapa sistem yang terpisah. Pemilik book seller mempunyai tanggung jawab dalam melakukan operasi di bookstore yang mencakup stocking dan setting harga dari buku. Sementara itu, book buyer agent bertanggung jawab dalam pembelian buku dari book seller. Pada gambar 6.2, agent dari buyer agent maupun seller agent saling bergantian mengirimkan message. Proses-proses tersebut berjalan secara sequential.
}
Gambar 6.3 pseudocode enkripsi DES
Gambar 6.3 merupakan pseudocode dari program Data Encryption Standard. Potongan pseudocode ini merupakan inti dari proses enkripsi. 7 Uji Coba dan Evaluasi Uji coba yang dilakukan adalah uji coba fungionalitas, dan performa dari aplikasi yang telah dibuat. 7.1 Uji coba fungsionalitas Uji coba fungsionalitas dilakukan untuk melihat apakah fungsi-fungsi dasar aplikasi berjalan sebagai mana mestinya. Hasil uji coba ditunjukkan dengan hasil screenshot dari Graphical User Interface pada perangkat komputer.
Gambar 6.2 Interaksi aplikasi book trading
4
AHMAD FUADI - 5106100148
MAKALAH SEMINAR TUGAS AKHIR
Uji coba fungsionalitas meliputi : menjalankan program jade, masukan string pada buyer agent, masukan string ke katalog pada seller agent, proses enkripsi, proses dekripsi, proses menangkap paket pada host yang bertindak sebagai man in the middle. 7.1.1 Menjalankan Program JADE Sebelum ujicoba dilakukan, pastikan dalam computer yang bertindak sebagai agent telah tertanam JADE. Dengan melakukan running program JADE.Boot pada compiler eclipse yang telah tertanam JADE di dalamnya. Sebagai awalan, setelah JADE tertanam pada computer, kita running program dengan memasukkan parameter -gui pada compiler eclipse. Maka akan muncul Antarmuka seperti gambar 7.1.
7.1.3
Inputan String Pada Book Seller Agent Pada Book Seller agent terdapat catalog untuk menampung judul buku dan harga buku yang tersedia untuk dijual. Judul dan harga buku tersebut dimasukkan melalui antarmuka yang ada pada Book Seller Agent. Antarmuka inputan tersebut bisa dilihat seperti gambar 7.3.
Gambar 7.3 Inputan Katalog Seller Agent
Judul dan harga buku ini nantinya berguna untuk proses selanjutnya. Judul dan harga buku ini merupakan isi dari pesan dispatch antara Book Buyer Agent dan Book Seller Agent yang akan melalui tahap enkripsi dan dekripsi. 7.1.4 Proses Pengiriman dan Enkripsi Pesan Book Buyer Agent Setelah melakukan proses input judul buku, Book Buyer Agent akan menginisialisasi pesan yang isi dari pesan itu adalah judul buku tersebut. Pada saat melakukan pengiriman pesan, pesan harus melalui tahapan enkripsi terlebih dahulu. Tahapan ini bisa dilihat pada gambar 7.4.
Gambar 7.1 JADE Remote Agent Management GUI
Jika running program ini sudah bisa berjalan, maka aplikasi booktrading bias dijalankan. 7.1.2 Inputan String Pada Book Buyer Agent Untuk fungsionalitas program yang pertama yang bisa diketahui adalah tampilan untuk memasukkan inputan pada buyer agent untuk menentukan judul buku yang akan dipesan pada seller agent. Inputan ini berupa sembarang string. Tampilan dari proses ini dapat dilihat pada gambar 7.2.
Gambar 7.4 Proses pengiriman buku
7.1.5
Proses Penerimaan dan Dekripsi Pesan Setelah Buyer mengirimkan pesan, maka Seller menerima dalam bentuk data terenkripsi. Pesan tersebut diterima kemudian didekripsi terlebih adhulu untuk mendapatkan pesan yang bisa dibaca. Proses penerimaan pesan dan dekripsi pesan bisa dilihat pada gambar 7.5.
Gambar 7.2 Inputan judul buku
String yang diinputkan pada buyer agent ini harus sama dengan salah satu judul yang ada di dalam catalog seller agent. Jika judul yang diminta tidak ada, maka request pemesanan gagal, karena buku yang diminta tidak tersedia.
5
AHMAD FUADI - 5106100148
MAKALAH SEMINAR TUGAS AKHIR
7.2.1
Ujicoba perbandingan ukuran string Pengujian ini dilakukan dengan mencoba beberapa ukuran string. Mulai dari ukuran kecil sampai besar. String yang belum dienkripsi disimpan dalam bentuk text file. Demikian juga dengan string yang telah terenkripsi. Pengujian juga dilakukan pada data sebelum didekripsi dan setelah dikekripsi. Tabel 7.1 menunjukkan perbandingan ukuran string sebelum dan sesudah enkripsi. Table 7.1 Perbandingan ukuran string
No. 1 2 3 4 5 6 7 8 9
Gambar 7.5 Proses dekripsi pesan
7.1.6
Proses terminate Setelah kedua agent melakukan transaksi, maka akan tampil pesan bahwa buku yang diminta pada transaksi ini telah terjual. Prosesnya bisa dilihat pada gambar 7.6 dan 7.7.
Sebelum dienkripsi (bytes) 200 400 600 800 1000 2000 4000 8000 20000
Sesudah dienkripsi (bytes) 200 400 600 800 1000 2000 4000 8000 20000
Pada ujicoba perbandingan ukuran string sebelum dan sesudah enkripsi menunjukkan bahwa tidak ada perbedaan jumlah byte sama sekali. Grafik perbandingan ukuran string dapat dilihat pada gambar 7.8. Gambar 7.6 Terminating Buyer Agent
Gambar 7.7 Pesan pada Seller Agent setelah buku terjual
7.2
Uji coba performa Pada subbab ini akan dibahas hasil pengujian performa dari system yang telah dibangun. Uji coba ini dilakukan dengan tujuan untuk mengetahui sejauh mana kemampuan aplikasi ini bekerja dan apa batasan atau kekurangan dari aplikasi ini sehingga dapat dikembangkan lebih lanjut. Adapun yang akan diujicobakan adalah ukuran string sebelum dan sesudah dienkripsi. Dalam hal ini string yang dihasilkan disimpan dalam bentuk text file, sehingga diketahui perbandingan ukuran filenya. Selain itu, yang diujicobakan adalah waktu running program jika dibandingkan dengan program bawaan java. Pengujian ini dilakukan menggunakan satu computer denga spesifikasi yang telah disebutkan di atas. Tentunya waktu yang dihasilkan pada ujicoba kedua akan berbeda jika menggunakan computer dengan spesifikasi yang berbeda.
Gambar 7.8 Grafik perbandingan ukuran string
Tabel 7.2 menunjukkan perbandingan ukuran string sebelum dan sesudah dekripsi. Table 7.2 Perbandingan ukuran string
No. 1 2 3 4 5 6 7 8 9
Sebelum dienkripsi (bytes) 200 400 600 800 1000 2000 4000 8000 20000
Sesudah dienkripsi (bytes) 200 400 600 800 1000 2000 4000 8000 20000
Pada ujicoba perbandingan ukuran string sebelum dan sesudah dekripsi menunjukkan bahwa tidak ada perbedaan jumlah byte sama sekali. Grafik perbandingan ukuran string dapat dilihat pada gambar 7.9.
6
AHMAD FUADI - 5106100148
MAKALAH SEMINAR TUGAS AKHIR
Gambar 7.9 Grafik perbandingan ukuran string
Gambar 7.10 Grafik perbandingan kecepatan running program
7.2.2
Ujicoba perbandingan waktu running program Pengujian ini dilakukan dengan membandingkan kecepatan waktu running program ini dengan program bawaan java menggunakan library javax.crypto. Pengujian ini dilakukan dengan cara mencatat waktu mulai program melakukan enkripsi hingga selesai. Sampel dalam ujicoba ini sama dengan ujicoba pertama, menggunakan beberapa ukuran string, sehingga diketahui perbandingannya secara jelas. Table 7.3 menunjukkan perbandingan waktu running program ini dibandingkan dengan program yang menggunkaan library javax.crypto.
8
Kesimpulan Dari implementasi yang telah dilakukan serta uji coba terhadap fungsionalitas serta performa dari aplikasi simulasi Book Trading dan Enkripsi yang telah dibangun dapat disimpulkan bahwa : a. Dengan aplikasi enkripsi ini, maka sistem keamanan pada teknologi mobile agent telah diimplementasikan, sehingga mengurangi resiko keamanan pada teknologi tersebut. b. Dari pengujian perbandingan ukuran byte string sebelum dan setelah dienkripsi, diketahui bahwa tidak ada perubahan ukuran byte string. c. Dari pengujian perbandingan waktu menggunakan aplikasi ini dengan aplikasi menggunakan library javax.crypto, didapatkan bahwa kompleksitas dari aplikasi ini masih terlalu besar, sehingga mempengaruhi waktu enkripsi string. Bisa dilihat bahwa perbedaan waktu sangat besar. 9 Daftar pustaka [1] Bellifemine, F., Caire, G., Greenwood, D. 2007. Developing Multi-Agent Systems with JADE. John Wiley & Sons Ltd. [2] Couloris, G., Dollimore, J., Kindberg, Tim. 2005. Distributed Systems Concept and Design, fourth edition. Addison Wesley. [3] Hyungjick Lee, Jim Alves-Foss and Scott Harrison, 2004, The Use of Encrypted Functions for Mobile Agent Security, Connectivity Lab., Digital Media R&D Center, Samsung Electronics Co., Ltd [4] Ssekibuule, R., Quenum, J. G., 2007, Security Analysis of an Agent-Mediated Book Trading Application.
[5] Tanenbaum, A.S, V.S., Marteen. 2002. Distributed Systems Principle and Paradigms, International edition. Prentice Hall. [6] Tilab, Nov. 2006. Java Agent Development Framework,
Table 7.3 Perbandingan kecepatan running program
Ukuran String (bytes)
200 400 600 800 1000 2000 4000 8000 20000
Waktu running program menggunakan javax.crypto (milisecond) 0.437827 0.622932 0.775741 0.916127 1.114902 1.576428 2.034836 3.051483 5.335185
Waktu running program ini (milisecond) 29.368651 46.657001 63.527423 81.900825 95.897148 174.628919 330.872487 647.925536 1572.405979
Pada ujicoba, dengan ukuran string yang semakin besar, membutuhkan waktu yang semakin lama pula. Perbandingan antara kedua program sangat terlihat. Dengan kompleksitas yang masih sangat besar, program ini masih membutuhkan waktu yang sangat lama dibandingkan dengan program yang menggunakan library javax.crypto bawaan java. Grafik perbandingan kecepatan running program dapat dilihat pada gambar 7.10.
7
AHMAD FUADI - 5106100148
MAKALAH SEMINAR TUGAS AKHIR
[7]
Tilab, Nov. 2006. Java Agent Development Framewrok, Community Add-Ons. [8] Wikipedia, Apr. 2010. Middleware Concept. [9] Wikipedia, Jul. 2010. Kriptografi. [10] Wikipedia, Jul. 2010. Enkripsi. [11] Wooldridge, Michael, 2002. An Introduction to Multiagent System, Departement of Computer Science, University of Liverpool, UK, John Wiley and Sons.
8
AHMAD FUADI - 5106100148