ANALISIS DAN PERANCANGAN KEAMANAN INFORMASI PADA ELECTRONIC VOTING MENGGUNAKAN ALGORITMA KRIPTOGRAFI KUNCI PUBLIK SKRIPSI POLIN SAUT PATOGU PARDEDE 071402014 PROGRAM STUDI TEKNOLOGI INFORMASI FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2012
ANALISIS DAN PERANCANGAN KEAMANAN INFORMASI PADA ELECTRONIC VOTING MENGGUNAKAN ALGORITMA KRIPTOGRAFI KUNCI PUBLIK SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Teknologi Informasi POLIN SAUT PATOGU PARDEDE 071402014 PROGRAM STUDI TEKNOLOGI INFORMASI FAKULTAS KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA 2012
ii PERSETUJUAN Judul : ANALISIS DAN PERANCANGAN KEAMANAN INFORMASI PADA ELECTRONIC VOTING MENGGUNAKAN ALGORITMA KRIPTOGRAFI KUNCI PUBLIK Kategori : SKRIPSI Nama : POLIN SAUT PATOGU PARDEDE Nomor Induk Mahasiswa : 071402014 Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI Departemen : TEKNOLOGI INFORMASI Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI Komisi Pembimbing : Diluluskan di Medan, Juli 2012 Pembimbing 2 Pembimbing 1 Dedy Arisandi, ST.M.Kom NIP. 197908312009121002 M. Andri Budiman S.T., M.Comp.Sc., M.E.M. NIP. 197510082008011011 Diketahui/Disetujui oleh Program Studi Teknologi Informasi Ketua, Prof. Dr. Opim Salim Sitompul, M.Sc NIP 19610817 198701 1001
iii PERNYATAAN ANALISIS DAN PERANCANGAN KEAMANAN INFORMASI PADA ELECTRONIC VOTING MENGGUNAKAN ALGORITMA KRIPTOGRAFI KUNCI PUBLIK SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya. Medan, Juli 2012 Polin Saut Patogu Pardede 071402014
iv PENGHARGAAN Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Kuasa yang telah melimpahkan berkat dan rahmatnya sehingga penulis dapat menyelesaikan skripsi ini. Penulis sangat menyadari bahwa Tuhanlah yang sangat berperan membantu dan mengingatkan disaat penulis jatuh ataupun terlena selama mengerjakan skripsi ini. Dalam menyelesaikan skripsi ini penulis menyadari banyak mendapatkan bantuan dari berbagai pihak baik bantuan secara materi maupun moril. Pada kesempatan ini dengan segala kerendahan hati, penulis ingin mengucapkan terima kasih yang sedalam-dalamnya kepada: 1. Kedua orang tua penulis, yaitu Rico Selwin Pardede dan Lolita Hutabarat, karena berkat dukungan dan kesabarannya baik secara moril maupun materil sehingga penulis dapat menyelesaikan skripsi ini. Kepada Kakak, Marune Renta Pardede yang juga memberikan dukungan kepada penulis. 2. Kepada Bapak M. Andri Budiman S.T., M.Comp.Sc., M.E.M. dan Bapak Dedy Arisandi, ST.M.Kom selaku dosen pembimbing penulis yang telah memberikan saran dan masukan serta bersedia meluangkan waktu, tenaga dan pikiran untuk menyelesaikan skripsi ini. 3. Kepada dosen penguji saya Bapak M Anggia Muchtar, S.T.MM.IT dan Ibu Dr Erna Budhiarti Nababan, M.IT yang banyak memberikan masukan. 4. Ketua dan Sekretaris Jurusan Prof. Dr. Opim Salim, MSc dan Drs. Sawaluddin, M.IT. 5. Seluruh Dosen yang mengajar pada program studi Teknologi Informasi. 6. Teman-teman seangkatan di jurusan Teknologi Informasi 2007 : Boy Manalu, Bambang Kurniawan, Musyafa Hutagalung, Fadhli Noor, Erlin Umar Dhani, Muhammad Reza, Seluruh teman-teman sejawat yang tidak dapat disebutkan satu persatu. Terima kasih atas bantuan kalian, teman. 7. Adik-adik kelas di jurusan Teknologi Informasi 2009 yang sudah banyak membantu : Rizqi Mulki, Fitrah. 8. Teman-teman basket yang selalu memberikan support dan dukungan agar cepat menyelesaikan skripsi. 9. Saudara-saudara dan keluarga terdekat. Penulis menyadari bahwa hasil penulisan skripsi ini masih banyak kesalahan dan jauh dari sempurna. Oleh karena itu, kritik dan saran dari pembaca sangatlah penulis harapkan bagi perbaikan dan kesempurnaan di masa yang akan datang. Penulis mohon maaf apabila terdapat kekurangan dan kesalahan dalam penulisan skripsi ini. Akhir kata, penulis ucapkan terima kasih kepada semua pihak yang terkait dalam penyelesaian skripsi ini yang tidak bisa disebutkan satu persatu, biarlah Tuhan yang membalas semua kebaikan kalian. Amin.
v ABSTRAK Pemungutan suara secara konvensional atau voting adalah proses pemungutan suara dan aspirasi serta keputusan penting untuk beberapa pihak. Tetapi pemungutan secara konvensional membutuhkan waktu yang lama dan sangat melelahkan untuk menunggu hasil voting. e-voting menjadi alternatif proses pemungutan suara yang lebih mudah dan cepat serta dapat menurunkan tingkat kesalahan. Tetapi penerapan e- voting menyisakan persoalan terkait soal keamanan informasi yaitu keutuhan data (integrity), kerahasiaan informasi (confidentiality), dan ketersediaan informasi (availability). Kriptografi dapat dimanfaatkan untuk menjawab pertanyaan terkait dengan keamanan informasi berupa kerahasiaan, keutuhan data, nir penyangkalan, serta otentikasi. Pada skripsi ini dijelaskan bagaimana algoritma kunci publik yaitu algoritma RSA digunakan untuk meningkatkan pertukaran informasi dalam e-voting. Hasil dari penelitian ini adalah sebuah sistem e-voting berbasis web menggunakan bahasa pemograman PHP dan database MySql dan menunjukkan bahwa algoritma kunci publik cukup aman digunakan untuk keamanan informasi pada e-voting. Kata Kunci : kriptografi, keamanan informasi, e-voting
vi ANALYSIS AND DESIGN OF INFORMATION SECURITY FOR ELECTRONIC VOTING SYSTEM USING PUBLIC KEY ALGORITHM ABSTRACT Conventional ballot is the voting process and to make important decisions for several parties involved. But voting is very time consuming and very tiring to wait for the results of voting. e-voting is an alternative voting process which can make easier and faster and can reduce the error rate. But the application of e-voting remains a matter of information security-related issues, namely the integrity of the data, confidentiality and availability of information. Cryptography can be used to answer questions related to information security in the form of confidentiality, integrity of data, nonrepudiation, and authentication. In this study, it is described how a public-key algorithm (RSA algorithm) is used to improve the exchange of information in the e- voting. The results of this study is an e-voting system using a web-based programming language PHP and MySql database.it is shown whether the public key algorithm used is safe enough for security of information on e-voting. Keywords : cryptography, information security, e-voting
vii DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar ii iii iv v vi vii x xii BAB 1 PENDAHULUAN 1 1.1 Latar belakang 1 1.2 Rumusan Masalah 3 1.3 Batasan Masalah 3 1.4 Tujuan Penelitian 4 1.5 Manfaat Penelitian 4 1.6 Metode Penelitian 4 1.7 Sistematika Penulisan 5 BAB 2 LANDASAN TEORI 7 2.1 Voting 7 2.2 e-voting 8 2.3 Kriptografi 10 2.3.1 Kunci Simetrik 12 2.3.2 Kunci Asimetrik 13 2.4 Algoritma Kriptografi RSA 14 2.5 Konsep Dasar Perhitungan Matematis 15 2.5.1 Fungsi Totient Euler φ 15 2.5.2 Algoritma Euclidean 16 2.5.3 Metode Fast Exponition 17
viii 2.6 Proses Enkripsi dan Dekripsi RSA 18 2.6.1 Proses Pembentukan Kunci 18 2.6.2 Proses Enkripsi 18 2.6.3 Proses Dekripsi 19 2.7 Captcha 21 2.8 Unified Modelling Language (UML) 22 2.8.1 Diagram Use Case 24 2.8.2 Spesifikasi Use Case (Use Case Spesification) 25 2.8.3 Diagram Sekuen 26 2.8.4 Diagram Aktivasi (Activity Diagram) 28 2.9 Flowchart 29 2.10 Bahasa Pemograman PHP 30 BAB 3 ANALISIS DAN PEMODELAN PERANGKAT LUNAK 33 3.1 Analisis Sistem Enkripsi dan Dekripsi dengan 33 Algoritma RSA 3.1.1 Pembangkitan Kunci 33 3.1.2 Enkripsi 34 3.1.3 Dekripsi 34 3.2 Deskripsi Perangkat Lunak 35 3.3 Pemodelan Diagram Use Case 36 3.3.1 Model Spesifikasi Use Case 39 3.3.2 Model Interaksi Diagram Sequence 50 3.3.3 Kelas Diagram 54 3.3.4 Diagram Aktivitas 54 3.4 Perancangan Antarmuka Sistem 56 3.4.1 Rancangan Antarmuka pada sisi Administrator 56 3.4.2 Rancangan Antarmuka pada sisi Operator 60 3.4.3 Rancangan Antarmuka pada sisi User 62 3.5 Perancangan Flowchart Sistem 63 3.6 Flowchart Enkripsi dengan Algoritma RSA 68 3.7 Flowchart Enkripsi dengan Algoritma RSA 69
ix BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 71 4.1 Spesifikasi Perangkat Keras dan Perangkat Lunak 71 yang digunakan 4.2 Uji Batasan 72 4.3 Pengujian Sistem Secara Menyeluruh 73 4.3.1 Pengujian pada sisi Administrator dan Operator 73 4.3.2 Pengujian pada sisi User 78 4.4 Analisis Kriptografi Kunci Publik terhadap Sistem 80 4.4.1 Analisis Keamanan Informasi Data di dalam Sistem 80 setelah Pengujian 4.4.2 Requirement Dasar e-voting yang terpenuhi setelah 81 Pengujian BAB 5 KESIMPULAN DAN SARAN 83 5.1 Kesimpulan 83 5.2 Saran 83 DAFTAR PUSTAKA 84 LAMPIRAN LISTING PROGRAM 86
x DAFTAR TABEL Halaman Tabel 2.1 Tabel Proses Mencari Kunci Privat (d) 19 Tabel 2.2 Tabel Elemen elemen dasar Sequence Diagram 26 Tabel 2.3 Tabel Simbol Aktivitas Diagram 28 Tabel 2.10 Flowchart 29 Tabel 3.1 Spesifikasi Use Case Administrator Login 39 Tabel 3.2 Spesifikasi Use Case Lihat Profil Kandidat 40 Tabel 3.3 Spesifikasi Use Case Edit Profil Kandidat 40 Tabel 3.4 Spesifikasi Use Case Administrator Lihat Pendaftar 41 Tabel 3.5 Spesifikasi Use Case Administrator Lihat Memilih 42 Tabel 3.6 Spesifikasi Use Case Administrator Membuat Operator Baru 42 Tabel 3.7 Spesifikasi Use Case Administrator Edit Operator 43 Tabel 3.8 Spesifikasi Use Case Administrator Hasil Voting 44 Tabel 3.9 Spesifikasi Use Case Administrator Logout 44 Tabel 3.10 Spesifikasi Use Case Operator Login 45 Tabel 3.11 Spesifikasi Use Case Operator Registrasi 46 Tabel 3.12 Spesifikasi Use Case Operator Lihat Pendaftar 46 Tabel 3.13 Spesifikasi Use Case Operator Lihat yang Memilih 47 Tabel 3.14 Spesifikasi Use Case Operator Logout 48 Tabel 3.15 Spesifikasi Use Case User Login 48 Tabel 3.16 Spesifikasi Use Case User Pilih Kandidat 49 Tabel 3.17 Spesifikasi Use Case User Lihat Hasil Voting 49 Tabel 3.18 Spesifikasi Use Case User Logout 50 Tabel 4.1 Tabel requirement dasar e-voting 81
xi DAFTAR GAMBAR Halaman Gambar 2.1 Skema Kriptografi Kunci Simetrik 12 Gambar 2.2 Skema Kriptografi Kunci Asimetrik 13 Gambar 2.3 Captcha 21 Gambar 2.4 Cara meng-embed captcha 22 Gambar 2.5 Aktor-aktor use case 24 Gambar 2.6 Aktor dan use case 25 Gambar 2.7 Keterhubungan 25 Gambar 3.1 Diagram Use Case Administrator 37 Gambar 3.2 Diagram Use Case Operator 38 Gambar 3.3 Diagram Use Case User 38 Gambar 3.4 Diagram Sequence User Lihat Hasil Voting 51 Gambar 3.5 Diagram Sequence User Pilih Kandidat 51 Gambar 3.6 Diagram Sequence Registrasi Mahasiswa 52 Gambar 3.7 Diagram Sequence User Login 53 Gambar 3.8 Diagram Sequence Administrator Lihat Kandidat 53 Gambar 3.9 Kelas Diagram 54 Gambar 3.10 Diagram Aktivitas Regsitrasi Mahasiswa 55 Gambar 3.11 Diagram Aktivitas Login 55 Gambar 3.12 Diagram Aktivitas Lihat Hasil Voting 56 Gambar 3.13 Rancangan Halaman Login 57 Gambar 3.14 Rancangan Halaman Dashboard 57 Gambar 3.15 Rancangan Halaman Lihat Profil Kandidat 58 Gambar 3.16 Rancangan Halaman Lihat Pendaftar 58 Gambar 3.17 Rancangan Halaman Daftar Operator 59 Gambar 3.18 Rancangan Halaman Lihat Diagram 59 Gambar 3.19 Rancangan Halaman Login 60 Gambar 3.20 Rancangan Halaman Tambah User 61 Gambar 3.21 Rancangan Halaman Lihat Pendaftar 61 Gambar 3.22 Rancangan Halaman Lihat yang Sudah Memilih 62 Gambar 3.23 Rancangan Halaman Login 62
xii Gambar 3.24 Rancangan Halaman Pilih Kandidat 63 Gambar 3.25 Flowchart Proses Login 64 Gambar 3.26 Flowchart Proses Registrasi Mahasiswa 65 Gambar 3.27 Flowchart Proses pengaktifan akun pemilih 66 Gambar 3.28 Flowchart Proses Pemilihan Kandidat 67 Gambar 3.29 Flowchart Proses perhitungan hasil voting 68 Gambar 3.30 Flowchart Enkripsi 69 Gambar 3.31 Flowchart Deskripsi 70 Gambar 4.1 Proses Enkripsi Jumlah Suara 72 Gambar 4.2 Proses Dekripsi Jumlah Suara 72 Gambar 4.3 Tampilan Batasan algoritma RSA 72 Gambar 4.4 Halaman Login Administrator dan Operator 73 Gambar 4.5 Halaman Beranda Administrator 74 Gambar 4.6 Halaman Beranda Operator 74 Gambar 4.7 Halaman Profil Kandidat 75 Gambar 4.8 Halaman Tambah Kandidat 75 Gambar 4.9 Halaman Lihat Pendaftar 76 Gambar 4.10 Halaman Lihat yang Sudah Memilih 76 Gambar 4.11 Halaman Daftar Operator 77 Gambar 4.12 Halaman Tambah User 77 Gambar 4.13 Halaman Login Mahasiswa 78 Gambar 4.14 Halaman Pemilih 78 Gambar 4.15 Pembatasan waktu akses voting 79 Gambar 4.16 Halaman Lihat Hasil Voting 79 Gambar 4.17 Kandidat setelah Pengujian 80