2 bab ii dasar teori

advertisement
2 BAB II
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.
Adapun input dan output dari e-voting dapat dilihat pada Gambar
2.1.
Gambar 2.1 Input dan output dari e-voting
9
10
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
11
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
12
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.
13
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 [6].
14
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[3].
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
15
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 saling
bertukar informasi [8].
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
16
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 [8].
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.
17
•
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.
18
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");
}
}
19
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 [9].
Gambar 2.2 Arsitektur JSP [9]
2.7.3 Java Bean
Kegunaan dari JavaBeans tidak hanya digunakan pada spesifikasi
JSP. Bagaimanapun juga, mereka menyediakan fungsi yang
20
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.
Berikut ini merupakan contoh bagaimana menggunakan user
JavaBean pada halaman JSP:
Download