1 i PENGEMBANGAN SISTEM PENGIRIMAN HASIL SUARA PADA E-VOTING TWO CENTRAL FACILITIES YANG DIMODIFIKASI ERICK PRIYANGGODO DEPARTEMEN ILMU KOMPUTER DEPAR...
PENGEMBANGAN SISTEM PENGIRIMAN HASIL SUARA PADA E-VOTING TWO CENTRAL FACILITIES YANG DIMODIFIKASI
ERICK PRIYANGGODO
DEPARTEMEN ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2012
i
PENGEMBANGAN SISTEM PENGIRIMAN HASIL SUARA PADA E-VOTING TWO CENTRAL FACILITIES YANG DIMODIFIKASI
ERICK PRIYANGGODO
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 2012
ABSTRACT ERICK PRIYANGGODO. Development of Voting Result Transmission System with Modified Two Central Facilities Protocol. Under supervision of ENDANG PURNAMA GIRI. Election system in Indonesia still uses conventional method that has many disadvantages such as: slow voting result's calculation, slow voting result's transmission to the central committee, and large amount of human resources. E-voting is expected to solve the problems and the most secure election protocol that meets the standards of secure voting requirements according to Schneier (1996) is Two Central Facilities Protocol. The goal of this research is developing voting result transmission system based on modified Two Central Facilities Protocol designed by Kusumah (2012), analyzing the developed transmission system's running time, and determining the influence of cryptographic algorithm usage on developed transmission system's running time. Through this research, we developed a voting result transmission system and found that cryptographic algorithm usage on this system contributes 22.58% of the total system running time which is relatively low. We recommend further research regarding analyzing other factors beside cryptographic algorithm usage and database security implementation on voting result transmisson system. Keywords: e-voting, transmission system, cryptographic protocol, Two Central Facilities
Judul Skripsi Nama NRP
: Pengembangan Sistem Pengiriman Hasil Suara pada E-Voting Two Central Facilities yang Dimodifikasi : Erick Priyanggodo : G64070027
Dr. Ir. Agus Buono, M.Si, M.Kom NIP. 19660702 199302 1 001
Tanggal lulus:
KATA PENGANTAR Puji dan syukur penulis panjatkan kepada Allah subhanahu wa-ta'ala karena hanya dengan berkat, rahmat, dan karunia-Nya penelitian ini dapat diselesaikan dengan baik. Selawat serta salam penulis sampaikan kepada junjungan Nabi Muhammad shallallahu’alayhi wasallam, juga kepada keluarganya, sahabatnya, dan para pengikutnya. Penyelesaian penelitian ini juga tidak lepas dari bantuan berbagai pihak, untuk itu penulis mengucapkan terima kasih yang sebesar-besarnya kepada: 1
2 3 4 5 6 7 8 9 10
11
12 13 14 15
Kedua orang tua penulis, Ibu Sri Budi Lestari Rahayu, terima kasih atas doa, kasih sayang, dukungan, dan alm. Bapak Pardiyo Hari Parwoko yang telah menginspirasi dan memotivasi agar penulis segera menyelesaikan penelitian ini. Bapak Endang Purnama Giri S.Kom, M.Kom selaku dosen pembimbing, terima kasih akan kesabaran, ilmu, waktu, motivasi, dan nasihat yang diberikan selama penyelesaian penelitian ini. Bapak Dr. Sugi Guritman, terima kasih atas segala ilmu, saran, dan bantuan yang diberikan selama penyelesaian penelitian ini. Bapak Hendra Rahmawan, S.Kom, M.T dan Ibu Karlina Khiyarin Nisa S.Kom, M.T selaku dosen penguji, terima kasih atas segala ilmu, kritik, dan saran yang diberikan. Bapak Kelik Supriyadi S.Kom beserta seluruh staf Dishubkominfo Kota Bogor yang telah memberikan sarana selama penyelesaian penelitian ini. Bapak Odang selaku kepala staf humas KPU Bogor yang telah memberikan saran terhadap penelitian ini. Kakak dan adik penulis, Intan Permata Dewi dan Nicken Budi Asri, terima kasih atas kasih sayang dan dukungan yang telah diberikan. Segenap dosen dan staf pendukung Departemen Ilmu Komputer yang telah membantu penulis dalam berbagai kesempatan. Teman-teman satu bidang penelitian, Alfian Prayanta dan Fitrah Fajar, terima kasih atas bantuan, dukungan, ilmu, serta motivasi yang selalu diberikan. Teman-teman laboratorium Net-Centric Computing (NCC): Trie Setiowati, Gema Alif Utama, Rendy Eka Saputra, Sulma, dan Adi Gunarso, terima kasih atas kegembiraan, bantuan, dan semangat yang diberikan. Teman-teman “maho” selama perkuliahan: M. Mukhlis Said, Khamdan Amin Bisyri, Yoga Herawan, Danar Setya, Ayi Imaduddin, Ridwan Agung dan teman-teman “maho” yang lainnya, terima kasih telah memberikan „warna‟ pada kehidupan perkuliahan penulis. Teman-teman “samsung” selama pengerjaan penelitian: Teguh Cipta dan Bangun Kurnianto, terima kasih atas keceriaan yang telah dibagi dengan penulis. Teman-teman “rental” selama pengerjaan penelitian: M. Akbar, Huswantoro Anggit, Remachtito, dan Arif Nofyansah, terima kasih atas dukungan dan semangat yang telah diberikan. Seluruh teman-teman Ilkom 44 yang tak bisa disebutkan satu persatu, terima kasih atas semangat dan kebersamaannya. Semua pihak yang telah memberikan doa, semangat, dan bantuan selama penyelesaian penelitian.
Penulis menyadari bahwa penelitian ini masih terdapat kekurangan. Penulis berharap semoga hasil penelitian ini dapat memberikan manfaat.
Bogor, September 2012
Erick Priyanggodo
RIWAYAT HIDUP Penulis dilahirkan di kota Banjarmasin pada tanggal 24 Februari 1990. Penulis merupakan anak kedua dari tiga bersaudara. Penulis menempuh pendidikan formal di SDN Sinduadi III Yogyakarta (2001), SMP Negeri 2 Bogor (2004), dan SMA Negeri 6 Bogor (2007). Penulis lulus seleksi masuk Institut Pertanian Bogor (IPB) pada tahun 2007 melalui jalur Undangan Seleksi Masuk IPB dengan Program Studi Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam (FMIPA). Selama aktif sebagai mahasiswa, penulis turut aktif mengikuti beberapa kegiatan kepanitian di Institut Pertanian Bogor, antara lain SAVIOR (Save Our Environment) pada tahun 2008 sebagai wakil ketua divisi dana usaha, MPKMB Patriot 45 (Masa Perkenalan Mahasiswa Baru Angkatan 45) pada tahun 2009 sebagai anggota divisi dana usaha, dan Masa Pengenalan Departemen pada tahun 2009.
DAFTAR ISI Halaman DAFTAR TABEL ................................................................................................................................. vi DAFTAR GAMBAR ............................................................................................................................. vi DAFTAR LAMPIRAN .......................................................................................................................... vi PENDAHULUAN .................................................................................................................................. 1 Latar Belakang .................................................................................................................................. 1 Tujuan ............................................................................................................................................... 1 Ruang Lingkup .................................................................................................................................. 1 Manfaat Penelitian ............................................................................................................................ 2 TINJAUAN PUSTAKA ......................................................................................................................... 2 Protokol ............................................................................................................................................. 2 Kriptografi ......................................................................................................................................... 2 Algoritme RSA ................................................................................................................................. 2 Algoritme AES .................................................................................................................................. 3 Secure Hash Algorithm (SHA)-2 ...................................................................................................... 3 Electronic Voting (E-voting) ............................................................................................................. 3 Protokol Two Central Facilities ........................................................................................................ 4 Central Legitimization Agency (CLA) .............................................................................................. 4 Central Tabulating Facilities (CTF) ................................................................................................. 4 VPN................................................................................................................................................... 5 METODE PENELITIAN ....................................................................................................................... 5 Ancaman (Threats)............................................................................................................................ 5 Kebijakan (Policy) ............................................................................................................................ 5 Spesifikasi (Specification) ................................................................................................................. 5 Perancangan (Design) ....................................................................................................................... 6 Implementasi (Implementation) ........................................................................................................ 6 Pengujian (Testing) ........................................................................................................................... 6 HASIL DAN PEMBAHASAN............................................................................................................... 6 Ancaman (Threats)............................................................................................................................ 6 Kebijakan (Policy) ............................................................................................................................ 6 Spesifikasi (Specification) ................................................................................................................. 7 Perancangan (Design) ....................................................................................................................... 7 Perancangan Sistem .......................................................................................................................... 7 Implementasi ..................................................................................................................................... 8 1 Implementasi Pengiriman Kunci Simetri ................................................................................. 8 2 Implementasi Pengiriman Hasil Suara ................................................................................... 10 3 Implementasi Proses Tabulasi Suara ...................................................................................... 12 4 Analisis Running Time ........................................................................................................... 13 a Penggunaan Algoritme AES-128 ....................................................................................... 13 b Penggunaan Algoritme RSA-2048 .................................................................................... 13 c Penggunaan Fungsi Hash SHA-2 ...................................................................................... 15 d Total Running Time Sistem ............................................................................................... 15 Pengujian ......................................................................................................................................... 16 KESIMPULAN DAN SARAN............................................................................................................. 16 Kesimpulan ..................................................................................................................................... 16 Saran ............................................................................................................................................... 16 DAFTAR PUSTAKA ........................................................................................................................... 16 LAMPIRAN ......................................................................................................................................... 18
v
DAFTAR TABEL Halaman 1 2 3 4 5 6 7
Running time pada enkripsi AES-128 .............................................................................................. 13 Running time pada dekripsi AES-128. ............................................................................................. 13 Running time pada pembangkitan kunci RSA-2048 ........................................................................ 13 Running time pada enkripsi RSA-2048 ............................................................................................ 14 Running time pada dekripsi RSA-2048. ........................................................................................... 14 Running time pada fungsi hash SHA-2. ........................................................................................... 15 Running time pada sistem secara keseluruhan. ................................................................................ 15
DAFTAR GAMBAR Halaman 1 2 3 4 5 6 7 8 9 10 11
Enkripsi dan dekripsi (Kurniawan 2008). ......................................................................................... 2 Protokol Two Central Facilities (Schneier 1996). ............................................................................ 4 The Security Life Cycle (Bishop 2003). ............................................................................................ 5 Diagram alir pengiriman kunci simetri AES dari CTF. .................................................................... 8 Diagram box plot running time pada enkripsi AES-128. ................................................................ 13 Diagram box plot running time pada dekripsi AES-128. ................................................................ 13 Diagram box plot running time pada pembangkitan kunci RSA-2048. .......................................... 14 Diagram box plot running time pada enkripsi RSA-2048. .............................................................. 14 Diagram box plot running time pada dekripsi RSA-2048. .............................................................. 14 Diagram box plot running time pada fungsi hash SHA-2. .............................................................. 15 Diagram box plot running time pada sistem secara keseluruhan. ................................................... 15
Diagram alir pengiriman hasil suara mesin voting ke CTF ............................................................. 19 Antarmuka pembangkitan pasangan kunci RSA 2048 bit .............................................................. 20 Antarmuka pengiriman kunci publik RSA 2048 pada mesin voting ............................................... 20 Antarmuka pembangkitan kunci simetri AES 128 bit .................................................................... 21 Antarmuka pendekripsian kunci simetri AES 128 bit menggunakan kunci privat RSA 2048 bit... 21 Antarmuka pada mesin voting jika mesin voting sudah memiliki kunci simetri ............................. 22 Antarmuka mesin voting siap untuk melakukan pengiriman hasil suara ........................................ 22 Pesan error yang ditampilkan jika string request tidak berhasil terverifikasi ................................ 23 Pesan error yang ditampilkan jika mesin voting sudah mengirimkan hasil suara .......................... 23 Pesan error yang ditampilkan jika validation ID tidak berhasil terverifikasi ................................. 24 Pesan error yang ditampilkan jika tanda tangan tidak berhasil terverifikasi .................................. 24 Antarmuka tabel perolehan suara .................................................................................................... 25 Pengujian pengiriman kunci simetri ............................................................................................... 26 Pengujian pengiriman hasil suara dari mesin voting menuju CTF .................................................. 27 Pengujian tabulasi hasil suara ......................................................................................................... 28
vi
1
PENDAHULUAN Latar Belakang Pemilihan umum (pemilu) merupakan sarana pelaksanaan kedaulatan rakyat. Dalam pemilu, rakyat dapat memilih pemimpin politik secara langsung. Yang dimaksud dengan pemimpin politik disini adalah wakil-wakil rakyat yang duduk di lembaga perwakilan rakyat (parlemen) baik ditingkat pusat maupun daerah dan pemimpin lembaga eksekutif atau kepala pemerintahan seperti presiden, gubernur, bupati/walikota. Pemilu 1955 adalah pemilu pertama yang diselenggarakan dalam sejarah kemerdekaan bangsa Indonesia yang ketika itu baru berusia 10 tahun. Sampai dengan tahun 2009, Indonesia tercatat telah menyelenggarakan 10 kali pemilu, yaitu pada tahun 1955, 1971, 1977, 1982, 1987, 1992, 1997, 1999, 2004, dan 2009. Sistem pemilu yang digunakan selama ini adalah dengan cara penyoblosan atau penyontrengan. Sistem pemilu konvensional seperti ini ternyata masih memiliki beberapa kekurangan seperti: banyaknya terjadi kesalahan dalam proses pendaftaran pemilih, kesalahan pemilih dalam memberi tanda pada kertas suara, proses pengumpulan kartu suara yang berjalan lambat, keterlambatan dalam proses tabulasi hasil penghitungan suara dari daerah, kurang terjaminnya kerahasiaan pemilihan (Azhari 2005), serta memerlukan biaya dan sumber daya besar yang tidak bisa digunakan kembali pada pemilu selanjutnya. Untuk mengatasi hal tersebut, salah satu solusi yang dapat dilakukan adalah menggunakan electronic voting (evoting). Penerapan sistem pemilu secara elektronik bukan berarti sepenuhnya terhindar dari ancaman dan kecurangan yang mungkin terjadi seperti halnya pada sistem pemilu konvensional. Oleh karenanya, dibutuhkan suatu protokol yang menangani berbagai masalah keamanan tersebut dan diwajibkan untuk memenuhi standar secure voting requirements. Salah satu protokol yang dapat memenuhi standar kriteria secure voting requirements dan memiliki tingkat keamanan yang cukup baik adalah Two Central Facilities Protocol. Protokol ini terdiri atas Central Legitimazation Agency (CLA) untuk pengesahan pemilih dan Central Tabulating Facility (CTF) untuk perhitungan suara (Schneier 1996). Dan DuFeu dan Jon Harris (2001) melakukan penelitian dengan mendeskripsikan cara 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. Pada tahun 2009, penelitian dilakukan oleh Wardhani (2009) dan Hardhienata (2009) yang mengembangkan sistem online voting pada IPB dengan berbasis protokol Two Central Facilities yang hanya memanfaatkan jaringan sebatas cakupan satu departemen di IPB. E-voting dengan protokol Two Central Facilities tidak dapat secara langsung diterapkan di Indonesia. Protokol ini harus dimodifikasi sesuai dengan kebutuhan dan regulasi yang berlaku di Indonesia. Hal ini dilakukan agar sistem e-voting bisa berjalan tanpa melanggar norma-norma yang ada di Indonesia. Penelitian ini bekerjasama dengan KPU Bogor dan Dinas Perhubungan dan Komunikasi Informatika Kota Bogor untuk menganalisis dan mempelajari berbagai keperluan pemilihan umum kepala daerah Kota Bogor sesuai dasar hukum berkaitan yang berlaku di Indonesia. Tujuan Tujuan utama dari penelitian ini adalah mengembangkan sistem pengiriman hasil suara dengan protokol Two Central Facilities yang disesuaikan untuk kepentingan pemilihan kepala daerah di Kota Bogor serta melakukan analisis terhadap waktu pengiriman data (running time), dan melakukan analisis pengaruh penggunaan algoritme kriptografi terhadap waktu pengiriman data (running time) sistem keseluruhan. Ruang Lingkup Pada protokol Two Central Facilities konvensional, selama pemilihan berlangsung, jalur komunikasi antara tiga entitas aktif yaitu: voter, CLA, dan CTF selalu terbuka. Pada versi yang sudah dimodifikasi, akan ada dua sesi yaitu: 1 Sesi ketika pemilihan sedang berlangsung. 2 Sesi ketika pemilihan sudah selesai. Pada sesi pertama, jalur komunikasi yang terbuka hanyalah jalur komunikasi antara mesin voting dan CLA, dan hasil suara dari tiap-tiap voter akan diakumulasikan ke dalam basis data internal pada mesin voting. Barulah pada sesi
2
kedua, jalur komunikasi antara mesin voting dengan CTF akan dibuka, dan pada sesi ini pula hasil akumulasi sementara yang ada pada mesin voting dikirim ke CTF. Penelitian dilakukan bersama dua rekan yang lain yaitu Fitrah Satrya Fajar Kusumah dan Alfian Prayanta. Kusumah (2012) meneliti pemodifikasian protokol voting secara global berdasarkan kesepakatan dengan KPU Bogor, Prayanta (2012) mengembangkan sistem otentikasi voter menggunakan media mifare smart card. Kedua rekan penulis melakukan penelitian dan pengembangan sistem pada sesi ketika pemilihan sedang berlangsung (sesi pertama pada protokol Two Central Facilities yang dimodifikasi), dan penulis akan melakukan penelitian pada sesi ketika pemilihan sudah selesai (sesi kedua pada protokol Two Central Facilities yang dimodifikasi) yaitu merancang dan mengembangkan sistem pengiriman hasil suara, serta melakukan analisis terhadap waktu pengiriman, dan melakukan analisis pengaruh penggunaan algoritme kriptografi terhadap waktu pengiriman data sistem keseluruhan. Manfaat Penelitian Manfaat dari penelitian ini adalah menghasilkan model simulasi e-voting dimulai dari proses pengiriman hasil suara yang dapat dikembangkan lebih lanjut untuk diterapkan pada pemilihan kepala daerah kota Bogor.
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.
Plaintext
Original Plaintext
Ciphertext Enkripsi
Dekripsi
Gambar 1 Enkripsi dan dekripsi (Kurniawan 2008). 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
3
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)
Deskripsi sederhana dari algoritme RSA dijelaskan sebagai berikut. Diberikan nilai N, dengan N adalah: N=p.q dengan p dan q adalah dua bilangan prima besar dengan ukuran yang sama. Diberikan nilai e dan d dengan ketentuan sebagai berikut: ed = 1 mod φ (N) dan φ (N) = (p-1)(q-1) N adalah RSA modulus, e adalah encryption exponent, dan d adalah decryption exponent. (N,e) adalah kunci publik yang digunakan untuk enkripsi pesan. (N,d) adalah kunci rahasia atau kunci privat yang digunakan untuk melakukan proses dekripsi ciphertext atau pesan yang telah dienkripsi ke pesan sebenarnya (Boneh 1999). Pesan adalah bilangan integer M, untuk melakukan proses enkripsi M menggunakan cara C = Me mod N. Untuk melakukan proses dekripsi ciphertext digunakan perhitungan M = Cd mod N dengan Cd = Med = M (mod N) (Boneh 1999). Algoritme AES AES merupakan algoritme kriptografi yang didesain untuk beroperasi pada blok pesan 128 bit dan menggunakan tiga variasi blok kunci dengan panjang 128 bit, 192 bit, atau 256 bit. Penelitian ini menggunakan algoritme AES dengan panjang kunci 128 bit. Empat proses utama algoritme AES sebagai berikut: 1 SubBytes (Transformasi Subtitusi Byte). 2 ShiftRows (Transformasi Pergeseran Baris). 3 MixColumns (Transformasi Percampuran Kolom). 4 AddRoundKey (Transformasi Penambahan Kunci). Struktur algoritme secara umum cukup sederhana, dengan proses baik enkripsi maupun dekripsi diawali proses AddRoundKey, diikuti
sembilan round yang masing-masing tersusun atas empat proses, dan diakhiri round kesepuluh yang terdiri atas tiga proses. Proses pada round kesepuluh dimulai yaitu : SubBytes, ShiftRows, dan AddRoundKey yang menghasilkan ciphertext (Adiwidya 2009). Secure Hash Algorithm (SHA)-2 Untuk menghindari kriptanalisis yang disebabkan oleh collision pada SHA-1, dikembangkan algoritme-algoritme penggantinya. Algoritme SHA generasi selanjutnya disebut juga algoritme SHA-2. Penelitian menggunakan salah satu varian dari algoritme SHA-2, yaitu SHA-256. Algoritme SHA-256 dapat digunakan untuk menghitung nilai message digest dari sebuah pesan, yang memiliki panjang maksimum 264 bit. Algoritme ini menggunakan sebuah message schedule yang terdiri atas 64 elemen 32-bit word, delapan buah variabel 32-bit, dan variabel penyimpanan nilai hash 8 buah word 32-bit. Hasil akhir dari algoritme SHA-256 adalah sebuah message digest sepanjang 256-bit (Nugraha 2009). Electronic Voting (E-voting) Pengertian dari electronic voting (e-voting) secara umum adalah penggunaan teknologi komputer pada pelaksanaan voting. Pilihan teknologi yang digunakan dalam implementasi dari e-voting sangat bervariasi, seperti penggunaan smart card untuk autentikasi pemilih, penggunaan internet sebagai sistem pemungutan suara, penggunaan touch screen sebagai pengganti kartu suara, dan masih banyak variasi teknologi yang digunakan. Penerapan e-voting telah berjalan di beberapa negara di benua Eropa dan Amerika. Masingmasing negara memiliki sistem e-voting tersendiri yang telah disesuaikan dengan keadaan dan infrastruktur yang dimiliki negara tersebut. Sebagai contoh, negeri Belanda memiliki sistem e-voting yang dinamakan Rijnland Internet Election System (RIES). Sistem ini menggunakan internet sebagai media pengumpulan suara. Walaupun sistem e-voting memberikan banyak keuntungan bagi manusia dalam melaksanakan pemungutan suara, terdapat beberapa permasalahan yang muncul akibat dari implementasi sistem ini: • •
Tingkat keamanan sistem e-voting. Penggunaan internet yang sangat rentan dengan gangguan dari luar. Muncul dugaan bahwa dapat terjadi perubahan data hasil pemungutan suara. Untuk itu, penggunaan
4
•
algoritme enkripsi dalam e-voting mulai dianjurkan. Penggunaan perangkat lunak yang tidak dapat diaudit oleh publik. Kekhawatiran yang muncul adalah adanya kecurangan yang dapat memanipulasi hasil pemungutan suara. Masalah-masalah di atas mengakibatkan terjadinya kontroversi terhadap keabsahan hasil penghitungan suara, yang menyebabkan implementasi evoting tidak efektif, karena menghasilkan permasalahan yang sama dengan sistem voting standar. Untuk mengatasi permasalahan itu, diperlukan sebuah standar yang mengatur tentang pelaksanaan e-voting (Azhari 2005).
Protokol Two Central Facilities Menurut Schneier (1996), protokol Two Central Facilities adalah sebagai berikut: 1 Setiap pemilih mengirimkan pesan kepada CLA dan meminta nomor validasi, 2 CLA melakukan pengiriman balik dengan nomor validasi acak. CLA menyimpan satu daftar nomor validasi. CLA juga mempertahankan daftar nomor validasi penerima, mengantisipasi seseorang memilih dua kali, 3 CLA mengirimkan daftar nomor validasi kepada CTF, 4 Setiap pemilih memilih nomor identifikasi secara acak. Selanjutnya pemilih dapat membentuk sebuah pesan dengan angka, nomor validasi yang diperoleh dari CLA, dan pilihannya. Pesan ini lalu dikirimkan kepada CTF, 5 CTF akan memeriksa dan membandingkan nomor validasi dengan daftar yang dikirimkan CLA. Jika nomor validasi terdapat pada daftar, nomor tersebut akan disilang untuk menghindari pemilih memberikan suara dua kali. CTF akan menambahkan nomor identifikasi pada daftar sejumlah orang yang memberikan suara pada kandidat tertentu dan menambahkan satu pada penghitungan, Setelah semua suara terpilih, CTF mempublikasikan keluaran, seperti daftar nomor identifikasi dan untuk siapa suara tersebut diberikan. Skema protokol Two Central Facilities secara umum dapat dilihat pada Gambar 2.
Gambar 2 Protokol Two Central Facilities (Schneier 1996). Central Legitimization Agency (CLA) Central Legitimization Agency (CLA) merupakan sebuah badan yang bertugas untuk melakukan sertifikasi pemilih. Fungsi utama badan ini adalah untuk melakukan autentikasi dan otorisasi pemilih. Setiap pemilih akan mengirim sebuah pesan aman kepada CLA untuk meminta sebuah ValidationID. CLA akan membangkitkan ValidationID, mendaftarkannya secara aman kepada Central Tabulating Facilities, dan mengembalikannya secara aman kepada pemilih. ValidationID bernilai kompleks sehingga secara komputasi tidak dimungkinkan seorang penyerang untuk memproduksi sebuah ID yang valid. CLA memiliki daftar sejumlah ValidationID yang valid serta daftar identifikasi pemilih dari setiap ValidationID untuk mencegah seseorang memiliki lebih dari satu ValidationID (DuFeu & Harris 2001). Central Tabulating Facilities (CTF) Central merupakan melakukan menyediakan berikut:
Tabulating Facilities (CTF) suatu badan yang bertugas penghitungan suara. CTF beberapa fungsionalitas sebagai
a Mengizinkan pengguna untuk meminta sertifikasi daftar kandidat. b Menerima secure Validation ID yang telah disertifikasi dan ditandatangani dari CLA. c Menerima permintaan secure vote dari pemilih yang berwenang (dengan Validation ID). d Secara aman mengembalikan nama kandidat terpilih sebagai verifikasi atas permintaan pemilih. e Mengizinkan pemilih untuk meminta sertifikasi hasil pemilihan. Dalam rangka otorisasi pemilih, CTF melakukan pengecekan Validation ID dengan daftar yang diterima dari CLA. Jika Validation
5
ID valid, suara pemilih akan dimasukkan ke dalam kotak suara (DuFeu & Harris 2001). VPN Virtual Private Network (VPN) adalah sebuah teknologi komunikasi yang memungkinkan untuk dapat terkoneksi ke jaringan publik dan menggunakannya untuk dapat bergabung dengan jaringan lokal. Dengan cara tersebut, akan didapatkan hak dan pengaturan yang sama seperti halnya berada di dalam kantor atau LAN itu sendiri, walaupun sebenarnya menggunakan jaringan milik publik. VPN dapat terjadi antara dua end-system atau dua komputer atau antara dua atau lebih jaringan yang berbeda. VPN dapat dibentuk dengan menggunakan teknologi tunneling dan enkripsi (Andriani 2011).
METODE PENELITIAN Penelitian ini dikembangkan dengan metode Security Life Cycle. Berdasarkan Bishop (2003) 6 tahap utama yang diterapkan dalam Security Life Cycle di antaranya: (1) Ancaman (Threats), (2) Kebijakan (Policy), (3) Spesifikasi (Specification) (4) Perancangan (Design) (5) Implementasi (Implementation) serta (6) Operasi dan Pemeliharaan (Operation and Maintenance). Metode Security Life Cycle dapat dilihat pada Gambar 3. Oleh karena keterbatasan waktu, penelitian ini difokuskan dari tahap (1) hingga (5) serta disempurnakan dengan tahap pengujian.
Ancaman (Threats) Sebuah ancaman (threats) adalah kekerasan potensial dalam suatu sistem keamanan. Dalam konteks pemilu, terdapat banyak sekali serangan yang mengancam pertukaran informasi yang terkirim dan diterima oleh mesin voting, server CLA, dan server CTF. Peran kriptografi sangat dibutuhkan untuk melindungi sistem pemilu, termasuk pada saat pengiriman hasil suara mesin voting kepada CTF. Oleh karenanya, sistem pemilu yang akan dibangun harus dipersiapkan agar mampu melindungi sistem dari ancaman-ancaman yang mungkin terjadi. Dalam penelitian ini berbagai ancaman yang dapat timbul pada saat hasil suara mesin voting dikirim menuju CTF akan dianalisis dalam 4 kelas besar yakni: a Disclosure, yakni akses terhadap informasi oleh pihak yang tidak berwenang. b Deception, yakni penerimaan data yang salah. c Disruption, yakni gangguan atau pencegahan terhadap operasi yang benar. d Usurpation, yakni pengaturan beberapa bagian dari sistem oleh pihak-pihak yang tidak berwenang. Kebijakan (Policy) Kebijakan keamanan adalah pernyataan atas apa yang diperbolehkan dan tidak diperbolehkan dalam menjalankan sebuah sistem. Metode, alat, atau prosedur untuk melaksanakan kebijakan keamanan tersebut dinamakan mekanisme keamanan. Sistem pemilu yang rentan terhadap serangan keamanan tentu membutuhkan kebijakan tentang hal-hal yang diperbolehkan dan tidak diperbolehkan dalam proses penyelenggaraan pemilu secara online. Kebijakan yang dibuat untuk menjalankan pemilu online dalam penelitian ini mengacu pada secure voting requirement yang ditulis dalam buku karangan Schneier (1996) dan kebijakan KPU kota Bogor dalam rancangan proses e-voting yang telah diujicobakan pada pemilihan ketua RW kelurahan Cipaku, Bogor Mei 2011. Spesifikasi (Specification)
Gambar 3 The Security Life Cycle (Bishop 2003).
Spesifikasi adalah pernyataan baik formal maupun informal mengenai fungsi sistem yang diinginkan (Bishop 2003). Setelah kebijakan pemilu dibuat, langkah selanjutnya adalah menentukan spesifikasi sistem. Agar dapat menjalankan mekanisme keamanan sesuai dengan kebijakan, sistem pemilu online membutuhkan berbagai spesifikasi keamanan. Pada konteks penelitian kali ini spesifikasi yang
6
digunakan adalah spesifikasi informal yang menjelaskan fungsi-fungsi yang dikerjakan sistem agar dapat menjalankan kebijakan. Perancangan (Design) Tahap perancangan akan menerjemahkan spesifikasi menjadi komponen-komponen yang dapat diimplementasikan. Suatu perancangan dikatakan sesuai dengan spesifikasi jika dalam semua kondisi, rancangan yang telah dibuat tidak mengizinkan sistem untuk melanggar spesifikasi. Tahap perancangan sistem pengiriman hasil suara mesin voting menuju CTF mencakup perancangan pengembangan sistem komunikasi antara mesin voting dan CTF dari mulai perancangan proses pengiriman kunci simetri agar lebih aman hingga proses pengiriman hasil suara mesin voting menuju CTF. Implementasi (Implementation) Pada tahap ini hasil analisis dan perancangan akan diimplementasikan menjadi sistem dengan lingkungan implementasi sebagai berikut: a b c d e
Platform: Web base PHP. RSA (2048 bits): Enkripsi kunci publik. AES (128 bits): Enkripsi kunci simetri. SHA-2 (256 bits): Signature/Hashing. VPN: Pengamanan jalur komunikasi.
Pengujian (Testing) Tahap pengujian dilakukan untuk menguji apakah sistem yang dibangun memberi hasil keluaran seperti yang diharapkan. Pengujian pada penelitian ini dilakukan dengan metode Black Box dan simulasi.
HASIL DAN PEMBAHASAN Ancaman (Threats) Seiring dengan kemajuan teknologi komunikasi saat ini, ancaman terhadap pengiriman data yang bersifat rahasia seperti hasil pilihan pada mesin voting menuju CTF menjadi hal yang sangat penting untuk diperhatikan dalam pembangunan sistem Electronic Voting. Keamanan komunikasi antara mesin voting dan CTF sangat diperlukan untuk menjaga tingkat kepercayaan voter kepada instansi atau lembaga yang menyelenggarakan pemilu. Oleh karena itu pembangunan sistem ini harus dimulai dari analisis mengenai berbagai ancaman yang mungkin menyerang sistem komunikasi data.
Berbagai ancaman yang mungkin timbul antara lain: a
Pengintaian (snooping), yakni penahanan informasi oleh pihak yang tidak berwenang. Secara sederhana ancaman ini dapat didefinisikan bahwa terdapat suatu entitas yang tidak memiliki otoritas ikut mendengar atau membaca komunikasi sistem informasi yang bersifat rahasia. Dalam konteks pengamanan pengiriman hasil suara, ancaman ini berarti bahwa terdapat entitas yang tidak berwenang dan berhasil mendengar komunikasi pengiriman hasil suara dari mesin voting menuju CTF. Ancaman snooping dapat diatasi menggunakan layanan keamanan pesan kerahasiaan (confidentiality). b Modifikasi atau pengubahan (modification or alternation) yakni pengubahan informasi yang dilakukan oleh pihak penyerang. Jika hasil suara yang dikirimkan oleh mesin voting telah diubah, CTF akan menerima kiriman hasil suara yang tidak valid dan dianggap benar oleh CTF. Ancaman modifikasi terhadap hasil suara dapat menyebabkan terjadinya peningkatan ancaman disruption dan usurpation. Layanan keamanan integritas (integrity) digunakan untuk menanggulangi masalah ini. c Penyamaran (masquering) yakni peniruan terhadap suatu entitas terhadap entitas yang lain. Ancaman ini akan mengumpan korban agar percaya bahwa entitas yang berkomunikasi dengannya adalah pihak yang benar, meski pada kenyataannya pihak tersebut adalah penyerang (attacker) yang bukan merupakan pihak yang berwenang. Sebagai contoh, saat mesin voting akan mengirimkan hasil suara kepada CTF, pihak yang menerima hasil suara tersebut bukanlah CTF melainkan server lain yang mengaku sebagai CTF. Untuk menangani ancaman ini konsep autentifikasi (authentication) dapat digunakan untuk mencegah serangan ini. Masquerading termasuk ancaman dalam kelas deception dan usurpation. Kebijakan (Policy) Kebijakan yang diterapkan dalam membangun Electronic Voting mengacu pada buku Schneier (1996) mengenai syarat-syarat penyelenggaraan sistem pemilihan umum yang aman. Menurut Schneier secure voting yang dibangun secara komputerisasi akan digunakan
7
jika terdapat protokol yang menjamin dua hal di bawah ini, yaitu: 1 Privasi individu. 2 Pencegahan terhadap kecurangan. Suatu protokol yang ideal harus memiliki 6 persyaratan sebagai berikut: 1 Hanya pemilih yang berhak yang dapat memberikan suara (autentifikasi); 2 Tidak boleh memberikan lebih dari satu suara; 3 Tidak boleh menentukan orang lain harus memilih untuk siapa; 4 Tidak ada yang bisa menduplikasi suara orang lain; 5 Tidak boleh mengubah pilihan orang lain; 6 Setiap pemilih dapat memastikan bahwa suara mereka sudah dikirimkan dan terhitung dalam penghitungan akhir. Spesifikasi (Specification) Secara umum, sistem pengiriman hasil suara mesin voting menuju CTF yang dibangun dapat memenuhi spesifikasi umum sebagai berikut: Hanya mesin voting yang terdaftar yang dapat mengirimkan suara. o Terdapat validation ID yang acak dan unik untuk setiap mesin voting. o Seluruh mesin voting aktif didaftarkan pada VPN dengan IP tertentu sehingga IP asing tidak akan bisa mengakses jaringan tersebut. Tidak boleh mengirimkan lebih dari satu hasil suara. o Jika mesin voting telah melakukan pengiriman dan kembali melakukan pengiriman, CTF akan mengembalikan pesan “Mesin voting tersebut sudah melakukan pengiriman sebelumnya”.
dengan CTF karena kunci simetri yang digunakan dibangkitkan secara otomatis secara acak oleh CTF yang kemudian dikirimkan kepada mesin voting menggunakan algoritme kunci asimetri (RSA). Mesin voting hanya bisa menerima kunci simetri dari CTF yang telah diotentikasi. Kunci simetri yang diberikan hanya bisa didekripsi oleh mesin voting, karena hanya pasangan kunci publik yang diberikan kepada CTF dan pasangan kunci privat disimpan oleh mesin voting. Perancangan (Design) Perancangan sistem ini terbagi menjadi dua bagian yakni perancangan sistem secara umum dan khusus. Perancangan secara umum membahas keseluruhan komunikasi yang dilakukan antara mesin voting dan CTF, sedangkan perancangan secara khusus difokuskan untuk membahas secara lebih rinci mengenai pengembangan sistem. Perancangan Sistem Sistem ini melayani dua fungsionalitas agar CTF dapat berkomunikasi dengan mesin voting yaitu: 1 2
Selain itu, sistem ini juga melayani satu fungsionalitas tambahan pada CTF yakni proses tabulasi hasil suara pada CTF. Proses pengiriman kunci simetri AES dari CTF menuju mesin voting dilakukan melalui langkah-langkah sebagai berikut: 1
2 3
Setiap pemilih dapat memastikan bahwa suara mereka sudah dikirimkan dan terhitung dalam penghitungan akhir. o Jika sebuah mesin voting mengirimkan hasil suara, CTF akan mengakumulasi dan menghitung kandidat dan mengembalikan hasil penghitungan sementara. Hal ini menyebabkan mesin voting dapat memastikan bahwa hasil suaranya benar telah dihitung oleh CTF.
Secara khusus spesifikasi tambahan yang dikembangkan dalam penelitian ini adalah bahwa sistem menjamin agar mesin voting dapat melakukan komunikasi secara lebih aman
Pengiriman kunci simetri AES. Pengiriman hasil suara mesin voting.
4
5 6
Mesin voting membangkitkan pasangan kunci publik dan privat menggunakan algoritme RSA dengan panjang kunci 2048. Mesin voting mengirimkan pasangan kunci publik ke CTF. CTF membangkitkan kunci simetri menggunakan algoritme AES dan menerima pasangan kunci publik dari mesin voting. CTF melakukan proses enkripsi kunci simetri dengan pasangan kunci publik yang didapat dari mesin voting. CTF mengirimkan hasil enkripsi kunci simetri (ciphertext) ke mesin voting. Mesin voting menerima ciphertext dan melakukan proses dekripsinya menggunakan pasangan kunci privat yang sudah dibangkitkan sebelumnya.
Diagram alir pengiriman kunci simetri AES dari CTF dapat dilihat pada Gambar 4.
8
Mulai
Mesin Membangkitkan pasangan kunci publik
Pasangan kunci publik (N, E)
Selesai
Plaintext (kunci simetri AES)
7
8 Dekripsi ciphertext menggunakan kunci privat RSA
Pengiriman pasangan kunci publik ke CTF
CTF membangkitkan kunci simetri AES 128 bit
6
Mengirimkan ciphertext ke mesin voting
9
10 11
Enkripsi (kunci simetri AES) menggunakan RSA
Ciphertext
12
Gambar 4 Diagram alir pengiriman kunci simetri AES dari CTF. Di dalam sistem terdapat tiga entitas yaitu mesin voting, CLA, dan CTF yang ingin saling berkomunikasi secara aman sehingga dibutuhkan tiga kunci simetri unik. Pengiriman kunci simetri dari CLA untuk mesin voting dan pengiriman kunci simetri dari CLA untuk CTF memiliki proses yang sama dengan pengiriman kunci simetri dari CTF untuk mesin voting. Fungsionalitas kedua yang dilayani oleh sistem ini adalah pengiriman hasil suara mesin voting menuju CTF. Langkah-langkah komunikasi yang dilakukan untuk memenuhi fungsionalitas yang kedua adalah: 1
2
3
4
5
Mesin voting melakukan proses enkripsi sebuah string pesan tertentu yang akan dikirim ke CLA menggunakan kunci simetri AES. CLA melakukan proses dekripsi ciphertext yang diterima dari mesin voting menggunakan kunci simetri AES, dan melakukan verifikasi string pesan yang diterima. CLA mengecek status mesin voting, apakah mesin voting tersebut sudah pernah mengirim hasil suara sebelumnya atau belum. Jika sudah pernah, sistem akan berhenti dan menampilkan pesan bahwa mesin voting tersebut sudah pernah mengirim hasil suara ke CTF. Jika belum, CLA membangkitkan validation ID untuk mesin tersebut.
13
14 15
CLA melakukan proses enkripsi validation ID menggunakan kunci simetri AES dan mengirimnya ke CTF dan mesin voting. CTF menerima validation ID dan melakukan proses dekripsinya menggunakan kunci simetri AES. Mesin voting menerima dan melakukan proses dekripsi validation ID menggunakan kunci simetri AES. Mesin voting melakukan proses enkripsi hasil suara dan validation ID yang diterima dari CLA menggunakan kunci simetri AES. Mesin voting menandatangani hasil suara menggunakan hash SHA-2 256 bit. Mesin voting mengirim signed ciphertext hasil suara dan validation ID ke CTF. CTF menerima dan melakukan proses dekripsi validation ID dari mesin voting menggunakan kunci simetri AES dan membandingkannya dengan validation ID yang diterima dari CLA sebelumnya. Jika tidak cocok, sistem akan berhenti dan menampilkan pesan bahwa terdapat perbedaan validation ID. Jika cocok, CTF memverifikasi tanda tangan pada ciphertext. CTF melakukan proses dekripsi hasil suara menggunakan kunci simetri AES.
Diagram alir pengiriman hasil suara mesin voting ke CTF dapat dilihat pada Lampiran 1. Fungsionalitas ketiga adalah proses tabulasi total hasil suara pada CTF. Fungsionaltias ini harus dapat mengakomodir perhitungan hasil suara yang dikirim oleh lebih dari satu mesin voting. Implementasi 1 Implementasi Pengiriman Kunci Simetri Mesin voting akan memulai proses komunikasi dengan CTF untuk kepentingan pengiriman kunci simetri. Hal yang pertama dilakukan adalah membuat pasangan kunci publik dan kunci privat menggunakan algoritme RSA 2048 bit. Antarmuka pada proses ini dapat dilihat pada Lampiran 2, sedangkan potongan kode program dapat dilihat seperti berikut: 69 70 71 72 73
function do_genrsa() { var before = new Date(); var rsa = new RSAKey(); var dr = document.rsatest; do_status("Generating RSA Key...");
Akan didapat pasangan kunci publik (N,e) dan pasangan kunci privat (N,d). Kemudian, mesin voting akan mengirimkan pasangan kunci publik ke CTF dan menyimpan pasangan kunci privat. Antarmuka pada proses ini dapat dilihat pada Lampiran 3. Pada saat pasangan kunci publik diterima oleh CTF, ada 2 tugas yang harus dilakukan CTF, yaitu: pembangkitan kunci simetri AES, dan proses enkripsi kunci simetri menggunakan pasangan kunci publik yang diterima dari mesin voting. Pembangkitan kunci simetri AES bisa dilihat pada fungsi sebagai berikut: 121 122 123 124 125 126 127 128 129
private function _generateKey($password) { switch ($this->_strenght) { case AES::AES256: return md5($password).md5($password.'1') ; case AES::AES192: return sha1($password); case AES::AES128: default: return sha2($password);
130
} }
Setelah itu, CTF akan melakukan proses enkripsi dengan pasangan kunci publik yang sudah diterima dari mesin voting sebelumnya dan ciphertext hasil enkripsi kunci simetri akan dikirim oleh CTF menuju mesin voting. Antarmuka pada proses ini dapat dilihat pada Lampiran 4, sedangkan potongan kode program untuk enkripsi dapat dilihat seperti berikut: 69 70 71 72 73 74 75 76
function do_encrypt() { var before = new Date(); var rsa = new RSAKey(); rsa.setPublic(document.rsatest.n.v alue, document.rsatest.e.value); var res = rsa.encrypt(document.rsatest.plain text.value); var after = new Date(); if(res) { window.location.href = "http://localhost/skrip1/media.php ?p=" + res + "&module=deliverKey_ctf";
Setelah mesin voting menerima ciphertext, mesin voting akan melakukan proses dekripsi menggunakan pasangan kunci privat yang hanya dimiliki oleh mesin voting. Antarmuka pada proses ini dapat dilihat pada Lampiran 5, sedangkan potongan kode program untuk dekripsi dapat dilihat seperti berikut: 55 56 57 58 59 60
function do_decrypt() { do_status("Decrypting..."); var before = new Date(); var rsa = new RSAKey(); var dr = document.rsatest; rsa.setPrivateEx(dr.n.value, dr.e.value, dr.d.value, dr.p.value, dr.q.value, dr.dmp1.value, dr.dmq1.value, dr.coeff.value);
61 62 63 64 65 66 67 68 69 70
if(document.rsatest.ciphertext.val ue.length == 0) { do_status("No Ciphertext encrypt something first"); return; } var res = rsa.decrypt(document.rsatest.ciphe rtext.value); var after = new Date(); if(res == null) { document.rsatest.decrypted.value = "*** Invalid Ciphertext ***"; do_status("Decryption failed"); }
Implementasi pengiriman kunci simetri dari CLA untuk mesin voting dan implementasi pengiriman kunci simetri dari CLA untuk CTF memiliki proses yang sama dengan implementasi pengiriman kunci simetri dari CTF untuk mesin voting. 2 Implementasi Pengiriman Hasil Suara Proses pengiriman hasil suara mesin voting hanya bisa dilakukan jika mesin voting sudah memiliki kunci simetri. Hal ini dikarenakan proses komunikasi antara mesin voting dan CTF tidak akan bisa berjalan jika salah satu entitas tersebut tidak memiliki kunci simetri. Kunci simetri diperlukan untuk kepentingan enkripsi (pada entitas yang mengirimkan data) dan kepentingan dekripsi (pada entitas yang menerima data). Antarmuka tentang indikasi bahwa mesin voting sudah memiiki kunci simetri dan siap untuk mengirimkan hasil voting ke CTF dapat dilihat pada Lampiran 6 dan Lampiran 7. Langkah pertama yang dilakukan adalah mesin voting akan melakukan permintaan akses pengiriman hasil suara kepada CLA. Mesin voting akan mengirimkan string request ke CLA yang terlebih dahulu dienkripsi menggunakan algoritme AES 128 bit. Setelah itu CLA akan menerima ciphertext dan melakukan proses dekripsi serta melakukan verifikasi terhadap string request tersebut. Jika string request tidak berhasil terverifikasi, sistem akan dihentikan dan menampilkan pesan error pada layar (Lampiran 8). Jika string request berhasil terverifikasi, CLA akan kembali melakukan pengecekan apakah mesin voting tersebut sudah pernah melakukan pengiriman sebelumnya. Jika mesin voting sudah pernah melakukan pengiriman sebelumnya, sistem akan dihentikan dan menampilkan pesan error pada layar (Lampiran 9). Jika belum, mesin voting akan diberikan validation ID oleh CLA. Nilai validation ID ini harus unik yang berarti setiap mesin voting yang berbeda harus memiliki validation ID yang berbeda pula. Proses ini bisa dilihat sebagai berikut: 21 22 23
if ($catchMachineNew == "REQUEST") { //verification condition, make sure the machine haven't sent data to CTF $query = mysql_query("SELECT * FROM machinelist WHERE machineIP='$ip' AND counter=0"); $result = mysql_num_rows($query); if($result > 0){ //check if the validation ID already assigned in db or not do { //random generated number $validation_id = mt_rand(); $query1 = mysql_query("SELECT * FROM validation WHERE machineIP='$ip' AND random_num='$validation_id'"); $result1 = mysql_num_rows($query1); } while ($result1 > 0); //after unique validation ID found, inserting to db CLA | prepare to send to CTF too $query2 = mysql_query("UPDATE validation SET random_num='$validation_id' WHERE machineIP='$ip'"); mysql_close();
Selain disimpan oleh CLA, validation ID akan dienkripsi oleh CLA dengan menggunakan kunci simetri AES 128 bit dan dikirimkan ke CTF dan mesin voting. Setelah mesin votng menerima validation ID dari CLA, mesin voting akan memulai proses enkripsi hasil suara dan mengirimkannya ke CTF bersama dengan validation ID yang telah diterima dari CLA. Proses ini bisa dilihat sebagai berikut: 22 23 24 25 26 27
$catchCipher = $_POST['stateCLA']; $catchV = $_POST['v']; $pt = AesCtr::decrypt($catchCipher, $pw, 128); //check state approved or pending if ($pt == "APPROVED") { //prepare to send data to CTF | retrive data
28 //include_once "machineconnect.php"; 29 30 31
$query = mysql_query("SELECT * FROM kandidat"); $counter = 0; while ($r =
CTF akan melakukan proses dekripsi pada validation ID dan hasil suara yang diterima dari mesin voting. Terlebih dahulu, CTF akan melakukan verifikasi validation ID dengan cara mengecek apakah validation ID yang diterima mesin voting sama dengan validation ID yang diterima dari CLA. Hal ini dilakukan untuk kepentingan keamanan, bahwa benar adanya jika mesin voting yang melakukan pengiriman hasil suara adalah mesin voting yang telah lolos verifikasi oleh CLA. Jika validation ID tidak berhasil diverifikasi, sistem akan dihentikan dan menampilkan pesan error pada layar (Lampiran 10). Jika validation ID berhasil diverifikasi, CTF akan memeriksa tanda tangan pada ciphertext hasil suara. Jika tanda tangan tidak berhasil diverifikasi, sistem akan dihentikan dan menampilkan pesan error pada layar (Lampiran 11). Jika tanda tangan berhasil terverifikasi, CTF akan menerima hasil
$cipher_r[$counter]['hasil '] = AesCtr::decrypt($catchCipher_r[$co unter]['hasil'], $pw, 128); $counter++; } //insert voting data to CTF database $query = mysql_query("CREATE TABLE $mid
48 49 50 51 52 53 54 55 56 57
( no_urut int(50) NOT NULL, nama varchar(50) NOT NULL, foto varchar(50) NOT NULL, hasil int(255) NOT NULL default 0, PRIMARY KEY (nama) )"); $counter1 = 0; while ($counter1 < count($cipher_r)) { $query1 = mysql_query("INSERT INTO $ip
3 Implementasi Proses Tabulasi Suara Proses tabulasi suara adalah proses mengakumulasikan hasil suara yang diterima dari tiap-tiap mesin voting oleh pusat tabulasi hasil suara yang dalam hal ini adalah CTF. Ketika hasil suara dari suatu mesin voting berhasil diverifikasi oleh CTF, CTF akan membuat tabel baru pada basis data CTF yang berisikan jumlah suara yang diterima oleh setiap kandidat. CTF akan kembali membuat tabel baru pada basis data CTF jika ada hasil suara yang masuk (dan terverifikasi) yang dikirimkan oleh mesin voting yang lain. Antarmuka untuk tabel perolehan suara dapat dilihat pada Lampiran 12. Proses tabulasi dimulai dengan pembuatan query SQL dan dilanjutkan dengan proses perhitungan seperti berikut: 13
14 15 16 17 18 19 20 21
22 23 24
$query = mysql_query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = $table_name"); $sum_in = ""; $join_in = ""; $c = 0; while ($r = mysql_fetch_array($query)) { if ($r['TABLE_NAME'] != "validation") { $sum_in = $sum_in.$r['TABLE_NAME'].".hasil + "; if ($c > 0) { $join_in = $join_in."JOIN ".$r['TABLE_NAME']." ON ".$r_before.".no_urut = ".$r['TABLE_NAME'].".no_urut "; } elseif ($c == 0) { $first_table = $r['TABLE_NAME'];
$first_table.no_urut, $first_table.nama, $first_table.foto, SUM($sum_fixed) AS total FROM $first_table $join_fixed GROUP BY $first_table.nama ORDER BY $first_table.no_urut";
Enkripsi menggunakan AES-128 pada penelitian ini membutuhkan waktu rata-rata 3.01334857940675 ms dengan standar deviasi 0.0535977957778571 ms. Waktu yang dibutuhkan untuk operasi dekripsi menggunakan algoritme AES tersaji dalam Tabel 2 dan diagram box plot yang dapat dilihat pada Gambar 6. Tabel 2 Running time pada dekripsi AES128 No 1 2 3 4 5 6 7 8 9 10
4 Analisis Running Time a Penggunaan Algoritme AES-128 AES-128 merupakan algoritme kriptografi kunci simetri berbentuk cipher block dengan ukuran blok 128 bit dan panjang kunci 128 bit. Salah satu entitas yang akan dioperasikan dengan algoritme AES adalah entitas validation ID. Validation ID yang dibangkitkan oleh CLA memiliki panjang empat sampai dua belas karakter. Waktu yang dibutuhkan untuk mengenkripsi validation ID tersaji dalam Tabel 1 dan diagram box plot yang dapat dilihat pada Gambar 5. Tabel 1 Running time pada enkripsi AES128 No 1 2 3 4 5 6 7 8 9 10
Gambar 6 Diagram box plot running time pada dekripsi AES-128. Dekripsi menggunakan AES-128 pada penelitian ini membutuhkan waktu rata-rata 2.9911756515503 ms dengan standar deviasi 0.1456681892750182 ms. b Penggunaan Algoritme RSA-2048
Gambar 5 Diagram box plot running time pada enkripsi AES-128.
RSA-2048 merupakan algoritme kriptografi kunci publik dengan panjang kunci 2048 bit. Pada tahap awal pembangkitkan pasangan kunci publik dan pasangan kunci privat, algoritme ini akan mencari dua bilangan prima p ≠ q secara acak dan terpisah untuk tiap-tiap p dan q. Waktu yang dibutuhkan pada saat pembangkitkan kunci sampai diperoleh pasangan kunci publik (N,e) dan pasangan kunci privat (N,d) tersaji dalam Tabel 3 dan diagram box plot yang dapat dilihat pada Gambar 7.
14
8 Tabel 3 Running time pada pembangkitan kunci RSA-2048 No 1 2 3 4 5 6 7 8 9 10
q3
Gambar 8 Diagram box plot running time pada enkripsi RSA-2048. Enkripsi menggunakan RSA-2048 pada penelitian ini membutuhkan waktu rata-rata 5.1 ms dengan standar deviasi 0.8306623862918075 ms.
median max
Waktu yang dibutuhkan untuk operasi dekripsi menggunakan algoritme RSA-2048 tersaji dalam Tabel 5 dan diagram box plot yang dapat dilihat pada Gambar 9. Tabel 5 Running time pada dekripsi RSA2048 No 1 2 3 4 5 6 7 8 9 10
q3
Gambar 7 Diagram box plot running time pada pembangkitan kunci RSA2048. Pembangkitan kunci RSA-2048 pada penelitian ini membutuhkan waktu rata-rata 5.7914 detik dengan standar deviasi 2.28025495065793 detik. Entitas yang dienkripsi menggunakan kunci publik RSA-2048 adalah kunci simetri AES-128 yang dibangkitkan di CTF. Waktu yang dibutuhkan untuk mengenkripsi kunci simetri ini tersaji dalam Tabel 4 dan diagram box plot yang dapat dilihat pada Gambar 8. Tabel 4 Running time pada enkripsi RSA2048 Running Time (ms) 5 4 4 4 5 6 6 6 5 6
Gambar 9 Diagram box plot running time pada dekripsi RSA-2048. Dekripsi menggunakan RSA-2048 pada penelitian ini membutuhkan waktu rata-rata 111.4 ms dengan standar deviasi 3.63868107973205 ms.
15
c Penggunaan Fungsi Hash SHA-2 Entitas yang akan dioperasikan menggunakan fungsi hash SHA-2 adalah angka acak yang dibangkitkan oleh CTF untuk memperoleh kunci simetri AES. Selain itu, SHA-2 juga digunakan pada saat penandatanganan digital hasil suara mesin voting untuk dikirim ke CTF. Waktu yang dibutuhkan untuk melakukan operasi fungsi hash SHA-2 tersaji dalam Tabel 6 dan diagram box plot yang dapat dilihat pada Gambar 10.
Tabel 7 Running time pada sistem secara keseluruhan No 1 2 3 4 5 6 7 8 9 10
Tabel 6 Running time pada fungsi hash SHA-2 No 1 2 3 4 5 6 7 8 9 10
Gambar 10 Diagram box plot running time pada fungsi hash SHA-2. Hashing menggunakan SHA-2 pada penelitian ini membutuhkan waktu rata-rata 0.0092029571533205 ms dengan standar deviasi 0.0008476442735020664 ms. d Total Running Time Sistem Waktu yang dibutuhkan sistem secara keseluruhan dimulai dari pembangkitan kunci publik RSA pada mesin voting sampai dengan berhasil diterimanya hasil suara di CTF tersaji dalam Tabel 7 dan diagram box plot yang dapat dilihat pada Gambar 11.
Sistem in bekerja dengan waktu rata-rata 78.61029 detik dengan standar deviasi 13.09375265830617 detik. Dari pengukuran running time yang telah dilakukan dan setelah membandingkan running time rata-rata tiap algoritme kriptografi yang dipakai dengan running time rata-rata sistem secara keseluruhan, didapatkan running time algoritme AES memiliki presentase 0.038%, running time algoritme RSA memiliki presentase 22.55%, dan running time fungsi hash memiliki presentase SHA-2 0.00004%. Hal ini menunjukkan bahwa peran algoritme kriptografi dalam menentukan running time keseluruhan sistem pengiriman sebesar 22.58%. Pada penelitian ini, algoritme kriptografi berperan 22.58% dalam menentukan running time keseluruhan sistem pengiriman. Hal ini menunjukkan bahwa 77.42% sisanya ditentukan oleh pengiriman data seluruh entitas yang ada dalam sistem. Berdasarkan data tersebut, dapat disimpulkan bahwa peran algoritme kriptografi lebih kecil dari peran pengiriman data itu sendiri dalam menentukan running time keseluruhan sistem pengiriman.
16
Pengujian Pengujian terhadap sistem ini dilakukan menggunakan blackbox testing. Pengujian dibagi ke dalam tiga tahap, yakni: 1 Tahap pengujian terhadap pengiriman kunci simetri. Pada tahap ini akan diujikan apakah sistem sudah memenuhi perancangan yang dibuat. Hasil pengujian pada tahap ini dapat lebih rinci pada Lampiran 13. 2 Tahap pengujian terhadap pengiriman hasil suara mesin voting menuju CTF. Pada tahap ini akan diujikan apakah pengembangan sistem pengiriman hasil suara mesin voting sudah dapat berjalan dengan stabil dan cukup aman terhadap ancaman kriptanalis. Hasil pengujian pada tahap ini dapat lebih rinci pada Lampiran 14. 3 Tahap pengujian terhadap proses tabulasi total suara. Pada tahap ini akan diujikan apakah tabulasi sudah berjalan dengan benar. Hasil pengujian pada tahap ini dapat lebih rinci pada Lampiran 15.
KESIMPULAN DAN SARAN Kesimpulan Sistem pengiriman hasil suara mesin voting menuju CTF berhasil diimplementasikan dan terbukti dapat membantu perhitungan total suara menjadi lebih cepat dan menghemat berbagai sumberdaya seperti: waktu, tempat, biaya, dan tenaga. Pengaruh algoritme kriptografi dalam menentukan running time keseluruhan sistem pengiriman lebih kecil dari pengaruh yang ditimbulkan oleh pengiriman data (lalu lintas data) itu sendiri. Saran Pada penelitian ini sistem masih memiliki kekurangan yang harapannya dapat terus dikembangkan dan diperbaiki pada penelitian selanjutnya. Beberapa rekomendasi saran yang dapat dilakukan untuk penelitian selanjutnya diantaranya adalah: -
-
-
Penerapan konsep scheduling pada saat pengiriman hasil suara tiap-tiap mesin agar lebih terkontrol dan manageable. Simulasi pengiriman menggunakan mesin voting dengan jumlah banyak. Analisis lebih lanjut mengenai faktor-faktor yang mempengaruhi running time sistem pengiriman, seperti: ukuran data yang dikirim, server load, bandwidth internet yang dipakai, dan sebagainya. Pengamanan database pada tiap entitas.
-
Sistem bisa mengakomodir error-error non teknis seperti: mati listrik, internet putus, jaringan putus, dan sebagainya.
DAFTAR PUSTAKA Adiwidya BMD. 2009. Algoritma AES (Advanced Encryption Standard) dan Penggunaannya dalam Penyandian Pengompresian Data. Bandung: Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. Andriani T. 2011. Perancangan dan Simulasi IPSec Site to Site VPN dengan vyatta OS (Studi kasus IM Telkom). Bandung: Program Studi Teknik Komputer, Politeknik Telkom. Azhari R. 2005. e-Voting. Depok: Fakultas Ilmu Komputer, Universitas Indonesia. Bishop M. 2003. Computer Security Art and Science. Boston: Pearson Education, Inc. Boneh D. 1999. Twenty Years of attacks on the RSA Cryptosystem. Notices of the American Mathematical Society (AMS) 46(2):203213. DuFeu D, Harris J. 2001. Online Election System. 95.413 Project Report, Carleton University. Hardhienata MKD. 2009. Pengembangan sistem pengiriman suara voter menuju central tabulating facilities (CTF) [skripsi]. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor. Kurniawan A. 2008. Konsep dan Implementasi Cryptography dengan .Net. Jakarta: PT.Dian Rakyat. Kusumah FSF. 2012. Desain e-voting pilkada kota Bogor menggunakan protokol two central facilities yang dimodifikasi [skripsi]. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor. Nugraha I. 2009. Pengujian Implementasi dan Perbandingan Fungsi Hash Satu Arah SHA1 dan SHA-2. Bandung: Program Studi Teknik Informatika, Institut Teknologi Bandung. Prayanta A. 2012. Pengembangan sistem autentikasi voter pada central legitimization agency menggunakan media mifare smart card [skripsi]. Bogor: Fakultas Matematika
17
dan Ilmu Pengetahuan Pertanian Bogor.
Alam,
Institut
Schneier B. 1996. Applied Cryptography – Protocols, Algorithms and Source Code in C. Ed ke-2. New York: Jon Wiley & Sons Inc. Sireesha J, Chakchai S. 2005. Secure Virtual Election Booth with Two Central Facilities. St. Louis: Department of Computer Science Washington University, USA. Wardhani CE. 2009. Analisis dan pengembangan IPB online voting center berbasis protokol two central facilities [skripsi]. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.
LAMPIRAN
19
Lampiran 1 Diagram alir pengiriman hasil suara mesin voting ke CTF Mulai
String request
Mengirimkan ciphertext ke CTF Basis data CTF
Enkripsi pesan string request menggunakan AES 128 bit
Ciphertext
Enkripsi validation ID menggunakan AES 128 bit
Ciphertext
Mengirimkan ciphertext ke CLA
Validation ID
Dekripsi ciphertext menggunakan AES 128 bit
Plaintext
Basis data mesin voting
Membuat paket hasil suara dari basis data mesin voting
Hasil suara
Menyimpan hasil suara ke basis data CTF
Enkripsi hasil suara menggunakan AES 128 bit
Plaintext
Menyimpan hasil validation ID mesin ke basis data CTF
Dekripsi ciphertext (paket 2) menggunakan AES 128 bit
Ciphertext
Dekripsi ciphertext menggunakan AES 128 bit
Memberikan validation ID
CTF mengirimkan pesan konfirmasi ke CLA bahwa validation ID sudah diterima
Mengirimkan ciphertext ke CTF (paket 1)
Enkripsi validation ID dengan AES 128 bit
Ciphertext
Ya Penandatanganan menggunakan SHA-2
Verifikasi tandatangan Hasil hash data = tandatangan ? Tidak
Tidak Plaintext Ya
Sudah pernah melakukan pengiriman suara ?
Signed ciphertext Ya
Ya Plaintext = string request ? Tidak
Sistem dihentikan
Selesai
Tidak Mengirimkan signed ciphertext ke CTF (paket 2) Mengecek status pengiriman mesin
Ciphertext
Validation ID dari mesin = validation ID pada basis data ?
Mengirimkan ciphertext ke mesin Dekripsi ciphertext (paket 1) menggunakan AES 128 bit
Plaintext
20
Lampiran 2 Antarmuka pembangkitan pasangan kunci RSA 2048 bit
Lampiran 3 Antarmuka pengiriman kunci publik RSA 2048 pada mesin voting
21
Lampiran 4 Antarmuka pembangkitan kunci simetri AES 128 bit
Lampiran 5 Antarmuka pendekripsian kunci simetri AES 128 bit menggunakan kunci privat RSA 2048 bit
22
Lampiran 6 Antarmuka pada mesin voting jika mesin voting sudah memiliki kunci simetri
Lampiran 7 Antarmuka mesin voting siap untuk melakukan pengiriman hasil suara
23
Lampiran 8 Pesan error yang ditampilkan jika string request tidak berhasil terverifikasi
Lampiran 9 Pesan error yang ditampilkan jika mesin voting sudah mengirimkan hasil suara
24
Lampiran 10 Pesan error yang ditampilkan jika validation ID tidak berhasil terverifikasi
Lampiran 11 Pesan error yang ditampilkan jika tanda tangan tidak berhasil terverifikasi
Membangkitkan pasangan kunci asimetri (publik dan privat) dengan Algoritme RSA 2048 bit di mesin voting
Mesin voting belum memiliki pasangan kunci asimetri
Melakukan running pada script standby.php yang di-trigger oleh habisnya waktu pemilihan
Mesin voting memiliki pasangan kunci asimetri
Berhasil
2
Mengirimkan pasangan kunci publik dari mesin voting menuju CTF
CTF belum menerima pasangan kunci publik dari mesin voting
Mesin voting mengirimkan pasangan kunci publik ke CTF
CTF memiliki pasangan kunci publik
Berhasil
3
Membangkitan kunci simetri menggunakan Algoritme AES 128 bit di CTF
CTF belum memiliki kunci simetri
CTF membangkitkan kunci simetri yang di-trigger oleh diterimanya pasangan kunci publik dari mesin voting
CTF memiliki kunci simetri
Berhasil
4
CTF mengirimkan kunci simetri yang telah dienkripsi menggunakan kunci publik menuju mesin voting
Mesin voting belum menerima kunci simetri dari CTF
CTF mengenkripsi kunci simetri dan mengirimkannya kepada mesin voting
Mesin voting memiliki kunci simetri yang masih terenkripsi
Berhasil
Mesin voting belum memiliki kunci simetri
Mesin voting melakukan dekripsi pada kunci simetri yang masih terenkripsi dengan pasangan kunci privat
Mesin voting memiliki kunci simetri
Berhasil
No
5
Mesin voting menerima kunci simetri yang telah didekripsi dengan pasangan privat
27
Lampiran 14 Pengujian pengiriman hasil suara dari mesin voting menuju CTF No
Deskripsi uji
1
Mesin voting mengirmkan string request yang telah dienkripsi menggunakan kunci simetri AES 128 bit menuju CLA
Kondisi awal
Skenario uji
Hasil yang diharapkan
Hasil uji
CLA belum menerima string request
Mesin voting mengirimkan string request yang di-trigger oleh diterimanya kunci simetri pada mesin voting
CLA menerima string request
Berhasil
2
Verifikasi string request dari mesin voting oleh CLA pada kasus lolos verifikasi
CLA belum melakukan verifikasi terhadap string request
CLA menerima string request valid dari mesin voting dan melakukan verifikasi
Verifikasi berhasil
Berhasil
3
Verifikasi string request dari mesin voting oleh CLA pada kasus gagal verifikasi
CLA belum melakukan verifikasi terhadap string request
CLA menerima string request yng tidak valid dari mesin voting dan melakukan verifikasi
Verifikasi gagal dan menampilkan pesan “unknown message”
Berhasil
4
Verifikasi status mesin voting yang belum mengirimkan hasil suara ke CTF oleh CLA
CLA belum melakukan verifikasi terhadap status mesin voting
CLA melakukan verifikasi terhadap status mesin voting
Verifikasi berhasil
Berhasil
5
Verifikasi status mesin voting yang sudah mengirimkan hasil suara ke CTF oleh CLA
CLA belum melakukan verifikasi terhadap status mesin voting
CLA melakukan verifikasi terhadap status mesin voting
Verifikasi gagal dan menampilkan pesan “the machine has already sent data to CTF”
Berhasil
6
CLA mengirimkan validation ID yang dienkripsi menggunakan kunci simetri AES 128 bit menuju mesin voting
Mesin voting belum memiliki validation ID
CLA mengirimkan ciphertext validation ID
Mesin voting memiliki validation ID
Berhasil
7
CLA mengirimkan validation ID yang dienkripsi menggunakan kunci simetri AES 128 bit menuju CTF
CTF belum memiliki validation ID
CLA mengirimkan ciphertext validation ID
CTF memiliki validation ID
Berhasil
8
Verifikasi validation ID oleh CTF
CTF belum melakukan verifikasi terhadap validation ID
CTF melakukan verifikasi terhadap validation ID
Verifikasi berhasil
Berhasil
28
Lanjutan No
9
Deskripsi uji
Pengiriman hasil suara mesin voting ke pusat tabulasi CTF
Kondisi awal
Skenario uji
CTF belum menerima hasil suara mesin voting
Mesin voting mengirimkan hasil suara yang dienkripsi menggunakan kunci simetri AES 128 bit menuju CTF
Hasil yang diharapkan
CTF menerima hasil suara mesin voting
Hasil uji
Berhasil
Lampiran 15 Pengujian tabulasi hasil suara No
Deskripsi uji
Keadaan awal
1
Memasukkan hasil suara mesin voting ke dalam basis data pusat tabulasi CTF
Jumlah suara kandidat di pusat tabulasi belum bertambah
2
Menampilkan tabel hasil pemilihan suara
Tabel hasil pemilihan suara belum muncul
Skenario uji Sistem memasukkan hasil suara mesin voting ke dalam basis data CTF Mesin voting menampilkan hasil pemilihan suara yang di-trigger oleh selesainya pengiriman hasil suara dari mesin voting ke CTF
Hasil yang diharapkan
Hasil uji
Jumlah suara kandidat terpilih di pusat tabulasi bertambah