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
ii1
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
Diluluskan di Medan, Agustus 2015 Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
Handrizal, S.Si, M.Comp. Sc NIP.-
Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001
Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001
2iii
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
3iv
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.
4v
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 )
5vi
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.
6 vii
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.
7 viii
DAFTAR ISI
halaman Persetujuan Pernyataaan Penghargaan Abstrak Abstract Daftar isi Daftar tabel Daftar gambar BAB 1. PENDAHULUAN 1.1. Latar Belakang 1.2. Rumusan Masalah 1.3. Ruang Lingkup Penelitian 1.4. Tujuan Penelitian 1.5. Manfaat Penelitian 1.6. Penelitian Sebelumnya 1.7. Metodologi Penelitian 1.8. Sistematika Penulisan BAB 2. LANDASAN TEORI 2.1. Kriptografi 2.1.1. Defenisi Kriptografi 2.1.2. Sejarah Kriptografi 2.1.3. Tujuan Kriptografi 2.1.4. Terminologi dan Konsep Dasar Kriptografi 2.1.5. Jenis Kriptografi 2.2. Algoritma ElGamal 2.2.1. Sejarah Algoritma ElGamal 2.3. Landasan Matematika Algoritma ElGamal 2.3.1. Modulo Exponensial 2.3.2. Algoritma Euclidean 2.3.3. Inversi Modulo 2.3.4. Bilangan Prima 2.3.5. Bilangan Relatif Prima 2.3.6. Elemen Primitif 2.3.7. Fermat’s Little Theorem 2.4. Prinsip Kerja Algoritma ElGamal 2.4.1. Proses Pembangkit Kunci
ii iii iv vi vii viii xi xii 1 1 3 3 3 4 4 5 6 8 8 8 9 10 11 13 16 16 17 17 18 19 20 20 20 21 22 22
ix8
2.4.2. Proses Enkripsi 2.4.3. Proses Dekripsi 2.5. Defenisi Kompresi 2.5.1. Penggolongan Algoritma Kompresi 2.5.2. Algoritma Elias Gamma Code 2.5.2.1 Konsep Kompresi Data 2.5.3. Pengukuran Kinerja Kompresi Data
23 24 24 25 25 27 30
BAB 3. ANALISIS DAN PERANCANGAN SISTEM 3.1. Analisis 3.1.1. Analisis Masalah 3.1.2. Analisis Kebutuhan 3.1.2.1. Kebutuhan Fungsional 3.1.2.2. Kebutuhan Non Fungsional 3.2. Pemodelan Sistem 3.2.1. Use-Case Diagram 3.2.2. Activity Diagram 3.2.2.1. Activity Diagram Proses Pembangkit Kunci 3.2.2.2. Activity Diagram Proses Enkripsi ElGamal 3.2.2.3. Activity Diagram Proses Kompresi Elias Gamma Code 3.2.2.4. Activity Diagram Proses Dekompresi Elias Gamma Code 3.2.2.5. Activity Diagram Proses Dekripsi ElGamal 3.2.2.6. Sequence Diagram 3.3. Perancangan Sistem 3.3.1. Pembuatan Algoritma Program 3.3.2. Alur Proses Sistem Secara Umum 3.3.3. Alur Proses Pembangkit Kunci 3.3.4. Alur Proses Enkripsi pada ElGamal 3.3.5. Alur Proses Dekripsi pada ElGamal 3.3.6. Alur Proses Kompresi Elias Gamma Code 3.4. Perancangan Antarmuka (Interface) 3.4.1. Rancangan Halaman Utama 3.4.2. Rancangan HalamanKey Generator 3.4.3. Rancangan Halaman Enkripsi 3.4.4. Rancangan Halaman Dekripsi 3.4.5. Rancangan Halaman Kompresi 3.4.6. Rancangan Halaman Dekompresi
31 31 31 32 33 33 34 34 35 35 36 36 37 38 38 39 39 40 41 42 44 46 49 49 50 51 53 54 55
BAB 4. IMPLEMENTASI DAN PENGUJIAN SISTEM 4.1. Implementasi Sistem 4.1.1. Form Halaman Utama 4.1.2. Form Key Generator 4.1.3. Form Enkripsi
56 56 57 57 58
x9
4.1.4. Form Dekripsi 4.1.5. Form Kompresi 4.1.6. Form Dekompresi 4.2. Pengujian Sistem 4.2.1. Pengujian Proses Key Generator 4.2.2. Pengujian Proses Enkripsi 4.2.3. Pengujian Proses Kompresi 4.2.4. Pengujian Proses Dekompresi 4.2.5. Pengujian Proses Dekripsi 4.2.6. Hasil Pengujian 4.2.6.1 Hasil Pengujian String Homogen dan Heterogen Kompleksitas Waktu Algoritma PROMETHEE BAB 5. KESIMPULAN DAN SARAN 5.1. Kesimpulan 5.2. Saran DAFTAR PUSTAKA
59 59 60 61 61 63 65 66 68 70 76 86 77 77 78
10xi
DAFTAR TABEL
halaman Tabel 2.1. Tabel 2.2. Tabel 2.3. Tabel 2.4. Tabel 2.5. Tabel 4.1.
Penyelesaian contoh soal Inversi Modulo Perhitungan α2 mod 2579 dan α1289 mod 2579 Tabel Elias Gamma Code String yang Belum Dikompresi String yang Sudah Dikompresi Dengan Elias Gamma Code Hasil Uji Coba untuk 9 (sembilan) percobaan
19 21 26 28 29 75
xii 11
DAFTAR GAMBAR
halaman Gambar 2.1. Gambar 2.2. Gambar 2.3. Gambar 2.4. Gambar 2.5. Gambar 2.6 Gambar 3.1 Gambar 3.2 Gambar 3.3. Gambar 3.4. Gambar 3.5 Gambar 3.6. Gambar 3.7. Gambar 3.8. Gambar 3.9. Gambar 3.10. Gambar 3.11. Gambar 3.12. Gambar 3.13. Gambar 3.14. Gambar 3.15
Urutan proses kriptografi Mesin enigma yang digunakan tentara Jerman Perbandingan plainteks dan cipherteks Hubungan antara kriptologi, kriptografi dan kriptografi Skema Algoritma Simetri Skema Algoritma Asimetri Diagram Ishikawa Masalah Penelitian Use-Case Diagram Pada Sistem Activity Diagram Proses Pembangkit Kunci Activity Diagram Proses Enkripsi Pesan Activity Diagram Proses Kompresi Elias Gamma Code Activity Diagram Proses Dekompresi Elias Gamma Code Activity Diagram Proses Dekripsi Pesan Sequence diagram sistem Flowchart gambaran umum sistem Flowchart Alur proses pembangkitan kunci Flowchart Alur proses enkripsi ElGamal Flowchart Alur proses dekripsi ElGamal Flowchart Alur proses kompresi Elias Gamma Code Rancangan Halaman Utama Rancangan Key Generator
9 10 12 13 14 15 32 34 35 36 36 37 38 39 40 42 44 46 48 50 51
Gambar 3.16 Rancangan Halaman Enrkipsi
52
Gambar 3.17 Gambar 3.18 Gambar 3.19 Gambar 4.1. Gambar 4.2. Gambar 4.3. Gambar 4.4. Gambar 4.5. Gambar 4.6. Gambar 4.7. Gambar 4.8. Gambar 4.9. Gambar 4.10. Gambar 4.11. Gambar 4.12 Gambar 4.13
53 54 55 57 58 58 59 60 60 61 62 62 63 63 64 64
Rancangan Halaman Dekripsi Rancangan Halaman Kompresi Rancangan Halaman Dekompresi Halaman utama Form key generator Form enkripsi Form dekripsi Form Kompresi Form Dekompresi Hasil nilai kunci publik dan kunci privat Save File Dialog untuk menyimpan kunci publik Save File Dialog untuk menyimpan kunci privat Form nilai kunci publik Open File Dialog untuk input file teks Form Hasil Enkripsi Save File Dialog hasil enkripsi
xiii 12
Gambar 4.14 Gambar 4.15 Gambar 4.16 Gambar 4.17 Gambar 4.18 Gambar 4.19 Gambar 4.20 Gambar 4.21 Gambar 4.22 Gambar 4.23 Gambar 4.24 Gambar 4.25 Gambar 4.26 Gambar 4.27 Gambar 4.28 Gambar 4.29 Gambar 4.30 Gambar 4.31 Gambar 4.32 Gambar 4.33
Open File Dialog input file teks Save File Dialog hasil kompresi Message Dialog hasil kompresi Open File Dialog input file teks Save File Dialog hasil dekompresi Message Dialog hasil dekompresi Form nilai kunci privat Open File Dialog untuk input file teks Form hasil dekripsi Save File Dialog hasil dekripsi Hasil Uji Coba ke-1 Hasil Uji Coba ke-2 Hasil Uji Coba ke-3 Hasil Uji Coba ke-4 Hasil Uji Coba ke-5 Hasil Uji Coba ke-6 Hasil Uji Coba ke-7 Hasil Uji Coba ke-8 Hasil Uji Coba ke-9 Grafik Perbandingan ukuran file
65 66 66 67 67 68 68 69 69 70 70 71 71 72 72 73 73 74 74 75