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

i

PENGEMBANGAN SISTEM PENGIRIMAN HASIL SUARA PADA
E-VOTING TWO CENTRAL FACILITIES YANG DIMODIFIKASI

ERICK PRIYANGGODO

DEPARTEMEN ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012

i

PENGEMBANGAN SISTEM PENGIRIMAN HASIL SUARA PADA
E-VOTING TWO CENTRAL FACILITIES YANG DIMODIFIKASI

ERICK PRIYANGGODO


Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012

ABSTRACT
ERICK PRIYANGGODO. Development of Voting Result Transmission System with Modified Two
Central Facilities Protocol. Under supervision of ENDANG PURNAMA GIRI.
Election system in Indonesia still uses conventional method that has many disadvantages such as:
slow voting result's calculation, slow voting result's transmission to the central committee, and large
amount of human resources. E-voting is expected to solve the problems and the most secure election
protocol that meets the standards of secure voting requirements according to Schneier (1996) is Two
Central Facilities Protocol. The goal of this research is developing voting result transmission system

based on modified Two Central Facilities Protocol designed by Kusumah (2012), analyzing the
developed transmission system's running time, and determining the influence of cryptographic
algorithm usage on developed transmission system's running time. Through this research, we
developed a voting result transmission system and found that cryptographic algorithm usage on this
system contributes 22.58% of the total system running time which is relatively low. We recommend
further research regarding analyzing other factors beside cryptographic algorithm usage and database
security implementation on voting result transmisson system.
Keywords: e-voting, transmission system, cryptographic protocol, Two Central Facilities

Judul Skripsi
Nama
NRP

: Pengembangan Sistem Pengiriman Hasil Suara pada E-Voting Two Central
Facilities yang Dimodifikasi
: Erick Priyanggodo
: G64070027

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

Tanggal lulus:

KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa-ta'ala karena hanya dengan berkat,
rahmat, dan karunia-Nya penelitian ini dapat diselesaikan dengan baik. Selawat serta salam penulis
sampaikan kepada junjungan Nabi Muhammad shallallahu’alayhi wasallam, juga kepada
keluarganya, sahabatnya, dan para pengikutnya. Penyelesaian penelitian ini juga tidak lepas dari
bantuan berbagai pihak, untuk itu penulis mengucapkan terima kasih yang sebesar-besarnya kepada:
1


2
3
4
5
6
7
8
9
10

11

12
13
14
15

Kedua orang tua penulis, Ibu Sri Budi Lestari Rahayu, terima kasih atas doa, kasih sayang,
dukungan, dan alm. Bapak Pardiyo Hari Parwoko yang telah menginspirasi dan memotivasi agar
penulis segera menyelesaikan penelitian ini.

Bapak Endang Purnama Giri S.Kom, M.Kom selaku dosen pembimbing, terima kasih akan
kesabaran, ilmu, waktu, motivasi, dan nasihat yang diberikan selama penyelesaian penelitian ini.
Bapak Dr. Sugi Guritman, terima kasih atas segala ilmu, saran, dan bantuan yang diberikan
selama penyelesaian penelitian ini.
Bapak Hendra Rahmawan, S.Kom, M.T dan Ibu Karlina Khiyarin Nisa S.Kom, M.T selaku
dosen penguji, terima kasih atas segala ilmu, kritik, dan saran yang diberikan.
Bapak Kelik Supriyadi S.Kom beserta seluruh staf Dishubkominfo Kota Bogor yang telah
memberikan sarana selama penyelesaian penelitian ini.
Bapak Odang selaku kepala staf humas KPU Bogor yang telah memberikan saran terhadap
penelitian ini.
Kakak dan adik penulis, Intan Permata Dewi dan Nicken Budi Asri, terima kasih atas kasih
sayang dan dukungan yang telah diberikan.
Segenap dosen dan staf pendukung Departemen Ilmu Komputer yang telah membantu penulis
dalam berbagai kesempatan.
Teman-teman satu bidang penelitian, Alfian Prayanta dan Fitrah Fajar, terima kasih atas
bantuan, dukungan, ilmu, serta motivasi yang selalu diberikan.
Teman-teman laboratorium Net-Centric Computing (NCC): Trie Setiowati, Gema Alif Utama,
Rendy Eka Saputra, Sulma, dan Adi Gunarso, terima kasih atas kegembiraan, bantuan, dan
semangat yang diberikan.
Teman-teman “maho” selama perkuliahan: M. Mukhlis Said, Khamdan Amin Bisyri, Yoga

Herawan, Danar Setya, Ayi Imaduddin, Ridwan Agung dan teman-teman “maho” yang lainnya,
terima kasih telah memberikan „warna‟ pada kehidupan perkuliahan penulis.
Teman-teman “samsung” selama pengerjaan penelitian: Teguh Cipta dan Bangun Kurnianto,
terima kasih atas keceriaan yang telah dibagi dengan penulis.
Teman-teman “rental”
selama pengerjaan penelitian: M. Akbar, Huswantoro Anggit,
Remachtito, dan Arif Nofyansah, terima kasih atas dukungan dan semangat yang telah diberikan.
Seluruh teman-teman Ilkom 44 yang tak bisa disebutkan satu persatu, terima kasih atas semangat
dan kebersamaannya.
Semua pihak yang telah memberikan doa, semangat, dan bantuan selama penyelesaian
penelitian.

Penulis menyadari bahwa penelitian ini masih terdapat kekurangan. Penulis berharap semoga hasil
penelitian ini dapat memberikan manfaat.

Bogor, September 2012

Erick Priyanggodo

RIWAYAT HIDUP

Penulis dilahirkan di kota Banjarmasin pada tanggal 24 Februari 1990. Penulis merupakan anak
kedua dari tiga bersaudara. Penulis menempuh pendidikan formal di SDN Sinduadi III Yogyakarta
(2001), SMP Negeri 2 Bogor (2004), dan SMA Negeri 6 Bogor (2007). Penulis lulus seleksi masuk
Institut Pertanian Bogor (IPB) pada tahun 2007 melalui jalur Undangan Seleksi Masuk IPB dengan
Program Studi Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam (FMIPA).
Selama aktif sebagai mahasiswa, penulis turut aktif mengikuti beberapa kegiatan kepanitian di
Institut Pertanian Bogor, antara lain SAVIOR (Save Our Environment) pada tahun 2008 sebagai wakil
ketua divisi dana usaha, MPKMB Patriot 45 (Masa Perkenalan Mahasiswa Baru Angkatan 45) pada
tahun 2009 sebagai anggota divisi dana usaha, dan Masa Pengenalan Departemen pada tahun 2009.

