Teknik Hacking Kunci Algoritma Rivest Shamir Adleman (Rsa) 512-Bit Dengan Menggunakan Metode Difference Of Squares
TEKNIK HACKING KUNCI ALGORITMA RIVEST SHAMIR ADLEMAN (RSA) 512-BIT DENGAN METODE DIFFERENCE OF SQUARES SKRIPSI MAHADI Z 091401065 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2013
TEKNIK HACKING KUNCI ALGORITMA RIVEST SHAMIR ADLEMAN (RSA) 512–BIT DENGAN METODE DIFFRENCE OF SQUARES
SKRIPSI DiajukanuntukmelengkapitugasakhirdanmemenuhisyaratmencapaigelarSarjana
Ilmu Komputer MAHADI Z
091401065 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN
2013
PERSETUJUAN
Judul : TEKNIK HACKING KUNCI ALGORITMA RIVEST
SHAMIR ADLEMAN (RSA) 512-BIT DENGAN MENGGUNAKAN METODE DIFFERENCE OF SQUARES
Kategori : SKRIPSI Nama : MAHADI Z Nomor Induk Mahasiswa : 091401065 Program Studi : SARJANA (S1) ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI Diluluskan di Medan, 27 Agustus 2013
Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Dian Rachmawati, S.Si, M.Kom M.Andri Budiman, ST, M.Comp.Sc, MEM NIP. 1983 0723 2009 1220 04 NIP. 1975 1008 2008 0110 11 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
PERNYATAAN
TEKNIK HACKING KUNCI ALGORITMA RIVEST SHAMIR ADLEMAN (RSA) 512-BIT DENGAN METODE DIFFRENCE OF SUARES
SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, September 2013 MAHADI Z 091401065
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.
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 Drs. James Peter Marbun M.Kom dan Bapak Syahriol Sitorus, S.Si, MIT Selaku Dosen Pembanding.
7. Semua dosen pada Departemen Ilmu Komputer FASILKOM-TIUSU, dan pegawai di Ilmu Komputer FASILKOM-TI USU.
8. Ayahanda Zakaria R dan ibunda Artuti, serta abangda Irwandi, kakanda Fauziah dan Rita Irmayani, serta adik-adik Rizky Hasan, Kurnia Ramadhan Mirza Arifin, Fahmi Idris dan Basyaruddin selalu memberikan kasih sayang dan dukungannya kepada penulis.
9. Rekan-rekan senior khususnya: abangda Suharsono S.Kom, Ridho Simanungkalit ST., Heri Wibowo S.Kom., Eko Verdianto S.Kom, Azizah Endarstati S.Kom, Zainuddin Siregar S.Kom dan yang lainya yang selalu memberikan semangat dan dorongan dan motivasi kepada penulisselama menyelesaikan skripsi ini.
10. Rekan-rekan kuliah: Isman Santoso, Mhd.Arisandy Pratama, Zuwarbi Wiranda Hsb, Basrah Nasution, Anton Gumala Putra, Budi Satria Mukhlis, Huzaifa yang selalu memberikan semangat dan dorongan, serta motivasi kepada penulisselama menyelesaikan skripsi ini.
11. Rekan-rekan junior: Aulia Akbar Harahap, Azizah Mei Sari S, Yayang Kurniati, Arifin, Almizfar, Eddo Affan dan lainya, yang selalu memberikan semangat dan dorongan kepada penulisselama menyelesaikan skripsi ini.
12. Rekan-rekan IKLC, Sobat Bumi Se-Indonesia, Ukmi Al-Khuwarizmi, Pema Fasilkom-TI, IMILKOM dan lainya yang tidak bisa disebutkan satu persatu, yang selalu memberikan semangat dan dorongankepada penulisselama menyelesaikan skripsi ini.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.
Medan, 27Agustus2013 Penulis
ABSTRAK
Ukuran kunci pada penerapan algoritma Rivest Shamir Adleman (RSA) sangat menentukan keamanan pesan yang akan dirahasiakan. Semakin panjang ukuran kunci yang digunakan pada algoritma RSA, maka semakin sulit suatu metode kriptanalisis melakukan faktorisasi maupun bruce force attack terhadap pemecahan sepasang elemen kunci algoritma RSA. Sayangnya, semakin panjang ukuran kunci, semakin lama proses pengimplementasian algoritma ini. Celah inilah yang menjadi peluang bagi seorang hacker atau kriptanalisis untuk menemukan kombinasi angka melalui kunci publik algoritma RSA yang tidak dirahasiakan.Banyak metode yang digunakan untuk pemecahan kunci algoritma RSA, seperti trial and error, faktorisasi, serangan common modulus, dan sebagainya.Dalam penelitian ini penulis mencoba melakukan pemecahan kunci dengan menggunakan metode faktorisasi, tepatnya dengan menggunakan metode
difference of squares . Pengimplementasian dilakukan menggunakan bahasa
pemrograman Visual C# 2012, melalui beberapa uji coba sample menggunakan parameter waktu untuk menentukan efisiensi metode. Hasil pengujian menunjukan bahwa faktor selisih kunci dari nilai kunci p dan q, lebih berpengaruh dibandingkan ukuran panjang kunci.Hal ini diperkuat dari pengujian ukuran kunci sebesar 30 digit secara acak dengan selisih kunci pembentuknya yang besar memerlukan waktu sekitar 5 jam. Sementara untuk panjang kunci pada rentang 100 sampai 400 digit, dengan selisih kunci p dan q kecil dalam pengujian selisih 5, 900 dan 90000, waktu yang diperlukan sekitar 150 sampai 250 milisecond.
Kata Kunci:RSA, Faktorisasi, Difference of Squares, Kriptanalisis, hacking.
ABSTRACT
Key size on the application of algorithms Rivest Shamir Adleman (RSA) is critical to message security that will be in secret. The longer of key size used in the RSA algorithm, the more difficult perform a factorization method and bruce force attack against splitting a pair of key elements of the RSA algorithm.Unfortunately, the longer the key size, the longer the process of implementing this algorithm. Thisgapcan be opportunity fora hackerorcryptanalysistofindcombinations of numbersthrough theRSApublic keyalgorithmsarenotsecret. Many methodsareusedtohacking of RSAkeyalgorithm, such astrial and error, factorization, commonmodulusattack, andso on. Inthis study the authorsattempt to crackkeyusingfactorizationmethod, preciselybyusing thedifferenceofsquaresmethod. Implementationis doneusingthe programminglanguageVisualC#2012,throughasampletestusingthe timeparametertodeterminethe efficiency ofthe method. The test results showedthat thekeyfactorofthe difference inthe value ofpandqkey, an effectgreaterthanthelength ofthe key. This was confirmedfromtestingkey sizeof 30randomdigitswiththe keydifferenceof theconstituentwhichtakes about5hours. As for thekey lengthin the range of100 to400digits, with thekeydifference betweenpandqsmalldifferenceintest5, 900and90000around the timeit will take150to 250milliseconds.
Keyword: RSA, Factorization, Difference of Squares, Cryptanalysis, Hacking.
DAFTAR ISI
Halaman Persetujuan ii Pernyataan iii Penghargaan iv Abstrak vi Abstract vii Daftar Isi viii Daftar Tabel ix Daftar Gambar x Daftar Lampiran xi
Bab I Pendahuluan
1.1
1 Latar Belakang
1.2
3 Perumusan Masalah
1.3
3 Batasan Masalah
1.4
4 Tujuan Penelitian
1.5
4 Manfaat Penelitian
1.6
5 Sistematika Penulisan
Bab II Landasan Teori
2.1 Sistem Keamanan
6
2.2 Craker, Hacker, dan Motif
8
2.3 Kriptografi
9
2.4 Cryptographic system ( cryptostem)
11
2.5
12 Skema Pertukaran Kunci Deffie-Hellman
2.6
13 Algortima Rivest Shamir Adleman (RSA)
2.7
14 Fungsi Totien Euler φ
2.8 Proses Pembuatan Kunci 14
2.9 Proses Enkripsi 15
2.10 Proses Dekripsi 16
2.11 RSA 512-Bit 17
2.12 Cryptanalysis 17
2.13
17 Metode Kriptanalisis pada RSA
2.11.1 Serangan pada algoritma RSA 17
2.14 Faktorisasi fermat 20
2.15 Metode difference of squares 20
2.16 Fermat’s Little Theorem 21
Bab III Analisis dan Perancangan Sistem
3.1 Analisis Sistem
4.1.3 Tampilan Aplikasi 52
47
3.5.1 Rancangan Antarmuka Splash Screen 47 3.5.2 Rancangan Antarmuka Aplikasi Penerapan RSA
48
3.5.3 Rancangan Antarmuka Aplikasi Hacking Algoritma RSA
49
3.5.4 Rancangan Antarmuka Tentang
50 Bab IV Implementasi dan Pengujian
4.1 Implementasi Sistem
51
4.1.1 Spesifikasi kebutuhan Perangkat keras
51
4.1.2 Spesifikasi Kebutuhan Perangkat Lunak
52
4.1.3.1 Form Splash Screen
3.4.5 Flowchart Proses Dekripsi Algoritma RSA 46
53
4.2.1.2 Form Penerapan Aplikasi RSA
53
4.2.1.3 FormImplementasiAplikasi Hacking Algoritma RSA554.2.1.4 Form Tentang
57
4.2 Pengujian
57
4.2.1 Pengujian Sistem Penerapan Algoritma RSA58
4.2.2 Pengujian Sistem Hacking algortima RSA
66 Bab V Kesimpulan dan Saran
5.1 Kesimpulan
80
5.2. Saran
82 Daftar Pustaka
3.5 Perancangan Antarmuka sistem
3.4.4 Flowchart Proses Enkripsi Algoritma RSA 46
22
29
3.1.1 Analisis Masalah
22
3.1.2 Cause and Effect Diagram23
3.1.3 Analisis Kebutuhan sistem
24
3.1.3.1 Kebutuhan Fungsional Sistem
24
3.1.3.2 Kebutuhan Nonfungsional Sistem
25
3.2 Pemodelan
26
3.2.1Use Case Diagram
28
3.2.2 Activity Diagram
3.2.3 Sequence Diagram
45
36
3.3 Pseudo Code
38
3.3.1 Pseudo CodeDifference of Squares
39
3.3.2 Pseudo Code Algoritma RSA 40
3.3.3 Pseudo Code Fermat’s Little Teorem
41
3.4 Flowchart
42
3.4.1 Flowchart Gambaran Umum Pembentukan RSA Cryptosystem43
3.4.2 Flowchart Pembentukan Kunci Algortima RSA
44
3.4.3 Flowchart Metode Difference of Squares
83
DAFTAR TABEL Nomor Nama Tabel Halaman Tabel
3.1 Kebutuhan non-fungsional sistem
25 DokumentasiNaratifProses Enkripsi Algoritma RSA
3.2
30 Dokumentasi Naratif Proses Dekripsi Algoritma RSA
3.3
32 DokumentasiNaratif Use Case Proses Hacking Algoritma RSA
3.4
34 Perbandingan antara waktu eksekusi program dengan panjang
4.1 59 kunci Algoritma RSA
Perbandingan waktu eksekusi dengan ukuran file Algoritma RSA
4.2
63 Uji coba proses hacking algoritma RSA berdasarkan panjang
4.3 67 kunci secara acak
Pengujian proses hacking kunci rentang 1-10 digit dari nilai kunci
4.4 69 p dan q pada beberapa kali pengujian
Pengujian pengaruh selisih p dan q kunci terhadap lamanya
4.5 72 proses pemecahan kunci (dimana selisih = 5)
Pengujian pengaruh selisih p dan q kunci terhadap lamanya
4.6 74 proses pemecahan kunci (dimana selisih = 900)
Pengujian pengaruh selisih p dan q kunci terhadap lamanya
4.7 76 proses pemecahan kunci (dimana selisih = 90000)
Perbandingan selisih kunci dengan lamanya waktu eksekusi
4.8 77 dengan panjang kunci konstan = 8 digit
DAFTAR GAMBAR
Nomor Gambar Nama Gambar Halaman
28
38
37
36
35
33
31
23
40
11
11
10
Perbandingan lamanya waktu eksekusi proses generate kunci Algoritma RSA terhadap panjang kunci (dalam digit) Perbandingan lamanya waktu eksekusi proses enkripsi
Plaintext untuk uji coba proses enkripsi dekripsi algoritma RSA
Proses uji coba sistem aplikasi Algoritma RSA
39
42
Rancangan Interface Splash Screen Rancangan Antarmuka Aplikasi Penerapan Algortima RSA Rancangan Antarmuka Aplikasi Hacking Algoritma RSA Rancangan Interface Form Tentang
52
60
58
57
56
55
53
50
43
49
48
47
46
46
45
44
Form Splash Screen Form Aplikasi Algoritma RSA Form Aplikasi Hacking Algoritma RSA Form Tentang
Proses enkripsi RSA Proses dekripsi RSA
2.1
3.6
3.12
3.11
3.10
3.9
3.8
3.7
3.5
3.14
3.4
3.3
3.2
3.1
2.3
2.2
3.13
3.15
Proses Umum Algoritma RSA Proses Pembentukan Kunci Algoritma RSA Faktorisasi Bilangan n Dengan Metode Difference of Squares
4.5
Activity Diagram aplikasi enkripsi Algoritma RSA Activity Diagram aplikasi enkripsi Algoritma RSA Activity Diagram aplikasi Hacking Algoritma RSA Sequence Diagram aplikasi Enkripsi Algoritma RSA Sequence Diagram aplikasi Dekripsi Algoritma RSA Sequence Diagram aplikasi Hacking Algoritma RSA Pseudocode Metode difference of squares Pseudocode Algoritma RSA Pseudocode Fermat’s Little Teorm
4.10 Proses enkripsi dan dekripsi algoritma RSA Proses enkripsi dan dekripsi pada Symmetric Cryptosystem Proses enkripsi dan dekripsi pada Assymmetric Cryptosystem Analisis masalah aplikasi Hacking Algoritma RSA 512-Bit Interaksi aktor dengan sistem Pembuatan dan Hacking Agoritma RSA
4.9
4.8
4.7
4.6
4.4
3.16
4.3
4.2
4.1
3.20
3.19
3.18
3.17
61 Algoritma RSA terhadap panjang kunci (dalam digit)
62
4.11 Perbandingan lamanya waktu eksekusi proses dekripsi
4.12 Algoritma RSA terhadap panjang kunci (dalam digit)
4.13
64 Perbandingan Ukuran file (dalam Kb) dengan lama waktu eksekusi (dalam digit)
4.14 Proses uji coba aplikasi hacking algoritma RSA
65 Grafik perbandingan waktu hacking dengan panjang kunci Grafik perbandingan rata-rata panjang kunci antara 1-10 digit
4.15 68 dengan lamanya waktu hacking
71
4.16 Grafik perbandingan pengaruh selisih kunci dengan lama waktu eksekusi dimana (selisih = 5)
4.17 Grafik perbandingan pengaruh selisih kunci dengan lama waktu eksekusi dimana (selisih = 900)
73 Grafik perbandingan pengaruh selisih kunci dengan lama waktu eksekusi dimana (selisih = 90000) Grafik perbandingan Selisih kunci P dan Q dengan lamanya
75 waktu eksekusi sistem dengan panjang kunci konstan (n = 8 digit)
77
78 DAFTAR LAMPIRAN Halaman
A. Listing Program A-1
B. Daftar Riwayat Hidup B-1