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
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