DAFTAR ISI
Halaman
DAFTAR TABEL ................................................................................................................................. vi
DAFTAR GAMBAR ............................................................................................................................. vi
DAFTAR LAMPIRAN .......................................................................................................................... vi
PENDAHULUAN .................................................................................................................................. 1
Latar Belakang .................................................................................................................................. 1
Tujuan ............................................................................................................................................... 1
Ruang Lingkup .................................................................................................................................. 1
Manfaat Penelitian ............................................................................................................................ 2

TINJAUAN PUSTAKA ......................................................................................................................... 2
Protokol ............................................................................................................................................. 2
Kriptografi ......................................................................................................................................... 2
Algoritme RSA ................................................................................................................................. 2
Algoritme AES .................................................................................................................................. 3
Secure Hash Algorithm (SHA)-2 ...................................................................................................... 3
Electronic Voting (E-voting) ............................................................................................................. 3
Protokol Two Central Facilities ........................................................................................................ 4
Central Legitimization Agency (CLA) .............................................................................................. 4
Central Tabulating Facilities (CTF) ................................................................................................. 4
VPN................................................................................................................................................... 5
METODE PENELITIAN ....................................................................................................................... 5
Ancaman (Threats)............................................................................................................................ 5
Kebijakan (Policy) ............................................................................................................................ 5
Spesifikasi (Specification) ................................................................................................................. 5
Perancangan (Design) ....................................................................................................................... 6
Implementasi (Implementation) ........................................................................................................ 6
Pengujian (Testing) ........................................................................................................................... 6
HASIL DAN PEMBAHASAN............................................................................................................... 6
Ancaman (Threats)............................................................................................................................ 6

Kebijakan (Policy) ............................................................................................................................ 6
Spesifikasi (Specification) ................................................................................................................. 7
Perancangan (Design) ....................................................................................................................... 7
Perancangan Sistem .......................................................................................................................... 7
Implementasi ..................................................................................................................................... 8
1 Implementasi Pengiriman Kunci Simetri ................................................................................. 8
2 Implementasi Pengiriman Hasil Suara ................................................................................... 10
3 Implementasi Proses Tabulasi Suara ...................................................................................... 12
4 Analisis Running Time ........................................................................................................... 13
a Penggunaan Algoritme AES-128 ....................................................................................... 13
b Penggunaan Algoritme RSA-2048 .................................................................................... 13
c Penggunaan Fungsi Hash SHA-2 ...................................................................................... 15
d Total Running Time Sistem ............................................................................................... 15
Pengujian ......................................................................................................................................... 16
KESIMPULAN DAN SARAN............................................................................................................. 16
Kesimpulan ..................................................................................................................................... 16
Saran ............................................................................................................................................... 16
DAFTAR PUSTAKA ........................................................................................................................... 16
LAMPIRAN ......................................................................................................................................... 18


v

DAFTAR TABEL
Halaman
1
2
3
4
5
6
7

Running time pada enkripsi AES-128 .............................................................................................. 13
Running time pada dekripsi AES-128. ............................................................................................. 13
Running time pada pembangkitan kunci RSA-2048 ........................................................................ 13
Running time pada enkripsi RSA-2048 ............................................................................................ 14
Running time pada dekripsi RSA-2048. ........................................................................................... 14
Running time pada fungsi hash SHA-2. ........................................................................................... 15
Running time pada sistem secara keseluruhan. ................................................................................ 15


DAFTAR GAMBAR
Halaman
1
2
3
4
5
6
7
8
9
10
11

Enkripsi dan dekripsi (Kurniawan 2008). ......................................................................................... 2
Protokol Two Central Facilities (Schneier 1996). ............................................................................ 4
The Security Life Cycle (Bishop 2003). ............................................................................................ 5
Diagram alir pengiriman kunci simetri AES dari CTF. .................................................................... 8
Diagram box plot running time pada enkripsi AES-128. ................................................................ 13
Diagram box plot running time pada dekripsi AES-128. ................................................................ 13
Diagram box plot running time pada pembangkitan kunci RSA-2048. .......................................... 14
Diagram box plot running time pada enkripsi RSA-2048. .............................................................. 14
Diagram box plot running time pada dekripsi RSA-2048. .............................................................. 14
Diagram box plot running time pada fungsi hash SHA-2. .............................................................. 15
Diagram box plot running time pada sistem secara keseluruhan. ................................................... 15

DAFTAR LAMPIRAN
Halaman
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Diagram alir pengiriman hasil suara mesin voting ke CTF ............................................................. 19
Antarmuka pembangkitan pasangan kunci RSA 2048 bit .............................................................. 20
Antarmuka pengiriman kunci publik RSA 2048 pada mesin voting ............................................... 20
Antarmuka pembangkitan kunci simetri AES 128 bit .................................................................... 21
Antarmuka pendekripsian kunci simetri AES 128 bit menggunakan kunci privat RSA 2048 bit... 21
Antarmuka pada mesin voting jika mesin voting sudah memiliki kunci simetri ............................. 22
Antarmuka mesin voting siap untuk melakukan pengiriman hasil suara ........................................ 22
Pesan error yang ditampilkan jika string request tidak berhasil terverifikasi ................................ 23
Pesan error yang ditampilkan jika mesin voting sudah mengirimkan hasil suara .......................... 23
Pesan error yang ditampilkan jika validation ID tidak berhasil terverifikasi ................................. 24
Pesan error yang ditampilkan jika tanda tangan tidak berhasil terverifikasi .................................. 24
Antarmuka tabel perolehan suara .................................................................................................... 25
Pengujian pengiriman kunci simetri ............................................................................................... 26
Pengujian pengiriman hasil suara dari mesin voting menuju CTF .................................................. 27
Pengujian tabulasi hasil suara ......................................................................................................... 28

vi

1

