33
BAB V
PROTOKOL PEMILIHAN ELEKTRONIK DENGAN MENGGUNAKAN PASANGAN BILINEAR
Dalam Protokol ini ada 3 user yang terlibat, yaitu :
1. 𝑃: Pollster. Pollster atau pengumpul suara adalah satu set perangkat keras dan perangkat lunak yang melaluinya pemilih dapat „mencoblos‟ kartu suara.
2. 𝑉: Validator. Sebuah server yang bertugas untuk, pertama, mencek keabsahan dari pemilih 𝑃 dan kemudian memvalidasi kartu suara yang telah „dicoblos‟.
3. 𝑇: Tallier. Sebuah server yang bertugas menghitung semua surat suara yang sah.
4.1. Tahap Awal
Pada tahap ini Key Generator Center (KGC) mempublikasikan pasangan kunci public dan kunci private dari setiap user, yaitu : 𝑄𝐼𝐷 dan 𝑆𝐼𝐷 = 𝑠𝑄𝐼𝐷, dimana 𝑠 adalah rahasia dari KGC. Lalu KGC mengirimkan 𝑄𝐼𝐷 dan 𝑆𝐼𝐷 kepada masing-masing user dengan menggunakan jalur yang aman. Dengan demikian P akan mendapat 𝑄𝑃 dan 𝑆𝑃, 𝑉 akan mendapatkan 𝑄𝑉 dan 𝑆𝑉, lalu 𝑇 mendapatkan 𝑄𝑇 dan 𝑆𝑇. Kemudian,
𝑃 menghitung : 𝑘𝑃𝑉 = 𝑒(𝑆𝑃, 𝑄𝑉) dan 𝑘𝑃𝑇 = 𝑒(𝑆𝑃, 𝑄𝑇), 𝑉 menghitung : 𝑘𝑉𝑃 = 𝑒(𝑆𝑉, 𝑄𝑃) dan 𝑘𝑉𝑇 = 𝑒(𝑆𝑉, 𝑄𝑇), 𝑇 menghitung : 𝑘𝑇𝑃 = 𝑒(𝑆𝑇, 𝑄𝑃) dan 𝑘𝑇𝑉 = 𝑒(𝑆𝑇, 𝑄𝑉).
karena sifat bilinear dari pasangan bilinear dimana :
𝑒 𝑎𝑃, 𝑏𝑄 = 𝑒(𝑃, 𝑄)𝑎𝑏, untuk sebarang 𝑎, 𝑏 ∈ ℤ dan 𝑃, 𝑄 ∈ 𝐺1
maka,
𝑘𝑃𝑉 = 𝑒 𝑆𝑃, 𝑄𝑉 = 𝑒 𝑠𝑄𝑃, 𝑄𝑉 = 𝑒(𝑄𝑃, 𝑄𝑉)𝑠 = 𝑒 𝑄𝑃, 𝑠𝑄𝑉 = 𝑒 𝑄𝑃, 𝑆𝑉 = 𝑘𝑉𝑃 , 𝑘𝑃𝑇 = 𝑘𝑇𝑃 dan
34 𝑘𝑉𝑇 = 𝑘𝑇𝑉.
KGC juga mengumumkan kepada publik fungsi kurva eliptik yang dipakai dalam perhitungan pasangan bilinear, beserta fungsi hash 𝐻 yang dipakai dalam protokol.
4.2. Protokol
4.2.1. Langkah Satu : Persiapan
Pada langkah ini, pemilih mengisi Surat suara, „membungkus‟ surat suara, lalu menguncinya untuk kemudian mendapatkan tanda tangan dari validator. Lalu mengirimnya ke validator. Secara rinci adalah sebagai berikut :
- P menghitung 𝑘𝑃𝐶𝐶 = 𝐻(𝑒(𝑐1𝑂, 𝑐2𝑂)),
dengan 𝐻 adalah fungsi hash yang dipakai dalam protokol dan 𝑐1, 𝑐2 dipilih secara acak oleh 𝑃. 𝑂 adalah pembangun 𝐺1.
- Lalu 𝑃 mengirimkan
𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑉 dan 𝐻(𝑘𝑃𝐶𝐶) ke validator 𝑉.
Keterangan Terima Hitung Kirim ke 𝑽
Kartu suara dicoblos - 𝐵 -
Pilih random - 𝑐1. 𝑐2 -
Hitung 𝑘𝑃𝐶𝐶 - 𝑘𝑃𝐶𝐶 = 𝑒(𝑐1𝑂, 𝑐2𝑂) -
Tanda tangan - 𝐵 + 𝑘𝑃𝐶𝐶 -
Kunci dengan 𝑘𝑃𝑉 - 𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑃𝑉 𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑃𝑉
Hash 𝑘𝑃𝐶𝐶 - 𝐻(𝑘𝑃𝐶𝐶) 𝐻(𝑘𝑃𝐶𝐶)
Tabel 4.1 Tabel transaksi data pada langkah satu.
35 4.2.2. Langkah Dua : Administrasi
Pada tahap ini validator menandatangani pesan yang didalamnya tersembunyi surat suara yang telah dipilih oleh pemilih, lalu mengembalikannya kepada pemilih.
Secara rinci :
- Setelah menerima 𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑉 dan 𝐻(𝑘𝑃𝐶𝐶) dari 𝑃 lalu membuka 𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑃𝑉 dengan menambahkannya 𝑘𝑉𝑃 sehingga menjadi 𝐵 + 𝑘𝑃𝐶𝐶.
- Lalu 𝑉 menandatanganinya dengan memilih secara acak 𝑟𝑉 dan menambahkan 𝐻(𝑟𝑉) ke (𝐵 + 𝑘𝑃𝐶𝐶) sehingga menjadi 𝐵 + 𝑘𝑃𝐶𝐶 + 𝐻(𝑟𝑉) lalu menguncinya dengan 𝑘𝑃𝑉 menjadi (𝐵 + 𝑘𝑃𝐶𝐶 + 𝐻 𝑟𝑉 + 𝑘𝑉𝑃). Lalu mengirimkan :
𝐵 + 𝑘𝑃𝐶𝐶+ 𝐻 𝑟𝑉 + 𝑘𝑉𝑃, 𝑟𝑉+ 𝑘𝑉𝑇 dan 𝐻 𝑘𝑃𝐶𝐶 + 𝑘𝑉𝑇 ke 𝑃.
Keterangan Terima dari 𝑽 Hitung Kirim ke 𝑷
𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑃𝑉 - -
𝐻(𝑘𝑃𝐶𝐶) - -
Buka kunci 𝑘𝑃𝑉 - 𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑃𝑉+ 𝑘𝑉𝑃 -
- 𝐵 + 𝑘𝑃𝐶𝐶 -
Pilih sebarang integer 𝑟𝑉 - 𝑟𝑉 -
Digest 𝑟𝑉 - 𝐻(𝑟𝑉) -
Tanda tangan - 𝐵 + 𝑘𝑃𝐶𝐶+ 𝐻(𝑟𝑉) -
Kunci dengan 𝑘𝑉𝑃 - 𝐵 + 𝑘𝑃𝐶𝐶+ 𝐻 𝑟𝑉 + 𝑘𝑉𝑃 𝐵 + 𝑘𝑃𝐶𝐶+ 𝐻 𝑟𝑉 + 𝑘𝑉𝑃
Kunci 𝑟𝑉dengan 𝑘𝑉𝑇 - 𝑟𝑉+ 𝑘𝑉𝑇 𝑟𝑉+ 𝑘𝑉𝑇
Kunci digest 𝑃𝐶𝐶dengan
𝑘𝑉𝑇 - 𝐻(𝑘𝑃𝐶𝐶) + 𝑘𝑉𝑇 𝐻(𝑘𝑃𝐶𝐶) + 𝑘𝑉𝑇
Tabel 4.2 Tabel transaksi data pada langkah dua.
36 4.2.3. Langkah Tiga : Pemilihan
Pemilih membuka kunci dari validator untuk kemudian mengirimkan ke tallier.
Dimana Tallier tidak boleh mengetahui identitas pemilih. Secara rinci :
- Setelah menerima (𝐵 + 𝑃𝐶𝐶 + 𝐻 𝑟𝑉 + 𝑘𝑉𝑃), (𝑟𝑉+ 𝑘𝑉𝑇) dan (𝐻 𝑘𝑃𝐶𝐶 + 𝑘𝑉𝑇) dari 𝑉. 𝑃 lalu membuka (𝐵 + 𝑃𝐶𝐶 + 𝐻 𝑟𝑉 + 𝑘𝑉𝑃) dengan 𝑘𝑃𝑉 mendapatkan (𝐵 + 𝑃𝐶𝐶 + 𝐻 𝑟𝑉 ).
- 𝑃 menghitung (𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑃𝑇) lalu mengirimkan :
𝑟𝑉+ 𝑘𝑉𝑇, 𝐻(𝑘𝑃𝐶𝐶) + 𝑘𝑉𝑇, 𝐵 + 𝑘𝑃𝐶𝐶 + 𝐻 𝑟𝑉 dan
𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 ke 𝑇.
Keterangan Terima dari 𝑽 Hitung Kirim ke 𝑻
𝐵 + 𝑘𝑃𝐶𝐶+ 𝐻 𝑟𝑉 + 𝑘𝑉𝑃
- -
𝑟𝑉+ 𝑘𝑉𝑇 - 𝑟𝑉+ 𝑘𝑉𝑇
𝐻(𝑘𝑃𝐶𝐶) + 𝑘𝑉𝑇 - 𝐻(𝑘𝑃𝐶𝐶) + 𝑘𝑉𝑇
Buka
𝐵 + 𝑃𝐶𝐶+ 𝐻 𝑟𝑉 + 𝑘𝑉𝑃 dengan
menggunakan 𝑘𝑃𝑉
- 𝐵 + 𝑘𝑃𝐶𝐶+ 𝐻 𝑟𝑉
+ 𝑘𝑉𝑃+ 𝑘𝑃𝑉
-
- 𝐵 + 𝑘𝑃𝐶𝐶+ 𝐻 𝑟𝑉 𝐵 + 𝑘𝑃𝐶𝐶+ 𝐻 𝑟𝑉
- 𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑃𝑇 𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑃𝑇
Tabel 4.3 Tabel transaksi data pada langkah tiga.
4.2.4. Langkah Empat : Pengumpulan
Tallier menerbitkan nomor record yang unik bagi Pemilih. Dimana nomor itu unik dan berkorespondensi satu-satu dengan surat suara yang telah dikunci oleh pemilih dan ditandatangani oleh validator. Secara rinci :
37 - 𝑇 menerima (𝑟𝑉+ 𝑘𝑉𝑇), (𝐻(𝑘𝑃𝐶𝐶) + 𝑘𝑉𝑇), (𝐵 + 𝑘𝑃𝐶𝐶 + 𝐻 𝑟𝑉 ) dan (𝐵 +
𝑘𝑃𝐶𝐶+ 𝑘𝑃𝑇) dari 𝑃.
- 𝑇 membuka (𝑟𝑉+ 𝑘𝑉𝑇) dengan menambahkan 𝑘𝑇𝑉 dan mendapatkan 𝑟𝑉.
- 𝑇 menghitung 𝐵 + 𝑘𝑃𝐶𝐶 + 𝐻 𝑟𝑉 + 𝐻 𝑟𝑉 + 𝑘𝑇𝑃 dan memberi nama 𝑀1 pada hasilnya, yaitu (𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑇𝑃).
- Lalu 𝑇 juga menambah 𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 yang diterima dari 𝑃 dengan (𝑘𝑇𝑃 + 𝑘𝑇𝑃) dan memberi hasilnya nama 𝑀2.
- 𝑇 membandingkan nilai 𝑀1 dan 𝑀2, jika nilainya sama berarti tidak ada serangan yang terjadi maka 𝑇 menerbitkan sebuah nomor 𝑟𝑒𝑐# yang berkorespondensi secara unik dengan nilai 𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 yang dikirim 𝑃 ke 𝑇 pada langkah tiga.
- 𝑇 mengirim
𝑟𝑒𝑐# dan 𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑇𝑃 ke 𝑃
Keterangan Terima dari 𝑷 Hitung Kirim ke 𝑷
𝑟𝑉+ 𝑘𝑉𝑇 𝐻(𝑃𝐶𝐶) + 𝑘𝑉𝑇 𝐵 + 𝑃𝐶𝐶+ 𝐻 𝑟𝑉 𝐵 + 𝑃𝐶𝐶+ 𝑘𝑃𝑇 𝐻(𝐵 + 𝑃𝐶𝐶+ 𝐻 𝑟𝑉 ), 𝐻(𝐵 + 𝑃𝐶𝐶+ 𝑘𝑃𝑇) Membuka 𝑟𝑉+ 𝑘𝑉𝑇
dengan 𝑘𝑇𝑉
𝑟𝑉+ 𝑘𝑉𝑇+ 𝑘𝑇𝑉
𝑟𝑉 𝐻(𝑟𝑉) Memeriksa apakah
𝐵 + 𝑃𝐶𝐶+ 𝐻 𝑟𝑉 + 𝐻 𝑟𝑉 + 𝑘𝑇𝑃 sama dengan 𝐵 + 𝑃𝐶𝐶+
38 𝑘𝑃𝑇+ 𝑘𝑇𝑃+ 𝑘𝑇𝑃
Jika sama, 𝑇 menerbitkan nomor rec
𝑅𝑒𝑐# 𝑅𝑒𝑐#
𝐵 + 𝑃𝐶𝐶+ 𝑘𝑇𝑃
Tabel 4.4 Tabel transaksi data pada langkah empat.
4.2.5. Langkah Lima : Membuka Kartu Suara
Pemilih membuka surat suara dengan cara mengirimkan kunci yang dipakainya untuk mengunci surat suara di tahap awal. Secara rinci :
- Setelah menerima 𝑟𝑒𝑐#, 𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑇𝑃 dari 𝑇, 𝑃 memeriksa apakah nilai 𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃 + 𝑘𝑃𝑇 dengan (𝐵 + 𝑘𝑃𝐶𝐶). Jika sama, maka
- 𝑃 mengirim :
𝑟𝑒𝑐# dan 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 ke 𝑇.
Keterangan Terima dari 𝑻 Hitung Kirim ke 𝑻
𝑅𝑒𝑐# 𝑅𝑒𝑐#
𝐵 + 𝑃𝐶𝐶+ 𝑘𝑃𝑇 𝐻(𝐵 + 𝑃𝐶𝐶+ 𝑘𝑃𝑇) Cek apakah
𝐵 + 𝑃𝐶𝐶+ 𝑘𝑇𝑃+ 𝑘𝑃𝑇 sama dengan 𝐵 + 𝑃𝐶𝐶
Jika sama, 𝑃𝐶𝐶+ 𝑘𝑃𝑇 𝑃𝐶𝐶+ 𝑘𝑃𝑇
Tabel 4.5 Tabel transaksi data pada langkah lima.
4.2.6. Langkah Enam : Penghitungan
Tallier membuka surat suara dan memasukkannya ke penampungan suara.
Secara rinci :
39 - 𝑇 menerima 𝑟𝑒𝑐# dan 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 dari 𝑃.
- 𝑇 membuka 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 yang didapatkannya dari langkah lima dengan menggunakan 𝑘𝑇𝑃 dan mendapatkan 𝑘𝑃𝐶𝐶.
- 𝑇 kemudian membuka 𝐻 𝑘𝑃𝐶𝐶 + 𝑘𝑉𝑇 dari langkah tiga dengan menggunakan 𝑘𝑇𝑉 dan mendapatkan 𝐻(𝑘𝑃𝐶𝐶).
- 𝑇 kemudian membandingkan hash dari 𝑘𝑃𝐶𝐶 dengan 𝐻(𝑘𝑃𝐶𝐶).
- Jika sama, 𝑇 menggunakan 𝑘𝑃𝐶𝐶 yang didapatkannya dari langkah di atas untuk membuka (𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃) yang dikirimkannya ke 𝑃 pada langkah lima.
Dengan cara menambahkannya dengan (𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃). Maka 𝑇 mendapatkan 𝐵 yang murni.
- 𝑇 menambahkan suara 𝐵 ke tempat penampungan suara.
Keterangan Terima dari 𝑻 Hitung Kirim ke 𝑻
𝑅𝑒𝑐#
𝑃𝐶𝐶+ 𝑘𝑃𝑇
𝐻(𝑃𝐶𝐶+ 𝑘𝑃𝑇) Membuka
𝑃𝐶𝐶+ 𝑘𝑃𝑇 dengan 𝑘𝑇𝑃
𝑃𝐶𝐶+ 𝑘𝑃𝑇+ 𝑘𝑇𝑃
𝑃𝐶𝐶 𝐻(𝑃𝐶𝐶) Ambil
𝐻 𝑃𝐶𝐶 + 𝑘𝑉𝑇 dari langkah tiga, kemudian buka dengan 𝑘𝑇𝑉
𝐻 𝑃𝐶𝐶 + 𝑘𝑉𝑇+ 𝑘𝑇𝑉
Cek apakah digest dari
𝑃𝐶𝐶 sama dengan 𝐻 𝑃𝐶𝐶 + 𝑘𝑉𝑇+ 𝑘𝑇𝑉
Jika sama 𝐵 + 𝑃𝐶𝐶+ 𝑘𝑇𝑃
+ 𝑃𝐶𝐶+ 𝑘𝑇𝑃 𝐵
Tabel 4.6 Tabel transaksi data pada langkah enam.
40 4.3. Simulasi Protokol
Simulasi Protokol ini memiliki batasan-batasan sebagai berikut :
1. Jalur yang digunakan aman dan tidak memiliki gangguan. Data yang dikirim sama dengan data yang diterima.
2. Simulasi pengiriman data tidak dilakukan melalui jaringan tapi merupakan contoh aliran data antar user saja yang diberikan dalam bentuk tabel.
3. Simulasi dilakukan untuk 10 orang penduduk saja.
4.3.1. Tahap Awal
Pada tahap ini KGC mengirimkan pasangan kunci publik dan kunci pribadi masing masing user. Lalu masing-masing user menghitung kunci terhadap user yang lain. Adapun kunci-kunci itu adalah :
𝑘𝑃𝑉 = 𝑘𝑉𝑃 = 29ab0d7da05ffc3f1b3f97ac10e2092694aadbb7d, 𝑘𝑃𝑇 = 𝑘𝑇𝑃 = 3f0eba16286a2d57ea0991168d4994637e8343e36, 𝑘𝑇𝑉 = 𝑘𝑉𝑇 = 34d2aa5b4745556568ff2416fcafadf5080f0fb0b.
Pada tahap ini KGC juga mengumumkan fungsi kurva eliptik yang dipakai dan juga fungsi hash yang dipakai. Dalam tugas akhir ini penulis memilih :
1. Fungsi kurva eliptik.
Persamaan kurva eliptik 𝐸: 𝑦2+ 𝑥𝑦 = 𝑥3+ 𝑥2+ 𝑏, atas lapangan 𝐺𝐹(2163), dengan
𝑏 = 20a601907b8c953ca1481eb10512f78744a3205fd.
Kurva di atas adalah kurva yang dikeluarkan oleh NIST, sebuah lembaga standar Amerika Serikat. Penulis memilih kurva atas lapangan 𝐺𝐹(2163) dengan alasan kemudahan perhitungan. Karena kurva tersebut adalah kurva yang paling sederhana.
Generator yang digunakan :
𝐺𝑥 = 3f0eba16286a2d57ea0991168d4994637e8343e36 𝐺𝑦 = 0d51fbc6c71a0094fa2cdd545b11c5c0c797324f1.
41 2. Fungsi hash yang dipakai adalah SHA1
4.3.2. Antarmuka
1. Anton mendatangi Pollster lalu memasukkan nomer ID uniknya, dalam hal ini nomor KTP beserta passwordnya. Pemilih yang sah adalah pemilih yang sudah melakukan pendaftaran sebelum pemilihan umum diadakan. Jadi penduduk yang belum mendaftar tidak akan bisa melakukan pemilihan.
Gambar 4.1. Halaman muka, dimana Pemilih memasukkan nomor ID dan password.
Setelah memasukkan ID dan password, Anton mengklik tombol masuk.
2. Setelah Anton berhasil masuk, sistem akan membuka kartu suara tempat Anton melakukan pemilihan.
42 Gambar 4.2. Kartu suara.
Anton lalu memilih dengan cara mengklik salah satu foto gambar calon.
Misalkan Anton memilih calon dengan nomor urut 2, tampilannya adalah sebagai berikut :
Gambar 4.3. Kartu suara yang telah diklik.
43 Jikalau Anton sudah yakin maka ia harus mengklik tombol Pilih.
3. Setelah Anton mengklik tombol Pilih, maka ia akan mendapatkan nomor record yang dapat digunakan untuk membuktikan pilihannya.
Gambar 4.4. Konfirmasi telah memilih dan pemberitahuan nomor rec#.
Dalam hal ini nomor rec Anton adalah P000001. Setelah konfirmasi, antarmuka akan kembali ke halaman untuk memasukkan nomor ID dan password. Untuk membuktikan suaranya Anton kembali memasukkan ID dan passwordnya.
Karena ia sudah memilih maka Anton akan masuk ke halaman berikut :
Gambar 4.5. Memasukkan nomor record.
Antom memasukkan nomor recordnya yaitu P00001, lalu mengklik tombol Tampilkan. Maka akan muncul halaman yang menyatakan hasil pilihan Anton.
44 Gambar 4.6. Bukti Suara.
4.3.3. Transaksi Data
Protokol yang diusulkan di Tugas Akhir ini terdapat di antara langkah dua dan tiga antar muka di atas. Setelah Anton mengklik tombol Pilih pada langkah dua, maka Protokol pun dimulai.
1. Langkah Satu : Persiapan
Karena Anton memilih calon nomor dua maka
𝐵 = 00000000000000000000000000000000000000002, lalu 𝑃 menghitung
𝑘𝑃𝐶𝐶 = adeeefff000111122233344455556667777888999 kemudian 𝑃 mengirimkan
𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑉 = 8445e282a05eed2d390ca3e845b76f41e3d2532e6 𝐻 𝑘𝑃𝐶𝐶 = 02b1c0063aa674d150fa5aa7f70e3906c53f735bb ke validator 𝑉.
2. Langkah Dua : Administrasi
𝑉 menerima (𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑉) dan 𝐻(𝑘𝑃𝐶𝐶) dari 𝑃. 𝑉 lalu memilih bilangan bulat random
𝑟𝑉 = 0122233344455566667778889999aaabbbccccddd.
menghitung
𝐻 𝑟𝑉 = 0a2d808f4721d6cd116dbf40026c2d2e92dec5c24.
dan mengirimkan
45 𝐵 + 𝑘𝑃𝐶𝐶 + 𝐻 𝑟𝑉 + 𝑘𝑉𝑃
= 8e68620de77f3be028611ca847db426f710c96ec2 𝑟𝑉 + 𝑘𝑉𝑇 = 34d2aa5b4745556568ff2416fcafadf5080f0fb0b dan 𝐻 𝑘𝑃𝐶𝐶 + 𝑘𝑉𝑇 = 36636𝑎5𝑑7𝑑𝑒321𝑏438057𝑒𝑏10𝑏𝑎194𝑓3𝑐𝑑307𝑐𝑒𝑏0.
ke 𝑃.
3. Langkah Tiga : Pemilihan
Setelah mendapatkan (𝐵 + 𝑘𝑃𝐶𝐶 + 𝐻 𝑟𝑉 + 𝑘𝑉𝑃), (𝑟𝑉+ 𝑘𝑉𝑇) dan (𝐻 𝑘𝑃𝐶𝐶 + 𝑘𝑉𝑇). 𝑃 kemudian mengirim :
𝑟𝑉 + 𝑘𝑉𝑇 = 34d2aa5b4745556568ff2416fcafadf5080f0fb0b, 𝐻 𝑘𝑃𝐶𝐶 + 𝑘𝑉𝑇 = 36636𝑎5𝑑7𝑑𝑒321𝑏438057𝑒𝑏10𝑏𝑎194𝑓3𝑐𝑑307𝑐𝑒𝑏0, 𝐵 + 𝑘𝑃𝐶𝐶 + 𝐻 𝑟𝑉 = a7c36f704720c7df335e8b0457394b49e5a64d5bf dan
𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 = 92e055e9286b3c45c83aa552d81cf20409fbcb7ad.
ke 𝑇.
4. Langkah 4 : Pengumpulan
𝑇 menerima (𝑟𝑉+ 𝑘𝑉𝑇), (𝐻(𝑘𝑃𝐶𝐶) + 𝑘𝑉𝑇), (𝐵 + 𝑘𝑃𝐶𝐶 + 𝐻 𝑟𝑉 ) dan (𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑃𝑇) dari 𝑃. 𝑇 lalu membuka (𝑟𝑉+ 𝑘𝑉𝑇) mendapatkan
𝑟𝑉 = 0122233344455566667778889999aaabbbccccddd.
Kemudian 𝑇 memeriksa apakah nilai
𝑀1 = 𝐵 + 𝑘𝑃𝐶𝐶 + 𝐻 𝑟𝑉 + 𝐻 𝑟𝑉 + 𝑘𝑇𝑃 dan 𝑀2 = (𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 + 𝑘𝑇𝑃 + 𝑘𝑇𝑃) sama. Jika sama 𝑇 menerbitkan nomor 𝑟𝑒𝑐# = P000001 dan memasangkan
𝑟𝑒𝑐# = P000001 dan
𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃 = 92e055e9286b3c45c83aa552d81cf20409fbcb7ad
ke dalam data base. sehingga nantinya untuk setiap 𝑟𝑒𝑐# berpasangan dengan 𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃 tertentu. Lalu mengirim 𝑟𝑒𝑐# = P000001 dan 𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃 ke 𝑃.
46 5. Langkah Lima : Membuka Kartu Suara
Setelah menerima 𝑟𝑒𝑐#, 𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑇𝑃 dari 𝑇, 𝑃 memeriksa apakah nilai 𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃 + 𝑘𝑃𝑇 dengan (𝐵 + 𝑘𝑃𝐶𝐶). Jika sama, maka 𝑃 mengirim :
𝑟𝑒𝑐# dan
𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 = 92e055e9286b3c45c83aa552d81cf20409fbcb7af ke 𝑇.
6. Langkah Enam : Penghitungan
𝑇 menerima 𝑟𝑒𝑐# dan 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 dari 𝑃. 𝑇 membuka 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 yang didapatkannya dari langkah lima dengan menggunakan 𝑘𝑇𝑃 dan mendapatkan 𝑘𝑃𝐶𝐶. 𝑇 kemudian membuka 𝐻 𝑘𝑃𝐶𝐶 + 𝑘𝑉𝑇 dari langkah tiga dengan menggunakan 𝑘𝑇𝑉 dan mendapatkan 𝐻(𝑘𝑃𝐶𝐶). 𝑇 kemudian membandingkan hash dari 𝑘𝑃𝐶𝐶 dengan 𝐻(𝑘𝑃𝐶𝐶). Jika sama, 𝑇 menggunakan 𝑘𝑃𝐶𝐶 yang didapatkannya dari langkah di atas untuk membuka (𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑇𝑃) yang dikirimkannya ke 𝑃 pada langkah lima. Dengan cara menambahkannya dengan (𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃).
𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃 + 𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃 = 𝐵 =
00000000000000000000000000000000000000002.
Maka 𝑇 mendapatkan 𝐵 yang murni yang menyatakan pilihan Anton adalah calon nomer dua. Tetapi 𝑇 tidak mengetahui yang memilih adalah Anton karena ia tidak mendapatkan informasi apa-apa mengenai itu. Demikian juga dengan 𝑉 yang tidak mengetahui pilihan Anton, ia hanya mengetahui Anton sudah memilih. 𝑇 lalu menambahkan suara 𝐵 ke tempat penampungan suara. Seketika itu juga langka tiga pada antarmuka muncul.
47 4.4. Serangan-serangan Yang Dapat Diatasi Dalam Protokol Ini.
1. Jika pemilih yang sah dan terdaftar tidak memilih atau abstain, dapatkah validator menggantikan surat suaranya?
Jawab :
Walaupun validator dapat menghitung 𝑘𝑉𝑃 = 𝑘𝑃𝑉, tetapi ia tidak dapat menhitung 𝑘𝑃𝑇. Karena ia tidak memiliki kunci pribadi pemilih, 𝑆𝑃. Oleh karena itu validator tidak bisa menghitung (𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑃𝑇 + 𝐻 𝑟𝑉 + 𝑘𝑉𝑃) yang kemudian akan diteruskan ke tallier.
2. Dapatkah validator menggantikan surat suara yang sah?
Jawab :
Berdasarkan ID Based Cryptosystem, 𝑆𝐼𝐷 = 𝑠𝑄𝐼𝐷, jika validator ingin mengganti surat suara yang sah, ia harus mendapatkan 𝑆𝐼𝐷 milik pemilih, walaupun validator mengetahui 𝑄𝐼𝐷 milik pemilih tapi ia tidak mengetahui 𝑆𝐼𝐷nya. Untuk menghitung 𝑆𝐼𝐷 ia harus mengetahui 𝑠. Tapi itu tidak mungkin terjadi karena 𝑠 adalah rahasia dari KGC.
3. Dapatkah seseorang menggantikan validator dengan sukses?
Jika seseorang ingin menggantikan validator untuk menggantikan tugasnya memvalidasi kartu suara, ia harus mendapatkan kunci pribadi validator 𝑆𝑉 agar ia dapat menghitung 𝑘𝑉𝑃 dan 𝑘𝑉𝑇, agar pada saat data dikirim data terebut benar saat dibuka, jika tidak maka data itu tidak akan diterima. Karena 𝑆𝑉 rahasia dan hanya diketahui oleh validator maka hal ini mustahil dilakukan.
4. Dapatkah seseorang menggantikan tallier dengan sukses?
Jawab :
Sama halnya dengan validator di atas, penyerang akan mengalami kesulitan mendapatkan kunci pribadi dari tallier melalui jalur publik. Oleh karena itu serangan ini dapat disimpulkan gagal.
48 5. Jika pemilih tidak jujur, dan dia ingin mengklaim bahwa surat suara yang telah dipilih bukanlah surat suara yang telah dipilihnya. Dapatkah ia melakukan maksud yang tidak baik ini?
Jawab :
Hal ini tidak bisa dilakukan. Karena, jika pemilih ingin mengganti 𝐵, surat suara yang sah, dengan 𝐵𝑃 (surat suara palsu), maka pada saat yang sama ia harus bisa membuat 𝐵𝑃 dan 𝑘𝑃𝐶𝐶𝑃 (kunci 𝑘𝑃𝐶𝐶 palsu) untuk memenuhi 𝐵𝑃 + 𝑘𝑃𝐶𝐶𝑃 = 𝐵 + 𝑘𝑃𝐶𝐶. Hal ini dilakukan karena tallier memeriksa kesamaan dari
𝐵 + 𝑘𝑃𝐶𝐶+ 𝐻 𝑟𝑉 + 𝑘𝑇𝑃 + 𝐻(𝑟𝑉) dan
𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃,
dan ia juga akan memeriksa apakan nilai hash dari 𝑘𝑃𝐶𝐶 yang didapat dengan menambahkan 𝑘𝑇𝑃 ke (𝑃𝐶𝐶+ 𝑘𝑃𝑇) yang didapat pada langkah 5 sama dengan nilai 𝐻(𝑘𝑃𝐶𝐶) yang didapat dari (𝐻 𝑘𝑃𝐶𝐶 + 𝑘𝑉𝑇) yang ditambahkan dengan 𝑘𝑇𝑉. Ini menyatakan bahwa untuk nilai 𝑘𝑃𝐶𝐶 tertentu, terdapat nilai 𝐵 tertentu yang sudah fix. Oleh karena itu surat suara yang telah „dicoblos‟ tidak bisa terganti dan serangan ini tidak akan berhasil.
6. Dapatkah tallier tidak jujur? Dengan kata lain, dia menggantikan surat suara 𝐵, menjadi 𝐵𝑃 (𝐵 yang palsu) ke perhitungan akhir?
Jawab :
Tidak bisa. Karena ketika tallier menambahkan surat suara yang telah „dicoblos‟
ke perhitungan akhir, berdasarkan langkah ke empat pada protokol, ia harus menerbitkan sebuah nomor 𝑟𝑒𝑐# dan memasangkannya dengan nilai (𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑇𝑃) serta menyimpannya di data base. Oleh karena itu, pemilih pemilih dapat memperlihatkan (𝐵 + 𝑘𝑃𝐶𝐶 + 𝑘𝑇𝑃) yang telah disimpan itu sebagai pembuktian jika tallier telah menggantikan 𝐵 menjadi 𝐵𝑃 dengan membandingkan apakah nilai 𝐵 yang didapat dengan menambahkan (𝐵 + 𝑘𝑃𝐶𝐶+ 𝑘𝑇𝑃) dengan 𝑘𝑃𝑇 + 𝑘𝑃𝐶𝐶 sama dengan 𝐵 yang telah dipilih oleh pemilih.
49
BAB V
KESIMPULAN DAN SARAN
5.2. Kesimpulan
Keberhasilan dari protokol ini adalah apakah protokol ini memenuhi syarat- syarat dari pemilihan elektronik itu sendiri. Jadi ada baiknya penulis mencoba mambahas masing-masing syarat dan apakah protokol ini memenuhi syarat-syarat tersebut. Adapun syarat-syarat itu adalah :
1. Privacy (Kerahasiaan)
Kerahasiaan dalam protokol ini terjamin karena dalam protokol ini masing- masing user tidak mengetahui siapa memilih siapa. Karena validator hanya mengetahui bahwa pemilih sudah memilih tanpa mengetahui pilihannya.
Sedangkan tallier mengetahui bahwa ada surat suara yang masuk tanpa mengetahui siapa yang memilihnya.
2. Eligiblity (Keabsahan).
Eligiblity juga terakomodasi dengan baik dalam protokol ini karena pemilih yang tidak terdaftar akan ditolak sewaktu ia login ke sistem. Karena validator akan memeriksa ke data base apakah ia terdaftar atau tidak.
3. Uniqueness (Keunikan)
Hal ini juga terakomodasi dengan baik, karena pada data base pemilih, validator akan segera membuat tanda pada pemilih yang sudah memilih. Jadi di saat dia masuk kembali dia akan terdeteksi sudah memilih. Hal ini dapat dianalogikan sebagai tinta yang dicelupkan di jari pemilih setelah melakukan pemilihan pada sistem konvensional.
4. Uncoercibility (Tanpa Paksaan)
Dalam hal ini, sistem tidak bisa menjamin adanya paksaan atau tidak pada saat pemilih melakukan pemilihan. Jadi ini tergantung dari pemilih.
5. Receipt-freeness (Tidak ada tanda terima)
Syarat ini juga terpenuhi. Dalam Protokol ini, sesaat setelah pemilih selesai memilih. Dia akan mendapatkan sebuah nomor rec# yang dapat dipakainya untuk membuktikan suaranya. Tapi ia tidak menerima suatu tanda terima yang
50 menunjukkan bahwa ia dengan nomor KTP dan nama tertentu telah memilih calon terntentu. Walaupun ia mencetak antarmuka saat dia menerima no rec#, itu tidak akan bisa dipakai sebagai bukti karena pada antarmuka itu tidak ditunjukkan bahwa seseorang dengan nomor KTP tertentu mendapatkan nomor rec# tertentu.
6. Fairness (Keadilan)
Tidak terakomodasi dengan baik, karena dalam protokol ini tallier pasti mengetahui hasil perhitungan sementara. Tapi fairness dapat dijaga dengan cara menjaga admin dari server tallier agar menjaga integritasnya untuk tidak membocorkan hasil pemilihan umum selama pemilihan umum berlangsung.
7. Transparency (Transparan)
Terjamin, karena pada saat pemilu berakhir semua pihak bisa melihat database yang ada pada Tallier dimana data base tersebut memiliki daftar nomor rec#
dengan kartu suara yang terkunci.
8. Accuracy (Ketepatan)
Berhasil dengan baik. Sesuai dengan yang telah dibahas dalam serangan- serangan yang mungkin terjadi atas protokol ini, dapat dilihat bahwa untuk mengganti kartu suara adalah hal yang mustahil dilakukan. Demikian juga halnya untuk membatalkan kartu suara, karena untuk setiap kartu suara yang telah „dicoblos‟ terdapat nomor rec# yang unik.
9. Robustness (Kekokohan)
Untuk menghalangi dan mempengaruhi jalannya pemilu seseorang haruslah bisa memecahkan kunci-kunci pribadi masing-masing user yang seperti sudah dibahas pada bab sebelumnya bahwa hal itu mustahil dilakukan.
Berdasarkan syarat-syarat tersebut di atas, hanya 1 syarat yang tidak bisa dijamin oleh protokol ini, dan itupun lebih bersifat sosial daripada teknis oleh karena itu protokol ini dapat dinyatakan layak untuk diaplikasikan ke pemilihan umum yang sebenarnya.
51 5.2. Saran
Dalam Kriptografi, disimpulkan bahwa semakin rumit suatu protokol maka semakin besar pula tingkat keamanan dari protokol tersebut. Sebagai analogi, dalam fungsi pasangan bilinear, semakin besar lapangan hingga tempat kita bekerja maka semakin sulit untuk memecahkan sistem kriptografinya, tapi di saat yang sama kita membutuhkan hardware yang semakin canggih dan ini berarti biaya yang besar. Oleh karena itu efektivitas haruslah juga tetap acuan dalam melakukan penelitaian mengenai hal ini di waktu yang akan datang karena dengan bertambahnya efektivitas maka biaya yang dikeluarkan untuk hardware juga relatif tidak banyak. Dengan kata lain kalau bisa lebih cepat, lebih murah dan juga lebih aman, kenapa tidak?