PERANCANGAN PERANGKAT LUNAK PENGAMANAN FILE TEXT MENGGUNAKAN ALGORITMA EL GAMAL DAN KOMPRESI FILE TEXT MENGGUNAKAN ALGORITMA HUFFMAN SKRIPSI RACHMAT SALEH HASIBUAN
PERANCANGAN PERANGKAT LUNAK PENGAMANAN FILE TEXT MENGGUNAKAN ALGORITMA EL GAMAL DAN KOMPRESI FILE TEXT MENGGUNAKAN ALGORITMA HUFFMAN SKRIPSI RACHMAT SALEH HASIBUAN 111421046 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2015
PERSETUJUAN
Judul : PERANCANGAN PERANGKAT LUNAK PENGAMANAN FILE TEXT MENGGUNAKAN ALGORITMA ELGAMAL DAN KOMPRESI FILE TEXT MENGGUNAKAN ALGORITMA HUFFMAN
Kategori : SKRIPSI Nama : RACHMAT SALEH HASIBUAN Nomor Induk Mahasiswa : 111421046 Program Studi : S1 ILMU KOMPUTER Departemen : ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA Diluluskan di Medan,
Komisi Pembimbing : Pembimbing 2
Pembimbing 1 Jos Timanta Tarigan, S.Kom, M.Kom Ade Candra, ST, M.Kom NIP.
NIP. 1979090420091211002 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP.196203171991031001
PERNYATAAN
PERANCANGAN PERANGKAT LUNAK PENGAMANAN FILE TEXT MENGGUNAKAN ALGORITMA ELGAMAL DAN KOMPRESI FILE TEXT MENGGUNAKAN ALGORITMA HUFFMAN SKRIPSI Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, Agustus 2015 Rachmat Saleh Hasibuan 111421046
PENGHARGAAN
Puji dan syukur kehadirat Allah SWT, yang hanya dengan rahmat dan izin-Nya 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: 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.
4. Bapak Ade Candra, ST, M.Kom. selaku Dosen Pembimbing I dan Bapak Jos Timanta Tarigan, S.Kom, M.Kom selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.
5. Bapak Drs. James Piter Marbun, M.Kom Dosen Pembanding I dan Bapak Amer Sharif, SSi, M.Kom. selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
6. Ayah Penulis, Bachtiar Hasibuan, Ibu Penulis, Nurhaida Nasution, abang-kakak Penulis, Afrida Anni Hasibuan, Abdul Rajab Hasibuan, Muhammad Ilyas Hasibuan, Manna Sari Hasibuan dan adik Penulis, Rachmi Hasibuan yang selalu memberikan kasih sayang dan dukungannya kepada penulis.
7. Rekan kuliah terlebih kepada Fatah Abdela Sutara, S.Kom dan Rajab Sihotang, S.Kom, Abdul Kodir Sihotang, S.Kom, Hedi Hermawan, S. Kom dan teman-teman terbaik angkatan 2011 yang tidak dapat disebutkan satu persatu yang selalu memberikan semangat dan dorongan kepada penulis selama menyelesaikan skripsi ini.
8. Rekan Kerja terlebih Kepada bapak Anton Topo Koentoro, Ibu Hidayati Lubis, dan teman teman kerja yang tidak dapat disebutkan satu persatu yang selalu memberikan kesempatan dan mengizinkan untuk dapat melanjutkan kuliah dan menyelesaikan skripsi ini.
Semoga Allah SWT melimpahkan berkahkepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.Akhirnya, semoga skripsi ini bermanfaat bagi pribadi, keluarga, masyarakat, organisasi dan negara.
Medan, Agustus 2015 Penulis Rachmat Saleh Hasibuan
ABSTRAK
Dalam komunikasi data, aspek keamanan, kerahasiaan dan efisiensi penyimpanan data sangat diperlukan. Untuk menjaga keamanan, kerahasiaan data tersebut adalah dengan menggunakan kriptografi dan untuk efisiensi penyimpanan data melakukan proses kompresi. Kriptografi merupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentifikasi data. Pengamanan teks dilakukan dengan kriptografi hybrid pada file teks yaitu pertama kali dilakukan enkripsi menggunakan Elgamal, kemudian hasil enkripsi dari Elgamal tersebut di kompresi dengan menggunakan Huffman. Pengujian bilangan prima menggunakan algoritma Miller-Rabin. Implementasi sistem menggunakan bahasa pemrograman C# pada Microsoft Visual Studio 2010. Hasil penelitian menunjukkan bahwa metode Elgamal dapat menjaga keamanan, dan kerahasiaan data. Metode Huffman cukup efisien dalam proses penyimpanan data.
Kata Kunci: Kriptografi, Elgamal, Huffman, Miller-Rabin.
ABSTRACT
In the data communication, confidentiality and efficiency of data storage are exceptionally important. For safety reason, the confidentiality as well as the efficiency of the data were done by cryptografy and compression respectively. Cryptography, a science focussing on mathematic engineering, related with the aspect of the security of information such as secrecy, validity, integrity, and authentication of data. The security of the text done by hybrid crptografy on the file text was manipulated by encryption applying Elgamal, and then the result was given compression by Huffman. The analysed of prime used Miller-Rabin algorithm. The system implemetation utilized a programming language C# on Microsoft Visual Studio 2010. The result shows that Elgamal method could keep the security as well as the confidentiality of the data. Huffman method was sufficiently efficient in the process data storage..
Keywords: Cryptography, ElGamal, Huffman, Miller-Rabin.
Halaman Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel ix
Daftar Gambar x
Daftar Lampiran xii
Bab 1 Pendahuluan
1.1 Latar Belakang
1
1.2 Rumusan Masalah
2
1.3 Batasan Masalah
2
1.4 Tujuan Penelitian
2
1.5 Manfaat Penelitian
3
1.6 Metodologi Penelitian
3
1.7 Sistematika Penulisan
4 Bab 2 Landasan Teori
2.1 Kriptografi
5
2.1.1 Defenisi Kriptografi
5
2.2 Algoritma Elgamal
6
2.2.1 Algoritma Membangkitkan Pasangan Kunci
6
2.2.1.1 Algoritma Miller - Rabin
7
2.2.2 Enkripsi El Gamal
8
2.2.3 Dekripsi Elgamal
8
2.2.4 Contoh Cara Kerja El Gamal
9
2.3 Algoritma Huffman
9
2.3.1 Kompresi Data
11
2.3.2 Dekompresi
12
2.3.3 Pembentukan Pohon Huffman
13
2.3.4 Proses Encoding
15
2.3.5 Proses Decoding
15
2.3.6 Kompleksitas Algoritma Huffman
17 Bab 3 Analisis dan Perancangan
3.1 Analisis Sistem
18
3.1.1 Analisis Masalah
18
3.1.2 Analisis Kebutuhan
19
3.1.2.1 Kebutuhan Fungsional
19
3.1.2.2 Kebutuhan Nonfungsional
19
3.1.3 Pemodelan Sistem
20
3.1.3.1 Use-Case Diagram
38 Bab 4 Implementasi dan Pengujian
42
4.1.2 Implementasi Proses Kompresi Menggunakan Algoritma Huffman
40
4.1.1 Implementasi Proses Enkripsi Menggunakan Algoritma Elgamal
40
4.1. Implementasi
3.3.5 Rancangan Halaman Dekripsi Elgamal
45
37
3.3.4 Rancangan Halaman Dekompresi Huffman
37
3.3.3 Rancangan Halaman Kompresi Huffman
35
3.3.2 Rancangan Halaman Enkripsi Elgamal
4.1.3 Implementasi Proses Dekompresi Menggunakan Algoritma Huffman
4.1.4 Implementasi Proses Dekripsi Menggunakan Algoritma Elgamal
3.3.1 Rancangan Halaman Utama
4.2.3 Pengujian Dekompresi Huffman
5.2. Saran
60
5.1. Kesimpulan
57 Bab 5 Kesimpulan dan Saran
4.2.4 Pengujian Dekripsi Elgamal
55
53
46
4.2.2 Pengujian Kompresi Huffman
50
4.2.1 Pengujian Enkripsi Elgamal
49
4.2. Pengujian
48
4.1.5 Tampilan Form Tentang
34
34
20
3.1.3.6 Activity Diagram Proses Dekripsi Elgamal
3.2.1 Pembuatan Algoritma Program
26
3.2. Perancangan Sistem
26
3.1.3.7 Sequence Diagram
25
24
3.2.2. Alur Proses Sistem Secara Umum
3.1.3.5 Activity Diagram Proses Dekompresi Huffman
23
3.1.3.4 Activity Diagram Proses Kompresi Huffman
22
3.1.3.3 Activity Diagram Proses Enkripsi Elgamal
21
3.1.3.2 Activity Diagram
26
27
3.3. Perancangan Antar Muka (Interface)
31
33
3.2.6 Alur Proses Dekompresi Pada Huffman
33
3.2.5.3 Proses Decoding
32
3.2.5.2 Proses Encoding
3.2.5.1 Proses Pembentukan Pohon Huffman
3.2.3. Alur Proses Enkripsi pada Elgamal
30
3.2.5. Alur Proses Kompresi Pada Huffman
29
3.2.4.1 Analisis Proses Dekripsi dengan Algoritma Elgamal
29
3.2.4. Alur Proses Dekripsi pada Elgamal
27
61 Daftar Pustaka
DAFTAR TABEL
Halaman
15
3.1 Tabel 3.1 Jumlah Frequensi dan Bit Sebelum Proses Kompresi Untuk Karakter “RACHMAT”
31
3.2 Tabel 3.2 Jumlah Frequensi dan Bit Setelah Proses Kompresi Untuk Karakter “RACHMAT”
32
4.1 Tabel 4.1 Jumlah Frequensi dan Bit Sebelum Proses Kompresi Untuk Karakter “RACHMAT”
43
4.2 Tabel 4.2 Jumlah Frequensi dan Bit Setelah Proses Kompresi Untuk
44
Karakter “RACHMAT”
4.3 Perbandingan File Teks Setelah dilakukan Proses Enkripsi dan Kompresi 59
DAFTAR GAMBAR
3.18 Rancangan Halaman Kompresi Huffman
30
3.13 Pohon Huffman untuk Karakter “RACHMAT”
32
3.14 Proses Decoding dengan Menggunakan Pohon Huffman
33
3.15 Flowchart Dekompresi Huffman
34
3.16 Rancangan Antarmuka Halaman Menu Utama
35
3.17 Rancangan Halaman Enkripsi Elgamal
36
37
30
3.19 Rancangan Halaman Dekompresi Huffman
37
3.20 Rancangan Halaman Dekripsi Elgamal
38
4.1 File Teks Input Dengan Ekstensi docx
40
4.2 Proses Kompresi Kompresi
42
4.3 File Teks Hasil Kompresi dengan Ekstensi .hmc
43
4.4 Pohon Huffman untuk Karakter “RACHMAT”
3.12 Flowchart Kompresi Huffman
3.11 Diagram Blok Proses Elgamal
Halaman
22
2.1 Alur Teknik Lossless Kompresi-Dekompresi Data
13
2.2 Pohon Huffman untuk Karakter “ABACCDA”
14
2.3 Proses Decoding dengan Menggunakan Pohon Huffman
16
3.1 Diagram Ishikawa Masalah Penelitian
20
3.2 Use-Case Diagram Pada Sistem
21
3.3 Activity Diagram Proses Enkripsi Elgamal
3.4 Activity Diagram Proses Kompresi Huffman
29
23
3.5 Activity Diagram Proses Dekompresi Huffman
24
3.6 Activity Diagram Proses Dekripsi Elgamal
25
3.7 Sequence Diagram
26
3.8 Flowchart Gambaran Umum Sistem
27
3.9 Flowchart Enkripsi pada Elgamal
28
3.10 Flowchart Dekripsi pada Elgamal
44
4.5 Proses Dekompresi
56
4.17 Proses Penyimpanan Hasil Kompresi *.hmc
54
4.18 Pop-up Window Open
55
4.19 Proses Dekompresi *.hmc
56
4.20 Proses Dekompresi *.hmt
4.21 Proses Penyimpanan File Hasil Dekompresi .elgmc
4.16 Proses Penyimpanan Hasil Kompresi *.hmt
57
4.22 Pop-up Window Open
57
4.23 Tampilan Kunci Private dan Input file Teks
58
4.24 Setelah Proses Dekripsi
58
4.25 Proses Penyimpanan File Hasil Dekripsi Elgamal
54
53
45
4.10 Tampilan Halaman Utama
4.6 File Teks Hasil Dekompresi dengan Ekstensi .elgmc
45
4.7 Proses Dekripsi
46
4.8 File Teks Hasil Dekripsi dengan Ekstensi .docx
48
4.9 Tampilan Halaman Tentang
48
49
4.15 Pop-up Window Open
4.11 Pop-up Window Open
50
4.12 Tampilan Pembangkit Kunci dan Input file Teks
51
4.13 File Teks Setelah Proses Enkripsi
52
4.14 Proses Penyimpanan File Hasil Enkripsi Elgamal
52
59