PENDAHULUAN
Latar Belakang
Pemilihan umum (pemilu) merupakan
sarana pelaksanaan kedaulatan rakyat. Dalam
pemilu, rakyat dapat memilih pemimpin politik
secara langsung. Yang dimaksud dengan
pemimpin politik disini adalah wakil-wakil
rakyat yang duduk di lembaga perwakilan
rakyat (parlemen) baik ditingkat pusat maupun
daerah dan pemimpin lembaga eksekutif atau
kepala pemerintahan seperti presiden, gubernur,
bupati/walikota.
Pemilu 1955 adalah pemilu pertama yang
diselenggarakan dalam sejarah kemerdekaan
bangsa Indonesia yang ketika itu baru berusia
10 tahun. Sampai dengan tahun 2009, Indonesia
tercatat telah menyelenggarakan 10 kali pemilu,
yaitu pada tahun 1955, 1971, 1977, 1982, 1987,
1992, 1997, 1999, 2004, dan 2009. Sistem
pemilu yang digunakan selama ini adalah
dengan cara penyoblosan atau penyontrengan.
Sistem pemilu konvensional seperti ini
ternyata masih memiliki beberapa kekurangan
seperti: banyaknya terjadi kesalahan dalam
proses pendaftaran pemilih, kesalahan pemilih
dalam memberi tanda pada kertas suara, proses
pengumpulan kartu suara yang berjalan lambat,
keterlambatan dalam proses tabulasi hasil
penghitungan suara dari daerah, kurang
terjaminnya kerahasiaan pemilihan (Azhari
2005), serta memerlukan biaya dan sumber
daya besar yang tidak bisa digunakan kembali
pada pemilu selanjutnya. Untuk mengatasi hal
tersebut, salah satu solusi yang dapat dilakukan
adalah menggunakan electronic voting (evoting).
Penerapan sistem pemilu secara elektronik
bukan berarti sepenuhnya terhindar dari
ancaman dan kecurangan yang mungkin terjadi
seperti halnya pada sistem pemilu konvensional.
Oleh karenanya, dibutuhkan suatu protokol
yang menangani berbagai masalah keamanan
tersebut dan diwajibkan untuk memenuhi
standar secure voting requirements. Salah satu
protokol yang dapat memenuhi standar kriteria
secure voting requirements dan memiliki
tingkat keamanan yang cukup baik adalah Two
Central Facilities Protocol. Protokol ini terdiri
atas Central Legitimazation Agency (CLA)
untuk pengesahan pemilih dan Central
Tabulating Facility (CTF) untuk perhitungan
suara (Schneier 1996).
Dan DuFeu dan Jon Harris (2001)
melakukan penelitian dengan mendeskripsikan
cara online election system bekerja. Penelitian

ini
mengimplementasikan
pembangunan
Central Legitimization Agency (CLA) dan
Central Tabulating Facilities (CTF) untuk
menerapkan pemilu yang aman. Selanjutnya
beberapa penelitian mengenai topik serupa kian
terbuka lebar. Pada tahun 2005, Sireesha, Janga
dan So-In Chakchai
(2005) melakukan
penelitian dengan memodifikasi protokol
secure election dengan Two Central Facilities.
Pada tahun 2009, penelitian dilakukan oleh
Wardhani (2009) dan Hardhienata (2009) yang
mengembangkan sistem online voting pada IPB
dengan berbasis protokol Two Central Facilities
yang hanya memanfaatkan jaringan sebatas
cakupan satu departemen di IPB.
E-voting dengan protokol Two Central
Facilities tidak dapat secara langsung
diterapkan di Indonesia. Protokol ini harus
dimodifikasi sesuai dengan kebutuhan dan
regulasi yang berlaku di Indonesia. Hal ini
dilakukan agar sistem e-voting bisa berjalan
tanpa melanggar norma-norma yang ada di
Indonesia.
Penelitian ini bekerjasama dengan KPU
Bogor dan Dinas Perhubungan dan Komunikasi
Informatika Kota Bogor untuk menganalisis dan
mempelajari berbagai keperluan pemilihan
umum kepala daerah Kota Bogor sesuai dasar
hukum berkaitan yang berlaku di Indonesia.
Tujuan
Tujuan utama dari penelitian ini adalah
mengembangkan sistem pengiriman hasil suara
dengan protokol Two Central Facilities yang
disesuaikan untuk kepentingan pemilihan
kepala daerah di Kota Bogor serta melakukan
analisis terhadap waktu pengiriman data
(running time), dan melakukan analisis
pengaruh penggunaan algoritme kriptografi
terhadap waktu pengiriman data (running time)
sistem keseluruhan.
Ruang Lingkup
Pada protokol Two Central Facilities
konvensional, selama pemilihan berlangsung,
jalur komunikasi antara tiga entitas aktif yaitu:
voter, CLA, dan CTF selalu terbuka. Pada versi
yang sudah dimodifikasi, akan ada dua sesi
yaitu:
1 Sesi ketika pemilihan sedang berlangsung.
2 Sesi ketika pemilihan sudah selesai.
Pada sesi pertama, jalur komunikasi yang
terbuka hanyalah jalur komunikasi antara mesin
voting dan CLA, dan hasil suara dari tiap-tiap
voter akan diakumulasikan ke dalam basis data
internal pada mesin voting. Barulah pada sesi

2

kedua, jalur komunikasi antara mesin voting
dengan CTF akan dibuka, dan pada sesi ini pula
hasil akumulasi sementara yang ada pada mesin
voting dikirim ke CTF.
Penelitian dilakukan bersama dua rekan
yang lain yaitu Fitrah Satrya Fajar Kusumah
dan Alfian Prayanta. Kusumah (2012) meneliti
pemodifikasian protokol voting secara global
berdasarkan kesepakatan dengan KPU Bogor,
Prayanta (2012) mengembangkan sistem
otentikasi voter menggunakan media mifare
smart card. Kedua rekan penulis melakukan
penelitian dan pengembangan sistem pada sesi
ketika pemilihan sedang berlangsung (sesi
pertama pada protokol Two Central Facilities
yang dimodifikasi), dan penulis akan
melakukan penelitian pada sesi ketika
pemilihan sudah selesai (sesi kedua pada
protokol Two Central Facilities yang
dimodifikasi)
yaitu
merancang
dan
mengembangkan sistem pengiriman hasil suara,
serta melakukan analisis terhadap waktu
pengiriman, dan melakukan analisis pengaruh
penggunaan algoritme kriptografi terhadap
waktu pengiriman data sistem keseluruhan.
Manfaat Penelitian
Manfaat dari penelitian ini adalah
menghasilkan model simulasi e-voting dimulai
dari proses pengiriman hasil suara yang dapat
dikembangkan lebih lanjut untuk diterapkan
pada pemilihan kepala daerah kota Bogor.

TINJAUAN PUSTAKA
Protokol
Suatu protokol menurut Schneier (1996)
adalah serangkaian langkah yang melibatkan
dua pihak atau lebih dan dirancang agar dapat
menyelesaikan suatu tugas.
Protokol memiliki berbagai karakteristik
seperti:
1 Protokol memiliki urutan dari awal hingga
akhir.
2 Setiap langkah harus dilaksanakan secara
bergilir.
3 Suatu langkah tidak dapat dikerjakan bila
langkah
sebelumnya
belum
selesai
dilakukan.
4 Diperlukan dua pihak atau lebih untuk
melaksanakan protokol.
5 Protokol harus mencapai dan memberikan
suatu hasil.
6 Setiap orang yang terlibat dalam protokol
harus mengetahui terlebih dahulu mengenai

