• Tidak ada hasil yang ditemukan

Pengembangan Sistem Pengiriman Hasil Suara pada E-Voting Two Central Facilities yang Dimodifikasi

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pengembangan Sistem Pengiriman Hasil Suara pada E-Voting Two Central Facilities yang Dimodifikasi"

Copied!
36
0
0

Teks penuh

(1)

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

(2)

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

(3)

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.

(4)

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

(5)

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

(6)

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).

(7)

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

(8)

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). ... 2

2 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 ... 19

2 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

(9)

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

(10)

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

(11)

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

(12)

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.

(13)

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

(14)

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)

(15)

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.

(16)

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);

(17)

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");

(18)

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;

(19)

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

(20)

, '$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

(21)

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

(22)

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.

(23)

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

(24)

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.

(25)

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

(26)
(27)

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

(28)

Lampiran 2 Antarmuka pembangkitan pasangan kunci RSA 2048 bit

(29)

Lampiran 4 Antarmuka pembangkitan kunci simetri AES 128 bit

(30)

Lampiran 6 Antarmuka pada mesin voting jika mesin voting sudah memiliki kunci simetri

(31)

Lampiran 8 Pesan error yang ditampilkan jika string request tidak berhasil terverifikasi

(32)

Lampiran 10 Pesan error yang ditampilkan jika validation ID tidak berhasil terverifikasi

(33)
(34)

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

(35)

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

(36)

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

Gambar

Gambar 1  Enkripsi dan dekripsi (Kurniawan 2008).
Gambar 2  Protokol  Two Central Facilities
Gambar 4  Diagram alir pengiriman kunci
tabel perolehan suara dapat dilihat pada
+5

Referensi

Dokumen terkait