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
ii 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 Komisi Pembimbing : Diluluskan di Medan, 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
iii 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
iv 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. 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. 3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer. 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
v 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.
vi 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.
vii DAFTAR ISI Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar Daftar Lampiran Halaman ii iii iv v vi vii ix x 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
viii 3.1.3.1 Use-Case Diagram 20 3.1.3.2 Activity Diagram 21 3.1.3.3 Activity Diagram Proses Enkripsi Elgamal 22 3.1.3.4 Activity Diagram Proses Kompresi Huffman 23 3.1.3.5 Activity Diagram Proses Dekompresi Huffman 24 3.1.3.6 Activity Diagram Proses Dekripsi Elgamal 25 3.1.3.7 Sequence Diagram 26 3.2. Perancangan Sistem 26 3.2.1 Pembuatan Algoritma Program 26 3.2.2. Alur Proses Sistem Secara Umum 27 3.2.3. Alur Proses Enkripsi pada Elgamal 27 3.2.4. Alur Proses Dekripsi pada Elgamal 29 3.2.4.1 Analisis Proses Dekripsi dengan Algoritma Elgamal 29 3.2.5. Alur Proses Kompresi Pada Huffman 30 3.2.5.1 Proses Pembentukan Pohon Huffman 31 3.2.5.2 Proses Encoding 32 3.2.5.3 Proses Decoding 33 3.2.6 Alur Proses Dekompresi Pada Huffman 33 3.3. Perancangan Antar Muka (Interface) 34 3.3.1 Rancangan Halaman Utama 34 3.3.2 Rancangan Halaman Enkripsi Elgamal 35 3.3.3 Rancangan Halaman Kompresi Huffman 37 3.3.4 Rancangan Halaman Dekompresi Huffman 37 3.3.5 Rancangan Halaman Dekripsi Elgamal 38 Bab 4 Implementasi dan Pengujian 4.1. Implementasi 40 4.1.1 Implementasi Proses Enkripsi Menggunakan Algoritma Elgamal 40 4.1.2 Implementasi Proses Kompresi Menggunakan Algoritma Huffman 42 4.1.3 Implementasi Proses Dekompresi Menggunakan Algoritma Huffman 45 4.1.4 Implementasi Proses Dekripsi Menggunakan Algoritma Elgamal 46 4.1.5 Tampilan Form Tentang 48 4.2. Pengujian 49 4.2.1 Pengujian Enkripsi Elgamal 50 4.2.2 Pengujian Kompresi Huffman 53 4.2.3 Pengujian Dekompresi Huffman 55 4.2.4 Pengujian Dekripsi Elgamal 57 Bab 5 Kesimpulan dan Saran 5.1. Kesimpulan 60 5.2. Saran 61 Daftar Pustaka
ix DAFTAR TABEL Halaman 2.1 Kode Huffman untuk Karakter ABCD 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 Karakter RACHMAT 44 4.3 Perbandingan File Teks Setelah dilakukan Proses Enkripsi dan Kompresi 59
x DAFTAR GAMBAR Halaman 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 22 3.4 Activity Diagram Proses Kompresi Huffman 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 29 3.11 Diagram Blok Proses Elgamal 30 3.12 Flowchart 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 3.18 Rancangan Halaman Kompresi Huffman 37 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 44
xi 4.5 Proses Dekompresi 45 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 4.10 Tampilan Halaman Utama 49 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 4.15 Pop-up Window Open 53 4.16 Proses Penyimpanan Hasil Kompresi *.hmt 54 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 56 4.21 Proses Penyimpanan File Hasil Dekompresi.elgmc 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 59
xii DAFTAR LAMPIRAN Halaman A. Listing Program A-1 B. Curriculum Vitae