protokol dan seluruh langkah yang akan
dilaksanakan dalam protokol.
7 Setiap orang yang terlibat dalam protokol
harus menyetujui untuk mengikutinya.
8 Protokol
tidak
boleh
menimbulkan
kerancuan (ambigu) dan tidak boleh timbul
kesalahpahaman.
9 Protokol harus lengkap, harus terdapat aksi
yang spesifik untuk setiap kemungkinan
situasi.
Kriptografi
Kriptografi menurut Schneier (1996) adalah
seni dan ilmu untuk menjaga keamanan pesan.
Beberapa istilah menurut Kurniawan (2008)
yang sering digunakan dalam kriptografi antara
lain:
a Plaintext: Semua data yang belum diproses
melalui
suatu
algoritme
kriptografi.
Plaintext dapat berupa teks, gambar atau
bentuk lainnya.
b Ciphertext:
Hasil
proses
algoritme
kriptografi dari suatu plaintext.
c Enkripsi:
Proses
pengubahan
pesan
sedemikian
sehingga
isi
pesan
disembunyikan. Enkripsi juga dapat
dikatakan sebagai proses pengubahan dari
plaintext ke ciphertext, dengan algoritme
kriptografi tertentu.
d Dekripsi: proses pengubahan kembali dari
ciphertext ke plaintext dengan algoritme
kriptografi tertentu.
e Cipher: Suatu algoritme kriptografi yang
dapat melakukan enkripsi dan dekripsi.
f Key: Parameter kunci yang digunakan oleh
cipher dalam melakukan proses enkripsi dan
dekripsi.
g Message digest: Ukuran byte kecil yang
menunjukkan ukuran plaintext.
h Hash: Nama lain dari message digest.
Skema proses enkripsi dan dekripsi secara
umum dapat dilihat pada Gambar 1.

Plaintext

Original
Plaintext

Ciphertext
Enkripsi

Dekripsi

Gambar 1 Enkripsi dan dekripsi (Kurniawan
2008).
Algoritme RSA
Algoritme RSA dinamakan berdasarkan
nama tiga orang penemunya yakni Ron Rivest,
Adi Shamir, dan Leonard Adleman. Keamanan
algoritme RSA didapatkan dari sulitnya
memfaktorkan bilangan yang besar menjadi

3

faktor-faktor prima. Pemfaktoran dilakukan
untuk memperoleh kunci privat. Algoritme RSA
memiliki besaran-besaran sebagai berikut:
1
2
3
4
5
6
7

p dan q bilangan prima
N = p. q
φ (N) =(p-1)(q-1)
e (kunci enkripsi)
d (kunci dekripsi)
m (plaintext)
c (ciphertext)

(rahasia)
(tidak rahasia)
(rahasia)
(tidak rahasia)
(rahasia)
(rahasia)
(tidak rahasia)

Deskripsi sederhana dari algoritme RSA
dijelaskan sebagai berikut. Diberikan nilai N,
dengan N adalah:
N=p.q
dengan p dan q adalah dua bilangan prima besar
dengan ukuran yang sama.
Diberikan nilai e dan d dengan ketentuan
sebagai berikut:
ed = 1 mod φ (N) dan φ (N) = (p-1)(q-1)
N adalah RSA modulus, e adalah encryption
exponent, dan d adalah decryption exponent.
(N,e) adalah kunci publik yang digunakan untuk
enkripsi pesan. (N,d) adalah kunci rahasia atau
kunci privat yang digunakan untuk melakukan
proses dekripsi ciphertext atau pesan yang telah
dienkripsi ke pesan sebenarnya (Boneh 1999).
Pesan adalah bilangan integer M, untuk
melakukan proses enkripsi M menggunakan
cara C = Me mod N. Untuk melakukan proses
dekripsi ciphertext digunakan perhitungan M =
Cd mod N dengan Cd = Med = M (mod N)
(Boneh 1999).
Algoritme AES
AES merupakan algoritme kriptografi yang
didesain untuk beroperasi pada blok pesan 128
bit dan menggunakan tiga variasi blok kunci
dengan panjang 128 bit, 192 bit, atau 256 bit.
Penelitian ini menggunakan algoritme AES
dengan panjang kunci 128 bit. Empat proses
utama algoritme AES sebagai berikut:
1 SubBytes (Transformasi Subtitusi Byte).
2 ShiftRows (Transformasi Pergeseran Baris).
3 MixColumns (Transformasi Percampuran
Kolom).
4 AddRoundKey (Transformasi Penambahan
Kunci).
Struktur algoritme secara umum cukup
sederhana, dengan proses baik enkripsi maupun
dekripsi diawali proses AddRoundKey, diikuti

sembilan round yang masing-masing tersusun
atas empat proses, dan diakhiri round kesepuluh
yang terdiri atas tiga proses. Proses pada round
kesepuluh dimulai yaitu : SubBytes, ShiftRows,
dan
AddRoundKey
yang
menghasilkan
ciphertext (Adiwidya 2009).
Secure Hash Algorithm (SHA)-2
Untuk menghindari kriptanalisis yang
disebabkan oleh collision pada SHA-1,
dikembangkan
algoritme-algoritme
penggantinya. Algoritme SHA generasi
selanjutnya disebut juga algoritme SHA-2.
Penelitian menggunakan salah satu varian dari
algoritme SHA-2, yaitu SHA-256. Algoritme
SHA-256 dapat digunakan untuk menghitung
nilai message digest dari sebuah pesan, yang
memiliki panjang maksimum 264 bit. Algoritme
ini menggunakan sebuah message schedule
yang terdiri atas 64 elemen 32-bit word, delapan
buah variabel 32-bit, dan variabel penyimpanan
nilai hash 8 buah word 32-bit. Hasil akhir dari
algoritme SHA-256 adalah sebuah message
digest sepanjang 256-bit (Nugraha 2009).
Electronic Voting (E-voting)
Pengertian dari electronic voting (e-voting)
secara umum adalah penggunaan teknologi
komputer pada pelaksanaan voting. Pilihan
teknologi yang digunakan dalam implementasi
dari e-voting sangat bervariasi, seperti
penggunaan smart card untuk autentikasi
pemilih, penggunaan internet sebagai sistem
pemungutan suara, penggunaan touch screen
sebagai pengganti kartu suara, dan masih
banyak variasi teknologi
yang digunakan.
Penerapan e-voting telah berjalan di beberapa
negara di benua Eropa dan Amerika. Masingmasing negara memiliki sistem e-voting
tersendiri yang telah disesuaikan dengan
keadaan dan infrastruktur yang dimiliki negara
tersebut. Sebagai contoh, negeri Belanda
memiliki sistem e-voting yang dinamakan
Rijnland Internet Election System (RIES).
Sistem ini menggunakan internet sebagai media
pengumpulan suara. Walaupun sistem e-voting
memberikan banyak keuntungan bagi manusia
dalam melaksanakan pemungutan suara,
terdapat beberapa permasalahan yang muncul
akibat dari implementasi sistem ini:



