DEPARTEMEN ILMU KOMPUTER
PENGEMBANGAN SISTEM PENGIRIMAN HASIL SUARA PADA
E-VOTING TWO CENTRAL FACILITIES
YANG DIMODIFIKASI
ERICK PRIYANGGODO
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
PENGEMBANGAN SISTEM PENGIRIMAN HASIL SUARA PADA
E-VOTING TWO CENTRAL FACILITIES
YANG DIMODIFIKASI
ERICK PRIYANGGODO
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
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.
Judul Skripsi : Pengembangan Sistem Pengiriman Hasil Suara pada E-Voting Two Central Facilities yang Dimodifikasi
Nama : Erick Priyanggodo
NRP : G64070027
Menyetujui: Pembimbing
Endang Purnama Giri S.Kom, M.Kom NIP. 19821010 200604 1 027
Mengetahui: Ketua Departemen
Dr. Ir. Agus Buono, M.Si, M.Kom NIP. 19660702 199302 1 001
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 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.
2 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. 3 Bapak Dr. Sugi Guritman, terima kasih atas segala ilmu, saran, dan bantuan yang diberikan
selama penyelesaian penelitian ini.
4 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.
5 Bapak Kelik Supriyadi S.Kom beserta seluruh staf Dishubkominfo Kota Bogor yang telah memberikan sarana selama penyelesaian penelitian ini.
6 Bapak Odang selaku kepala staf humas KPU Bogor yang telah memberikan saran terhadap penelitian ini.
7 Kakak dan adik penulis, Intan Permata Dewi dan Nicken Budi Asri, terima kasih atas kasih sayang dan dukungan yang telah diberikan.
8 Segenap dosen dan staf pendukung Departemen Ilmu Komputer yang telah membantu penulis dalam berbagai kesempatan.
9 Teman-teman satu bidang penelitian, Alfian Prayanta dan Fitrah Fajar, terima kasih atas bantuan, dukungan, ilmu, serta motivasi yang selalu diberikan.
10 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.
11 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.
12 Teman-teman “samsung” selama pengerjaan penelitian: Teguh Cipta dan Bangun Kurnianto, terima kasih atas keceriaan yang telah dibagi dengan penulis.
13 Teman-teman “rental” selama pengerjaan penelitian: M. Akbar, Huswantoro Anggit, Remachtito, dan Arif Nofyansah, terima kasih atas dukungan dan semangat yang telah diberikan. 14 Seluruh teman-teman Ilkom 44 yang tak bisa disebutkan satu persatu, terima kasih atas semangat
dan kebersamaannya.
15 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
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).
v
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
AlgoritmeAES ... 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
vi
DAFTAR TABEL
Halaman
1 Running time pada enkripsi AES-128 ... 13
2 Running time pada dekripsi AES-128. ... 13
3 Running time pada pembangkitan kunci RSA-2048 ... 13
4 Running time pada enkripsi RSA-2048 ... 14
5 Running time pada dekripsi RSA-2048. ... 14
6 Running time pada fungsi hash SHA-2. ... 15
7 Running time pada sistem secara keseluruhan. ... 15
DAFTAR GAMBAR
Halaman 1 Enkripsi dan dekripsi (Kurniawan 2008). ... 22 Protokol Two Central Facilities (Schneier 1996). ... 4
3 The Security Life Cycle (Bishop 2003). ... 5
4 Diagram alir pengiriman kunci simetri AES dari CTF. ... 8
5 Diagram box plot running time pada enkripsi AES-128. ... 13
6 Diagram box plot running time pada dekripsi AES-128. ... 13
7 Diagram box plot running time pada pembangkitan kunci RSA-2048. ... 14
8 Diagram box plot running time pada enkripsi RSA-2048. ... 14
9 Diagram box plot running time pada dekripsi RSA-2048. ... 14
10 Diagram box plot running time pada fungsi hash SHA-2. ... 15
11 Diagram box plot running time pada sistem secara keseluruhan. ... 15
DAFTAR LAMPIRAN
Halaman 1 Diagram alir pengiriman hasil suara mesin voting ke CTF ... 192 Antarmuka pembangkitan pasangan kunci RSA 2048 bit ... 20
3 Antarmuka pengiriman kunci publik RSA 2048 pada mesin voting ... 20
4 Antarmuka pembangkitan kunci simetri AES 128 bit ... 21
5 Antarmuka pendekripsian kunci simetri AES 128 bit menggunakan kunci privat RSA 2048 bit... 21
6 Antarmuka pada mesin voting jika mesin voting sudah memiliki kunci simetri ... 22
7 Antarmuka mesin voting siap untuk melakukan pengiriman hasil suara ... 22
8 Pesan error yang ditampilkan jika string request tidak berhasil terverifikasi ... 23
9 Pesan error yang ditampilkan jika mesin voting sudah mengirimkan hasil suara ... 23
10 Pesan error yang ditampilkan jika validation ID tidak berhasil terverifikasi ... 24
11 Pesan error yang ditampilkan jika tanda tangan tidak berhasil terverifikasi ... 24
12 Antarmuka tabel perolehan suara ... 25
13 Pengujian pengiriman kunci simetri ... 26
14 Pengujian pengiriman hasil suara dari mesin voting menuju CTF ... 27
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 ( e-voting).
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
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. 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.
Enkripsi Dekripsi
Plaintext Ciphertext
Original Plaintext
Gambar 1 Enkripsi dan dekripsi (Kurniawan 2008).
Algoritme RSA
faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Algoritme RSA memiliki besaran-besaran sebagai berikut: 1 p dan q bilangan prima (rahasia) Deskripsi sederhana dari algoritme RSA dijelaskan sebagai berikut. Diberikan nilai N, dengan N adalah:
dengan p dan q adalah dua bilangan prima besar dengan ukuran yang sama.
Diberikan nilai e dan d dengan ketentuan sebagai berikut:
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).
AlgoritmeAES
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. Masing-masing 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
N = p . q
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 e-voting 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 Tabulating Facilities (CTF) merupakan suatu badan yang bertugas melakukan penghitungan suara. CTF menyediakan beberapa fungsionalitas sebagai berikut:
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.
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.
Gambar 3 The Security Life Cycle (Bishop 2003).
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)
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
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 Platform: Web base PHP.
b RSA (2048 bits): Enkripsi kunci publik. c AES (128 bits): Enkripsi kunci simetri. d SHA-2 (256 bits): Signature/Hashing. e 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)
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 pengiriman dan kembali melakukan pengiriman, CTF akan mengembalikan pesan “Mesin voting tersebut sudah melakukan pengiriman sebelumnya”. 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
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 Pengiriman kunci simetri AES. 2 Pengiriman hasil suara mesin voting.
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 Mesin voting membangkitkan pasangan kunci publik dan privat menggunakan algoritme RSA dengan panjang kunci 2048. 2 Mesin voting mengirimkan pasangan kunci
publik ke CTF.
3 CTF membangkitkan kunci simetri menggunakan algoritme AES dan menerima pasangan kunci publik dari mesin voting.
4 CTF melakukan proses enkripsi kunci simetri dengan pasangan kunci publik yang didapat dari mesin voting.
5 CTF mengirimkan hasil enkripsi kunci simetri (ciphertext) ke mesin voting. 6 Mesin voting menerima ciphertext dan
melakukan proses dekripsinya menggunakan pasangan kunci privat yang sudah dibangkitkan sebelumnya.
Mulai ke mesin voting Dekripsi ciphertext kunci simetri AES
128 bit
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 Mesin voting melakukan proses enkripsi sebuah string pesan tertentu yang akan dikirim ke CLA menggunakan kunci simetri AES.
2 CLA melakukan proses dekripsi
ciphertext yang diterima dari mesin voting
menggunakan kunci simetri AES, dan melakukan verifikasi string pesan yang diterima.
3 CLA mengecek status mesin voting, apakah mesin voting tersebut sudah pernah mengirim hasil suara sebelumnya atau belum.
4 Jika sudah pernah, sistem akan berhenti dan menampilkan pesan bahwa mesin
voting tersebut sudah pernah mengirim hasil suara ke CTF.
5 Jika belum, CLA membangkitkan
validation ID untuk mesin tersebut.
6 CLA melakukan proses enkripsi
validation ID menggunakan kunci simetri AES dan mengirimnya ke CTF dan mesin
voting.
7 CTF menerima validation ID dan melakukan proses dekripsinya menggunakan kunci simetri AES.
8 Mesin voting menerima dan melakukan proses dekripsi validation ID
menggunakan kunci simetri AES.
9 Mesin voting melakukan proses enkripsi hasil suara dan validation ID yang diterima dari CLA menggunakan kunci simetri AES.
10 Mesin voting menandatangani hasil suara menggunakan hash SHA-2 256 bit. 11 Mesin voting mengirim signed ciphertext
hasil suara dan validation ID ke CTF. 12 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. 13 Jika tidak cocok, sistem akan berhenti dan
menampilkan pesan bahwa terdapat perbedaan validation ID.
14 Jika cocok, CTF memverifikasi tanda tangan pada ciphertext.
15 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 function do_genrsa() {
70 var before = new Date();
71 var rsa = new RSAKey();
72 var dr = document.rsatest;
73 do_status("Generating RSA
Key...");
74
rsa.generate(parseInt(dr.bits.valu e),dr.e.value);
linebrk(rsa.n.toString(16),64) +"" );
76 tuliscookie("d", ""+
linebrk(rsa.d.toString(16),64) +"" ); //e
77 //d udah ada
78 tuliscookie("p", ""+
linebrk(rsa.p.toString(16),64) +"" ); //p
79 tuliscookie("q", ""+
linebrk(rsa.q.toString(16),64) +"" ); //q
80 tuliscookie("dmp1", ""+
linebrk(rsa.dmp1.toString(16),64) +"" );//dmp1
81 tuliscookie("dmq1", ""+
linebrk(rsa.dmq1.toString(16),64) +"" );//dmq1
82 tuliscookie("coeff", ""+
linebrk(rsa.coeff.toString(16),64)
91 do_status("Key Generation Time:
" + (after - before) + "ms");
92 }
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 private function
_generateKey($password) { 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 function do_encrypt() {
70 var before = new Date(); = linebrk(res, 64);
78
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 function do_decrypt() {
56 do_status("Decrypting...");
57 var before = new Date();
58 var rsa = new RSAKey();
59 var dr = document.rsatest;
60 rsa.setPrivateEx(dr.n.value,
dr.e.value, dr.d.value,
encrypt something first");
63 return; "*** Invalid Ciphertext ***";
69 do_status("Decryption
failed");
71 else {
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
stringrequest 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 $catchMachine = $_POST['state'];
22 $catchMachineNew =
AesCtr::decrypt($catchMachine, $pw, 128);
23
24 if ($catchMachineNew == "REQUEST") {
25 //verification condition, make
sure the machine haven't sent data to CTF
26
27 $query = mysql_query("SELECT *
FROM machinelist WHERE
machineIP='$ip' AND counter=0");
28 $result = mysql_num_rows($query);
29
30 if($result > 0){
31
32 //check if the validation ID
already assigned in db or not 33
34 do {
35 //random generated number
36 $validation_id =
mt_rand(); $query1 =
mysql_query("SELECT * FROM validation WHERE machineIP='$ip' AND random_num='$validation_id'");
41 //after unique validation ID
found, inserting to db CLA | prepare to send to CTF too 42
43 $query2 = mysql_query("UPDATE
validation SET
random_num='$validation_id' WHERE machineIP='$ip'");
44 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 $catchCipher = $_POST['stateCLA'];
23 $catchV =
approved or pending
26 if ($pt ==
mysql_query("SELECT * FROM kandidat");
30 $counter =
0;
mysql_fetch_array($query)) {
($counter < count($new_r)) { 41
$cipher_r[$counter]['no_ur ut'] =
AesCtr::encrypt($new_r[$counter][' no_urut'], $pw, 128);
42
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
suara dari mesin voting tersebut dengan cara melakukan proses dekripsi. Proses ini bisa dilihat sebagai berikut:
25 //validation check
26 //retrieve validation
27 $query =
mysql_query("SELECT * FROM validation WHERE
34 //$catchCipher_r =
$_POST['cipher_r'];
35 $catchCipher_r =
unserialize(urldecode(stripslashes unter]['no_urut'], $pw, 128); 40
$cipher_r[$counter]['nama' ] =
AesCtr::decrypt($catchCipher_r[$co unter]['nama'], $pw, 128);
41
$cipher_r[$counter]['foto' ] =
AesCtr::decrypt($catchCipher_r[$co unter]['foto'], $pw, 128);
42
$cipher_r[$counter]['hasil '] =
AesCtr::decrypt($catchCipher_r[$co unter]['hasil'], $pw, 128);
43 $counter++;
mysql_query("CREATE TABLE $mid 48
(
49 no_urut int(50) NOT NULL,
50 nama varchar(50) NOT NULL,
51 foto varchar(50) NOT NULL,
52 hasil int(255) NOT NULL default 0,
53 PRIMARY KEY (nama)
mysql_query("INSERT INTO $ip 58
, '$cipher_r[$counter1]['nama']',
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 $query = mysql_query("SELECT
TABLE_NAME FROM
INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = $table_name"); 14 $sum_in = "";
33 $final_query = "SELECT
$first_table.no_urut, $first_table.nama,
$first_table.foto, SUM($sum_fixed) AS total
34 FROM
$first_table $join_fixed GROUP BY $first_table.nama ORDER BY
$first_table.no_urut";
31 <table border=1 align=center
style="margin: 100px auto 0px auto" width=800px> URUT, FOTO DAN NAMA
CALON</h2></th> name='$b1[nama]' id='$b1[nama]' 43
61 $a1 = ] *100 /$total)."%</td>";
64
}
65 ?>
66 </tr>
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 AES-128
No Running Time (ms) 1 2.9799938201904 2 2.9890537261963 3 3.0038356781006 4 2.9878616333008 5 3.0019283294678 6 3.1669139862061 7 3.0219554901123 8 2.9749870300293 9 3.0238628387451 10 3.0238628387451
Gambar 5 Diagram box plot running time
pada enkripsi AES-128.
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 AES-128
No Running Time (ms) 1 2.8970241546631 2 2.9098987579346 3 2.8600692749023 4 2.9749870300293 5 2.8989315032959 6 2.8769969940186 7 3.2868385314941 8 3.0400753021240 9 3.2429695129395 10 2.9239654541016
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
Tabel 3 Running time pada pembangkitan
Gambar 7 Diagram box plot running time
pada pembangkitan kunci RSA-2048.
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
RSA-2048
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.
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
RSA-2048
Gambar 9 Diagram box plot running time
pada dekripsi RSA-2048.
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 1 0.010013580322266 2 0.0090599060058594 3 0.010013580322266 4 0.0090599060058594 5 0.0071525573730469 6 0.010013580322266 7 0.0088214874267578 8 0.010013580322266 9 0.0088214874267578 10 0.0090599060058594
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.
Tabel 7 Running time pada sistem secara keseluruhan
Gambar 11 Diagram box plot running time
pada sistem secara keseluruhan. 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
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):203-213.
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 SHA-1 dan SHA-2. Bandung: Program Studi Teknik Informatika, Institut Teknologi Bandung.
dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.
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
Lampiran 1 Diagram alir pengiriman hasil suara mesin voting ke CTF
Mulai
Enkripsi pesan string request menggunakan AES
128 bit
Ciphertext
Mengirimkan ciphertext ke CLA
Dekripsi ciphertext menggunakan AES Enkripsi validation
ID menggunakan AES 128 bit
Ciphertext Mengirimkan ciphertext ke CTF
Dekripsi ciphertext menggunakan AES
128 bit
Plaintext
Menyimpan hasil validation ID mesin
ke basis data CTF
Basis data CTF
CTF mengirimkan pesan konfirmasi ke
CLA bahwa validation ID sudah
diterima
Enkripsi validation ID dengan AES 128
bit
Ciphertext Mengirimkan
ciphertext ke mesin Ciphertext Mengirimkan ciphertext ke CTF
(paket 1) Membuat paket hasil suara dari basis
data mesin voting
Hasil suara
Enkripsi hasil suara menggunakan AES
128 bit Basis data mesin
voting
Ciphertext
Mengirimkan signed ciphertext ke CTF
(paket 2)
Dekripsi ciphertext (paket 1) pada basis data ? Dekripsi ciphertext
(paket 2) menggunakan AES
128 bit Plaintext Menyimpan hasil suara ke basis data
Lampiran 2 Antarmuka pembangkitan pasangan kunci RSA 2048 bit
Lampiran 4 Antarmuka pembangkitan kunci simetri AES 128 bit
Lampiran 6 Antarmuka pada mesin voting jika mesin voting sudah memiliki kunci simetri
Lampiran 8 Pesan error yang ditampilkan jika string request tidak berhasil terverifikasi
Lampiran 10 Pesan error yang ditampilkan jika validation ID tidak berhasil terverifikasi
Lampiran 13 Pengujian pengiriman kunci simetri
No Deskripsi uji Kondisi awal Skenario uji Hasil yang
diharapkan Hasil uji
1
Membangkitkan pasangan kunci asimetri (publik dan privat) dengan Algoritme RSA 2048 bit di mesin voting
Mesin voting publik dari mesin
voting menuju CTF
CTF belum Algoritme AES 128 bit di CTF 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
Lampiran 14 Pengujian pengiriman hasil suara dari mesin voting menuju CTF
No Deskripsi uji Kondisi awal Skenario uji Hasil yang diharapkan request yang telah dienkripsi menggunakan kunci simetri AES 128 bit menuju CLA
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 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 tidak valid dari mesin voting dan melakukan verifikasi
Verifikasi gagal dan menampilkan pesan “unknown message” status mesin voting
CLA melakukan verifikasi terhadap status mesin voting
Verifikasi berhasil Berhasil
5 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
validation ID yang dienkripsi
menggunakan kunci simetri AES 128 bit menuju CTF
validation ID Berhasil
8
Verifikasi
validation ID oleh CTF
Lanjutan
No Deskripsi uji Kondisi awal Skenario uji Hasil yang diharapkan
Hasil uji
9
Pengiriman hasil suara mesin voting
ke pusat tabulasi CTF
CTF belum menerima hasil suara mesin voting
Mesin voting
mengirimkan hasil suara yang dienkripsi menggunakan kunci simetri AES 128 bit menuju CTF
CTF menerima hasil suara mesin
voting
Berhasil
Lampiran 15 Pengujian tabulasi hasil suara
No Deskripsi uji Keadaan awal Skenario uji Hasil yang diharapkan
Hasil uji
1
Memasukkan hasil suara mesin voting
ke dalam basis data pusat tabulasi CTF
Jumlah suara kandidat di pusat tabulasi belum bertambah
Sistem
memasukkan hasil suara mesin voting
ke dalam basis data CTF
Jumlah suara kandidat terpilih di pusat tabulasi bertambah
Berhasil
2
Menampilkan tabel hasil pemilihan suara
Tabel hasil pemilihan suara belum muncul
Mesin voting
menampilkan hasil pemilihan suara yang di-trigger
oleh selesainya pengiriman hasil suara dari mesin
voting ke CTF
Layar
menampilkan tabel hasil pemilihan suara
Berhasil