Februari 20, 2011

Pak Sugiatno

IMPLEMENTASI SISTEM ENKRIPSI PENGIRIM
PESAN INSTAN JAVA DENGAN ALGORITMA
BLOWFISH

1. Pendahuluan
Pengirim pesan instan (instant messenger) merupakan suatu perangkat lunak yang memfasilitasi pengiriman pesan singkat (instant messaging), suatu bentuk komunikasi secara langsung antara dua pihak atau lebih menggunakan teks yang diketik (chatting). Pengirim pesan instan akan mengirimkan teksmelalui perangkat yang terhubung dengan suatu jaringan. Penggunaan teknologi ini memiliki suatu kelebihan dibandingkan surat elektronik (email), yaitu komunikasi dapat terjalin secara langsung atau real-time. Hal tersebut merupakan salah satu penyebab pertumbuhan yang pesat pada jumlah penggunaan pengirim pesan instan untuk berkomunikasi. Saat ini terdapat berbagai servis protokol yang mendukung penggunaan pengiriman pesan singkat, misalnya YMSG (Yahoo! Messenger), MSNP (Windows Live Messenger), dan IRC. Jumlah penggunaan protokol YMSG sebagai sarana pengiriman pesan singkat yang meningkat telah menimbulkan kekhawatiran mengenai keamanannya. Pada protokol YMSG, teks pesan yang dikirim melalui pengirim pesan instan dapat disadap dengan mudah karena tidak melalui proses enkripsi dalam perjalanannya [HUN03]. Oleh karena itu, suatu proses enkripsi diperlukan untuk mengamankan pesan teks  yang dikirimkan. Blowfish adalah sebuah algoritma enkripsi kunci simetris dengan panjang blok 64 bit yang dikembangkan untuk menggantikan DES [SCH94]. Ukuran kunci pada algoritma Blowfish berkisar dari 32 bit sampai 448 bit. Algoritma Blowfish memanfaatkan teknik pemanipulasian bit dan teknik pemutaran ulang dan pergiliran kunci yang dilakukan sebanyak 16 kali. Algoritma utama terbagi menjadi dua upaalgoritma utama, yaitu bagian ekspansi kunci dan bagian enkripsi-dekripsi data. Ekspansi kunci dilakukan dengan menerima masukan sebuah kunci. Keluaran yang dihasilkan adalah sebuah larik upa-kunci dengan total 4168 byte. Bagian enkripsi-dekripsi data dilakukan dengan memanfaatkan perulangan 16 kali jaringan Feistel. Setiap perulangan terdiri dari permutasi dengan masukan kunci, dan substitusi data. Algoritma Blowfish masih tergolong aman karena sampai saat ini belum ada metode kriptanalisis yang lebih efisien yang dapat digunakan untuk menyerang 16 putaran penuh algoritma Blowfish selain serangan brute-force. Sejauh ini tidak ada kelemahan yang berarti dari algoritma kecuali adanya kunci lemah (weak key), dimana dua entri dari kotak-S (S-box) mempunyai nilai yang sama [VAU95]. Algoritma Blowfish merupakan salah satu metode enkripsi blok (block cipher) yang tercepat [GAT03], kecuali apabila terjadi penggantian kunci, di mana setiap penggantian kunci memerlukan proses yang setara dengan enkripsi teks berukuran 4 kilobytes. Implementasi Blowfish tidak menggunakan resource memori banyak, hal ini menyebabkan algoritma tersebut banyak digunakan pada embedded system. Algoritma Blowfish juga merupakan metode enkripsi yang bebas paten. Oleh karena alasan-alasan tersebut algoritma Blowfish dapat dimplementasikan pada perangkat lunak pengirim pesan instan.


7. Kesimpulan
Ada beberapa kesimpulan yang didapatkan sejak pengerjaan tugas akhir sampai selesai. Berikut ini akan dijabarkan masing-masing kesimpulan tersebut:
1. Pengirim pesan instan yang menggunakan servis-servis Yahoo! Messenger dapat dibangun dengan menggunakan suatu API yang disebut dengan jYMSG. Pada API tersebut telah tersedia kelas-kelas yang  vital untuk mempermudah implementasi protokol YMSG tersebut, misalnya kelas pembangun paket, koneksi, mekanisme login, dan lainlain. 
2. Implementasi algoritma enkripsi Blowfish dalam pengirim pesan instan akan meningkatkan keamanan yang sebelumnya tidak ada pada proses pengiriman pesan dalam protokol YMSG. Dengan sistem enkripsi tersebut, penyadapan yang dilakukan ketika pesan sedang ditransmisikan menjadi semakin sulit karena pesan yang ditangkap berupa ciphertext. Perangkat lunak juga bebas dari resiko serangan replay attack dan serangan lainnya karena pada setiap paket YMSG terdapat session yang dapat diubah setiap waktu oleh server.
3. Implementasi algoritma enkripsi Blowfish tidak menurunkan performa perangkat lunak dengan berarti. Hal ini disebabkan pengaruh enkripsi yang tergolong kecil terhadap penggunaan memori dan waktu pemrosesan perangkat lunak. Dengan mengaktifkan mode enkripsi, maka keamanan teks pesan yang dikirim dapat dijamin tanpa mempengaruhi performa perangkat lunak secara signifikan.
4. Transmisi data hasil enkripsi pada perangkat lunak dilakukan dalam format encoding base64 agar pengiriman data dapat dilakukan dalam format teks. Namun dengan demikian ukuran paket yang dikirimkan akan menjadi lebih besar ketika mode enkripsi berada dalam mode aktif. Ciphertext menjadi lebih panjang daripada plaintext karena base64 bekerja pada basis 64, sementara satu buah karakter pada UTF-8 berukuran minimal 1 byte (basis 256).


DAFTAR PUSTAKA

[FEB07] Setiadi, Febrian. (2007). Implementasi Yahoo! Messenger Mobile Client Dengan Menggunakan J2ME. Institut Teknologi Bandung.
[MUN03] Munir, Rinaldi. (2003). Kriptografi, Diktat Kuliah IF5054 Kriptografi Program Studi Teknik Informatika. Institut Teknologi Bandung.
[YAH07] Yahoo! Coders Cookbook Tutorial. (2007) (diakses tanggal 19 Juni 2009). http://ycoderscookbook.com/

Tidak ada komentar:

Posting Komentar