Tingkat keamanan sistem e-voting.
Penggunaan internet yang sangat rentan
dengan gangguan dari luar. Muncul dugaan
bahwa dapat terjadi perubahan data hasil
pemungutan suara. Untuk itu, penggunaan

4



algoritme enkripsi dalam e-voting mulai
dianjurkan.
Penggunaan perangkat lunak yang tidak
dapat diaudit oleh publik. Kekhawatiran
yang muncul adalah adanya kecurangan
yang dapat memanipulasi hasil pemungutan
suara.
Masalah-masalah
di
atas
mengakibatkan
terjadinya
kontroversi
terhadap keabsahan hasil penghitungan
suara, yang menyebabkan implementasi evoting tidak efektif, karena menghasilkan
permasalahan yang sama dengan sistem
voting
standar.
Untuk
mengatasi
permasalahan itu, diperlukan sebuah standar
yang mengatur tentang pelaksanaan e-voting
(Azhari 2005).

Protokol Two Central Facilities
Menurut Schneier (1996), protokol Two
Central Facilities adalah sebagai berikut:
1 Setiap pemilih mengirimkan pesan kepada
CLA dan meminta nomor validasi,
2 CLA melakukan pengiriman balik dengan
nomor validasi acak. CLA menyimpan satu
daftar nomor validasi.
CLA juga
mempertahankan daftar nomor validasi
penerima,
mengantisipasi
seseorang
memilih dua kali,
3 CLA mengirimkan daftar nomor validasi
kepada CTF,
4 Setiap pemilih memilih nomor identifikasi
secara acak. Selanjutnya pemilih dapat
membentuk sebuah pesan dengan angka,
nomor validasi yang diperoleh dari CLA,
dan pilihannya. Pesan ini lalu dikirimkan
kepada CTF,
5 CTF akan memeriksa dan membandingkan
nomor validasi dengan daftar yang
dikirimkan CLA. Jika nomor validasi
terdapat pada daftar, nomor tersebut akan
disilang untuk menghindari
pemilih
memberikan suara dua kali. CTF akan
menambahkan nomor identifikasi pada
daftar sejumlah orang yang memberikan
suara
pada
kandidat
tertentu
dan
menambahkan satu pada penghitungan,
Setelah semua suara terpilih, CTF
mempublikasikan keluaran, seperti daftar
nomor identifikasi dan untuk siapa suara
tersebut diberikan.
Skema protokol Two Central Facilities
secara umum dapat dilihat pada Gambar 2.

Gambar 2 Protokol Two Central Facilities
(Schneier 1996).
Central Legitimization Agency (CLA)
Central Legitimization Agency (CLA)
merupakan sebuah badan yang bertugas untuk
melakukan sertifikasi pemilih. Fungsi utama
badan ini adalah untuk melakukan autentikasi
dan otorisasi pemilih. Setiap pemilih akan
mengirim sebuah pesan aman kepada CLA
untuk meminta sebuah ValidationID. CLA akan
membangkitkan
ValidationID,
mendaftarkannya secara aman kepada Central
Tabulating Facilities, dan mengembalikannya
secara aman kepada pemilih. ValidationID
bernilai kompleks sehingga secara komputasi
tidak dimungkinkan seorang penyerang untuk
memproduksi sebuah ID yang valid. CLA
memiliki daftar sejumlah ValidationID yang
valid serta daftar identifikasi pemilih dari setiap
ValidationID untuk mencegah seseorang
memiliki lebih dari satu ValidationID (DuFeu &
Harris 2001).
Central Tabulating Facilities (CTF)
Central
merupakan
melakukan
menyediakan
berikut:

Tabulating Facilities (CTF)
suatu badan yang bertugas
penghitungan
suara.
CTF
beberapa fungsionalitas sebagai

a Mengizinkan pengguna untuk meminta
sertifikasi daftar kandidat.
b Menerima secure Validation ID yang telah
disertifikasi dan ditandatangani dari CLA.
c Menerima permintaan secure vote dari
pemilih yang berwenang (dengan Validation
ID).
d Secara aman mengembalikan nama kandidat
terpilih sebagai verifikasi atas permintaan
pemilih.
e Mengizinkan pemilih untuk meminta
sertifikasi hasil pemilihan.
Dalam rangka otorisasi pemilih, CTF
melakukan pengecekan Validation ID dengan
daftar yang diterima dari CLA. Jika Validation

5

ID valid, suara pemilih akan dimasukkan ke
dalam kotak suara (DuFeu & Harris 2001).
VPN
Virtual Private Network (VPN) adalah
sebuah
teknologi
komunikasi
yang
memungkinkan untuk dapat terkoneksi ke
jaringan publik dan menggunakannya untuk
dapat bergabung dengan jaringan lokal. Dengan
cara tersebut, akan didapatkan hak dan
pengaturan yang sama seperti halnya berada di
dalam kantor atau LAN itu sendiri, walaupun
sebenarnya menggunakan jaringan milik publik.
VPN dapat terjadi antara dua end-system
atau dua komputer atau antara dua atau lebih
jaringan yang berbeda. VPN dapat dibentuk
dengan menggunakan teknologi tunneling dan
enkripsi (Andriani 2011).

METODE PENELITIAN
Penelitian ini dikembangkan dengan metode
Security Life Cycle. Berdasarkan Bishop
(2003) 6 tahap utama yang diterapkan dalam
Security Life Cycle di antaranya: (1) Ancaman
(Threats), (2) Kebijakan (Policy), (3)
Spesifikasi (Specification) (4) Perancangan
(Design) (5) Implementasi (Implementation)
serta (6) Operasi dan Pemeliharaan (Operation
and Maintenance). Metode Security Life Cycle
dapat dilihat pada Gambar 3. Oleh karena
keterbatasan waktu, penelitian ini difokuskan
dari tahap (1) hingga (5) serta disempurnakan
dengan tahap pengujian.

