SIMULASI PENCARIAN KUNCI PRIVAT DENGAN METODE MODIFIKASI POLLARD Rho PADA ALGORITMA
KRIPTOGRAFI RSA
SKRIPSI
RAMRUDIN 091401023
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA MEDAN
SIMULASI PENCARIAN KUNCI PRIVAT DENGAN METODE MODIFIKASI POLLARD Rho PADA ALGORITMA
KRIPTOGRAFI RSA
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Ilmu Komputer
RAMRUDIN 091401023
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2014
PERSETUJUAN
Judul : SIMULASI PENCARIAN KUNCI PRIVATE
DENGAN METODE MODIFIKASI POLLARD Rho PADA ALGORITMA KRIPTOGRAFI RSA
Kategori : SKRIPSI
Nama : RAMRUDIN
NomorIndukMahasiswa : 091401023
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Diluluskan di
Medan, 11 Februari 2014
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Maya Silvi Lydia, B.Sc., M.Sc Syahriol Sitorus, S.Si, MIT NIP. 197401272002122001 NIP.197103101997031004
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
SIMULASI PENCARIAN KUNCI PRIVATE DENGAN METODE MODIFIKASI
POLLARD Rho PADA ALGORITMA KRIPTOGRAFI RSA
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 11 Februari 2014
RAMRUDIN NIM. 091401023
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 Prof. Dr. dr. Syahril Pasaribu, DTM&H, Msc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, serta Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembimbing II yang telah memberikan saran dalam penyempurnaan skripsi ini.
5. Bapak Syahriol Sitorus, S.Si, MIT selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran, nasehat dan masukan kepada saya dalam pengerjaan skripsi ini.
6. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
7. Bapak Romi Fadillah Rahmat, B.Comp.Sc, M.Sc selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
8. Seluruh tenaga kerja dan pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara.
9. Ayahanda Nizar dan ibunda Amnah, serta kakanda Ir. Armayadi, Ariami, Marwan Azwar, Hairunsyah yang selalu memberikan kasih sayang, perhatian dan dukungannya kepada penulis.
10. Rekan-rekan kuliah, khususnya Suri Syahfitri, Eko Verdianto, Fauzana S, Tengku Surya Pramana, Ahmad Royhan, Isman Santoso yang selalu memberikan semangat dan dorongan kepada penulis selama menyelesaikan skripsi ini.
12. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.
Medan, 11 Februari 2014 Penulis
Ramrudin
ABSTRAK
RSA (Rivest, Shamir, Adleman) merupakan algoritma kriptografi yang asimetris dimana RSA menggunakan sepasang kunci, yaitu kunci publik biasanya disebut e dan
n dan kunci privat biasanya disebut d. Algoritma ini dikategorikan sebagai algoritma
kriptografi yang aman, karena memiliki bit kunci yang panjang. Semakin panjang bit kunci maka semakin sulit pula untuk dipecahkan. Untuk menguji keamanan dari algoritma RSA pada penelitian ini, maka digunakan metode Pollard ρ (baca: Rho) untuk menemukan faktor dari n. Metode ini dipilih untuk menemukan faktor prima dari bilangan bulat yang besar dengan hanya menggunakan jumlah lokasi memori yang konstan. Modifikasi dilakukan dengan menambahkan pilihan fungsi polynomial yang dapat digunakan oleh metode Pollard ρ yaitu: x2 + 12x + 11, x2 + 2x + 23, 3x2 + 4x + 1 dan x2 – x + 1. Pengujian keprimaan dalam pembangkitan kunci RSA menggunakan Tes Prima Miller - Rabin. Pengujian dilakukan dengan melakukan enkripsi pada pesan, memecahkan kunci, dan melakukan dekripsi pada pesan. Pengujian dimulai dari 4 digit sampai 32 digit nilai n dengan increment 4. Dari pengujian untuk nilai n sebanyak 4 digit waktu rata-rata adalah 0.0007 detik, untuk nilai n = 8 digit waktu rata-rata adalah 0.0031 detik, untuk nilai n = 12 digit waktu rata-rata adalah 0.012 detik, untuk nilai n = 16 digit waktu rata-rata adalah 0.0626 detik, untuk nilai n = 20 digit waktu rata-rata adalah 0.577 detik, untuk nilai n = 24 digit waktu rata-rata adalah 6.414 detik, untuk nilai n = 28 digit waktu rata-rata adalah 1 menit 31.733 detik, untuk nilai n = 32 digit waktu rata-rata adalah 21 menit 27.560 detik. Secara umum, waktu pemecahan kunci akan semakin meningkat bila nilai n
yang digunakan semakin besar.
SIMULATION OF PRIVATE KEY SEARCHING ON RSA CRYPTOGRAPHY ALGORITHM USING MODIFIED POLLARD Rho
ABSTRACT
RSA (Rivest, Shamir, Adleman) is asymmetric cryptography algorithm which is use a pair of key, public key consist of e and n and private key usually called d. This Algorithm was categorized as safe cryptography algorithm, because it has long key length. The longer the key, the harder to break. To test the security of RSA Algorithm,
Pollard ρ method was used to factorize n. This method was choosen to find prime factor from a big number which use constant amount of memory. Modification was made by adding polynomial function options that can be used on Pollard ρ method such as: x2 + 12x + 11, x2 + 2x + 23, 3x2 + 4x + 1 and x2 – x + 1. Miller-Rabin prime test was used on generating RSA key. The test began by encrypting a message, finding the key and decrypting the message using the obtained key. Testing began on the 4-digit to 32-4-digit value of n on increment 4. The average time it tooks to find the keys from 4-digit value of n was 0.0007 second, 8-digit value of n was 0.0031 second, 12-digit value of n was 0.012 second, 16-digit value of n was 0.0626 second, 20-digit value of n was 0.577 second, 24-digit value of n was 6.414 seconds, 28-digit value of n was 1 minute 31.733 seconds, 32-digit value of n was 21 minutes 27.560 seconds. Generally speaking, the time to break the key will increase if the value of n is bigger.
Keyword: Cryptography, RSA, Pollard ρ, Pollard ρ Modification, Miller-Rabin prime test.
DAFTAR ISI
1.2 Perumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metode Penelitian 4
1.7 Diagram Alir Sistem 5
1.8 Sistematika Penulisan 6
Bab II Tinjauan Pustaka
2.1 Kriptografi 7
2.1.1 Sistem Kriptografi 7
2.2 Sistem Kriptografi RSA 8
2.2.1 Algoritma RSA 9
2.3 Algorotma Miller-Rabin 10
2.4 Algoritma Euclid GCD 11
2.5 Metode Pollard ρ 11
2.5.1 Modifikasi Pollard ρ 13
2.5.2 Fungsi Polynomial 14
2.5.3 Faktorisasi Kunci RSA dengan Metode Pollard ρ 14
2.6 Tinjauan Penelitian yang Relevan 16
Bab III Analisis dan Perancangan Sistem
3.1 Analisis Permasalahan 17
3.2 Analisis Kebutuhan Sistem 17
3.2.1 Analisis Kebutuhan Fungsional Sistem 17
3.2.2 Analisis Kebutuhan Non-Fungsional Sistem 18
3.3 Pemodelan 18
3.3.1 Pemodelan dengan Menggunakan Use Case Diagram 18
3.3.1.1 Use Case Encrypt 19
3.3.1.2 Use Case Decrypt 20
3.3.2.1 Activity Diagram Encrypt 22
3.3.2.2 Activity Diagram Decrypt 23
3.3.3 Pemodelan dengan Menggunakan Sequence Diagram 24
3.3.3.1 Sequence Diagram Encrypt 24
3.3.3.2 Sequence Diagram Decrypt 24
3.4 Perancangan Sistem 25
3.4.1 Flowchart Sistem 25
3.4.1.1 Flowchart Gambaran Umum Sistem 25
3.4.1.2 Flowchart Proses Pembangkitan Kunci 26 3.4.1.3 Flowchart Proses Enkripsi Pesan 26 3.4.1.4 Flowchart Proses Faktorisasi Pollardρ 27 3.4.1.5 Flowchart Proses Dekripsi Pesan 28
3.4.2 Rancangan Antar Muka 29
3.4.2.1 Antar Muka Form Cover 29
3.4.2.2 Antar Muka Form Menu Utama 30
3.4.2.2.1 RSA Cryptosystem 30
3.4.2.2.2 RSA Hack With Pollard 32
Bab IV Implementasi dan Pengujian
4.1 Analisis Sistem 35
4.1.1 Analisis Algoritma RSA 35
4.1.1.1 Proses Pembangkitan Kunci Algoritma RSA 35 4.1.1.2 Proses Enkripsi dengan Algoritma RSA 40 4.1.1.3 Proses Dekripsi dengan Algoritma RSA 41
4.1.2 Analisis Metode Pollard ρ 42
4.2 Implementasi Sistem 43
4.2.1 Form Utama 44
4.2.2 Form RSA Hack With Pollard Rho 44
4.2.2.1 RSA Cryptosystem 44
4.2.2.2 RSA Hack With Pollard 45
4.3 Pengujian Sistem 46
4.3.1 Hasil Pengujian Sistem 47
4.3.2 Grafik Waktu Terhadap Jumlah Digit Nilai n 58
4.3.3 Perbandingan Grafik Waktu dan Tahap 60
Bab V Kesimpulan dan Saran
5.1 Kesimpulan 63
5.2 Saran 64
Daftar Pustaka 65
DAFTAR TABEL
DAFTAR GAMBAR
3.10 Flowchart ProsesDekripsi Pesan 28
3.11 Rancangan Form Cover 29
3.12 Rancangan Form Menu Utama Bagian RSA Cryptosystem 30 3.13 Rancangan Form Menu Utama Bagian RSA Hack With Pollard 32
4.1 Implementasi Form Utama 44
4.2 Tab RSA Cryptosystem 45
4.3 Tab RSA Hack With Pollard 46
4.4 Grafik Waktu Enkripsi Terhadap Jumlah Digit Nilai n 59 4.5 Grafik Waktu Pemecahan Kunci Terhadap Jumlah Digit Nilai n 59 4.6 Grafik Perbandingan Waktu Pemecahan Kunci Terhadap Jumlah Digit n 61 4.7 Grafik Perbandingan Tahap Pemecahan Kunci Terhadap Jumlah Digit n 62
DAFTAR LAMPIRAN
Halaman
A. Listing Program 67