PENYANDIAN DATA TEKS DENGAN ALGORITMA ELGAMAL DAN ALGORITMA KOMPRESI DATA DENGAN ALGORITMA ELIAS GAMMA CODE SKRIPSI WIWIN AGUSTINI LUBIS 131421061 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2015
PENYANDIAN DATA TEKS DENGAN ALGORITMA ELGAMAL DAN ALGORITMA KOMPRESI DATA DENGAN ALGORITMA ELIAS GAMMA CODE SKRIPSI Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer Oleh : WIWIN AGUSTINI LUBIS 131421061 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2015
ii 1 PERSETUJUAN Judul :PENYANDIAN DATA TEKS DENGAN ALGORITMA ELGAMAL DAN ALGORITMA KOMPRESI DATA DENGAN ALGORITMA ELIAS GAMMA CODE. Kategori : SKRIPSI Nama : WIWIN AGUSTINI LUBIS Nomor Induk Mahasiswa : 131421061 Program Studi : EKSTENSI S1 ILMU KOMPUTER Departemen : ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA Komisi Pembimbing : Diluluskan di Medan, Agustus 2015 Pembimbing 2 Pembimbing 1 Handrizal, S.Si, M.Comp. Sc Dr. Poltak Sihombing, M.Kom NIP.- NIP. 19620317 199103 1 001 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001
2 iii PERNYATAAN PENYANDIAN DATA TEKS DENGAN ALGORITMA ELGAMAL DAN ALGORITMA KOMPRESI DATA DENGAN ALGORITMA ELIAS GAMMA CODE SKRIPSI Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya. Medan, Wiwin Agustini Lubis 131421061
3 iv PENGHARGAAN Alhamdulillah segala puji dan syukur atas nikmat yang luas kepada Allah Yang Maha Esa sehingga 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 semua pihak yang telah membantu Penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung, teristimewa orangtua penulis yang sangat mengasihi dan menyayangi penulis dan memberi dukungan tiada henti. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesarbesarnya kepada: 1. Bapak Prof. Drs. Subhilhar, M.A., Ph.D selaku Pejabat 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 dan sebagai Dosen Pembimbing I yang telah memberikan arahan, kritik dan saran serta motivasi kepada penulis dalam pengerjaan skripsi ini. 4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan sebagai Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini. 5. Bapak Handrizal, S.Si, M.Comp. Sc selaku Dosen Pembimbing II yang telah memberikan arahan, kritik dan saran serta motivasi kepada penulis dalam pengerjaan skripsi ini.
4 v 6. Ibu Dian Rachmawati, M.Kom selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini. 7. Semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. 8. Keluarga besar penulis, Orang tua yang senantiasa mendoakan dan mendukung serta kakak dan adik tersayang Dona, Nova, Nanda, Riki. 9. Teman-teman seperjuangan mahasiswa Ekstensi S1-Ilmu Komputer stambuk 2013, Fera, Tiany, Nurul, Melsa, Sabrina, Ade, Rio, Ifar, Ryan, Adly, Satrio, Tika, Lely, Zumik, Yusi, Ridha, Mhd.Iqbal, dan virsw2 Dan adik-adik junior yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini. 10. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini. Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya. Medan, Agustus 2015 Penulis, ( Wiwin Agustini Lubis )
5 vi ABSTRAK Dalam komunikasi data, aspek keamanan, kerahasiaan dan efisiensi penyimpanan data sangat diperlukan. Untuk menjaga keamanan dan kerahasiaan data tersebut salah satu teknik yang digunakan adalah ElGamal. Kekuatan algoritma ini terletak pada sulitnya menghitung logaritma diskrit pada grup bilangan bulat prima yang di dalamnya dilakukan operasi perkalian. Algoritma ElGamal termasuk Algoritma Kunci Asimetris. Disamping usaha pengamanan, sekarang ini orang juga berusaha melakukan proses pengecilan ukuran suatu data (kompresi suatu data). Elias Gamma Code merupakan salah satu algoritma kompresi yang menggunakan tabel Gamma Code. Dalam penelitian ini, penulis menggabungan antara Algoritma ElGamal untuk melakukan penyandian data dan Algoritma Elias Gamma Code untuk kompresi data. Plainteks pertama kali dienkripsikan menggunakan algoritma ElGamal, kemudian hasil enkripsi dari Elgamal tersebut di kompresi dengan menggunakan Elias Gamma Code. Pengujian bilangan prima menggunakan Metode Fermat. Implementasi sistem menggunakan bahasa pemrograman Java dengan software Netbeans versi 7.0.1. Hasil penelitian menunjukkan bahwa metode ElGamal dapat menjaga keamanan, dan kerahasiaan data. Metode Elias Gamma Code cukup efisien dalam proses penyimpanan data dengan rasio kompresi rata-rata sebesar 73,04%. Kata Kunci: Kriptografi, Asimetris, ElGamal, Elias Gamma Code, Fermat.
vii 6 THE TEXT DATA ENCRYPTION USING ELGAMAL ALGORITHM AND COMPRESSION DATA ALGORITHM BY ELIAS GAMMA CODE ALGORTHM ABSTRACT In data communications, aspects of security, confidentiality and efficiency of data storage are indispensable. Maintain the security and confidentiality of data is one of the techniques used is the ElGamal. This algorithm strength lies in the difficulty of calculating discrete logarithms in prime integers group which the multiplication operation performed. ElGamal algorithms including Asymmetric Key Algorithm. Besides the security business, today people are also trying to make the process of downsizing the size of the data (the data compression). Elias Gamma Code is a compression algorithm that uses the Gamma table Code. In this study, the authors to combine between ElGamal algorithm to perform data encryption and Elias Gamma Code algorithm for data compression. Plaintext was first encrypted using ElGamal algorithm, then the result of the ElGamal encryption is compressed by using Elias Gamma Code. The tests were using the method of Fermat primes. Implementation of the system was using the Java programming language with Netbeans software version 7.0.1. The results showed that ElGamal method can maintain the security and confidentiality of data. Elias Gamma Code method is quite efficient in the process of data storage with an average ratio of compression 73,04%. Keywords: Cryptography, Asymmetric, ElGamal, Elias Gamma Code, Fermat.
viii 7 DAFTAR ISI halaman Persetujuan Pernyataaan Penghargaan Abstrak Abstract Daftar isi Daftar tabel Daftar gambar ii iii iv vi vii viii xi xii BAB 1. PENDAHULUAN 1 1.1. Latar Belakang 1 1.2. Rumusan Masalah 3 1.3. Ruang Lingkup Penelitian 3 1.4. Tujuan Penelitian 3 1.5. Manfaat Penelitian 4 1.6. Penelitian Sebelumnya 4 1.7. Metodologi Penelitian 5 1.8. Sistematika Penulisan 6 BAB 2. LANDASAN TEORI 8 2.1. Kriptografi 8 2.1.1. Defenisi Kriptografi 8 2.1.2. Sejarah Kriptografi 9 2.1.3. Tujuan Kriptografi 10 2.1.4. Terminologi dan Konsep Dasar Kriptografi 11 2.1.5. Jenis Kriptografi 13 2.2. Algoritma ElGamal 16 2.2.1. Sejarah Algoritma ElGamal 16 2.3. Landasan Matematika Algoritma ElGamal 17 2.3.1. Modulo Exponensial 17 2.3.2. Algoritma Euclidean 18 2.3.3. Inversi Modulo 19 2.3.4. Bilangan Prima 20 2.3.5. Bilangan Relatif Prima 20 2.3.6. Elemen Primitif 20 2.3.7. Fermat s Little Theorem 21 2.4. Prinsip Kerja Algoritma ElGamal 22 2.4.1. Proses Pembangkit Kunci 22
ix 8 2.4.2. Proses Enkripsi 23 2.4.3. Proses Dekripsi 24 2.5. Defenisi Kompresi 24 2.5.1. Penggolongan Algoritma Kompresi 25 2.5.2. Algoritma Elias Gamma Code 25 2.5.2.1 Konsep Kompresi Data 27 2.5.3. Pengukuran Kinerja Kompresi Data 30 BAB 3. ANALISIS DAN PERANCANGAN SISTEM 31 3.1. Analisis 31 3.1.1. Analisis Masalah 31 3.1.2. Analisis Kebutuhan 32 3.1.2.1. Kebutuhan Fungsional 33 3.1.2.2. Kebutuhan Non Fungsional 33 3.2. Pemodelan Sistem 34 3.2.1. Use-Case Diagram 34 3.2.2. Activity Diagram 35 3.2.2.1. Activity Diagram Proses Pembangkit Kunci 35 3.2.2.2. Activity Diagram Proses Enkripsi ElGamal 36 3.2.2.3. Activity Diagram Proses Kompresi Elias Gamma Code 36 3.2.2.4. Activity Diagram Proses Dekompresi Elias Gamma Code 37 3.2.2.5. Activity Diagram Proses Dekripsi ElGamal 38 3.2.2.6. Sequence Diagram 38 3.3. Perancangan Sistem 39 3.3.1. Pembuatan Algoritma Program 39 3.3.2. Alur Proses Sistem Secara Umum 40 3.3.3. Alur Proses Pembangkit Kunci 41 3.3.4. Alur Proses Enkripsi pada ElGamal 42 3.3.5. Alur Proses Dekripsi pada ElGamal 44 3.3.6. Alur Proses Kompresi Elias Gamma Code 46 3.4. Perancangan Antarmuka (Interface) 49 3.4.1. Rancangan Halaman Utama 49 3.4.2. Rancangan HalamanKey Generator 50 3.4.3. Rancangan Halaman Enkripsi 51 3.4.4. Rancangan Halaman Dekripsi 53 3.4.5. Rancangan Halaman Kompresi 54 3.4.6. Rancangan Halaman Dekompresi 55 BAB 4. IMPLEMENTASI DAN PENGUJIAN SISTEM 56 4.1. Implementasi Sistem 56 4.1.1. Form Halaman Utama 57 4.1.2. Form Key Generator 57 4.1.3. Form Enkripsi 58
x 9 4.1.4. Form Dekripsi 59 4.1.5. Form Kompresi 59 4.1.6. Form Dekompresi 60 4.2. Pengujian Sistem 61 4.2.1. Pengujian Proses Key Generator 61 4.2.2. Pengujian Proses Enkripsi 63 4.2.3. Pengujian Proses Kompresi 65 4.2.4. Pengujian Proses Dekompresi 66 4.2.5. Pengujian Proses Dekripsi 68 4.2.6. Hasil Pengujian 70 4.2.6.1 Hasil Pengujian String Homogen dan Heterogen 76 Kompleksitas Waktu Algoritma PROMETHEE 86 BAB 5. KESIMPULAN DAN SARAN 77 5.1. Kesimpulan 77 5.2. Saran 78 DAFTAR PUSTAKA
10 xi DAFTAR TABEL Tabel 2.1. Penyelesaian contoh soal Inversi Modulo 19 Tabel 2.2. Perhitungan α 2 mod 2579 dan α 1289 mod 2579 21 Tabel 2.3. Tabel Elias Gamma Code 26 Tabel 2.4. String yang Belum Dikompresi 28 Tabel 2.5. String yang Sudah Dikompresi Dengan Elias Gamma Code 29 Tabel 4.1. Hasil Uji Coba untuk 9 (sembilan) percobaan 75 halaman
11 xii DAFTAR GAMBAR Gambar 2.1. Urutan proses kriptografi 9 Gambar 2.2. Mesin enigma yang digunakan tentara Jerman 10 Gambar 2.3. Perbandingan plainteks dan cipherteks 12 Gambar 2.4. Hubungan antara kriptologi, kriptografi dan kriptografi 13 Gambar 2.5. Skema Algoritma Simetri 14 Gambar 2.6 Skema Algoritma Asimetri 15 Gambar 3.1 Diagram Ishikawa Masalah Penelitian 32 Gambar 3.2 Use-Case Diagram Pada Sistem 34 Gambar 3.3. Activity Diagram Proses Pembangkit Kunci 35 Gambar 3.4. Activity Diagram Proses Enkripsi Pesan 36 Gambar 3.5 Activity Diagram Proses Kompresi Elias Gamma Code 36 Gambar 3.6. Activity Diagram Proses Dekompresi Elias Gamma Code 37 Gambar 3.7. Activity Diagram Proses Dekripsi Pesan 38 Gambar 3.8. Sequence diagram sistem 39 Gambar 3.9. Flowchart gambaran umum sistem 40 Gambar 3.10. Flowchart Alur proses pembangkitan kunci 42 Gambar 3.11. Flowchart Alur proses enkripsi ElGamal 44 Gambar 3.12. Flowchart Alur proses dekripsi ElGamal 46 Gambar 3.13. Flowchart Alur proses kompresi Elias Gamma Code 48 Gambar 3.14. Rancangan Halaman Utama 50 Gambar 3.15 Rancangan Key Generator 51 Gambar 3.16 Rancangan Halaman Enrkipsi 52 Gambar 3.17 Rancangan Halaman Dekripsi 53 Gambar 3.18 Rancangan Halaman Kompresi 54 Gambar 3.19 Rancangan Halaman Dekompresi 55 Gambar 4.1. Halaman utama 57 Gambar 4.2. Form key generator 58 Gambar 4.3. Form enkripsi 58 Gambar 4.4. Form dekripsi 59 Gambar 4.5. Form Kompresi 60 Gambar 4.6. Form Dekompresi 60 Gambar 4.7. Hasil nilai kunci publik dan kunci privat 61 Gambar 4.8. Save File Dialog untuk menyimpan kunci publik 62 Gambar 4.9. Save File Dialog untuk menyimpan kunci privat 62 Gambar 4.10. Form nilai kunci publik 63 Gambar 4.11. Open File Dialog untuk input file teks 63 Gambar 4.12 Form Hasil Enkripsi 64 Gambar 4.13 Save File Dialog hasil enkripsi 64 halaman
12 xiii Gambar 4.14 Open File Dialog input file teks 65 Gambar 4.15 Save File Dialog hasil kompresi 66 Gambar 4.16 Message Dialog hasil kompresi 66 Gambar 4.17 Open File Dialog input file teks 67 Gambar 4.18 Save File Dialog hasil dekompresi 67 Gambar 4.19 Message Dialog hasil dekompresi 68 Gambar 4.20 Form nilai kunci privat 68 Gambar 4.21 Open File Dialog untuk input file teks 69 Gambar 4.22 Form hasil dekripsi 69 Gambar 4.23 Save File Dialog hasil dekripsi 70 Gambar 4.24 Hasil Uji Coba ke-1 70 Gambar 4.25 Hasil Uji Coba ke-2 71 Gambar 4.26 Hasil Uji Coba ke-3 71 Gambar 4.27 Hasil Uji Coba ke-4 72 Gambar 4.28 Hasil Uji Coba ke-5 72 Gambar 4.29 Hasil Uji Coba ke-6 73 Gambar 4.30 Hasil Uji Coba ke-7 73 Gambar 4.31 Hasil Uji Coba ke-8 74 Gambar 4.32 Hasil Uji Coba ke-9 74 Gambar 4.33 Grafik Perbandingan ukuran file 75