Ancaman (Threats)
Sebuah
ancaman
(threats)
adalah
kekerasan potensial dalam suatu sistem
keamanan. Dalam konteks pemilu, terdapat
banyak sekali serangan yang mengancam
pertukaran informasi yang terkirim dan diterima
oleh mesin voting, server CLA, dan server CTF.
Peran kriptografi sangat dibutuhkan untuk
melindungi sistem pemilu, termasuk pada saat
pengiriman hasil suara mesin voting kepada
CTF. Oleh karenanya, sistem pemilu yang akan
dibangun harus dipersiapkan agar mampu
melindungi sistem dari ancaman-ancaman yang
mungkin terjadi. Dalam penelitian ini berbagai
ancaman yang dapat timbul pada saat hasil
suara mesin voting dikirim menuju CTF akan
dianalisis dalam 4 kelas besar yakni:
a Disclosure, yakni akses terhadap informasi
oleh pihak yang tidak berwenang.
b Deception, yakni penerimaan data yang
salah.
c Disruption,
yakni
gangguan
atau
pencegahan terhadap operasi yang benar.
d Usurpation, yakni pengaturan beberapa
bagian dari sistem oleh pihak-pihak yang
tidak berwenang.
Kebijakan (Policy)
Kebijakan keamanan adalah pernyataan atas
apa
yang
diperbolehkan
dan
tidak
diperbolehkan dalam menjalankan sebuah
sistem. Metode, alat, atau prosedur untuk
melaksanakan kebijakan keamanan tersebut
dinamakan mekanisme keamanan. Sistem
pemilu yang rentan terhadap serangan
keamanan tentu membutuhkan kebijakan
tentang hal-hal yang diperbolehkan dan tidak
diperbolehkan dalam proses penyelenggaraan
pemilu secara online. Kebijakan yang dibuat
untuk menjalankan pemilu online dalam
penelitian ini mengacu pada secure voting
requirement yang ditulis dalam buku karangan
Schneier (1996) dan kebijakan KPU kota Bogor
dalam rancangan proses e-voting yang telah
diujicobakan pada pemilihan ketua RW
kelurahan Cipaku, Bogor Mei 2011.
Spesifikasi (Specification)

Gambar 3 The Security Life Cycle (Bishop
2003).

Spesifikasi adalah pernyataan baik formal
maupun informal mengenai fungsi sistem yang
diinginkan (Bishop 2003). Setelah kebijakan
pemilu dibuat, langkah selanjutnya adalah
menentukan spesifikasi sistem. Agar dapat
menjalankan mekanisme keamanan sesuai
dengan kebijakan, sistem pemilu online
membutuhkan berbagai spesifikasi keamanan.
Pada konteks penelitian kali ini spesifikasi yang

6

digunakan adalah spesifikasi informal yang
menjelaskan fungsi-fungsi yang dikerjakan
sistem agar dapat menjalankan kebijakan.
Perancangan (Design)
Tahap perancangan akan menerjemahkan
spesifikasi menjadi komponen-komponen yang
dapat diimplementasikan. Suatu perancangan
dikatakan sesuai dengan spesifikasi jika dalam
semua kondisi, rancangan yang telah dibuat
tidak mengizinkan sistem untuk melanggar
spesifikasi.
Tahap perancangan sistem pengiriman hasil
suara mesin voting menuju CTF mencakup
perancangan pengembangan sistem komunikasi
antara mesin voting dan CTF dari mulai
perancangan proses pengiriman kunci simetri
agar lebih aman hingga proses pengiriman hasil
suara mesin voting menuju CTF.
Implementasi (Implementation)
Pada tahap ini hasil analisis dan
perancangan akan diimplementasikan menjadi
sistem dengan lingkungan implementasi sebagai
berikut:
a
b
c
d
e

Platform: Web base PHP.
RSA (2048 bits): Enkripsi kunci publik.
AES (128 bits): Enkripsi kunci simetri.
SHA-2 (256 bits): Signature/Hashing.
VPN: Pengamanan jalur komunikasi.

Pengujian (Testing)
Tahap pengujian dilakukan untuk menguji
apakah sistem yang dibangun memberi hasil
keluaran seperti yang diharapkan. Pengujian
pada penelitian ini dilakukan dengan metode
Black Box dan simulasi.

HASIL DAN PEMBAHASAN
Ancaman (Threats)
Seiring
dengan
kemajuan
teknologi
komunikasi saat ini, ancaman terhadap
pengiriman data yang bersifat rahasia seperti
hasil pilihan pada mesin voting menuju CTF
menjadi hal yang sangat penting untuk
diperhatikan dalam pembangunan sistem
Electronic Voting. Keamanan komunikasi
antara mesin voting dan CTF sangat diperlukan
untuk menjaga tingkat kepercayaan voter
kepada
instansi
atau
lembaga
yang
menyelenggarakan pemilu. Oleh karena itu
pembangunan sistem ini harus dimulai dari
analisis mengenai berbagai ancaman yang
mungkin menyerang sistem komunikasi data.

Berbagai ancaman yang mungkin timbul antara
lain:
a

Pengintaian (snooping), yakni penahanan
informasi oleh pihak yang tidak berwenang.
Secara sederhana ancaman ini dapat
didefinisikan bahwa terdapat suatu entitas
yang tidak memiliki otoritas ikut mendengar
atau membaca komunikasi sistem informasi
yang bersifat rahasia. Dalam konteks
pengamanan pengiriman hasil suara,
ancaman ini berarti bahwa terdapat entitas
yang tidak berwenang dan berhasil
mendengar komunikasi pengiriman hasil
suara dari mesin voting menuju CTF.
Ancaman
snooping
dapat
diatasi
menggunakan layanan keamanan pesan
kerahasiaan (confidentiality).
b Modifikasi atau pengubahan (modification
or alternation) yakni pengubahan informasi
yang dilakukan oleh pihak penyerang. Jika
hasil suara yang dikirimkan oleh mesin
voting telah diubah, CTF akan menerima
kiriman hasil suara yang tidak valid dan
dianggap benar oleh CTF.
Ancaman
modifikasi terhadap hasil suara dapat
menyebabkan
terjadinya
peningkatan
ancaman disruption dan usurpation.
Layanan keamanan integritas (integrity)
digunakan untuk menanggulangi masalah
ini.
c Penyamaran (masquering) yakni peniruan
terhadap suatu entitas terhadap entitas yang
lain. Ancaman ini akan mengumpan korban
agar
percaya
bahwa
entitas
yang
berkomunikasi dengannya adalah pihak
yang benar, meski pada kenyataannya pihak
tersebut adalah penyerang (attacker) yang
bukan merupakan pihak yang berwenang.
Sebagai contoh, saat mesin voting akan
mengirimkan hasil suara kepada CTF, pihak
yang menerima hasil suara
tersebut
bukanlah CTF melainkan server lain yang
mengaku sebagai CTF. Untuk menangani
ancaman
ini
konsep
autentifikasi
(authentication) dapat digunakan untuk
mencegah serangan ini. Masquerading
termasuk ancaman dalam kelas deception
dan usurpation.

