Analisa Hybrid Kriptosistem RSA dan EL-GAMAL pada Instant
Messaging berbasis socket TCP
TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1
Teknik Informatika Universitas Muhammadiyah Malang
Oleh:
Handika Rama Sandityas
201410370311206
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2018
i
LEMBAR
PERSETUJUAN
Analisa Hybrid Kriptosistem RSA dan EL-GAMAL pada Instant Messaging
berbasis socket TCP
Diajukan Untuk Memenuhi
Persyaratan Guna Meraih Gelar Sarjana Strata 1
Teknik Informatika Universitas Muhammadiyah Malang
Handika Rama Sandityas
201410370311206
Menyetujui,
Dosen I
Aminudin, S.Kom, M.Cs.
NIP. 108.1703.0594
Dosen II
Sofyan Arifianto, S.Si, M.T.
NIDN. 0721058309
iii
LEMBAR
PERNYATAAN
Yang bertanda tangan dibawah ini:
Nama
: Handika Rama Sandityas
Tempat, Tgl Lahir : Sidoarjo, 1 Februari 199
NIM
: 201410370311206
Fakultas/Jurusan
: Teknik/Informatika
Dengan ini saya menyatakan bahwa Tugas Akhir dengan judul “Analisa Hybrid
Kriptosistem RSA dan EL-GAMAL pada Instant Messaging berbasis socket
TCP” beserta isinya adalah karya saya sendiri dan bukan merupakan karya
tulisan orang lain, baik sebagian atau seluruhnya, kecuali bentuk kutipan yang
telah disebutkan sumbernya.
Demikian surat pernyataan ini saya buat dengan sebenar-benarnya. Apabila
kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dala karya
saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini maka
saya siap menanggung segala bentuk resiko/sanksi yang berlaku.
Mengetahui,
Dosen Pembimbing,
Aminudin, S.Kom, M.Cs.
NIP. 108.1703.0594
Malang, 16 Juli 2018
Yang membuat pernyataan
iv
ABSTRAK
Algoritma RSA memiliki performa yang sangat lambat dibandingkan
dengan algoritma kritografi simetris yang lainnya, kekuatan dari algortima RSA
dari segi faktorisasi. Algoritma RSA memiliki celah keamanan misalnya, winner
attack dan fermat factorization. Penelitian ini menganalisa Hybrid RSA dengan
EL-GAMAL dengan menggabungkan kekuatan faktorisasi dari RSA dengan diskrit
dari EL-GAMAL yang akan diimplementasikan pada socket TCP berbasis java dan
juga menganalisis perbandingan keamanan algoritma RSA, EL-GAMAL dan
Hybrid RSA EL-GAMAL dengan menggunakan metode fermat factorization dan
baby step-giant step. Penelitian ini berhasil menyimpulkan bahwa algoritma
Hybrid lebih aman daripada algoritma RSA dan algortima EL-GAMAL serta lebih
efisien dari algoritma RSA, algoritma hybrid hanya bisa diserang menggunakan
metode penyerangan hybrid yang memerlukan resource yang lebih besar untuk
memecahkannya
.Kata Kunci: algoritma RSA, algoritma EL-GAMAL, fermat factorization, baby step-giant
v
ABSTRACT
The RSA algorithm has a very slow performance compared to other
symmetric symmetric algorithms, the strength of the RSA algorithm in terms of
factorization. RSA algorithm has a security hole for example, winner attack and
fermat factorization. This research analyzes Hybrid RSA with EL-GAMAL by
combining factorization power from RSA with discrete from EL-GAMAL which
will be implemented on Java-based TCP socket and also analyzes security
comparison of RSA, EL-GAMAL and Hybrid RSA EL-GAMAL algorithm by
using fermat method factorization and baby step-giant step. This study concluded
that Hybrid algorithm is safer than RSA algorithm and EL-GAMAL algorithm
and more efficient than RSA algorithm, hybrid algorithm can only be attacked
using hybrid attack method which require bigger resource to solve it.
Keyword: RSA algorithm, EL-GAMAL algorithm, fermat factorization, baby
step-giant step.
vi
LEMBAR
PERSEMBAHAN
Puji syukur kepada Allah SWT atas rahmat dan karunianya sehingga penulis
dapat menyelesaikan Tugas Akhir ini. Penulis menyampaikan ucapan terima
kasih yang sebesar-besarnya kepada:
1. Bapak Aminudin, S.Kom, M.Cs
dan Bapak Sofyan Arifianto, S.Si, M.T.
selaku dosen pembimbing tugas akhir.
2. Kedua orang tua yang telah membesarkanku dengan penuh kasih saying dan
mengkuliahkanku secara tulus hingga menjadi seorang sarjana strata I.
Semoga selalu diberi kesehatan, rezeki yang barokah dan mendapat ridho
dari Allah SWT.
3. Orang spesial yang sudah memberikan kasih sayang, perhatian, dan
kesabaran yang memberi inspirasi dan semangat tersendiri dalam
menyelesaikan tugas akhir ini. Semoga kelak kita menjalin kehidupan
berumah tangga bersama.
4. Teman-teman ngegame dan teman-teman seperjuangan yang menjadi
tempat sharing ilmu, pengalaman, tempat tinggal, menghilangkan
kejenuhan dengan main DOTA 2 sampai lupa waktu dan berbagi cerita
tentang pelajaran hidup yang berharga. Semoga kita dapat menjalin
kesuksesan bersama-sama.
5. Pihak-pihak yang sudah membantu menyelesaikan tugas akhir ini terutama
mas Rahardian Dwi Saputra S.Kom selaku mentor dalam pengerjaan tugas
akhir. Semoga segala kebaikan yang diberikan mendapat balasan dari Allah
SWT.
6. Terakhir kepada seluruh rekan-rekan yang tidak bisa sebutkan satu persatu,
terima kasih atas dukungan, kebersamaan dan do’a kalian selama ini.
vii
KATA
PENGANTAR
Dengan memanjat puji syukur kehadirat Allah SWT atas limpahan rahmat
dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas akhir yang
berjudul : Analisa Hybrid Kriptosistem RSA dan EL-GAMAL pada Instant
Messaging berbasis socket TCP.
Tulisan ini disajikan pokok-pokok bahasan mengenai algoritma RSA,
EL-GAMAL mulai cara kerja, celah keamanan hingga pengebangannya. Selain itu
juga dijelaskan mengenai pengaplikasian algoritma RSA, EL-GAMAL dan
Hybrid RSA dengan EL-GAMAL serta pengujian keamanan ketiga algoritma
tersebut.
Peneliti menyadari sepenuhnya bahwa dalam penulisan tugas akhir ini
masih banyak kekurangan dan keterbatasan. Oleh karena itu, peneliti sangat
mengharapkan saran yang membangun agar tulisan ini bermanfaat untuk
perkembangan ilmu pengetahuan kedepan.
Malang, 16 Juli 2018
Penulis
viii
DAFTAR
ISI
LEMBAR PERSETUJUAN ... i
LEMBAR PENGESAHAN ... ii
LEMBAR PERNYATAAN ... iii
ABSTRAK ...iv
ABSTRACT ... v
LEMBAR PERSEMBAHAN ...vi
KATA PENGANTAR... vii
DAFTAR ISI ... viii
DAFTAR GAMBAR ... xi
DAFTAR TABEL ... xii
DAFTAR LAMPIRAN ... xiv
BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 3 1.3 Tujuan ... 3 1.4 Batasan Masalah ... 3 1.5 Pembuatan Laporan ... 4 1.6 Sistematika penulisan ... 4
BAB II TINJAUAN PUSTAKA ... 6
2.1 Kriptografi ... 6
2.2 Bilangan Prima ... 7
2.3 Algoritma RSA ... 8
2.3.1 Cara Kerja Algoritma RSA ... 8
2.3.2 Keamanan Algoritma RSA ... 9
2.3.2.1 Factorization attack ... 10
2.4 Algoritma EL-GAMAL ... 10
2.4.1 Cara Kerja Algoritma EL-GAMAL ... 11
2.4.2 Keamanan Algoritma EL-GAMAL ... 12
2.4.2.1 Baby Step - Giant Step ... 12
2.5 Algoritma Hybrid ... 13
2.5.1 Cara Kerja Algoritma Hybrid ... 13
2.5.2 Keamanan Algoritma Hybrid ... 15
2.6 Socket TCP ... 15
BAB III METODE PENELITIAN ... 17
ix
3.2 Rancangan Algoritma RSA ... 17
3.2.1 Pembangkitan Kunci algoritma RSA ... 18
3.2.2 Enkripsi Algortima RSA ... 19
3.2.3 Dekripsi Algoritma RSA ... 21
3.3 Rancangan Algoritma EL-GAMAL ... 22
3.3.1 Pembangkitan Kunci Algoritma EL-GAMAL ... 22
3.3.2 Enkripsi Algoritma EL-GAMAL ... 24
3.3.3 Dekripsi Algoritma EL-GAMAL... 25
3.4 Rancangan Algoritma Hybrid ... 27
3.4.1 Pembangkitan Kunci Algoritma Hybrid ... 27
3.4.2 Enkripsi Algoritma Hybrid ... 28
3.4.3 Dekripsi Algoritma Hybrid ... 30
3.5 Rancangan Uji Keamanan ... 31
3.5.1 Fermat Factorization ... 31
3.5.2 Baby step-Giant step ... 33
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 34
4.1 Implementasi ... 34
4.1.1 Implementasi Perangkat Keras... 34
4.1.2 Implementasi Perangkat Lunak ... 34
4.1.3 Implementasi Algortima RSA ... 34
4.1.3.1 Implementasi Pembangkitan Kunci Algoritma RSA ... 35
4.1.3.2 Implementasi Enkripsi Algoritma RSA ... 36
4.1.3.3 Implementasi Dekripsi Algoritma RSA... 36
4.1.4 Implementasi Algortima EL-GAMAL... 37
4.1.4.1 Implementasi Pembangkitan Kunci Algoritma EL-GAMAL ... 37
4.1.4.2 Implementasi Enkripsi Algoritma EL-GAMAL ... 38
4.1.4.3 Implementasi Dekripsi Algoritma EL-GAMAL ... 39
4.1.5 Implementasi Algortima Hybrid ... 40
4.1.5.1 Implementasi Pembangkitan Kunci Algoritma Hybrid ... 40
4.1.5.2 Implementasi Enkripsi Algoritma Hybrid ... 41
4.1.5.3 Implementasi Dekripsi Algoritma Hybrid ... 42
4.1.6 Implementasi Fermat Factorization ... 43
4.1.7 Implementasi Baby step – Giant step ... 44
4.2 Pengujian ... 46
4.2.1 Pengujian waktu Pembangkitan Kunci ... 46
4.2.1.1 Pengujian waktu Pembangkitan Kunci Algortima RSA ... 46
x
4.2.1.3 Pengujian waktu Pembangkitan Kunci Algortima Hybrid ... 48
4.2.1.4 Analisis Perbandingan waktu Pembangkitan Kunci ... 48
4.2.2 Pengujian waktu Enkripsi ... 49
4.2.2.1 Pengujian waktu Enkripsi Algortima RSA ... 50
4.2.2.2 Pengujian waktu Enkripsi Algortima EL-GAMAL ... 51
4.2.2.3 Pengujian waktu Enkripsi Algortima Hybrid ... 52
4.2.2.4 Analisis Perbandingan waktu Enkripsi ... 54
4.2.3 Pengujian waktu Dekripsi ... 56
4.2.3.1 Pengujian waktu Dekripsi Algortima RSA ... 56
4.2.3.2 Pengujian waktu Dekripsi Algortima EL-GAMAL ... 57
4.2.3.3 Pengujian waktu Dekripsi Algortima Hybrid ... 58
4.2.3.4 Analisis Perbandingan waktu Dekripsi ... 60
4.2.4 Pengujian waktu Pengiriman Pesan ... 62
4.2.4.1 Pengujian waktu Pengiriman Pesan Algortima RSA ... 62
4.2.4.2 Pengujian waktu Pengiriman Pesan Algortima EL-GAMAL ... 63
4.2.4.3 Pengujian waktu Pengiriman Pesan Algortima Hybrid... 65
4.2.4.4 Analisis perbandingan waktu Pengiriman Pesan ... 66
4.2.5 Pengujian Perhitungan Manual Enkripsi Dekripsi ... 68
4.2.5.1 Pengujian Perhitungan manual Algoritma RSA ... 68
4.2.5.2 Pengujian Perhitungan manual Algoritma EL-GAMAL ... 71
4.2.5.3 Pengujian Perhitungan manual Algoritma Hybrid... 74
4.2.6 Pengujian Fermat Factorization ... 78
4.2.7 Pengujian Baby step Giant step ... 78
4.2.8 Pengujian Hybrid ... 79
4.2.9 Pengujian Sniffing ... 80
BAB V KESIMPULAN DAN SARAN ... 81
5.1 Kesimpulan ... 81
5.2 Saran... 82
xi
DAFTAR
GAMBAR
Gambar 3.1 pseudo code pembangkitan kunci algoritma RSA ... 18
Gambar 3.2 alur pembangkitan kunci Algoritma RSA ... 19
Gambar 3.3 pseudocode enkripsi algoritma RSA ... 19
Gambar 3.4 alur enkripsi algoritma RSA ... 20
Gambar 3.5 pseudocode dekripsi algoritma RSA ... 21
Gambar 3.6 Alur dekripsi algoritma RSA ... 22
Gambar 3.7 pseudo code pebangkitan kunci EL-GAMAL ... 23
Gambar 3.8 Alur pembangkitan kunci algoritma EL-GAMAL ... 23
Gambar 3.9 pseudocode enkripsi algoritma EL-GAMAL ... 24
Gambar 3.10 Alur enkripsi algoritma EL-GAMAL ... 25
Gambar 3.11 pseudocode dekripsi algoritma EL-GAMAL ... 25
Gambar 3.12 Alur dekripsi algoritma EL-GAMAL ... 26
Gambar 3.13 pseudo code pembangkitan kunci Hybrid ... 27
Gambar 3.14 Alur pembangkitan kunci algoritma Hybrid ... 28
Gambar 3.15 pseudocode enkripsi algoritma Hybrid ... 29
Gambar 3. 16 Alur enkripsi algoritma Hybrid ... 29
Gambar 3.17 pseudocode dekripsi algoritma Hybrid ... 30
Gambar 3.18 Alur dekripsi algoritma Hybrid ... 31
Gambar 3. 19 Alur Fermat Factorization ... 32
Gambar 3. 20 Alur Baby step-Giant step ... 33
Gambar 4.1 kode sumber pembangkitan kunci algoritma RSA ... 35
Gambar 4.2 kode sumber enkripsi algoritma RSA ... 36
Gambar 4.3 kode sumber dekripsi algoritma RSA ... 37
Gambar 4.4 kode sumber pembangkitan kunci algoritma EL-GAMAL ... 38
Gambar 4.5 kode sumber enkripsi algoritma EL-GAMAL ... 38
Gambar 4.6 kode sumber dekripsi algoritma EL-GAMAL ... 39
Gambar 4.7 kode sumber pembangkitan kunci algoritma Hybrid ... 41
Gambar 4.8 kode sumber enkripsi algoritma Hybrid ... 42
Gambar 4.9 kode sumber dekripsi algoritma Hybrid ... 43
Gambar 4.10 kode sumber Metode Fermat Factorization ... 44
xii
DAFTAR
TABEL
Tabel 4.1 Hasil pengujian bilangan 64, 128 dan 256 bit RSA ... 47
Tabel 4.2 Hasil pengujian bilangan 64, 128 dan 256 bit EL-GAMAL ... 47
Tabel 4.3 Hasil pengujian bilangan 64, 128 dan 256 bit Hybrid ... 48
Tabel 4.4 Perbandingan rata-rata waktu pembangkitan kunci... 49
Tabel 4.5 Hasil pengujian waktu enkripsi algoritma RSA 64bit ... 50
Tabel 4.6 Hasil pengujian waktu enkripsi algoritma RSA 128 bit ... 50
Tabel 4.7 Hasil pengujian waktu enkripsi algoritma EL-GAMAL 64bit ... 51
Tabel 4.8 Hasil pengujian waktu enkripsi algoritma EL-GAMAL 128 bit ... 52
Tabel 4.9 Hasil pengujian waktu enkripsi algoritma Hybrid 64bit ... 53
Tabel 4.10 Hasil pengujian waktu enkripsi algoritma Hybrid 128 bit ... 53
Tabel 4.11 Hasil Perbandingan rata-rata waktu enkripsi 64 bit... 54
Tabel 4.12 Hasil Perbandingan rata-rata waktu enkripsi 128 bit... 55
Tabel 4.13 Hasil pengujian waktu dekripsi algoritma RSA 64bit ... 56
Tabel 4. 14 Hasil pengujian waktu dekripsi algoritma RSA 128 bit ... 56
Tabel 4. 15 Hasil pengujian waktu dekripsi algoritma EL-GAMAL 64bit ... 57
Tabel 4. 16 Hasil pengujian waktu dekripsi algoritma EL-GAMAL 128 bit ... 58
Tabel 4. 17 Hasil pengujian waktu dekripsi algoritma Hybrid 64bit... 59
Tabel 4. 18 Hasil pengujian waktu dekripsi algoritma Hybrid 128 bit ... 59
Tabel 4. 19 Hasil Perbandingan rata-rata waktu dekripsi 64 bit ... 60
Tabel 4. 20 Hasil Perbandingan rata-rata waktu dekripsi 128 bit ... 61
Tabel 4. 21 Hasil pengujian waktu pengiriman pesan algoritma RSA 64 bit ... 62
Tabel 4. 22 Hasil pengujian waktu pengiriman pesan algoritma RSA 128 bit ... 62
Tabel 4. 23 Hasil pengujian waktu pengiriman pesan algoritma EL-GAMAL 64 bit ... 64
Tabel 4. 24 Hasil pengujian waktu pengiriman pesan algoritma EL-GAMAL 128 bit ... 64
Tabel 4. 25 Hasil pengujian waktu pengiriman pesan algoritma Hybrid 64 bit ... 65
Tabel 4. 26 Hasil pengujian waktu pengiriman pesan algoritma Hybrid 128 bit ... 66
Tabel 4. 27 Hasil Perbandingan rata-rata waktu pengiriman pesan 64 bit ... 67
Tabel 4. 28 Hasil Perbandingan rata-rata waktu pengiriman pesan 128 bit ... 67
Tabel 4. 29 Hasil Perhitungan manual enkripsi RSA 16 bit ... 69
Tabel 4. 30 Hasil Perhitungan manual dekripsi RSA 16 bit ... 70
Tabel 4. 31 Hasil Perhitungan manual enkripsi EL-GAMAL 16 bit ... 72
Tabel 4. 32 Hasil Perhitungan manual dekripsi EL-GAMAL 16 bit ... 73
Tabel 4. 33 Hasil Perhitungan manual enkripsi Hybrid 16 bit ... 75
Tabel 4. 34 Hasil Perhitungan manual dekripsi Hybrid 16 bit ... 76
xiii
Tabel 4. 36 pengujian Baby step-Giant step ... 78 Tabel 4. 37 pengujian Hybrid Fermat Factorization dan Baby step-Giant step... 79 Tabel 4. 38 pengujian Sniffing file berkestensi pdf 130kb ... 80
xiv
DAFTAR
LAMPIRAN
Lampiran 1: Data pesan untuk pengujian enkripsi dan dekripsi 85
Lampiran 2: Hasil pengujian waktu enkripsi algoritma RSA 86
Lampiran 3: Hasil pengujian waktu enkripsi algoritma EL-GAMAL 87
Lampiran 4: Hasil pengujian waktu enkripsi algoritma Hybrid 88
Lampiran 5: Hasil pengujian waktu dekripsi algoritma RSA 89
Lampiran 6: Hasil pengujian waktu dekripsi algoritma EL-GAMAL 90
Lampiran 7: Hasil pengujian waktu dekripsi algoritma Hybrid 91
Lampiran 8: Hasil pengujian waktu pengiriman pesan algoritma RSA 92
Lampiran 9: Hasil pengujian waktu pengiriman pesan algoritma EL-GAMAL 93
Lampiran 10: Hasil pengujian waktu pengiriman pesan algoritma Hybrid 94
83
DAFTAR
PUSTAKA
[1] E. R. Halord, Java Network Programming, M. Blanchette, Ed., Sebastopol: O’Reilly Media, Inc, 2013.
[2] M. J. Donahoo and K. L. Calvert, TCP/IP SOCKET in C practical guide for pogrammers, burlington: Morgan Kaufmann publications, 2009.
[3] A. Arief and R. Saputra, "Implementasi Kriptografi Kunci Publik dengan Algoritma RSA-CRT pada Aplikasi Instant Messaging," Scientific Journal of
Informatics, vol. 3, 2016.
[4] J. M. Ahmed and Z. M. Ali, "The Enhancement of Computation Technique By Combining RSA and El-Gamal Cryptosystems," International Conference on
Electrical Engineering and Informatics, 2011.
[5] N. M. S. Iswari, "International Conference on Information Technology and Electrical Engineering (ICITEE)," Key Generation Algorithm Design Combination
of, 2016.
[6] I. "Sistem Proteksi Ganda Dengan Menggunakan Algoritma Rivest Shamir," vol. 03, pp. 15-21, 2016.
[7] MSIT-121C, Cryptography and Network Security, Muktagangothri: Muktagangothri, 2014.
[8] R. Sadikin, Kriptografi Untuk Keamanan Jaringan dan Implementasinya Dalam Bahasa Java, Yogyakarta: CV ANDI OFFSET, 2012.
[9] W. Stallings, Cryptography and Network Security PrinciPles and Practice Sixth edition, T. Johnson, Ed., boston: PEARSON, 2014, p. 758.
[10] P. s. kumar and n. manivelan, "A STUDY AND PERFORMANCE ANALYSIS OF RSA ALGORITHM," International Journal of Computer Science and Mobile
Computing, vol. 2, no. 6, pp. 126-139, juni 2013.
[11] L. M. Batten, PUBLIC KEY CRYPTOGRAPHY Applications and Attack, J. B. Anderson, Ed., Melbourne: IEEE, 2013.
84
[12] F. Al-Anshori and E. Aribowo, IMPLEMENTASI ALGORITMA KRIPTOGRAFI KUNCI
PUBLIK ELGAMAL UNTUK, 2014.
[13] A. Kurniawan, Pemrograman Jaringan dengan Java, Yogyakarta: CV ANDI OFFSET, 2011.
[14] Minqiang, "The Design Method of Network Chat System Based on Socket and Cloud Computing," 2012.
[15] M. CAI, "The Design Method of Network Chat System Based on socket and Cloud Computing," International Conference on Computer Science and Service
System, 2012.
[16] M. A. Weiss, Data Structures and Algorithm Analysis, yogjakarta: ANDI, 2007. [17] R. Munir, Matematika Diskrit, Bandung: INFORMATIKA bandung, 2010.