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
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
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
Handrizal, S.Si, M.Comp. Sc Dr. Poltak Sihombing, M.Kom
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,
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
sebesar-besarnya kepada:
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
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,
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,
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%.
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%.
DAFTAR ISI
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
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
β.γ.7. Fermat’s Little Theorem 21
2.4. Prinsip Kerja Algoritma ElGamal 22
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.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.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 TABEL
halaman
Tabel 2.1. Penyelesaian contoh soal Inversi Modulo 19 Tabel 2.2. Perhitungan α2 mod β579 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
DAFTAR GAMBAR
halaman
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.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 Dialoginput 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