Kebijakan (Policy)
Kebijakan
yang
diterapkan
dalam
membangun Electronic Voting mengacu pada
buku Schneier (1996) mengenai syarat-syarat
penyelenggaraan sistem pemilihan umum yang
aman. Menurut Schneier secure voting yang
dibangun secara komputerisasi akan digunakan

7

jika terdapat protokol yang menjamin dua hal di
bawah ini, yaitu:
1 Privasi individu.
2 Pencegahan terhadap kecurangan.
Suatu protokol yang ideal harus memiliki 6
persyaratan sebagai berikut:
1 Hanya pemilih yang berhak yang dapat
memberikan suara (autentifikasi);
2 Tidak boleh memberikan lebih dari satu
suara;
3 Tidak boleh menentukan orang lain harus
memilih untuk siapa;
4 Tidak ada yang bisa menduplikasi suara
orang lain;
5 Tidak boleh mengubah pilihan orang lain;
6 Setiap pemilih dapat memastikan bahwa
suara mereka sudah dikirimkan dan
terhitung dalam penghitungan akhir.
Spesifikasi (Specification)
Secara umum, sistem pengiriman hasil suara
mesin voting menuju CTF yang dibangun dapat
memenuhi spesifikasi umum sebagai berikut:
 Hanya mesin voting yang terdaftar yang
dapat mengirimkan suara.
o Terdapat validation ID yang acak dan
unik untuk setiap mesin voting.
o Seluruh mesin voting aktif didaftarkan
pada VPN dengan IP tertentu sehingga
IP asing tidak akan bisa mengakses
jaringan tersebut.
 Tidak boleh mengirimkan lebih dari satu
hasil suara.
o Jika mesin voting telah melakukan
pengiriman dan kembali melakukan
pengiriman, CTF akan mengembalikan
pesan “Mesin voting tersebut sudah
melakukan pengiriman sebelumnya”.


dengan CTF karena kunci simetri yang
digunakan dibangkitkan secara otomatis secara
acak oleh CTF yang kemudian dikirimkan
kepada mesin voting menggunakan algoritme
kunci asimetri (RSA). Mesin voting hanya bisa
menerima kunci simetri dari CTF yang telah
diotentikasi. Kunci simetri yang diberikan
hanya bisa didekripsi oleh mesin voting, karena
hanya pasangan kunci publik yang diberikan
kepada CTF dan pasangan kunci privat
disimpan oleh mesin voting.
Perancangan (Design)
Perancangan sistem ini terbagi menjadi dua
bagian yakni perancangan sistem secara umum
dan khusus. Perancangan secara umum
membahas keseluruhan komunikasi yang
dilakukan antara mesin voting dan CTF,
sedangkan
perancangan
secara
khusus
difokuskan untuk membahas secara lebih rinci
mengenai pengembangan sistem.
Perancangan Sistem
Sistem ini melayani dua fungsionalitas agar
CTF dapat berkomunikasi dengan mesin voting
yaitu:
1
2

Selain itu, sistem ini juga melayani satu
fungsionalitas tambahan pada CTF yakni proses
tabulasi hasil suara pada CTF.
Proses pengiriman kunci simetri AES dari
CTF menuju mesin voting dilakukan melalui
langkah-langkah sebagai berikut:
1

2
3

Setiap pemilih dapat memastikan bahwa
suara mereka sudah dikirimkan dan
terhitung dalam penghitungan akhir.
o Jika sebuah mesin voting mengirimkan
hasil suara, CTF akan mengakumulasi
dan
menghitung
kandidat
dan
mengembalikan hasil penghitungan
sementara. Hal ini menyebabkan mesin
voting dapat memastikan bahwa hasil
suaranya benar telah dihitung oleh
CTF.

Secara khusus spesifikasi tambahan yang
dikembangkan dalam penelitian ini adalah
bahwa sistem menjamin agar mesin voting
dapat melakukan komunikasi secara lebih aman

Pengiriman kunci simetri AES.
Pengiriman hasil suara mesin voting.

4

5
6

Mesin voting membangkitkan pasangan
kunci publik dan privat menggunakan
algoritme RSA dengan panjang kunci 2048.
Mesin voting mengirimkan pasangan kunci
publik ke CTF.
CTF membangkitkan kunci simetri
menggunakan
algoritme
AES
dan
menerima pasangan kunci publik dari
mesin voting.
CTF melakukan proses enkripsi kunci
simetri dengan pasangan kunci publik yang
didapat dari mesin voting.
CTF mengirimkan hasil enkripsi kunci
simetri (ciphertext) ke mesin voting.
Mesin voting menerima ciphertext dan
melakukan
proses
dekripsinya
menggunakan pasangan kunci privat yang
sudah dibangkitkan sebelumnya.

Diagram alir pengiriman kunci simetri AES
dari CTF dapat dilihat pada Gambar 4.

8

Mulai

Mesin
Membangkitkan
pasangan kunci
publik

Pasangan
kunci publik
(N, E)

Selesai

Plaintext
(kunci
simetri AES)

7

8
Dekripsi ciphertext
menggunakan kunci
privat RSA

Pengiriman
pasangan kunci
publik ke CTF

CTF membangkitkan
kunci simetri AES
128 bit

6

Mengirimkan
ciphertext
ke mesin voting

9

10
11

Enkripsi (kunci
simetri AES)
menggunakan RSA

Ciphertext

12

Gambar 4 Diagram alir pengiriman kunci
simetri AES dari CTF.
Di dalam sistem terdapat tiga entitas yaitu
mesin voting, CLA, dan CTF yang ingin saling
berkomunikasi
secara
aman
sehingga
dibutuhkan tiga kunci simetri unik. Pengiriman
kunci simetri dari CLA untuk mesin voting dan
pengiriman kunci simetri dari CLA untuk CTF
memiliki proses yang sama dengan pengiriman
kunci simetri dari CTF untuk mesin voting.
Fungsionalitas kedua yang dilayani oleh
sistem ini adalah pengiriman hasil suara mesin
voting
menuju
CTF.
Langkah-langkah
komunikasi yang dilakukan untuk memenuhi
fungsionalitas yang kedua adalah:
1

2

3

4

5

