Analisis dan Perancangan Keamanan Informasi Sistem e-Voting

BAB III ANALISIS DAN PERANCANGAN

Bab ini menjelaskan analisis keamanan informasi sistem e-voting dengan menerapkan kombinasi algoritma AES dan RSA, analisis kebutuhan sistem e-voting yang akan dibangun, serta perancangannya. Dan tindakan yang dilakukan pada tahap perancangan adalah mengubah model analisis ke model perancangan.

3.1. Analisis dan Perancangan Keamanan Informasi Sistem e-Voting

Dalam merancang keamanan informasi sistem e-voting ini, penulis menerapkan kombinasi algoritma AES dan RSA, serta penggunaan tanda tangan digital untuk otentikasi keaslian informasi yang dikirimkan. Bentuk perancangan keamanan informasi sistem e-voting yang diajukan ini dapat dilihat pada gambar 3.1. yang menunjukkan arsitektur umum dari rangkaian langkah yang dilakukan untuk mengamankan data dan informasi pada setiap pengguna sistem e-voting dengan menggunakan kombinasi algoritma AES dan RSA. Rangkaian langkah yang dimaksud dimulai dari menerapkan algoritma RSA untuk mengenkripsi data jumlah suara berdasarkan pemilihan oleh voter yang disimpan dalam database TPS, kemudian database dienkripsi kembali oleh operator di masing - masing TPS dengan menggunakan algoritma AES untuk mengamankannya dari pihak - pihak yang tidak bertanggung jawab yang ingin menyalahgunakannya, untuk lebih menjamin keamanannya diterapkan kembali algoritma RSA untuk mengenkripsi kunci yang digunakan pada algoritma AES yang tujuannya adalah apabila kunci algoritma AES ini diintersepsi dan diambil oleh pihak selain administrator yang memiliki wewenang atas hal itu, pihak tersebut masih harus membuka kunci dari algoritma AES tersebut sebelum dapat menggunakannya untuk membuka database yang telah dienkripsi, kemudian tanda tangan digital juga disisipkan pada database dan kunci algoritma AES untuk mengetahui otentikasi keaslian sumbernya, apabila semua berkas database Universitas Sumatera Utara Universitas Sumatera Utara 34 dan kunci algoritma AES telah diterima oleh administrator di KPU selaku penerima yang berhak, berkas tersebut diotentikasi keaslian sumbernya dengan memverifikasi tanda tangan digital, lalu membukanya dengan menggunakan algoritma RSA untuk mendekripsi kunci dari algoritma AES, selanjutnya kunci algoritma AES yang telah didekripsi ini digunakan kembali untuk mendekripsi berkas database yang memuat sejumlah informasi mengenai hasil pelaksanaan pemungutan suara di masing - masing TPS. Setiap tahapan proses yang dilakukan akan dijelaskan dengan lebih terperinci pada bagian selanjutnya. Data jumlah suara Enkripsi Database Ciphertex data jumlah suara Ciphertext Database Kunci Algoritma AES Penambahan dan penghitungan jumlah suara Ciphertext kunci algoritma AES Signed Ciphertext Database Signed Ciphertext kunci algoritma AES Kunci Algoritma RSA Digital signature dengan kunci privat RSA dan hash SHA-1 Digital signature dengan kunci privat RSA dan hash SHA-1 Ciphertext Database Enkripsi Ciphertext kunci algoritma AES Kunci Algoritma RSA Kunci Algoritma RSA Kunci Algoritma AES Database Database Server Verifikasi digital signature dengan kunci publik RSA dan hash SHA-1 Enkripsi dekripsi VOTER OPERATOR ADMINISTRATOR Dekripsi dekripsi Gambar 3.1. Arsitektur umum perancangan keamanan informasi sistem e-voting 3.1.1. Enkripsi Data Jumlah Suara menggunakan Algoritma RSA Data jumlah suara adalah data yang didapat dari perolehan suara setiap kandidat pada saat pemungutan suara berlangsung. Data jumlah suara menjadi penting karena Universitas Sumatera Utara 35 merupakan faktor penentu pemenang pemungutan suara. Oleh sebab itu, data jumlah suara ini harus diamankan dari pihak yang ingin memanipulasi jumlah suara untuk kepentingan pihak - pihak tertentu. Metode pengamanan yang diajukan adalah menyamarkan jumlah yang sebenarnya ke dalam bentuk ciphertext melalui proses enkripsi dengan algoritma RSA. Namun sebelum data jumlah suara ini dapat dienkripsi di setiap TPS, KPU selaku pihak penyelenggara pemungutan suara harus membuat kunci enkripsi dari algoritma RSA terlebih dahulu. Adapun langkah-langkah yang dilakukan dalam proses pembuatan kunci algoritma RSA pada sistem e-voting ini adalah sebagai berikut: 1. Memilih secara acak p dan q, dimana p dan q adalah bilangan prima dan nilai p dan q tidak sama. 2. Menghitung n= p.q 3. Menghitung ϕ n = p-1q-1 4. Memilih dan menghitung kunci publik e yang relatif prima terhadap ϕ n dengan rumus GCD ϕ n, e = 1, dimana 1 e ϕ n . 5. Membangkitkan kunci privat d dengan persamaan d.e = 1 mod ϕ n , dimana d yang merupakan bilangan bulat positif. 6. Didapat kunci publik = {e, n} 7. Didapat kunci privat = {d, n} Setelah kunci berhasil dibuat barulah proses enkripsi dapat dilakukan. Proses enkripsi pada sistem e-voting ini dilakukakan dengan langkah - langkah berikut. 4. Ambil kunci publik e ,dan modulus n. 5. Pisahkan setiap karakter dari plaintext. 6. Setiap karakter dari plaintext dikonversikan ke dalam bentuk nilai desimal ASCII sehingga menghasilkan nilai P i , dimana P merupakan plaintext yang telah dikonversikan dan i merupakan indeks karakter plaintext. 7. Setiap nilai ASCII plaintext P i dienkripsikan menjadi ciphertext C i dengan persamaan C i = P i e mod n 8. Gabungkan kembali setiap karakter yang dienkripsi untuk memperoleh keseluruhan ciphertext hasil enkripsi Universitas Sumatera Utara 36 Sebagai contoh akan diselesaikan proses enkripsi dengan data jumlah suara yang berjumlah 2857. Untuk melakukan enkripsi ini, kunci algoritma RSA harus terlebih dahulu dibuat dengan langkah - langkah berikut. 1. Dipilih kedua bilangan p = 31 dan q = 67 2. Menghitung n = p . q = 31 67 = 2077 3. Menghitung ϕ n = p-1q-1 = 3066 = 1980 4. Pilih sebuah bilangan kunci publik e dengan menghitung GCD ϕ n, e. a. Pilih bilangan e = 4 dan memeriksanya dengan persamaan GCD1980, 4 1980 mod 4 = 0, maka GCD1980, 4 = 4 sehingga 4 tidak relatif prima 1980 dan tidak dapat digunakan sebagai kunci publik. b. Pilih bilangan e = 7 dan memeriksanya dengan persamaan GCD1980, 4 1980 mod 7 = 6 7 = 1 . 6 + 1 6 = 6 . 1 + 0 GCD1980, 7 = 1 sehingga 7 relatif prima 1980 dan dapat digunakan sebagai kunci publik. 5. d.e = 1 mod ϕ → 1 . 7 = 7 mod 1980 → tidak dapat dijadikan kunci → 2 . 7 = 14 mod 1980 → tidak dapat dijadikan kunci → 3 . 7 = 21 mod 1980 → tidak dapat dijadikan kunci ............................................................................................... → 283 . 7 = 1 mod 1980 → dapat dijadikan kunci Maka d = 283. 6. Didapat kunci publik = {e, n} 7. Didapat kunci privat = {d, n} Selanjutnya proses enkripsi data jumlah suara tersebut dilakukan dengan langkah - langkah berikut. Universitas Sumatera Utara 37 1. Ambil kunci publik e = 7 dan modulus n = 2077 2. Pisahkan kararakter data jumlah suara yang bernilai 2857 menjadi 2-8-5-7 3. Konversikan setiap karakter data jumlah suara P 1 = 2 → ASCII = 50 P 2 = 8 → ASCII = 56 P 3 = 5 → ASCII = 51 P 4 = 7 → ASCII = 55 4. C 1 = 50 7 mod 2077 → 781250000000 mod 2077 = 348 C 2 = 56 7 mod 2077 → 1727094849536 mod 2077 = 583 C 3 = 48 7 mod 2077 → 897410677851 mod 2077 = 111 C 4 = 55 7 mod 2077 → 1522435234375 mod 2077 = 127 5. Ciphertext yang dihasilkan dari proses enkripsi adalah 348583111127 Berikut gambar 3.2. yang menunjukkan proses enkripsi data jumlah suara. Jumlah suara per indeks karakter à ASCII = P i Enkripsi C i = P i e mod n Ciphertext jumlah suara per indeks karakter C i Jumlah suara P Ciphertext jumlah suara C Gambar 3.2. Proses enkripsi data jumlah suara 3.1.2. Enkripsi Database menggunakan Algoritma AES Database menyimpan keseluruhan informasi pemungutan suara dari setiap TPS, baik berupa data jumlah suara, informasi pemenang pemilihan di setiap TPS, informasi log pemilihan, informasi pemilih, dll. Keseluruhan informasi ini bersifat rahasia dan tidak selayaknya diketahui oleh pihak lain diluar penyelenggara pemungutan suara. Atas dasar hal ini, informasi yang terdapat pada database dirahasiakan dengan menyamarkannya ke dalam bentuk ciphertext melalui proses enkripsi dengan algoritma AES 128-bit yang dapat mengenkripsi file dengan ukuran yang besar. Universitas Sumatera Utara 38 Berikut langkah-langkah yang dilakukan dilakukan pada proses enkripsi database dengan menggunakan algoritma AES128-bit kunci: 1. Masukkan 16 bilangan heksadesimal ke dalam matriks berukuran 4x4 sebagai kunci. 2. Konversikan setiap karakter yang tersimpan dalam database yang akan dienkripsi ke nilai ASCII. 3. Konversikan nilai ASCII tersebut ke dalam heksadesimal. 4. Mengelompokkan setiap karakter yang telah diubah ke heksadesimal tersebut menjadi 128-bit tiap bagiannya. 5. Mengambil setiap 128-bit untuk dikelompokkan kembali menjadi 16 bagian dengan 8-bit 1 byte tiap bagiannya dan memasukkan tiap bagian tersebut pada sel matriks berukuran 4x4. 6. Lakukan ekspansi kunci dengan langkah AddRoundKey. 7. Lakukan langkah SubBytes dengan cara menstubstitusi setiap byte yang telah diekspansi ke dalam tabel S-Box. 8. Lakukan langkah ShiftRows dengan melakukan rotasi hasil SubByte ke arah kanan mulai baris ke-2 hingga baris ke-4. 9. Lakukan langkah MixColumns dengan melakukan operasi XOR pada hasil transformasi ShiftRow menggunakan matriks RCON yang merupakan nilai konstanta pada algoritma AES. 10. Lakukan langkah AddRoundKey. 11. Ulangi langkah 7-10 sebanyak 9 kali. 12. Jika langkah 11 sudah dilakukan, maka lakukan langkah SubByte untuk memperoleh kunci ke-10. 13. Lakukan kembali langkah ShiftRows. 14. Lakukan langkah AddRoundKey pada kunci ke-10 untuk mendapatkan ciphertext. Berikut gambar 3.3. yang menunjukkan proses enkripsi file plaintext database menjadi bentuk ciphertext dengan menggunakan algoritma AES 128-bit. Universitas Sumatera Utara 39 AddRoundKey XOR Chiper Key n = 10 i = 1 i ≤ n -1 SubBytes ShitfRows AddRoundKey XOR Sub-Kunci ke-10 SubBytes ShitfRows MixColoumns AddRoundKey XOR Kunci ke-i i + 1 Tidak Ya Database à ASCII à HEX Input Proses Output Ciphertext database Gambar 3.3. Proses enkripsi database 3.1.3. Enkripsi Kunci Algoritma AES menggunakan Algoritma RSA Kunci algoritma AES menjadi faktor penting dalam pengamanan informasi yang disimpan dalam database yang telah dienkripsi. Apabila kunci algoritma AES ini didapat oleh pihak - pihak lain yang tidak bertanggung jawab di luar penyelenggara pemungutan suara, maka pengamanan pada database yang telah dienkripsi menjadi sia-sia, karena dapat dengan mudah didekripsi dengan menggunakan kunci algoritma AES ini. Untuk itu, kunci algoritma AES harus diamankan melalui proses enkripsi dengan menggunakan kunci publik algoritma RSA 2048-bit yang memiliki ketahanan yang baik terhadap serangan yang telah diberikan oleh KPU. Langkah - langkah yang dilakukan pada enkripsi kunci algoritma AES ini tidak jauh berbeda dengan langkah - langkah yang dilakukan pada proses enkripsi data jumlah suara. Berikut gambar 3.4. yang menunjukkan proses enkripsi kunci algoritma AES. Universitas Sumatera Utara 40 Enkripsi C i = P i e mod n Karakter kunci algoritma AES à ASCII = P i Kunci algoritma AES P Ciphertext karakter kunci algoritma AES Ci Ciphertext kunci algoritma AES C Gambar 3.4. Proses enkripsi kunci algoritma AES 3.1.4. Tanda Tangan Digital dengan SHA-1 Keaslian informasi yang diperoleh merupakan hal penting dalam proses rekapitulasi menggunakan sistem e-voting ini. Keaslian informasi berkaitan dengan pertanyaan apakah informasi yang dikirimkan dan diterima oleh KPU adalah informasi asli yang bersumber dari TPS dan tidak mengalami perubahan sedikit pun pada saat pengirimannya. Atas dasar hal ini, tanda tangan digital disisipkan ke setiap file yang akan didistribusikan ke KPU untuk menjaga keaslian dan keutuhan informasi tersebut. Teknik yang digunakan dalam pembuatan tanda tangan digital dalam sistem e- voting ini adalah menggunakan fungsi hash SHA-1 untuk menghasilkan message digest dan menyisipkannya ke dalam file dengan algoritma RSA dan seperti yang dapat dilihat pada gambar 3.5. Ciphertext database kunci AES Fungsi Hash SHA-1 Message Digest Sign Signature Private Key RSA Signed ciphertext database kunci AES Signature Gambar 3.5. Proses tanda tangan digital Universitas Sumatera Utara 41 3.1.5. Verifikasi Tanda Tangan Digital Verifikasi tanda tangan digital digunakan untuk mengetahui dan memverifikasi keaslian dari setiap file yang diterima oleh KPU. Apabila file yang diterima adalah file yang telah mengalami perubahan pada saat proses pengirimannya baik perubahan nama maupun perubahan isi, maka nilai message digest yang dihasilkan oleh fungsi hash SHA-1 file tersebut akan berbedadengan nilai message digest pada tanda tangan digital yang telah disisipkan, sehingga akan mengindikasikan adanya perubahan isi ataupun kandungan informasi. Proses verifikasi tanda tangan digital ini dapat dilihat pada gambar 3.6. Signed ciphertext database kunci AES Ciphertext database kunci AES Fungsi hash SHA-1 Verifikasi Message Digest Message Digest ? = Public Key RSA Signature Signature Gambar 3.6. Verifikasi tanda tangan digital 3.1.6. Dekripsi Data Jumlah Suara menggunakan Algoritma RSA Data jumlah suara yang telah diubah ke dalam bentuk ciphertext harus dapat dikembalikan ke dalam bentuk semula yang menampilkan nilai perolehan suara dari setiap kandidat. Untuk bisa menampilkannya, ciphertext tersebut didekripsi dengan menggunakan kunci privat algoritma RSA. Langkah - langkah yang dilakukan pada proses dekripsi merupakan kebalikan dari proses enkripsi dengan menggunakan persamaan Pi = C i d mod n, dimana P merupakan hasil dari dekripsi dengan nilai Universitas Sumatera Utara 42 ASCII, C merupakan ciphertext data jumlah suara, i menunjukkan indeks, d dan n merupakan nilai dari kunci privat algoritma RSA. Hasil dekripsi yang berupa nilai ASCII kemudian dikonversikan kembali ke bentuk semulanya berdasarkan nilai pada tabel ASCII. Sebagai contoh akan diselesaikan dekripsi ciphertext data jumlah suara yang telah dienkripsi pada contoh sebelumnya. Langkah - langkah dalam proses dekripsi ciphertext data jumlah suara adalah sebagai berikut. 1. Ambil kunci publik d = 283 dan modulus n = 2077 2. Pisahkan kararakter ciphertext data jumlah suara sesuai dengan indeksnya menjadi 348-583-111-127 3. P 1 = 348 283 mod 2077 → 50 P 2 = 583 283 mod 2077 → 56 P 3 = 111 283 mod 2077 → 51 P 4 = 127 283 mod 2077 → 55 6. Konversikan setiap karakter data jumlah suara P 1 = 50 → ASCII = 2 P 2 = 56 → ASCII = 8 P 3 = 51 → ASCII = 5 P 4 = 55 → ASCII = 7 4. Gabungkan kembali hasil dari proses dekripsi sehingga didapat plaintext 2857 Berikut gambar 3.7. yang menunjukkan proses dekripsi ciphertext data jumlah suara. Dekripsi P i = C i d mod n P i à ASCII Indeks ciphertext jumlah suara C i Plaintext jumlah suara P Ciphertext jumlah suara C Gambar 3.7. Proses dekripsi data jumlah suara Universitas Sumatera Utara 43 3.1.7. Dekripsi Database menggunakan Algoritma AES Sebelum dapat menggunakan informasi yang disimpan dalam database dari masing – masing TPS, database yang telah diubah ke dalam bentuk ciphertext harus diubah kembali ke dalam bentuk plaintext melalui proses dekripsi dengan menggunakan kunci algoritma AES yang diberikan oleh masing - masing TPS. Proses dekripsi database dengan menggunakan AES 128-bit ini secara umum menggunakan langkah yang sama dengan langkah pada proses enkripsi, hanya saja pada proses dekripsi AES memiliki urutan proses transformasi penyusun tiap iterasi yang berbeda. Tidak hanya itu, transformasi yang digunakan pun merupakan transformasi kebalikan atau invers dari proses transformasi penyusun setiap iterasi pada proses enkripsi. Langkah – langkah tersebut dapat dilihat pada gambar 3.8. AddRoundKey XOR Sub-Kunci ke-10 Inverse ShiftRows Inverse SubBytes n = 1 i = 9 i ≥ n AddRoundKey XOR Sub-Kunci ke-i Inverse ShiftRows Inverse SubBytes Inverse MixColoumns i = i - 1 AddRoundKey XOR Chiperkey Ya Tidak Decrypted ciphertext à DEC à ASCII Input Proses Output Ciphertext database Plaintext database Gambar 3.8. Proses dekripsi database Universitas Sumatera Utara 44 3.1.8. Dekripsi Kunci Algoritma AES menggunakan Algoritma RSA Kunci algoritma AES digunakan untuk mendekripsi ciphertext database yang berisi informasi dari seluruh proses pemungutan suara yang telah dilakukan. Namun, kunci algoritma AES yang dikirim merupakan ciphertext yang tidak dapat digunakan sebelum dirubah kembali ke dalam bentuk plaintext. Untuk dapat mengubahnya, ciphertext didekripsi menggunakan kunci privat yang dimiliki oleh KPU. Langkah - langkah yang dilakukan pada proses dekripsi data jumlah suara tidak jauh berbeda dengan langkah yang dilakukan pada proses dekripsi kunci alogirtma AES. seperti yang terlihat pada gambar 3.9. Dekripsi P i = C i d mod n P i à ASCII Indeks ciphertext kunci algoritma AES C i Plaintext kunci algoritma AES P Ciphertext kunci algoritma AES C Gambar 3.9. Proses dekripsi kunci algoritma AES

3.2. Analisis dan Perancangan Sistem e-Voting