Penyandian Data Teks Dengan Algoritma Elgamal Dan Algoritma Kompresi Data Dengan Algoritma Elias Gamma Code

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
β.γ.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 β579 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