Mesin voting melakukan proses enkripsi
sebuah string pesan tertentu yang akan
dikirim ke CLA menggunakan kunci
simetri AES.
CLA
melakukan
proses
dekripsi
ciphertext yang diterima dari mesin voting
menggunakan kunci simetri AES, dan
melakukan verifikasi string pesan yang
diterima.
CLA mengecek status mesin voting,
apakah mesin voting tersebut sudah
pernah mengirim hasil suara sebelumnya
atau belum.
Jika sudah pernah, sistem akan berhenti
dan menampilkan pesan bahwa mesin
voting tersebut sudah pernah mengirim
hasil suara ke CTF.
Jika belum, CLA membangkitkan
validation ID untuk mesin tersebut.

13

14
15

CLA
melakukan
proses
enkripsi
validation ID menggunakan kunci simetri
AES dan mengirimnya ke CTF dan mesin
voting.
CTF menerima validation ID dan
melakukan
proses
dekripsinya
menggunakan kunci simetri AES.
Mesin voting menerima dan melakukan
proses
dekripsi
validation
ID
menggunakan kunci simetri AES.
Mesin voting melakukan proses enkripsi
hasil suara dan validation ID yang
diterima dari CLA menggunakan kunci
simetri AES.
Mesin voting menandatangani hasil suara
menggunakan hash SHA-2 256 bit.
Mesin voting mengirim signed ciphertext
hasil suara dan validation ID ke CTF.
CTF menerima dan melakukan proses
dekripsi validation ID dari mesin voting
menggunakan kunci simetri AES dan
membandingkannya dengan validation ID
yang diterima dari CLA sebelumnya.
Jika tidak cocok, sistem akan berhenti dan
menampilkan pesan bahwa terdapat
perbedaan validation ID.
Jika cocok, CTF memverifikasi tanda
tangan pada ciphertext.
CTF melakukan proses dekripsi hasil
suara menggunakan kunci simetri AES.

Diagram alir pengiriman hasil suara mesin
voting ke CTF dapat dilihat pada Lampiran 1.
Fungsionalitas ketiga adalah proses tabulasi
total hasil suara pada CTF. Fungsionaltias ini
harus dapat mengakomodir perhitungan hasil
suara yang dikirim oleh lebih dari satu mesin
voting.
Implementasi
1 Implementasi Pengiriman Kunci Simetri
Mesin voting akan memulai proses
komunikasi dengan CTF untuk kepentingan
pengiriman kunci simetri. Hal yang pertama
dilakukan adalah membuat pasangan kunci
publik dan kunci privat menggunakan algoritme
RSA 2048 bit. Antarmuka pada proses ini dapat
dilihat pada Lampiran 2, sedangkan potongan
kode program dapat dilihat seperti berikut:
69
70
71
72
73

function do_genrsa() {
var before = new Date();
var rsa = new RSAKey();
var dr = document.rsatest;
do_status("Generating RSA
Key...");

74
75

rsa.generate(parseInt(dr.bits.valu
e),dr.e.value);
tuliscookie("n", ""+

9

76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92

linebrk(rsa.n.toString(16),64) +""
);
tuliscookie("d", ""+
linebrk(rsa.d.toString(16),64) +""
); //e
//d udah ada
tuliscookie("p", ""+
linebrk(rsa.p.toString(16),64) +""
); //p
tuliscookie("q", ""+
linebrk(rsa.q.toString(16),64) +""
); //q
tuliscookie("dmp1", ""+
linebrk(rsa.dmp1.toString(16),64)
+"" );//dmp1
tuliscookie("dmq1", ""+
linebrk(rsa.dmq1.toString(16),64)
+"" );//dmq1
tuliscookie("coeff", ""+
linebrk(rsa.coeff.toString(16),64)
+"" );//coeff
dr.n.value =
linebrk(rsa.n.toString(16),64);
dr.d.value =
linebrk(rsa.d.toString(16),64);
dr.p.value =
linebrk(rsa.p.toString(16),64);
dr.q.value =
linebrk(rsa.q.toString(16),64);
dr.dmp1.value =
linebrk(rsa.dmp1.toString(16),64);
dr.dmq1.value =
linebrk(rsa.dmq1.toString(16),64);
dr.coeff.value =
linebrk(rsa.coeff.toString(16),64)
;
var after = new Date();
do_status("Key Generation Time:
" + (after - before) + "ms");
}

Akan didapat pasangan kunci publik (N,e)
dan pasangan kunci privat (N,d). Kemudian,
mesin voting akan mengirimkan pasangan kunci
publik ke CTF dan menyimpan pasangan kunci
privat. Antarmuka pada proses ini dapat dilihat
pada Lampiran 3.
Pada saat pasangan kunci publik diterima
oleh CTF, ada 2 tugas yang harus dilakukan
CTF, yaitu: pembangkitan kunci simetri AES,
dan proses enkripsi kunci simetri menggunakan
pasangan kunci publik yang diterima dari mesin
voting. Pembangkitan kunci simetri AES bisa
dilihat pada fungsi sebagai berikut:
121
122
123
124
125
126
127
128
129

private function
_generateKey($password) {
switch ($this->_strenght)
{
case AES::AES256:
return
md5($password).md5($password.'1')
;
case AES::AES192:
return
sha1($password);
case AES::AES128:
default:
return
sha2($password);

130

} }

Setelah itu, CTF akan melakukan proses
enkripsi dengan pasangan kunci publik yang
sudah diterima dari mesin voting sebelumnya
dan ciphertext hasil enkripsi kunci simetri akan
dikirim oleh CTF menuju mesin voting.
Antarmuka pada proses ini dapat dilihat pada
Lampiran 4, sedangkan potongan kode program
untuk enkripsi dapat dilihat seperti berikut:
69
70
71
72
73
74
75
76

function do_encrypt() {
var before = new Date();
var rsa = new RSAKey();
rsa.setPublic(document.rsatest.n.v
alue, document.rsatest.e.value);
var res =
rsa.encrypt(document.rsatest.plain
text.value);
var after = new Date();
if(res) {
window.location.href =
"http://localhost/skrip1/media.php
?p=" + res +
"&module=deliverKey_ctf";

77
document.rsatest.ciphertext.value
= linebrk(res, 64);
78
79
80

document.rsatest.decrypted.value =
"";
do_status("Encryption Time: "
+ (after - before) + "ms");
}

Setelah mesin voting menerima ciphertext,
mesin voting akan melakukan proses dekripsi
menggunakan pasangan kunci privat yang
hanya dimiliki oleh mesin voting. Antarmuka
pada proses ini dapat dilihat pada Lampiran 5,
sedangkan potongan kode program untuk
dekripsi dapat dilihat seperti berikut:
55
56
57
58
59
60

function do_decrypt() {
do_status("Decrypting...");
var before = new Date();
var rsa = new RSAKey();
var dr = document.rsatest;
rsa.setPrivateEx(