AnalisaImprovisasiAlgoritmaRSAberdasarkandari ...eprints.umm.ac.id/40822/1/pendahuluan.pdf ·...
Transcript of AnalisaImprovisasiAlgoritmaRSAberdasarkandari ...eprints.umm.ac.id/40822/1/pendahuluan.pdf ·...
Analisa Improvisasi Algoritma RSA berdasarkan dariJumlah Penggunaan Bilangan Prima pada instant
messaging berbasis socket TCP
TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1
Teknik Informatika Universitas Muhammadiyah Malang
Oleh :
Rahardian Dwi Saputra
201310370311320
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2018
ii
iii
iv
v
ABSTRAK
Algoritma RSA ditemukan sejak tahun 1977 dan masih digunakan
hingga era sekarang ini. Algoritma RSA memiliki perfoma yang sangat lambat
jika dibandingkan dengan algoritma kriptografi simetris sehingga banyak
penelitian yang dilakukan untuk memperbaiki perfomanya. Tujuan utama
penggunaan algoritma RSA adalah keamanan pengguna. Algoritma RSA
memiliki banyak celah keamanan misalnya, known plain text attack dan wiener
attack. Penelitian ini menganalisis perbandingan perfoma antara algoritma RSA
standar dan improvisasi algoritma RSA yang diimplementasikan pada socket TCP
berbasis java dan juga menganalisis perbandingan keamanan algoritma RSA
standar dan improvisasi algoritma RSA dengan metode known plain text attack
dan wiener attack. Jumlah bilangan prima yang digunakan pada improvisasi
algoritma RSA bervariasi yaitu 2 hingga 6 bilangan prima. Penelitian ini berhasil
menyimpulkan faktor-faktor yang memperngarui perfoma algoritma RSA. Selain
itu, penelitian ini juga berhasil menyimpulkan faktor-faktor yang memperngarui
keamanan algoritma RSA dari known plain text attack dan wiener attack.
Kata kunci: algoritma RSA standar, improvisasi algoritma RSA, known plain text
attack, wiener attack.
vi
ABSTRACT
RSA algorithm was discovered since 1977 and is still used until the
present era. RSA algorithm has a very slow performance when compared with
symmetric cryptography algorithm so a lot of research done to improve
perfomanya. The main purpose of RSA algorithm is user security. RSA algorithm
has many security holes for example, known plain text attack and wiener attack.
This study analyzed the comparison of performance between standard RSA
algorithm and RSA improvised algorithm implemented on java based TCP
sockets and also analyzed security comparison of standard RSA algorithm and
RSA algorithm improvement with known plain text attack and wiener attack
method. The number of primes used in RSA improvisation algorithms varies from
2 to 6 primes. This research succeeds in concluding the factors that update RSA
algorithm performance. In addition, this study also succeeded in concluding the
factors that update RSA algorithm security from known plain text attack and
wiener attack.
Keywords: standard RSA algorithm, RSA algorithm improvisation, known plain
text attack, wiener attack.
vii
LEMBAR PERSEMBAHAN
Puji syukur kepada Allah SWT atas rahmat dan karunia nya sehingga
penulis dapat menyelesaikan Tugas Akhir ini. Penulis menyampaikan ucapan
terima kasih yang sebesar besar nya kepada :
1. Bapak Aminudin, S.Kom,M.T., dan Bapak Sofyan Arifianto S.Si, M.T.
selaku dosen pembimbing tugas akhir.
2. Kedua orang tua yang telah membesarkanku dengan penuh kasih sayang
dan menguliahkanku secara tulus hingga menjadi seorang sarjana strata I.
Semoga selalu diberi kesehatan, rezeki yang barokah dan mendapat ridho
dari Allah SWT.
3. Kerabat terdekat yang sudah memberi dukungan moral dan materi guna
membantu kelancaran perkuliahan. Semoga dimudahkan dan dilimpahkan
rezekinya oleh Allah SWT.
4. Orang spesial yang sudah memberikan kasih sayang, perhatian, dan
kesabarannya yang memberi inspirasi dan semangat tersendiri dalam
menyelesaikan tugas akhir ini. Semoga kelak kita akan menjalin
kehidupan berumah tangga bersama.
5. Teman-teman nongkrong dan teman-teman seperjuangan yang menjadi
tempat sharing ilmu, pengalaman, menghilangkan kejenuhan dengan
canda tawa, dan berbagi cerita tentang pelajaran hidup yang berharga.
Semoga kita dapat menjalin kesuksesan bersama-sama.
6. Pihak-pihak yang sudah membantu penyelesaian tugas akhir ini. Semoga
segela kebaikan yang diberikan mendapat balasan dari Allah SWT.
7. Terakhir kepada seluruh rekan-rekan yang tidak bisa saya sebutkan satu
per satu, terima kasih atas dukungan, kebersamaan dan do’a kalian selama
ini.
viii
KATA PENGANTAR
Dengan memanjatkan puji syukur kehadirat Allah SWT atas limpahan
rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas akhir yang
berjudul : Analisa Improvisasi Algoritma RSA berdasarkan Jumlah
Penggunaan Bilangan Prima pada Instant Messaging berbasis Socket TCP
Di dalam tulisan ini disajikan pokok-pokok bahasan mengenai algoritma
RSA mulai dari cara kerja, celah keamanan hingga perkembangannya. Selain itu
juga dijelaskan mengenai pengaplikasian algoritma RSA dan improvisasi
algoritma RSA serta pengujian kemanan pada kedua algoritma tersebut.
Peneliti menyadari sepenuhnya bahwa dalam penulisan tugas akhir ini
masih banyak kekurangan dan keterbatasan. Oleh karena itu, peniliti sangat
mengharapkan saran yang membangun agar tulisan ini bermanfaat untuk
perkembangan ilmu pengetahuan kedepan.
Malang, 9 Februari 2018
Penulis
Rahardian Dwi Saputra
ix
DAFTAR ISI
Halaman judul……………………………………………………………… iLEMBAR PERSETUJUAN………………………………………………. iiLEMBAR PENGESAHAN………………………………………………… iiiLEMBAR PERNYATAAN………………………………………………. ivABSTRAK…………………………………………………………………. vABSTRACT………………………………………………………………... viLEMBAR PERSEMBAHAN………………………………………………. viiKATA PENGANTAR……………………………………………………… viiiDAFTAR ISI……………………………………………………………….. ixDAFTAR GAMBAR……………………………………………………….. xiiDAFTAR TABEL………………………………………………………….. xiiiDAFTAR LAMPIRAN…………………………………………………….. xivBAB I PENDAHULUAN………………………………………………….. 11.1 Latar Belakang……………………………………………………….. 11.2 Rumusan Masalah…………………………………………………… 31.3 Tujuan……………………………………………………………….. 41.4 Batasan Masalah…………………………………………………….. 41.5 Metodologi Penelitian……………………………………………….. 51.5.1 Studi pustaka……………………………………………………. 51.5.2 Analisa dan Perancangan sistem……………………………….. 51.5.3 Implementasi……………………………………………………. 51.5.4 Pengujian dan Analisa………………………………………….. 61.5.5 Pembuatan Laporan……………………………………………. 8
1.6 Sistematika Penulisan………………………………………………. 8BAB II LANDASAN TEORI……………………………………………… 92.1 Kriptografi…………………………………………………………… 92.2 Bilangan prima………………………………………………………. 102.2.1 Algoritma Pengujian Bilangan Prima Miller Rabin…………….. 11
2.3 Algoritma RSA………………………………………………………. 132.3.1 Cara Kerja Algoritma RSA……………………………………... 142.3.2 Keamanan Algoritma RSA……………………………………… 172.3.2.1 Small private key exponent attack………………………….. 172.3.2.1 Known plain text attack…………………………………….. 19
2.3.3 Improvisasi algoritma RSA…………………………………….. 202.4 Socket TCP………………………………………………………….. 24
BAB III ANALISA DAN PERANCANGAN SISTEM…………………… 263.1 Analisa Masalah……………………………………………………... 263.2 Rancangan Algoritma RSA Standar…………………………………. 263.2.1 Pembangkitan kunci algoritma RSA standar……………………. 273.2.2 Enkripsi algoritma RSA standar………………………………… 283.2.3 Dekripsi algoritma RSA standar………………………………… 29
3.3 Rancangan Improvisasi Algoritma RSA…………………………….. 303.3.1 Pembangkitan kunci improvisasi algoritma RSA………………. 313.3.2 Enkripsi improvisasi algoritma RSA……………………………. 323.3.3 Dekripsi improvisasi algoritma RSA……………………………. 33
x
3.4 Rancangan uji keamanan……………………………………………. 353.4.1 Known plain text attack…………………………………………. 353.4.2 Wiener attack……………………………………………………. 36
3.5 Perbedaan algoritma RSA standar dan imprivisasi algoritma RSA…. 38BAB IV IMPLEMENTASI DAN PENGUJIAN………………………….. 434.1 Implementasi………………………………………………………… 434.1.1 Implementasi perangkat keras………………………………….. 434.1.2 Implementasi perangkat lunak………………………………….. 434.1.3 Implementasi algoritma RSA standar…………………………… 434.1.3.1 Implementasi pembangkitan kunci algoritma RSA standar... 444.1.3.2 Implementasi enkripsi algoritma RSA standar…………….. 454.1.3.3 Implementasi dekripsi algoritma RSA stnadar…………….. 45
4.1.4 Implementasi improvisasi algoritma RSA………………………. 464.1.4.1 Implementasi pembangkitan kunci improvisasi algoritma
RSA……………………………………………………….. 464.1.4.2 Implementasi enkripsi improvisasi algoritma RSA………… 484.1.4.3 Implementasi dekripsi improvisasi algoritma RSA………… 49
4.1.5 Implementasi known plain text attack………………………….. 504.1.6 Implementasi Wiener attack…………………………………….. 51
4.2 Pengujian…………………………………………………………….. 544.2.1 Pengujian waktu pembangkitan kunci………………………….. 544.2.1.1 Pengujian waktu pembangkitan kunci algoritma RSA
standar…………………………………………………….. 544.2.1.2 Pengujian waktu pembangkitan kunci improvisasi algoritma
RSA………………………………………………………… 554.2.1.3 Analisis perbandingan waktu pembangkitan kunci………… 57
4.2.2 Pengujian waktu enkripsi……………………………………….. 594.2.2.1 Pengujian waktu enkripsi algoritma RSA standar………….. 594.2.2.2 Pengujian waktu enkripsi improvisasi algoritma RSA…….. 614.2.2.3 Analisis perbandingan waktu enkripsi……………………… 62
4.2.3 Pengujian waktu dekripsi……………………………………….. 654.2.3.1 Pengujian waktu dekripsi algoritma RSA standar………….. 654.2.3.2 Pengujian waktu dekripsi improvisasi algoritma RSA…….. 664.2.3.3 Analisis perbandingan waktu dekripsi……………………… 67
4.2.4 Pengujian waktu pengiriman pesan……………………………... 704.2.4.1 Pengujian waktu pengiriman pesan algoritma RSA standar.. 704.2.4.2 Pengujian waktu pengiriman pesan improvisasi algoritma
RSA……………………………………………………….. 714.2.4.3 Analisis perbandingan waktu pengiriman pesan…………… 73
4.2.5 Pengujian known plain text attack………………………………. 754.2.5.1 Pengujian known plain text attack algoritma RSA standar… 754.2.5.2 Pengujian known plain text attack improvisasi algoritma
RSA……………………………………………………… 764.2.5.3 Analisis perbandingan pengujian known plain text attack…. 77
4.2.6 Pengujian wiener attack…………………………………………. 774.2.6.1 Pengujian wiener attack algoritma RSA standar…………… 774.2.6.2 Pengujian wiener attack improvisasi algoritma RSA………. 784.2.6.3 Analisis perbandingan pengujian wiener attack……………. 80
xi
BAB V KESIMPULAN DAN SARAN……………………………………. 815.1 Kesimpulan…………………………………………………………... 815.2 Saran…………………………………………………………………. 82
DAFTAR PUSTAKA………………………………………………………. 83
xii
DAFTAR GAMBAR
Gambar 3.1 pseudo code pembangkitan kunci algoritma RSA standar……… 27Gambar 3.2 alur pembangkitan kunci algoritma RSA standar……………….. 28Gambar 3.3 pseudo code enkripsi algoritma RSA standar…………………… 28Gambar 3.4 alur enkripsi algoritma RSA standar…………………………….. 29Gambar 3.5 pseudo code dekripsi algoritma RSA standar……………….…. 30Gambar 3.6 alur dekripsi algoritma RSA standar……………………………. 30Gambar 3.7 pseudo code pembangkitan kunci improvisasi algoritma RSA…. 31Gambar 3.8 alur pembangkitan kunci improvisasi algoritma RSA………….. 32Gambar 3.9 pseudo code enkripsi improvisasi algoritma RSA………………. 32Gambar 3.10 alur enkripsi improvisasi algoritma RSA……………………… 33Gambar 3.11 pseudo code dekripsi improvisasi algoritma RSA…………….. 34Gambar 3.12 alur dekripsi improvisasi algoritma RSA……………………… 34Gambar 3.13 alur proses known plain text attack……………………………. 35Gambar 3.14 pseudo code fraksaksi berkelanjutan………………………….. 36Gambar 3.15 pseudo code fraksaksi k/d……………………………………… 37Gambar 3.16 pseudo code wiener attack……………………………………. 37Gambar 4.1 kode sumber pembangkitan kunci slgoritma RSA standar……… 44Gambar 4.2 kode sumber enkripsi algoritma RSA standar………………….. 45Gambar 4.3 kode sumber dekripsi algoritma RSA standar………………….. 46Gambar 4.4 kode sumber pembangkitan kunci improvisasi algoritma RSA… 47Gambar 4.5 kode sumber enkripsi improvisasi algoritma RSA………….….. 48Gambar 4.6 kode sumber dekripsi improvisasi algoritma RSA………….….. 49Gambar 4.7 potongan kode sumber aplikasi known plain text attack RSA…. 50Gambar 4.8 kode sumber method pembuat fraksaksi berkelanjutan………… 51Gambar 4.9 kode sumber method pembentuk fraksaksi k/d……………….. 52Gambar 4.10 kode sumber method uji wiener attack………………………… 52Gambar 4.11 Grafik pengujian prima 128 bit………………………………… 57
xiii
DAFTAR TABEL
Tabel 2.1 Contoh himpunan plain text (P) dan cipher text (C)……………… 19Tabel 3.1 perbedaan algoritma RSA standar dan improvisasi algoritma RSA 41Tabel 4.1 Hasil pengujian prima 128 bit…………………………………….. 54Tabel 4.2 Waktu pembangkitan prima pengujian prima 128 bit……………. 55Tabel 4.3 Hasil pengujian prima 128 bit…………………………………….. 56Tabel 4.4 Perbandingan rata-rata waktu pembangkitan kunci prima 128 bit.. 58Tabel 4.5 Perbandingan rata-rata waktu pembangkitan kunci prima 128 bit.. 58Tabel 4.6 Hasil pengujian waktu enkripsi prima 128 bit……………………. 60Tabel 4.7 Hasil pengujian waktu enkripsi prima 128 bit……………………. 61Tabel 4.8 Hasil perbandingan rata-rata waktu enkripsi prima 128 bit………. 63Tabel 4.9 Hasil perbandingan rata-rata waktu enkripsi prima 256 bit………. 64Tabel 4.10 Hasil pengujian waktu dekripsi prima 128 bit…………………... 65Tabel 4.11 Hasil pengujian waktu dekripsi prima 128 bit………………….. 66Tabel 4.12 Perbandingan rata-rata waktu dekripsi prima 128 bit…………… 68Tabel 4.13 Perbandingan rata-rata waktu dekripsi prima 256 bit…………… 69Tabel 4.14 Hasil pengujian waktu pengiriman pesan prima 128 bit………... 71Tabel 4.15 Hasil pengujian waktu pengiriman pesan prima 128 bit………... 72Tabel 4.16 Perbandingan rata-rata waktu pengiriman pesan prima 128 bit… 73Tabel 4.17 Perbandingan rata-rata waktu pengiriman pesan prima 256 bit… 74Tabel 4.18 Hasil pengujian known plain text attack prima 128 bit…………. 76Tabel 4.19 Hasil pengujian known plain text attack prima 128 bit…………. 76Tabel 4.20 Hasil pengujian wiener attack prima 128 bit……………………. 78Tabel 4.21 Hasil pengujian wiener attack improvisasi RSA 2 prima 128 bit.. 79Tabel 4.22 Hasil pengujian wiener attack improvisasi RSA 3 prima 128 bit.. 79
xiv
DAFTAR LAMPIRAN
Lampiran 1 Hasil pengujian waktu pembangkitan kunci algoritma RSAstandar……………………………………………………………………… 85Lampiran 2 Hasil pengujian waktu pembangkitan kunci improvisasialgoritma RSA………………………………………………………………. 88Lampiran 3 Hasil pengujian waktu enkripsi algoritma RSA standar……….. 94Lampiran 4 Hasil pengujian waktu enkripsi improvisasi algoritma RSA….. 95Lampiran 5 Hasil pengujian waktu dekripsi algoritma RSA standar……….. 97Lampiran 6 Hasil pengujian waktu dekripsi improvisasi algoritma RSA….. 98Lampiran 7 Hasil pengujian waktu pengiriman pesan algoritma RSAstandar……………………………………………………………………….. 100Lampiran 8 Hasil pengujian waktu pengiriman pesan improvisasi algoritmaRSA………………………………………………………………………….. 101Lampiran 9 Hasil pengujian known plain text attack algoritma RSA standar 103Lampiran 10 Hasil pengujian known plain text attack improvisasi algoritmaRSA………………………………………………………………………… 104Lampiran 11 Hasil pengujian wiener attack algoritma RSA standar……….. 105Lampiran 12 Hasil pengujian wiener attack improvisasi algoritma RSA…… 106Lampiran 13 Data pesan untuk pengujian enkripsi………………………….. 108
DAFTAR PUSTAKA
[1] Harold, Elliotte Rusty. 2014. Java Network Programming, Fourth Edition.
United States of American: O’Reilly Media, Inc., 1005 Gravenstein Highway
North, Sebastopol, CA 95472.
[2] Arief, Ashari dan Ragil Saputra. “Implementasi Kriptografi Kunci Publik
dengan algoritma RSA-CRT pada Aplikasi Instant Messaging”. Scientific
Journal of Informatics Vol 3, No. 1, Mei 2016.
[3] Sadikin, Rifki. 2012. Kriptografi Untuk Keamanan Jaringan dan
Implementasinya Dalam Bahasa Java. Yogyakarta: CV ANDI OFFSET.
[4] Somani, Nikita., and Dharmendra Mangal. “An Improved RSA Cryptographic
System.” International of Journal Computer Application, (0975 - 8887)
Volume 105 - No. 16 (November 2014).
[5] Prof. Dr. Alaa Hussein Al-Hamami and Ibrahem Abdallah Aldariseh.
“Enhanced Method for RSA Cryptosystem Algorithm”. International
Conference on Advanced Computer Science Applications and Technologies
2012.
[6] Verma., Seema and Deepak Garg. “Improvement in Rebalanced CRT RSA”.
International Arab Journal of Information Technology, Vol. 12 , No. 6 ,
November 2015.
[7] Nguyen., Thuc D, Than Duc Nguyen and Long D Train.”Attack on low
private exponent RSA: an experimental study”. International Conforence on
Computational Science and Its Application 13th 2013.
[8] Segar T., Chandra and Vijayaragavan R. “Pell’s RSA key generation and its
security analysis”. 4th ICCCNT-2013, July 4 - 6, 2013, Tiruchengode, India.
[9] Preetha, M and M. Nithya. 2013. “A Study and Performance Analysis of RSA
Algorithm”. International Journal of Computer Science and Mobile
Computing Vol. 2, Issue. 6, June 2013, pg.126-139
[10] Lal, Nidhi., Anurag Prakash, and Shishupal Kumar. “Modified Trial Division
Algorithm Using KNJ-Factorization Method to Factorize RSA Public Key
Encryption.” International Conforence on Contemporary and Informatics
(IC3I) 2014.
[11] Swani., Balram, Ravindar Singh, and Sanjay Choudhary. “Dual Modulus
RSA based on Jordan-Totient Function”. International Conference on
Emerging Trends in Engineering, Science and Technology (ICETEST-2015).
[12] M.Sc in Information technology IV Semester. 2014. Elective 2 Cryptography
and Network Security MSIT-121 C. Mukthagangotri : Karnataka State Open
University.
[13] Stallings., William. 2014. Cryptography and Network Security Principles
and Practice sixth edition. United of States America: Pearson Education Inc.
[14] Kurniawan, Agus. 2011. Pemrograman Jaringan dengan Java. Yogyakarta :
CV ANDI OFFSET.
[15] CAI., Minqiang. “The Design Method of Network Chat System Based on
Socket and Cloud Computing”. International Conference on Computer
Science and Service System. 2012.