DASAR TEORI
Pada bab ini akan dibahas mengenai tinjauan pustaka yang menjadi dasar dari pembuatan Tugas Akhir. Pokok-pokok permasalahan yang dibahas diantaranya definisi elektronik voting, Paillier kriptosistem, barcode, pemrograman java dan jaringan.
2.1 Elektronik Voting
Elektronik voting pertama kali ditemukan oleh Thomas A. Edison pada tahun 1869[5]. Elektronik voting yang biasa disebut e-voting adalah salah satu bentuk pemilihan suara dari sejumlah option kandidat dengan memanfaatkan teknologi elektronisasi untuk
membuat pekerjaan lebih cepat selesai [7]. Contoh teknologi evoting adalah punch cards, optical scan voting system, dan touch screen system. Teknologi ini dapat mentransmisikan kertas suara (ballot) dan hasil suara melalui telepon, jaringan komputer atau
internet. E-voting menggunakan protokol-protokol pemilihan yang disebut sebagai “secure election”. Protokol- protokol ini berisi aturanaturan yang harus dipatuhi untuk mendapatkan hasil sesuai dengan yang diinginkan.
2.2 Metode Scratch and Vote
Metode scratch and vote adalah sebuah metode pada sistem pemilihan suara dengan maksud untuk meminimalkan harga dan kompleksitas sistem, yaitu dengan cara:
• Pemilihan suara yang menggunakan teknik kriptografi.
• Kertas suara (ballot) yang bersifat paper-based dan dapat
dicetak menggunakan teknologi yang sedang berkembang
saat ini.
• Kertas suara yang verifikasinya tanpa melibatkan petugas
pemilihan suara.
• Perhitungan hasil suara yang hanya mempercayakan pada
proses dekripsi dan menggunakan homomorphic
enkripsi.
• Hasil suara dienkripsi dan dipublish pada sebuah bulletin
board dengan nama pemilih atau nomer identitas pemilih
dalam bentuk asli (tanpa dienkripsi). Sehingga setiap
orang dapat melihat bahwa Alice telah melakukan
pemilihan tapi tidak tahu apa yang dia pilih.
Kriptografi dipakai pada metode ini dikarenakan kriptografi dapat
menggabungkan public auditability dan ballot secrecy. Adapun
langkah-langkah pemilihan suara adalah sebagai berikut :
• Sign in : voter harus login terlebih dahulu kemudian baru
mendapatkan webpage kertas suara dengan urutan list
kandidat yang bersifat random untuk setiap kertas suaranya.
Petugas pemilihan tidak mengetahui urutan kandidat yang
telah dirandom disetiap webpage kertas suara. Webpage
kertas suara memiliki garis pembatas secara vertikal ditengah
kertas untuk memisahkan list kandidat yang terletak disebelah
kiri dan checkbox yang terletak disebelah kanan. Selain itu
juga garis pembatas secara horizontal untuk memisahkan
dengan 1D-barcode[2].
• Make selection : Pemilih mengisi webpage kertas suara
kandidat yang telah disediakan.
• Print Ballot : Webpage kertas suara yang telah diisi secara
benar kemudian di cetak sehingga dapat dipakai sebagai
barang bukti bagi voter bila terjadi kesalahan.
• Detach ballot halves : Webpage kertas suara yang telah
dicetak, dipisah berdasarkan garis pembatas kertas. Dimana
kertas suara yang berisi list kandidat pilihan akan dibuang.
Dengan catatan bagian yang dibuang tidak berisi informasi
lain, hanya berisi urutan list kandidat.
• Casting : Setiap voter dapat memberikan kertas suara yang
berisi barcode kepada petugas pemilihan untuk membaca arti
dari image barcodenya. Barcode dibaca dengan menggunakan
sebuah alat scanner.
• Verification : Voter dapat log on ke website bulletin board
untuk memverifikasi hasil pilihan voter yang telah dihitung.
2.3 Paillier Kriptosistem
Sistem kriptografi Paillier adalah sebuah sistem yang berbasis algoritma asimetris probabilistik. Algoritma enkripsi yang digunakan adalah sebuah algoritma kriptografi kunci publik. Sistem ini ditemukan oleh Pascal Paillier pada tahun 1999[8]. Sistem kriptografi Paillier dibuat berdasarkan pemikiran bahwa untuk menghitung kelas residu yang ke–n, perhitungan yang dibutuhkan sangat sulit. Hal ini dikenal sebagai asumsi Composite Residuosity (CR). Contohnya adalah penggunaan himpunan derajat pada sebuah bilangan n = pq yang sangat sulit untuk difaktorkan, dimana p dan q adalah dua buah bilangan prima.
Dapat dilihat bahwa teknik trapdoor ini dapat menyediakan sebuah blok pembangun kriptografi untuk mendapat sebuah kriptosistem yang berbasis kunci publik[8]. Sistem kriptografi Paillier ini memiliki properti – properti seperti random-self-reducibility, additive homomorphic property, dan self–blinding. Properti-properti inilah yang menyebabkan
kriptosistem Paillier ini dapat digunakan untuk berbagai keperluan, seperti pemungutan suara elektronik dan uang elektronik. Pada sistem pemilihan suara elektronik, kriptosistem Paillier ini dapat merupakan pilihan yang cocok karena beberapa pertimbangan :
1. Homomorphic property. Properti homomorfisme
memungkinkan penjumlahan nilai yang dienkripsi dengan
nilai lain, kemudian hasil penjumlahannya dapat
didekripsi tanpa mengetahui nilai–nilai yang
membentuknya. Dengan maksud agar suara hasil pilihan
voter tetap terjaga kerahasiaannya. Sebuah fungsi
enkripsi F(M) dikatakan homomorphic jika F(M1)F(M2)
= F(M1 +M2), yaitu, jika perkalian dua pesan yang
terenkripsi adalah sama dengan penjumlahan dua pesan
yang terenkripsi.
2. Karena properti semantic security dari kriptosistem
Paillier ini, maka suara yang masuk dapat dilindungi dari
serangan yang bersifat Chosen Plaintext attack, namun
karena sifatnya yang malleable, maka suara yang masuk
masih dapat diserang melalui metode Chosen Ciphertext
attack, kecuali apabila menggunakan skema ROM.
3. Properti malleability (kelenturan logika didalam
pemrograman komputer) yang dimiliki oleh kriptosistem
Paillier ini.
2.3.1 Key Generation
Key generation adalah pembuatan kunci secara elektronis dengan menggunakan suatu alat pembangkit rangakain kunci (key generator). Metode ini sudah menggunakan alat elektronik dalam pembangkitan kuncinya. Biasanya menggunakan RK Generator seperti RNG (Random Number Generator). Proses key generation pada Paillier kriptosistem adalah sebagai berikut :
1. Pilih 2 bilangan prima p dan q secara random dan bebas
disetiap bilangan prima tersebut.
2. Hitung nilai n, dimana n =pq and λ = lcm(p − 1,q − 1)
3. Pilih bilangan integer g secara random dimana
4. Bilangan basis g yang dipilih secara acak dari elemenelemen
yang ordenya dapat dibagi dengan n dengan
mengecek modular multiplicative inverse
Dimana fungsi L adalaha sebagai berikut
5. Public key untuk enkripsi adalah (n,g)
6. Private key untuk dekripsi adalah (λ,μ).
2.3.2 Enkripsi
Di bidang kriptografi, enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus .
Algoritma enkripsi pada Paillier kriptosistem :
1. Pesan m dienkripsi dimana
2. Pilih r secara random r dimana
3. Perhitungan ciphertext : .
2.3.3 Deskripsi
Algoritma deskripsi pada Paillier kriptosistem :
1. Ciphertext
2. Compute message:
2.4 Barcode
Barcode adalah sebuah perwakilan informasi yang dapat terbaca oleh mesin. Biasanya berupa baris warna hitam di atas latar belakang putih yang terpola jaraknya, yang mewakili 1 dan 0 dalam bilangan biner. Baris-baris ini mengandung informasi yang mudah terbaca oleh mesin.
2.4.1 Barcode Code 39
Code 39 dapat mengkodekan karakter alphanumeric yaitu angka desimal dan huruf besar serta tambahan karakter spesial-.*$/%+. Satu karakter dalam Code 39 terdiri dari 9 elemen yaitu 5 bar (garis vertikal hitam) dan 4 spasi (garis vertikal putih) yang disusun bergantian antara bar dan spasi. 3 dari 9 elemen tersebut memiliki ketebalan lebih tebal dari yang lainnya oleh karenanya kode ini biasa disebut juga code 3 of 9 , 3 elemen yang lebih
tebal tersebut terdiri dari 2 bar dan 1 spasi. Elemen yang lebar mewakili digit biner 1 dan elemen yang sempit mewakili digit biner 0.
2.5 Buletin Board
Bulletin board ditemukan oleh Benaloh, merupakan bentuk komunikasi pada proses pemilihan suara. Buletin board adalah channel komunikasi yang berisi data yang telah ditulis yang tidak dapat diubah atau dihapus, bersifat read-only dan dapat dibaca public. Bulletin board harus meng-autentikasi voter, dan menghandle storage dan pembuktian dari hasil suara.
2.6 Jaringan
Jaringan Komputer dapat diartikan sebagai suatu himpunan interkoneksi sejumlah komputer otonom. Dua buah komputer dikatakan membentuk suatu network bila keduanya dapat salin bertukar informasi. Secara umum, jaringan mempunyai beberapa manfaat yang lebih dibandingkan dengan komputer yang berdiri sendiri dan dunia usaha telah pula mengakui bahwa akses ke teknologi informasi modern selalu memiliki keunggulan kompetitif dibandingkan pesaing yang terbatas dalam bidang teknologi. Jaringan memungkinkan manajemen sumber daya lebih efisien. Misalnya, banyak pengguna dapat saling berbagi printer tunggal dengan kualitas tinggi, dibandingkan memakai printer kualitas rendah di masing-masing meja kerja. Selain itu, lisensi perangkat lunak jaringan dapat lebih murah dibandingkan lisensi standalone terpisah untuk jumlah pengguna sama. Jaringan membantu mempertahankan informasi agar tetap andal dan uptodate. Sistem penyimpanan data terpusat yang dikelola dengan baik memungkinkan banyak pengguna mengaskses data dari berbagai lokasi yang berbeda, dan membatasi akses ke data sewaktu sedang diproses.
Jaringan membantu mempercepat proses berbagi data (data sharing). Transfer data pada jaringan selalu lebih cepat dibandingkan sarana berbagi data lainnya yang bukan jaringan.
Jaringan memungkinkan kelompok kerja berkomunikasi dengan lebih efisien. Surat dan penyampaian pesan elektronik merupakan substansi sebagian besar sistem jaringan, disamping sistem penjadwalan, pemantauan proyek, konferensi online dan
groupware, dimana semuanya membantu team bekerja lebih produktif.
2.6.1 Jaringan LAN
LAN (Local Area Network) adalah suatu kumpulan komputer, dimana terdapat beberapa unit komputer dan satu unit komputer untuk bank data (server). Antara masing-masing client maupun antara client dan server dapat saling bertukar file maupun saling
menggunakan printer yang terhubung pada unit-unit komputer yang terhubung pada jaringan LAN. Berdasarkan kabel yang digunakan ada dua cara membuat
jaringan LAN, yaitu dengan kabel BNC dan kabel UTP. Adapun keuntungan jaringan LAN :
• Pertukaran file dapat dilakukan dengan mudah (file
sharing).
• Pemakaian printer dapat dilakukan oleh semua client
(printer sharing).
• berdasarkan struktur organisasi perusahaan sehingga
keamanan data terjamin.
• File data yang keluar atau masuk dari atau ke server dapat
di kontrol.
• Proses backup data menjadi lebih mudah dan cepat.
• Resiko kehilangan data oleh virus komputer menjadi
sangat kecil sekali.
• Komunikasi antar karyawan dapat dilakukan dengan
menggunakan e-mail dan chat.
• Bila salah satu client atau server terhubung dengan
modem, maka semua atau sebagian komputer pada
jaringan LAN dapat mengakses ke jaringan internet atau
mengirimkan fax melalui satu modem.
2.7 Java
Java adalah sebuah bahasa pemrograman komputer berbasiskan kepada Object Oriented Programming. Java didesain sedemikian rupa sehingga ukurannya kecil, sederhana, dan portable (dapat dipindah-pindahkan di antara bermacam platform dan sistem operasi). Program yang dihasilkan dengan bahasa java dapat berupa applet (aplikasi kecil yang jalan di atas web browser) maupun berupa aplikasi mandiri yang dijalankan dengan program java Interpreter. Salah satu keunggulan java adalah sifatnya yang platform
independence, artinya java baik source program maupun hasil kompilasinya sama sekali tidak bergantung kepada sistem operasi dan platform yang digunakan. Source code sebuah aplikasi dengan bahasa java yang ditulis di atas sistem Windows NT misalnya, dengan gampang dapat dipindahkan ke sistem operasi UNIX tanpa harus mengedit satu baris kodepun. Ini tentunya merupakan satu nilai tambah tersendiri. Selain itu, bukan hanya source code-nya saja yang bisa dipindahpindahkan antar sistem komputer, bahkan hasil kompilasinya pun bisa dijalankan di berbagai sistem komputer. Hal ini dimungkinkan dengan adanya bytecode. Setiap program yang ditulis dengan bahasa java, hasil kompilasinya berupa bytecode, yaitu sekumpulan instruksi yang kelihatannya seperti kode mesin (machine code) tapi tidak spesifik untuk satu jenis prosesor tertentu. Kemampuan java berjalan di lebih dari satu sistem operasi tidak lepas dari keberadaan Java Virtual Machine(JVM) yang menjembatani antara bytecode dan hardware. Untuk itu diperlukan instalasi JVM pada setiap platform yang berbeda agar bytecode dapat berjalan. Jika hanya untuk keperluan
pengoperasian, hanya diperlukan Java Runtime Environment (JRE). Namun untuk membuat program, tidak bisa hanya mengandalkan JRE, dibutuhkan Java SDK (Software
Development Kit) yang mempunyai compiler didalamnya. Contoh program Halo dunia yang ditulis menggunakan bahasa pemrograman java adalah sebagai berikut:
class HaloDunia
{
public static void main(String[] argumen)
{
System.out.println("Halo Dunia");
}
}
2.7.1 Java 2 Standart Edition (J2SE)
Java 2 Platform Standard Edition (J2SE) digunakan untuk menjalankan dan mengembangkan aplikasi java pada level Personal Computer (PC). Platform ini berisi class-class inti pada java dan Graphical User Interface (GUI).
2.7.2 Java Server Pages
JavaServer PagesTM(JSP) adalah teknologi web berbasis bahasa pemrograman java dan berjalan pada platform java yang diproduksi oleh Sun Microsystem. JSP memungkinkan kita menggabungkan static HTML dengan dinamik content yang dihasilkan dari servlet. JSP juga merupakan bagian dari teknologi J2EE (Java 2 Enterprise Edition). J2EE merupakan platform java untuk pengembangan aplikasi enterprise dengan dukungan API
(Application Program Interface) yang lengkap dan portabilitas serta memberikan sarana untuk membuat aplikasi multitier yang memisahkan antara presentation layer, application layer dan data layer.
2.7.3 Java Bean
Kegunaan dari JavaBeans tidak hanya digunakan pada spesifikasi JSP. Bagaimanapun juga, mereka menyediakan fungsi yang mudah digunakan, oleh karena itu kegunaan dari javabean dapat sangat mengurangi jumlah dari elemen scripting yang dapat ditemukan pada sebuah halaman java. Yang paling utama, dari latihan javabean adalah javabean hanya merupakan class java sederhana yang mempertahankan standart peng-codingan:
• Menyediakan default, konstruktor tanpa argumen
• Menyediakan method get dan set untuk properti yang
akan digunakan.