TEKNIK PEMECAHAN KUNCI ALGORITMA RIVEST SHAMIR ADLEMAN (RSA) DENGAN METODE KRAITCHIK
SKRIPSI
BUDI SATRIA MUCHLIS
091401046
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
TEKNIK PEMECAHAN KUNCI ALGORITMA RIVEST SHAMIR ADLEMAN (RSA) DENGAN METODE KRAITCHIK
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
ii
PERSETUJUAN
Judul : TEKNIK PEMECAHAN KUNCI ALGORITMA
RIVEST SHAMIR ADLEMAN (RSA) DENGAN MENGGUNAKAN METODE KRAITCHIK
Kategori : SKRIPSI
Nama : BUDI SATRIA MUCHLIS
Nomor Induk Mahasiswa : 091401046
Program Studi : SARJANA (S1) ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Diluluskan di
Medan, 17 April 2014
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dian Rachmawati, S.Si, M.Kom M.Andri Budiman, ST, M.Comp.Sc, MEM NIP. 19830723 200912 2 004 NIP. 19751008 200801 1 011
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
TEKNIK HACKING KUNCI ALGORITMA RIVEST SHAMIR ADLEMAN (RSA) DENGAN METODE KRAITCHIK
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 17 April 2014
` ivi
PENGHARGAAN
Alhamdulillah wa syukurillah, puji syukur kehadirat Allah SWT yang selalu
melimpahkan rahmat dan karunia-Nya kepada setiap manusia mulai dari ruhiyah, fikriyah dan jasmaniyah, mulai dari yang disadari atau tanpa disadari. Semuanya hanya karena keridhoan-Nya lah semua terjadi dan atas izin-Nya pula 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.
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 Akademik. 5. Bapak M. Andri Budiman, ST, M.CompSc, MEM dan Ibu Dian Rachmawati, S.Si,
M.Kom Selaku Dosen Pembimbing.
6. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc dan Bapak Handrizal, S.Si. M.Comp.Sc selaku Dosen Pembanding.
7. Para dosen dan pegawai di Departemen Ilmu Komputer Fasilkom-TI USU.
8. Orang tua tercinta, Ayahanda Muchlis Sy. Lodde dan ibunda Melly Efyanti, yang selalu memberikan kasih sayang dan dukungannya tiada kenal pamrih, bersusah payah hanya demi anaknya. Semoga selalu dalam lindungan dan keridhoan Allah sepanjang masa dan selalu bahagia dunia-akhirat.
selalu memotivasi penulis untuk menjadi yang terbaik. Semoga selalu dalam lindungan Allah SWT.
10.Saudara-saudara seperjuangan khususnya: Mahadi Z., Mhd. Arisandy Pratama, Zuwarbi Wiranda Hsb, Anton Gumala Putra, Basrah Nasution, Wahyu Ramadhan, Saipul Anwar, Affandi, Syukri Jundi dan Ganda Wijaya serta Vanji, Maulana, Aditya dan lainnya yang selalu mengingatkan penulis dalam suka dan dukanya. Semoga hati kita selalu dipersatukan Allah SWT. dalam naungan cinta-Nya. 11.Saudara-saudara senior khususnya: abangda Akmal Ahmad, Arie Yudha Nugraha
A.Md., Suharsono S.Kom, Zainuddin Siregar S.Kom., Eko Verdianto S.Kom, Azizah Endarstati S.Kom dan yang lainya yang selalu memberikan semangat dan dorongan dan motivasi kepada penulis selama menyelesaikan skripsi ini.
12.Saudara-saudara UKMI Al-Khuwarizmi, UKMI Al-Falak FMIPA, KAM Rabbani, UKMI Ad-Dakwah, FSLDK Sumut, IMILKOM, para pejuang Ilkom Stambuk 2009 dan lainnya yang tidak bisa disebutkan satu persatu, yang selalu memberikan semangat dan dorongan kepada penulis selama menyelesaikan skripsi ini.
Semoga Allah SWT melimpahkan berkah dan kebahagiaan dunia dan akhirat kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan baik moril maupun materil kepada penulis dalam menyelesaikan skripsi ini. “Bekerjalah seakan-akan engkau hidup selamanya, Beribadahlah seakan-akan engkau mati esok
hari”.
Medan, 17 April 2014
vi
ABSTRAK
Penelitian ini bertujuan memecahkan kunci privat algoritma RSA dengan memfaktorkan kunci publik n menggunakan metode Kraitchik dan melihat efisiensi waktu pemfaktorannya. Kriptanalisis dengan pemfaktoran (factoring) menggunakan kunci publik n yaitu n = p . q yang tidak dirahasiakan untuk memecahkan kunci privat RSA. Jika kunci publik n berhasil difaktorkan menjadi p dan q maka ɸ(n) = (p – 1)(q – 1) dapat dihitung dan dengan menggunakan kunci publik e, kunci privat d pun akan dapat terpecahkan. Metode Kraitchik yang mengawali munculnya algoritma pemfaktoran yang paling modern menyatakan bahwa untuk menemukan faktor x dan y dari bilangan bulat n sedemikian rupa sehingga x2 ≡ y2 (mod n). Hasil penelitian memperlihatkan bahwa efisiensi waktu pemfaktoran kunci publik n metode Kraitchik sangat dipengaruhi oleh selisih faktor kunci (p – q) yaitu semakin besar selisih antara p dan q maka semakin lama waktu pemfaktorannya. Pemfaktoran panjang kunci publik n sebesar 19 digit atau 152 bit dengan selisih faktor kunci (p – q) = 22641980 membutuhkan waktu selama 93,6002 ms lebih cepat jika dibandingkan dengan panjang kunci sebesar 15 digit atau 120 bit dengan selisih faktor kunci (p – q) = 23396206 yang membutuhkan waktu selama 5850,0103 ms. Faktor lainnya yang mempengaruhi efisiensi waktu pemfaktoran metode Kraitchik adalah Gcd (p – 1,q – 1), panjang kunci dan faktor prima (p – 1),(q – 1).
An RSA Key Factoring Technique Using Kraitchik‟s Method
ABSTRACT
This study aims to discover the private key of RSA by factoring public key n using
Kraitchik‟s method and to observed the time efficiency. Kraitchik‟method factoring
the RSA private key using the public key n (n = p.q) that is not kept secret. When public key n is successfully factored into p and q then ɸ(n) = (p – 1)(q – 1) can be calculated and by using public key e, private key d will be discovered. Kraitchik method that started the rise of most modern factoring algorithm aims to find the factors x and y of an integer n such that x2≡ y2 (mod n). The results showed that the time efficiency of Kraitchik‟s method to factor the public key n is highly influenced by the difference of key factors (p – q), that is, the greater the difference between p and q then the longer the time to factor n. The public key n of 19 digits or 152 bits with difference (p – q) takes time 93,6002 ms that is faster than a key of 15 digits or 120 bits with difference (p – q) = 23396206 which takes time for 5850.0103 ms. Other factors that effect the efficiency time of Kraitchik‟s method is gcd (p – 1, q – 1), the key length and the prime factors (p – 1), (q – 1).
viii
DAFTAR ISI
Hal.
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi
Daftar Lampiran xii
Bab I Pendahuluan
1.1Latar Belakang 1
1.2Rumusan Masalah 2
1.3Tujuan Penelitian 3
1.4Batasan Penelitian 3
1.5Manfaat Penelitian 3
1.6Metode Penelitian 4
1.7Sistematika Penulisan 4
Bab II Landasan Teori
2.1. Keamanan Informasi 6
2.2. Kriptografi 8
2.2.1. Definisi dan Terminologi 8
2.2.2. Tujuan Kriptografi 10
2.3. Sistem Kriptografi (Cryptosystem) 11
2.4. Rivest Shamir Adleman (RSA) 13
2.4.1. Pembangkitan Kunci 13
2.4.2. Proses Enkripsi 15
2.4.3. Proses Dekripsi 16
2.5. Kriptanalisis (Cryptanalysis) 16
2.6. Metode Kriptanalisis RSA 18
2.6.1. Pemfaktoran (Factoring) 18
2.6.2. Serangan Fungsi RSA 18
2.6.3. Implementation Attacks 19
2.7. Pemfaktoran Metode Kraitchik 19
2.8. Invers Modulo (Extended Euclidean) 20
Bab III Analisis dan Perancangan Sistem 24
3.1. Analisis Sistem 24
3.1.1. Analisis Masalah (Cause and Effect Diagram) 24
3.1.2. Analisis Kebutuhan 25
3.2. Perancangan Sistem 27
3.2.1. Use Case Diagram 27
3.2.2. Activity Diagram 29
3.3. Flowchart 31
3.3.1. Flowchart Pemecahan Kunci RSA Metode Kraitchik 32 3.3.2. Flowchart Menghitung Kunci Publik dan Kunci Privat 33
3.3.3. Flowchart Dekripsi RSA 34
3.4. Pseudocode 35
3.4.1. Pseudocode Pemecahan Kunci RSA
(Metode Kraitchik) 35
3.4.2. Pseudocode Menghitung Kunci Publik e 36 3.4.3. Pseudocode Menghitung Kunci Privat d 37
3.4.4. Pseudocode Dekripsi RSA 38
3.5. Perancangan Antarmuka Sistem (System Interface) 39
3.5.1. Form Halaman Utama 39
3.5.2. Form Pemecahan Kunci RSA 40
3.5.3. Form Dekripsi RSA 41
3.5.4. Form Bantuan 42
3.5.5. Form Tentang 42
Bab IV Implementasi dan Pengujian 43
4.1. Implementasi Sistem 43
4.1.1. Spesifikasi Kebutuhan Perangkat keras 43 4.1.2. Spesifikasi Kebutuhan Perangkat Lunak 43
4.1.3. Implementasi Aplikasi 44
4.2. Pengujian Sistem 48
4.2.1. Pengujian Proses Pemecahan Kunci RSA dan Dekripsi RSA 48 4.2.2. Pengujian Panjang dan Nilai Kunci Publik n 50
4.2.3. Selisih Kunci (p – q) 52
4.2.4. Gcd (p – 1, q – 1) 53
x
DAFTAR TABEL
Hal. Tabel 3.1 Kebutuhan Fungsional Sistem Pemecahan Kunci RSA
Metode Kraitchik 25
Tabel 3.2 Kebutuhan Nonfungsional Sistem Pemecahan Kunci RSA
Metode Kraitchik 26
Tabel 3.3 Narasi Use Case Pemecahan Kunci RSA 28
Tabel 3.4 Narasi Use Case Dekripsi RSA 29
Tabel 4.1 Kunci Publik n Terhadap Waktu Pemfaktoran 51 Tabel 4.2 Kunci Publik n dan Selisih Kunci (p – q) Terhadap Waktu Pemfaktoran 52 Tabel 4.3 Kunci Publik n dan Gcd(p – 1, q – 1) Terhadap Waktu Pemfaktoran 53 Tabel 4.4 Kunci Publik n dan Faktor Prima (p – 1), (q – 1)
DAFTAR GAMBAR
Hal.
Gambar 2.1 Proses enkripsi dan dekripsi 10
Gambar 2.2 Skema symmetric cryptosystem 12
Gambar 2.3 Skema public-key cryptosystem 13
Gambar 2.4 Skema komunikasi kriptografi 17
Gambar 2.5 Skema komunikasi kriptografi kunci-publik 18 Gambar 3.1 Analisis masalah Sistem Pemecahan Kunci RSA Metode Kraitchik 24 Gambar 3.2 Use case diagram Sistem Pemecahan Kunci RSA Metode Kraitchik 27 Gambar 3.3 Activity diagram untuk use case Pemecahan Kunci RSA 30 Gambar 3.4 Activity diagram untuk use case Dekripsi RSA 31 Gambar 3.5 Flowchart pemfaktoran metode Kraitchik 32 Gambar 3.6 Flowchart menghitung kunci publik dan kunci privat 33
Gambar 3.7 Flowchart proses dekripsi RSA 34
Gambar 3.8 Pseudocode pemecahan kunci RSA (metode Kraitchik) 35
Gambar 3.9 Pseudocode menghitung kunci publik e 36
Gambar 3.10 Pseudocode menghitung kunci privat d 37
Gambar 3.11 Pseudocode Dekripsi RSA 38
Gambar 3.12 Form „Halaman Utama‟ 40
Gambar 3.13 Form „Pemecahan Kunci RSA‟ 40
Gambar 3.14 Form „Dekripsi RSA‟ 41
Gambar 3.15 Form „Bantuan‟ 42
Gambar 3.16 Form „Tentang‟ 42
Gambar 4.1 Form ‟Halaman Utama‟ 44
Gambar 4.2 Form ‟Pemecahan Kunci RSA‟ 45
Gambar 4.3 Form ‟Dekripsi RSA‟ 46
Gambar 4.4 Form ‟Bantuan‟ 47
Gambar 4.5 Form ‟Tentang‟ 47
Gambar 4.6 Aplikasi RSA yang diuji 48
Gambar 4.7 Proses pemecahan kunci RSA 49
Gambar 4.8 Proses dekripsi RSA 49
xii
DAFTAR LAMPIRAN
Hal.
A. Listing Program A-1