ANALISIS DAN PERANCANGAN SISTEM
AUTENTIKASIPENGGUNA PADA WEB MENGGUNAKAN
METODE
MULTIPLE-KEYRSA
SKRIPSI
FAUZANA S
091401031
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
ANALISIS DAN PERANCANGAN SISTEM AUTENTIKASI PENGGUNA PADA WEB MENGGUNAKAN METODE
MULTIPLE-KEY RSA SKRIPSI Diajukanuntukmelengkapitugasakhirdanmemenuhisyaratmemperoleh ijazahSarjanaIlmu Komputer FAUZANA S 091401031
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2013
PERSETUJUAN
Judul : ANALISIS DAN PERANCANGAN SISTEM
AUTENTIKASI PENGGUNA PADA WEB MENGGUNAKAN METODE
MULTIPLE-KEY RSA
Kategori : SKRIPSI
Nama : FAUZANA S
Nomor Induk Mahasiswa : 091401031
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA Diluluskan di
Medan, 13 Juni 2013
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
M. Andri Budiman, ST, M.Comp.Sc, MEM Maya Silvi Lydia, B.Sc, M.Sc
NIP.197510082008011011 NIP.197401272002121001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP.196203171991031001
iii
PERNYATAAN
ANALISIS DAN PERANCANGAN SISTEM AUTENTIKASI PENGGUNA PADA WEB MENGGUNAKAN METODE
MULTIPLE-KEY RSA
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 12 Juni2013
Fauzana S 091401031
PENGHARGAAN
Puji dan syukur kehadirat Allah SWT, yang hanya dengan rahmat dan izin-Nya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu
Komputer Universitas Sumatera Utara.
2. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi
S1IlmuKomputer Universitas Sumatera Utara dan Dosen Pembimbing.
3. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembimbing.
4. Bapak Syahriol Sitorus, S.Si, MITdan Ibu Dian Wirdasari, S.Si, M.Kom selaku
Dosen Pembanding.
5. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara, seluruhtenaga pengajar dan pegawai diProgram Studi S1Ilmu Komputer Fasilkom-TIUSU.
6. Ayahanda Sudirman Chaniago dan ibunda Farni Fachruddin, serta kakanda
Muhammad Hasief yang selalu memberikan kasih sayang dan dukungannya kepada penulis.
7. Rekan-rekan kuliah, khususnya Fithri Rizqi Khairani Nasution dan Murni
Novita Sari, serta teman-teman ca8in, Zulwita Hariyati, Fany Fairina
Nadyaningrum, Nurul Ulfah Primadini, Uswatun Hasanah, Annissa Fadilla, AuliaAkbar Harahap, dan Idris Siddiq yang selalu memberikan semangat dan dorongan kepada penulisselama menyelesaikan skripsi ini.
Semoga Allah SWT melimpahkan berkahkepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.Akhirnya, semoga skripsi ini bermanfaat bagi pribadi, keluarga, masyarakat, organisasi dan negara.
Medan, 12 Juni 2013
v
ABSTRAK
Sistem berbasis web dengan banyak pengguna memerlukan proses autentikasi untuk pemberian akses karena setiap pengguna sistem memiliki peran yang berbeda-beda satu sama lainnya. Proses autentikasi dilakukan untuk memeriksa identitas pengguna berdasarkan nama pengguna dan kata sandi. Salah satu mekanisme yang digunakan untuk proses autentikasi ini adalah Multiple-KeyRSA. Algoritma ini membangkitkan satu kunci utama dari seluruh kunci-kunci lainnya. Kunci-kunci dibangkitkan dengan syarat bahwa kunci yang akan dibangkitkan merupakan bilangan ganjil dan relatif prima terhadap kunci-kunci yang telah dibangkitkan sebelumnya. Pembangkitan kunci menggunakan konsep Strong Prime yang diimplementasikan dengan algoritma Gordon. Untuk membangkitkan bilangan prima, bilangan dibangkitkan secara acak dan diuji menggunakan algoritma Miller-Rabin. Implementasi sistem menggunakan
bahasa pemrograman Python 2.7, framework Flask dan database MongoDB. Sistem
diuji dengan kata sandi sepanjang 8 karakter, user sebanyak 2 hingga 10 pengguna
dan panjang kunci maksimum 4096 bit dengan interval 512 bit. Hasil penelitian menunjukkan bahwa untuk setiap panjang kunci berbanding lurus terhadap kata sandi yang dienkripsi. Selain itu, setiap bit kunci yang dibangkitkan menggunakan algoritma Gordon akan memiliki digit yang lebih panjang dari yang diharapkan. Rata-rata keseluruhan proses enkripsi adalah 0.404 detik dan dekripsi adalah 0.517 detik dengan kompleksitas waktu enkripsi maupun dekripsi pada kasus terbaik dan rata-rata ialah Ο(log(𝑛𝑛)2) dan pada kasus terburukialah Ο(log(𝑛𝑛)3). Kompleksitas waktu algoritma
Miller-Rabin ialah Ο(𝑘𝑘 log3𝑛𝑛), dengan 𝑘𝑘 = banyaknya nilai yang diuji atau |𝑛𝑛| =
jumlah digit 𝑛𝑛. Kompleksitas waktu algoritma Gordon ialah Ο(|𝑛𝑛| log3𝑛𝑛).
ANALYSIS AND DESIGN OF USER AUTHENTICATIONSYSTEM ON THE WEB USING MULTIPLE KEYRSA
ABSTRACT
Web-based system with many users requires authentication process for granting user acces because each user has different role. Authentication process is performed to verify the identity of the user based on username and password. One mechanism that is used for the authentication process is Multiple-Key RSA. These algorithms generate a main key from all other keys. The keys are generated such that the next key is odd number and coprime to the keys that had been generated previously. Key generation use the concept of a Strong Prime that implemented with Gordon algorithm. A number randomly generated and tested using the Miller-Rabin algorithm to generate prime number. System is implemented using Python 2.7 programming language, Flask
framework and MongoDB database. The system was tested with 8
characterspassword, with 2 up to 10 users and 4096 bitsmaximum key length with 512 bit interval. The results show that for each key length and encrypted password is linear ratio. Additionally and occasionally, every bit key generated using algorithms Gordon islonger than expected. Overall average is 0.404 second for encryption process and the
decryption is 0.517 second with Ο(log(𝑛𝑛)2)time complexity of encryption and
decryption in best and average caseand worst case isΟ(log(𝑛𝑛)3). Time complexity of
Miller-Rabin algorithm is Ο(𝑘𝑘 log3𝑛𝑛), with k = number of tested values or |𝑛𝑛| =
numberofdigits. Gordon algorithm time complexity is Ο(|𝑛𝑛| log3𝑛𝑛).
vii DAFTAR ISI Halaman Persetujuan ii Pernyataan iii Penghargaan iv Abstrak v Abstract vi
Daftar Isi vii
Daftar Tabel ix Daftar Gambar x Daftar Lampiran xi Bab I Pendahuluan 1.1 Latar Belakang 1 1.2 Rumusan Masalah 2 1.3 Batasan Masalah 2 1.4Tujuan Penelitian 2 1.5 Manfaat Penelitian 2 1.6 Metodologi Penelitian 3 1.7 Sistematika Penulisan 3
BabII Landasan Teori
2.1 Kriptografi 5
2.1.1 Definisi Kriptografi 5
2.1.2 Tujuan Kriptografi 5
2.2 Sistem Kriptografi 6
2.2.1 Sistem Kriptografi Klasik (Simetris) 6
2.2.2 Sistem Kriptografi Modern (Asimetris) 7
2.2.3 Sistem Kriptografi Kunci Publik 7
2.3 Teori Bilangan Integer 8
2.3.1 Faktor Persekutuan Terbesar 8
2.3.2 Algoritma Euclid dan Extended Euclid 8
2.3.3 Invers Modulo 9
2.3.4ϕ˗Euler 9
2.3.5Eksponensial Modulo 10
2.4 Sistem Kriptografi RSA 10
Bab III Analisis dan Perancangan 3.1 Analisis Sistem 15 3.1.1 Analisis Masalah 15 3.1.2 Analisis Kebutuhan 16 3.1.2.1Kebutuhan Fungsional 17 3.1.2.2Kebutuhan Nonfungsional 18 3.1.3Analisis Proses 18 3.2 Perancangan Sistem 19 3.2.1 Flowchart 19
3.2.1.1 Flowchart Pembangkitan Kunci 19
3.2.1.2Flowchart Algoritma Miller-Rabin 21
3.2.1.3Flowchart Algoritma Gordon 22
3.2.2 Data Flow Diagram (DFD) 23
3.2.2.1 DFD Level 0 23 3.2.2.2DFD Level 1 22 3.2.2.3DFD Level 2 Proses 1 24 3.2.2.4DFD Level 2 Proses 2 25 3.2.2.5DFD Level 2 Proses 4 25 3.2.3Kamus Data 26 3.2.4Mockup 27 3.2.4.1 Index Page 27 3.2.4.2Status Page 28 3.2.4.3Setting Page 28 3.2.4.4Reset Page 28 3.2.4.5System Page 29
Bab IV Implementasi dan Pengujian
4.1 Implementasi 30 4.1.1 Index Page 30 4.1.2 Status Page 31 4.1.3Setting Page 32 4.1.4 System Page 33 4.1.5 Reset Page 34 4.2 Pengujian 35 4.2.1 Skenario Enkripsi 36
4.2.2 Skenario Pembangkitan Kunci dan Proses Dekripsi 36
4.2.3Pengujian dan Analisis Hasil Enkripsi dan Dekripsi 37
4.2.4Pengujian dan Analisis Waktu Eksekusi
Miller-Rabin Primality Test 40
4.2.5Pengujian dan Analisis Waktu Eksekusi Gordon Strong Prime 41
4.2.6Pengujian dan Analisis Waktu Eksekusi Pembangkitan Kunci 43
Bab V Kesimpulan dan Saran
5.1 Kesimpulan 45
5.2Saran 46
ix
DAFTAR TABEL
Halaman
Tabel 3.1 Kamus Data Keys 27
Tabel 3.2 Kamus Data User_log 27
Tabel 3.3 Kamus Data Users 28
Tabel 4.1 Enkripsi kata sandi 37
Tabel 4.2 Dekripsi kata sandi 37
Tabel 4.3 Pasangan Kata Sandi dan Kunci setiap User 38
Tabel 4.4 Panjang Ciphertext, Rata-rata lama eksekusi proses Enkripsi dan Dekripsi
untuk setiap Panjang Kunci 39
Tabel 4.5 Kode enkripsi pesan 39
Tabel 4.6 Kode dekripsi pesan 40
Tabel 4.7 Rata-rata lama eksekusi Miller-Rabin Primality Test untuk setiap Panjang
Kunci 42
Tabel 4.8 Kode algoritma Miller-Rabin 42
Tabel 4.9 Rata-rata lama eksekusi algoritma Gordon untuk setiap Panjang Kunci 43
Tabel 4.10 Kode Pembangkit Bilangan Prima 44
Tabel 4.11 Kode algoritma Gordon 44
Tabel 4.12 Rata-rata lama eksekusi Pembangkitan Kunci Multiple-Key RSA untuk
DAFTAR GAMBAR
Halaman
Gambar 2.1 Skema Sistem Kriptografi Klasik 7
Gambar 2.2 Skema Sistem Kriptografi Kunci Publik 8
Gambar 3.1 Diagram Ishikawa Masalah Penelitian 17
Gambar 3.2 Flowchart Pembangkitan Kunci 21
Gambar 3.3 Flowchart A. Algoritma Miller-Rabin B. Fungsi Witness 22
Gambar 3.4 Flowchart Algoritma Gordon 23
Gambar 3.5 DFD Level 0 24
Gambar 3.6 DFD Level 1 25
Gambar 3.7 DFD Level 2 Proses 1 25
Gambar 3.8 DFD Level 2 Proses 2 26
Gambar 3.9 DFD Level 2 Proses 4 27
Gambar 3.10 Mockup Index page 28
Gambar 3.11 Mockup Status page 29
Gambar 3.12 Mockup Setting page 29
Gambar 3.14 Mockup System page 30
Gambar 4.1 Index Page 32
Gambar 4.2 Status Page 33
Gambar 4.3 Setting Page 34
Gambar 4.4 System Page 35
Gambar 4.5 Reset Page 36
Gambar 4.6 Grafik Panjang Kunci terhadap Panjang Kata Sandi Terenkripsi 39
Gambar 4.7 Grafik Panjang Kunci terhadap lama Proses Enkripsi 40
Gambar 4.8 Grafik Panjang Kunci terhadap lama Proses Dekripsi 40
Gambar 4.9 Grafik Panjang Kunci terhadap lama eksekusi
Miller-Rabin Primality Test untuk setiap Jumlah Pengguna 41
Gambar 4.10 Grafik Panjang Kunci terhadap lama eksekusi
algoritma Gordon untuk Setiap Jumlah Pengguna 43
Gambar 4.11 Grafik Panjang Kunci terhadap lama Pembangkitan Kunci
xi
DAFTAR LAMPIRAN
Halaman
A. Listing Program A-1