PENGEMBANGAN SISTEM PENGIRIMAN SUARA VOTER MENUJU CENTRAL TABULATING FACILITIES (CTF)
MEDRIA KUSUMA DEWI HARDHIENATA
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2009
PENGEMBANGAN SISTEM PENGIRIMAN SUARA VOTER MENUJU CENTRAL TABULATING FACILITIES (CTF)
MEDRIA KUSUMA DEWI HARDHIENATA
Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2009
ABSTRACT MEDRIA KUSUMA DEWI HARDHIENATA.The Development of Voting Result Data Transfer to the Central Tabulating Facilities. Under the direction of SRI NURDIATI and SUGI GURITMAN. Advances in election voting process nowadays has triggered the application of virtualization technique in several countries. Most studies raised concern about Online Voting which provides cost saving and convinience. The voting system using virtual network technology aims to reduce considerable calculation time as well as necessary human resources. Despite this, Indonesia still performs voting during election manually. Therefore, this research is performed to study the application of small scale Online Voting at the Department of Computer Science, Bogor Agricultural University as well as studying its further possibility for applying this technique in larger scales. Considering the complexity in building a complete secure online election voting process, this research is focused only in developing a system to send vote from voter to Central Tabulating Facilities (CTF) by implementing a modified secure election protocol with Two Central Facilities. It is also conducted to implement earlier research recommendations to make the system more secure as well as how to integrate an election voting system from a single host into multiple hosts by using Java Web Start Technology. Keywords: Online Voting, voter, Central Tabulating Facilities, Two Central Facilities
Judul Nama NIM
:Pengembangan Sistem Pengiriman Suara Voter Menuju Central Tabulating Facilities (CTF) :Medria K.D.Hardhienata :G64052475
Menyetujui: Pembimbing I,
Pembimbing II,
Dr. Ir. Sri Nurdiati, M.Sc NIP 19601126 198601 2 001
Dr. Sugi Guritman NIP 19620927 199203 1 004
Mengetahui, Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Dr. Drh. Hasim, DEA NIP 19610328 198601 1 002
Tanggal Lulus :
RIWAYAT HIDUP Medria Kusuma Dewi Hardhienata dilahirkan di kota Stuttgart, Jerman Barat, pada tanggal 22 Agustus 1986 dari pasangan Ibu Sri Setyaningsih dan Bapak Soewarto Hardhienata. Pada tahun 2005 penulis lulus dari Sekolah Menengah Atas (SMA) Negeri 1 Bogor dan diterima di Program Studi Ilmu Komputer Institut Pertanian Bogor melalui jalur Seleksi Masuk Penerimaan Mahasiswa (SPMB). Penulis aktif berpartisipasi dalam National University English Debate Championship yang diselenggarakan pada tanggal 24-26 April 2007 dan berhasil meraih juara Third Runner Up. Pada bulan Januari hingga Maret 2007 penulis menjadi anggota Tim Multimedia Publikasi Satelit Lapan Tubsat dalam bidang animasi dan design. Setahun kemudian penulis menjadi asisten praktikum untuk mata kuliah Basis Data dan Organisasi Komputer di Institut Pertanian Bogor serta menjadi asisten dosen untuk mata kuliah Organisasi Komputer di Universitas Pakuan Bogor. Pada tahun yang sama Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor memberikan penghargaan kepada penulis sebagai Mahasiswa Berprestasi Tingkat Fakultas tahun 2008.
PRAKATA Rasa syukur penulis ucapkan kepada Allah SWT yang telah memberikan anugerah dan rahmatNya hingga proses pembuatan skripsi ini dapat terselesaikan dengan lancar. Skripsi berjudul “Pengembangan Sistem Pengiriman Suara Voter Menuju Central Tabulating Facilities (CTF)” ini berangkat dari sebuah mimpi bahwa suatu saat pemilu di Indonesia dapat terselenggara secara virtual. Penelitian ini diharapkan dapat menjadi sumbangan pemikiran yang nantinya dapat terus dikembangkan bagi penyelenggaraan pemilu secara lebih luas di masa mendatang. Seiring dengan terselesaikannya skripsi ini, penulis ingin mengucapkan terima kasih yang tidak terhingga kepada: 1 Ayah dan Ibu, Soewarto Hardhienata dan Sri Setyaningsih, kedua orang yang menjadi sumber kekuatan untuk tetap maju dan melangkah. Terimakasih pula penulis ucapkan kepada kakak, Hendradi Hardhienata, yang selalu mengajarkan untuk tidak cepat menyerah dan menyadarkan bahwa mempelajari ilmu pengetahuan dimulai dari mencintai ilmu pengetahuan itu sendiri. Terimakasih pula kepada Faridah Handayasari, kakak perempuan penulis yang telah memotivasi agar dapat menyelesaikan skripsi tepat waktu. 2 Ibu Dr. Ir. Sri Nurdiati, MSc selaku pembimbing pertama yang telah memberi arahan, bimbingan serta motivasi untuk menyelesaikan skripsi ini. 3 Bapak Dr. Sugi Guritman selaku pembimbing kedua yang telah menumbuhkan rasa kecintaan akan ilmu kriptografi dan mencetuskan pemikiran awal untuk mengerjakan penelitian Online Voting. 4 Bapak Irman Hermadi S.Kom, MS selaku pembimbing akademik yang telah membimbing dan menjadi tempat penulis berkonsultasi dan bertanya. 5 Orang-orang yang telah menemani hingga semester demi semester perkuliahan dapat terlewati dan membantu penulis dalam melewati masa-masa sulit, Rizqi Baihaqi Ahmadi, sahabat terbaik yang pernah ada, orang yang mengajarkan untuk tidak pernah menyerah dan terus berjuang serta Rinjani Yusni Maharjanti, sahabat yang selalu menemani di saat-saat pengerjaan skripsi. Tidak lupa penulis ucapkan terimakasih kepada sahabat, Nida, rekan seperjuangan dalam projek Online Voting, Dina, Uud, dan Fajri, serta sahabat-sahabat yang pernah bekerja bersama-sama dalam satu tim hebat Ferdian Faisal, Noviana Putri, Fitri, dan Abie Rafdi. Skripsi ini juga penulis persembahkan untuk sahabat-sahabat program studi Ilmu Komputer Angkatan 42, Mirna, Lena, Adet, Prita, Nila, Huda, Indra, Ijun, Nano, Regi, organisasi yang telah membesarkan penulis, Komunitas Film FOKERZ dan HIMALKOM, serta sahabat-sahabat yang tidak bisa penulis sebutkan satu persatu, terimakasih atas segalanya. 6 Seluruf staf pengajar Departemen Ilmu Komputer yang telah berbagi banyak ilmu, filosofi dan cerita-cerita luar biasa sehingga mempelajari ilmu komputer menjadi hal yang menyenangkan. Terimakasih juga penulis ucapkan kepada segenap staf administrasi dan perpustakaan Departemen Ilmu Komputer yang telah membantu hingga skripsi ini dapat terselesaikan. Terimakasih atas bantuan semua pihak. Akhir kata semoga karya ilmiah ini dapat bermanfaat dan memberi inspirasi bagi peneliti-peneliti muda lainnya untuk terus berlomba menciptakan karya terbaik. Bogor, Agustus 2009
Medria K. D. Hardhienata
DAFTAR ISI
Halaman DAFTAR GAMBAR ................................................................................................................................. v DAFTAR LAMPIRAN.............................................................................................................................. v PENDAHULUAN ..................................................................................................................................... 6 Latar Belakang ..................................................................................................................................... 6 Tujuan ................................................................................................................................................... 6 Ruang Lingkup ..................................................................................................................................... 6 TINJAUAN PUSTAKA ............................................................................................................................ 2 Protokol ................................................................................................................................................ 2 Kriptografi ............................................................................................................................................ 2 Kunci Publik (Public Key) ................................................................................................................... 2 Kunci Simetri (Session Key) ................................................................................................................ 2 Algoritme RSA ..................................................................................................................................... 2 Secure Hash Algorithm (SHA)-1 .......................................................................................................... 3 Jaringan Feistel..................................................................................................................................... 3 Blowfish ................................................................................................................................................ 3 Nonce .................................................................................................................................................... 5 Java Web Start...................................................................................................................................... 5 Certificate Authority (CA) ................................................................................................................... 5 Central Legitimization Agency (CLA)................................................................................................. 5 Central Tabulating Facilities (CTF).................................................................................................... 5 METODE PENELITIAN........................................................................................................................... 6 Ancaman (Threats) ............................................................................................................................... 6 Kebijakan (Policy)................................................................................................................................ 6 Spesifikasi (Specification).................................................................................................................... 6 Perancangan (Design) .......................................................................................................................... 6 Implementasi (Implementation) ........................................................................................................... 7 Pengujian (Testing) .............................................................................................................................. 7 HASIL DAN PEMBAHASAN ................................................................................................................. 8 Ancaman (Threats) ............................................................................................................................... 8 Kebijakan (Policy)................................................................................................................................ 8 Spesifikasi (Specification).................................................................................................................... 9 Perancangan (Design) .......................................................................................................................... 9 Perancangan Sistem Secara Umum ..................................................................................................... 9 Perancangan Pengembangan Sistem .................................................................................................. 11 Implementasi ...................................................................................................................................... 13 Pengujian ............................................................................................................................................ 17 KESIMPULAN DAN SARAN ............................................................................................................... 19 Kesimpulan ......................................................................................................................................... 19 Saran ................................................................................................................................................... 19 DAFTAR PUSTAKA .............................................................................................................................. 20 LAMPIRAN ............................................................................................................................................. 21
iv
DAFTAR GAMBAR Halaman 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Enkripsi dan Dekripsi ........................................................................................................................... 2 Jaringan Feistel..................................................................................................................................... 3 Fungsi f Blowfish .................................................................................................................................. 4 Blowfish ................................................................................................................................................ 4 The Security Life Cycle ........................................................................................................................ 6 Proses Komunikasi Voter – CTF untuk Fungsionalitas Permintaan Kandidat ................................. 10 Proses Komunikasi Voter – CTF untuk Fungsionalitas Permintaan Melakukan Pemilihan (vote) . 10 Proses Komunikasi Voter – CTF untuk Fungsionalitas Melakukan Verifikasi Pilihan ................... 11 Jaringan Wireless Online Voting dengan Topologi Infrastruktur ..................................................... 12 Diagram Alir Pengiriman dan Penerimaan Kunci Simetri Voter ...................................................... 12 Diagram Alir Pengiriman dan Penerimaan Kunci Simetri CTF ....................................................... 13 Pengaturan Java Web Start pada project properties window menu Run ......................................... 13 Pengaturan Java Web Start pada project properties window menu Application Web Start ........... 14 Situs IPB Online Voting Centre (Bagian 1)....................................................................................... 14 Situs IPB Online Voting Centre (Bagian 2)...................................................................................... 14 Tampilan Antamuka Online Voting ................................................................................................... 14 Berkas launch.jnlp untuk memunculkan aplikasi Online Voting ...................................................... 14
DAFTAR LAMPIRAN Halaman 1 2 3 4
Implementasi GenerateRandomKeys.java ......................................................................................... 22 Implementasi Voter.java untuk Fungsi do_CTF ............................................................................... 28 Implementasi CTF.java untuk Fungsi Main ...................................................................................... 35 Black Box Testing ............................................................................................................................... 40
v
PENDAHULUAN Latar Belakang Pemilihan Umum (Pemilu) merupakan suatu kegiatan yang lazim dilakukan di berbagai negara untuk memilih kandidat yang akan menempati jabatan politik tertentu. Kegiatan ini dilakukan tidak hanya dalam skala nasional, pada lingkungan yang lebih khusus seperti kampus misalnya kegiatan ini pun sering kali dilakukan untuk melakukan pemilu berskala kecil seperti pemilihan rektor, dekan, maupun berbagai ketua badan kegiatan mahasiswa. Seiring dengan kemajuan teknologi, proses pemunggutan suara dalam pemilu di negaranegara maju kini mulai berkembang ke arah virtualisasi. Pemilu untuk memilih presiden Amerika Serikat pada bulan November 2008 lalu pun telah berhasil diselenggarakan dengan penghitungan electoral vote yang sangat cepat berkat bantuan teknologi maju. Hanya dalam hitungan jam hasil pemungutan suara dari seluruh negara bagian negara ini dapat diketahui oleh seluruh dunia. Di Indonesia sendiri pemilu umumnya masih dilakukan dengan cara konvensional. Pemilihan dilakukan melalui pencontrengan pada kartu pemilih serta identifikasi pemilih secara manual. Tidak jarang kegiatan ini menghabiskan waktu yang cukup lama dalam penghitungan suara akhir. Peluang dalam melakukan kecurangan dalam pemilu yang diselenggarakan secara konvensional pun kadang tidak dapat dihindari. Pada tahun 2001, Dan DuFeu dan Jon Harris (2001) melakukan penelitian dengan mendeskripsikan bagaimana online election system bekerja. Penelitian ini mengimplementasikan pembangunan Central Legitimization Agency (CLA) dan Central Tabulating Facilities (CTF) untuk menerapkan pemilu yang aman. Selanjutnya beberapa penelitian mengenai topik serupa kian terbuka lebar. Pada tahun 2005, Sireesha, Janga dan So-In Chakchai (2005) melakukan penelitian dengan memodifikasi protokol secure election dengan Two Central Facilities. Dengan lahirnya berbagai penelitian dalam bidang election system, penelitian ini diharapkan dapat terus menyempurnakan sistem online voting yang telah ada.
bukanlah hal yang mustahil dilakukan. Meski demikian, pemilihan suara dengan komputerisasi hanya dapat dilakukan jika protokol menjamin bahwa privasi individu dapat dilindungi dan berbagai bentuk kecurangan dengan teknologi ini dapat dicegah. Hal inilah yang mendorong adanya keinginan untuk terus menyempurnakan serta mengembangkan sebuah protokol keamanan virtual dengan protokol Two Central Facilities. Protokol ini dipilih karena termasuk sebagai protokol yang paling memenuhi sebagian besar persyaratan untuk menjalankan secure election dan memiliki tingkat keamanan yang paling tinggi dibandingkan protokol-protokol lain yang dijelaskan oleh Schneier (1996). Tujuan Terdapat dua tujuan utama dari penelitian ini. Pertama, penelitian dilakukan untuk mengembangkan sistem pengiriman suara dari voter menuju Central Tabulating Facilities (CTF) dengan protokol Two Central Facilities yang telah ada serta penyempurnaan beberapa kekurangan pada protokol sesuai rekomendasi dari penelitian sebelumnya. Kedua, penelitian dilakukan untuk membuat model simulasi guna melihat apakah sistem ini dimungkinkan untuk diimplementasikan pada pemilu yang diadakan di lingkungan kampus Institut Pertanian Bogor (IPB). Ruang Lingkup Ruang lingkup penelitian ini difokuskan kepada pembentukan protokol untuk pengiriman suara dari voter menuju CTF dengan Two Central Fasilities serta pembangunan model yang disimulasikan pada lingkungan kampus IPB.
Dengan kemajuan jaringan teknologi dan teknik kriptografi saat ini penyelenggaraan pemilihan kandidat dengan cara virtual khususnya dalam lingkup kampus di Indonesia vi
TINJAUAN PUSTAKA Protokol Suatu protokol menurut Schneier (1996) adalah serangkaian langkah yang melibatkan dua pihak atau lebih dan dirancang agar dapat menyelesaikan suatu tugas. Protokol memiliki berbagai karakteristik seperti : 1 Protokol memiliki urutan dari awal hingga akhir. 2 Setiap langkah harus dilaksanakan secara bergilir. 3 Suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum selesai dilakukan. 4 Diperlukan dua pihak atau lebih untuk melaksanakan protokol. 5 Protokol harus mencapai dan memberikan suatu hasil. 6 Setiap orang yang terlibat dalam protokol harus mengetahui terlebih dahulu mengenai protokol dan seluruh langkah yang akan dilaksanakan dalam protokol. 7 Setiap orang yang terlibat dalam protokol harus menyetujui untuk mengikutinya. 8 Protokol tidak boleh menimbulkan kerancuan (ambigu) dan tidak boleh timbul kesalahpahaman. 9 Protokol harus lengkap, harus terdapat aksi yang spesifik untuk setiap kemungkinan situasi. Kriptografi Kriptografi menurut Schneier (1996) adalah seni dan ilmu untuk menjaga keamanan pesan. Beberapa istilah menurut Kurniawan (2008) yang sering digunakan dalam kriptografi antara lain: a) Plaintext: Semua data yang belum diproses melalui suatu algoritme kriptografi. Plaintext dapat berupa teks, gambar atau bentuk lainnya. b) Ciphertext: Hasil proses algoritme kriptografi dari suatu plaintext. c) Enkripsi: Proses pengubahan pesan sedemikian sehingga isi pesan disembunyikan. Enkripsi juga dapat dikatakan sebagai proses pengubahan dari plaintext ke ciphertext, dengan algoritme kriptografi tertentu. d) Dekripsi: proses pengubahan kembali dari ciphertext ke plaintext dengan algoritme kriptografi tertentu. e) Cipher: Suatu algoritme kriptografi yang dapat melakukan enkripsi dan dekripsi.
f) Key: Parameter kunci yang digunakan oleh cipher dalam melakukan proses enkripsi dan dekripsi. g) Message digest: Ukuran byte kecil yang menunjukkan ukuran plaintext. h) Hash: Nama lain dari message digest. Skema proses enkripsi dan dekripsi secara umum dapat dilihat pada Gambar 1.
Gambar 1 Enkripsi dan Dekripsi. Kunci Publik (Public Key) Kunci Publik (Public Key) adalah kunci yang dirancang sedemikian sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan pada proses dekripsi (Schneier 1996). Kunci Simetri (Session Key) Kunci Simetri (Session Key) adalah kunci yang dirancang sedemikian sehingga kunci yang digunakan untuk enkripsi sama dengan kunci yang digunakan pada proses dekripsi (Schneier 1996). Algoritme RSA Algoritme RSA dinamakan berdasarkan nama tiga orang penemunya yakni Ron Rivest, Adi Shamir, dan Leonard Adleman. Keamanan algoritme RSA didapatkan dari sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Algoritme RSA memiliki besaran-besaran sebagai berikut: 1 2 3 4 5 6 7
p dan q bilangan prima N = p. q φ (N) =(p-1)(q-1) e (kunci enkripsi) d (kunci dekripsi) m (plaintext) c (ciphertext)
(rahasia) (tidak rahasia) (rahasia) (tidak rahasia) (rahasia) (rahasia) (tidak rahasia)
Deskripsi sederhana dari algoritme RSA dijelaskan sebagai berikut, diberikan Nilai N, dimana N adalah : N=p.q dengan p dan q adalah dua bilangan prima besar dengan ukuran yang sama. 2