0 IMPLEMENTASI ALGORITMA KRIPTOGRAFI HILL CIPHER DAN KOMPRESI DATA MENGGUNAKAN ALGORITMA LEVENSTEIN DALAM PENGAMANAN FILE TEKS SKRIPSI WINDI SAPUTRI SIMAMORA 131401085 PROGRAM STUDI S-1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2017
1 IMPLEMENTASI ALGORITMA KRIPTOGRAFI HILL CIPHER DAN KOMPRESI DATA MENGGUNAKAN ALGORITMA LEVENSTEIN DALAM PENGAMANAN FILE TEKS SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer WINDI SAPUTRI SIMAMORA 131401085 PROGRAM STUDI S-1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2017
i PERSETUJUAN Judul : IMPLEMENTASI ALGORITMA KRIPTOGRAFI HILL CIPHER DAN KOMPRESI DATA MENGGUNAKAN ALGORITMA LEVENSTEIN DALAM PENGAMANAN FILE TEKS Kategori : SKRIPSI Nama : WINDI SAPUTRI SIMAMORA Nomor Induk Mahasiswa : 131401085 Program Studi : SARJANA (S1) ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA Komisi Pembimbing: Pembimbing 2 Pembimbing 1 Amer Sharif, S.Si, M.Kom M. Andri Budiman, ST, M.Comp.Sc, MEM NIP.- NIP. 197510082008011011 Diketahui/disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M. Kom NIP. 196203171991031001
ii PERNYATAAN IMPLEMENTASI ALGORITMA KRIPTOGRAFI HILL CIPHER DAN KOMPRESI DATA MENGGUNAKAN ALGORITMA LEVENSTEIN DALAM PENGAMANAN FILE TEKS SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya. Medan, Windi Saputri Simamora 131401085
iii UCAPAN TERIMA KASIH Puji dan syukur kehadirat Allah SWT yang telah memberikan rahmat dan hidayah- Nya, sehingga Penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer. Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar-besarnya kepada: 1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum selaku Rektor Universitas Sumatera Utara. 2. Bapak Prof. Opim Sitompul, M.Sc., selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi. 3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer 4. Bapak Herriyance, S.T., M.Kom selaku Sekretaris Program Studi S1 Ilmu Komputer. 5. Bapak M. Andri Budiman, S.T., M.Comp.Sc., M.E.M selaku Dosen Pembimbing I yang telah memotivasi dan senantiasa memberikan bimbingan, saran dan dukungan kepada penulis dalam pengerjaan skripsi ini. 6. Bapak Amer Sharif, S.Si, M.Kom selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran, masukan dan dukungan kepada penulis dalam pengerjaan skripsi ini. 7. Ibu Dr. Maya Silvi Lydia, M.Sc selaku dosen Pembanding I yang memberikan kritik dan saran untuk penyempurnaan skripsi ini. 8. Bapak Handrizal, S.Si, M.Comp.Sc selaku dosen Pembanding II yang memberikan kritik dan saran untuk penyempurnaan skripsi ini. 9. Seluruh dosen dan pegawai Program Studi S1 Ilmu Komputer Fasilkom-TI USU. 10. Ayahanda Oloan Simamora dan Ibunda Sri Nasmiati yang telah menjadi sumber motivasi, pendukung, penyemangat, dan inspirasi terbesar bagi penulis dalam menyelesaikan skripsi, serta kakak Lia Afriani Simamora dan adik Kiki Pratama Simamora yang senatiasa memberikan dukungan dan doa untuk penulis.
iv 11. Sahabat-sahabat seperjuangan Nurhasanah, Lily Aulya, Cut Amalia Safiiera, dan teman-teman angkatan 2013 yang juga senantiasa menjadi pengingat dan motivasi penulis. 12. Abangda Farid Akbar, Muhammad Miftahul Huda, yang telah banyak membantu dalam penyelesaian penelitian ini. 13. Keluarga UKMI Al-Khuwarizmi, IMILKOM yang telah memberikan inspirasi serta dukungan kepada penulis. 14. Dan semua pihak yang telah membantu dan tidak dapat disebutkan satu per satu. Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan kepada penulis mendapatkan pahala yang melimpah dari Allah SWT. Medan, Mei 2017 Penulis
v ABSTRAK Dalam penggunaan komputer, aspek keamanan, kerahasiaan dan efisiensi penyimpanan data sangat diperlukan. Untuk menjaga keamanan dan kerahasiaan data tersebut salah satu teknik yang digunakan adalah Hill Cipher. Algoritma Hill Cipher termasuk Algoritma Kunci Simetri. Levenstein Code merupakan salah satu algoritma kompresi yang menggunakan tabel Levenstein Code. Dalam penelitian ini, penulis menggabungan antara Algoritma Hill Cipher untuk melakukan penyandian data dan Algoritma Levenstein untuk kompresi data. File pertama kali dikompresi menggunakan Algoritma Levenstein Code, kemudian hasil kompresi tersebut dienkripsi dengan menggunakan Algoritma Hill Cipher. Implementasi sistem menggunakan bahasa pemrograman C#. Hasil penelitian menunjukkan bahwa metode Hill Cipher dapat mengubah data sehingga tidak dapat dibuka tanpa kunci dan dapat mengembalikan menjadi data semula. Metode Levenstein menghasilkan Ratio of Compression (RC), Compression Ratio (CR), dan Space Saving (SS) masing-masing dengan nilai rata-rata 1.44, 60.83%, dan 27.51% dalam proses kompresi data. Kata Kunci: Kriptografi, Kompresi, Simetri, Hill Cipher, Levenstein.
vi IMPLEMENTATION OF HILL CIPHER CRYPTOGRAPHY ALGORITHM AND DATA COMPRESSION USING LEVENSTEIN ALGORITHM IN TEXT FILE SECURITY ABSTRACT In computer usage, aspects of security, confidentiality and efficiency of data storage are indispensable. To maintain the security and confidentiality of data one of the techniques used is the Hill Cipher. Hill Cipher is one of the Symmetry Key Algorithms. Levenstein Code is a compression algorithm that uses the Levenstein Code table. In this study, the author combined Hill Cipher algorithm to perform data encryption and Levenstein Code algorithm for data compression. The file was first compressed using Levenstein Code, then the result of the compression is encrypted using Hill Cipher algorithm. Implementation of the system used the C# programming language. The results showed that Hill Cipher method could altered the data so it could not be opened without a key and was able restore the original data. The Levenstein method in data compression generated Ratio of Compression (RC), Compression Ratio (CR), and Space Saving (SS) each with average values of 1.44, 60.83%, and 27.51% respectively. Keywords: Cryptography, Compression, Symmetric, Hill Cipher, Levenstein.
vii DAFTAR ISI Halaman Persetujuan... i Pernyataan... ii Ucapan Terima Kasih... iii 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... 3 1.3. Batasan Masalah... 3 1.4. Tujuan Penelitian... 3 1.5. Manfaat Penelitian... 3 1.6. Metode Penelitian... 3 1.7. Sistematika Penulisan... 4 Bab 2 Landasan Teori 2.1. Kompresi... 6 2.1.1 Definisi Kompresi... 6 2.1.2. Penggolongan Algoritma Kompresi... 7 2.1.3. Pengukuram Kinerja Kompresi Data... 8 2.1.4. Konsep Kompresi Data... 8 2.1.5. Algoritma Levenstein Code... 9 2.2. Kriptografi... 11 2.2.1. Definisi Kriptografi... 11 2.2.2. Tujuan Kriptografi... 11 2.2.3. Sistemi Kriptografi... 12 2.2.4. Jenis Kriptografi... 12 2.2.5. Algoritma Hill Cipher... 14 2.3. File Teks... 21 2.4. Penelitian yang Relevan.... 24 Bab 3 Analisis dan Perancangan 3.1. Analisis Sistem... 25 3.1.1. Analisis Masalah... 25 3.1.2. Analisis Kebutuhan... 26 3.1.2.1. Kebutuhan Fungsional... 26 3.1.2.2. Kebutuhan Non Fungsional... 27 3.1.3. Analisis Proses... 27 3.2. Pemodelan Sistem... 28 3.2.1. Use-Case Diagram... 28 3.2.2. Activity Diagram... 30 3.2.2.1. Activity Diagram Proses Kompresi Levenstein... 30 3.2.2.2. Activity Diagram Proses Enkripsi Hill Cipher... 31
viii 3.2.2.3. Activity Diagram Proses Dekripsi Hill Cipher... 32 3.2.2.4. Activity Diagram Proses Dekompresi Levenstein... 32 3.2.2.5. Sequence Diagram... 33 3.3. Arsitektur Umum Sistem... 33 3.3. Flowchart Sistem... 34 3.3.1. Flowchart Algoritma Levenstein... 36 3.3.2. Flowchart Algoritma Hill Cipher... 36 3.4. Perancangan Antarmuka (Interface)... 37 3.4.1. Rancangan Halaman Utama... 37 3.4.2. Rancangan Halaman Pengirim... 39 3.3.3. Rancangan Halaman Penerima... 41 3.3.4. Rancangan Halaman Bantuan... 42 Bab 4 Implementasi Dan Pengujian Sistem 4.1. Implementasi Sistem... 44 4.1.1. Halaman Beranda... 44 4.1.2. Halaman Menu... 45 4.1.2.1 Submenu Pengirim... 45 4.1.2.2 Submenu Penerima... 46 4.1.3. Halaman Bantuan... 47 4.2. Pengujian Sistem... 48 4.2.1. Pengujian proses Kompresi dan Enkripsi... 49 4.2.2. Pengujian proses Dekripsi dan Dekompresi... 64 4.2.3. Pengujian dengan Perhitungan Manual... 76 4.3. Hasil Pengujian.... 81 Bab 5 Kesimpulan dan Saran 5.1. Kesimpulan... 84 5.2. Saran... 85 Daftar Pustaka... 86
ix DAFTAR TABEL Halaman Tabel 2.1 Tabel Kode Levenstein... 10 Tabel 2.2 Transformasi Alphanumerik... 17 Tabel 2.3 Enkripsi Hill Cipher... 17 Tabel 2.4 Adjoint dari Matriks K... 18 Tabel 2.5 Proses Pencarian Invers Determinan... 20 Tabel 2.6 Dekripsi Hill Cipher... 21 Tabel 2.7 Kode ASCII... 23 Tabel 3.1 Narrative Use-Case Kompresi Enkripsi... 29 Tabel 3.2 Narrative Use-Case Dekripsi Dekompresi... 29 Tabel 3.3 Keterangan Rancangan Halaman Utama... 38 Tabel 3.4 Keterangan Rancangan Halaman Pengirim... 39 Tabel 3.5 Keterangan Rancangan Halaman Penerima... 42 Tabel 3.6 Keterangan Rancangan Halaman Bantuan... 43 Tabel 4.1 String yang Belum Dikompresi... 77 Tabel 4.2 String yang Sudah Dikompresi dengan Levenstein Code... 78 Tabel 4.3 Kode dari String Bit... 79 Tabel 4.4 Enkripsi Hill Cipher Contoh... 79 Tabel 4.5 Dekripsi Hill Chiper Contoh... 80 Tabel 4.6 Kode dari String Bit... 80 Tabel 4.7 Hasil Dekompresi... 81 Tabel 4.8 Hasil Uji Coba... 81 Tabel 4.9 Hasil Uji Coba Berdasarkan Waktu... 82
x DAFTAR GAMBAR Halaman Gambar 2.1 Diagram Blok Proses Kompresi dan Dekompresi Data... 7 Gambar 2.2 Ilustrasi Kompresi Lossless... 7 Gambar 2.3 Ilustrasi Kompresi Lossy... 8 Gambar 2.4 Urutan proses kriptografi... 11 Gambar 2.5 Skema Algoritma Simetris... 13 Gambar 2.6 Skema Algoritma Asimetris... 14 Gambar 2.7 Illustrasi Enkripsi Hill Cipher... 17 Gambar 2.8 Illustrasi Dekripsi Hill Cipher... 18 Gambar 3.1 Diagram Ishikawa Masalah Penelitian.... 26 Gambar 3.2 Use-Case Diagram Pada Sistem... 28 Gambar 3.3 Activity Diagram Proses Kompresi Levenstein... 31 Gambar 3.4 Activity Diagram Proses Enkripsi Hill Cipher... 31 Gambar 3.5 Activity Diagram Proses Dekripsi Hill Cipher... 32 Gambar 3.6 Activity Diagram Proses Dekompresi Levenstein... 32 Gambar 3.7 Sequence Diagram Sistem... 33 Gambar 3.8 Arsitektur Umum Sistem... 34 Gambar 3.9 Flowchart Sistem... 35 Gambar 3.10 Flowchart Kompresi Levenstein... 36 Gambar 3.11 Flowchart Enkripsi Hill Cipher... 36 Gambar 3.12 Flowchart Dekripsi Hill Cipher... 37 Gambar 3.13 Rancangan Halaman Utama / Beranda... 38 Gambar 3.14 Rancangan Halaman Pengirim... 39 Gambar 3.15 Rancangan Halaman Penerima... 41 Gambar 3.16 Rancangan Halaman Bantuan... 43 Gambar 4.1 Menu Home... 45 Gambar 4.2 Submenu Pengirim... 46 Gambar 4.3 Submenu Penerima... 47 Gambar 4.4 Menu Bantuan... 48 Gambar 4.5 Open File Dialog input file teks... 49 Gambar 4.6 Tampilan file terpilih... 50 Gambar 4.7 File TXT 1... 50 Gambar 4.8 Proses Kompresi File TXT 1... 51 Gambar 4..9 Proses Generate Kunci... 51 Gambar 4.10 Proses Penyimpanan Kunci... 52 Gambar 4.11 Messagebox berhasil dienkripsi... 52 Gambar 4.12 Proses Enkripsi File TXT 1... 53 Gambar 4.13 Save dialog Hasil... 53 Gambar 4.14 Hasil Enkripsi file TXT 1... 54 Gambar 4.15 File TXT 2... 54 Gambar 4.16 Proses kompresi dan enkripsi File TXT 2... 55 Gambar 4.17 Hasil Enkripsi File TXT 2... 56 Gambar 4.18 File DOC 1... 56 Gambar 4.19 Proses kompresi dan enkripsi File DOC 1... 57 Gambar 4.20 Hasil Enkripsi File DOC 1... 58
xi Gambar 4.21 File DOC 2... 58 Gambar 4.22 Proses kompresi dan enkripsi File DOC 2... 59 Gambar 4.23 Hasil Enkripsi File DOC 2... 60 Gambar 4.24 File RTF 1... 60 Gambar 4.25 Proses kompresi dan enkripsi File RTF 1... 61 Gambar 4.26 Hasil Enkripsi File RTF 1... 62 Gambar 4.27 File RTF 2... 62 Gambar 4.28 Proses kompresi dan enkripsi File RTF 2... 63 Gambar 4.29 Hasil Enkripsi File RTF 2... 64 Gambar 4.30 Proses Dekripsi Dekompresi File Enkrip TXT 1... 65 Gambar 4.31 Messagebox simpan file Enkrip TXT 1... 65 Gambar 4.32 Hasil Proses Dekripsi Dekompresi File Enkrip TXT 1... 66 Gambar 4.33 Proses Dekripsi Dekompresi File Enkrip TXT 2... 67 Gambar 4.34 Messagebox simpan file Enkrip TXT 2... 67 Gambar 4.35 Hasil Proses Dekripsi Dekompresi File Enkrip TXT 2... 68 Gambar 4.36 Proses Dekripsi Dekompresi File Enkrip DOC 1... 69 Gambar 4.37 Messagebox simpan file Enkrip DOC 1... 69 Gambar 4.38 Hasil Proses Dekripsi Dekompresi File Enkrip DOC 1... 70 Gambar 4.39 Proses Dekripsi Dekompresi File Enkrip DOC 2... 71 Gambar 4.40 Messagebox simpan file Enkrip DOC 2... 71 Gambar 4.41 Hasil Proses Dekripsi Dekompresi File Enkrip DOC 2... 72 Gambar 4.42 Proses Dekripsi Dekompresi File Enkrip RTF 1... 73 Gambar 4.43 Messagebox simpan file Enkrip RTF 1... 73 Gambar 4.44 Hasil Proses Dekripsi Dekompresi File Enkrip RTF 1... 74 Gambar 4.45 Proses Dekripsi Dekompresi File Enkrip RTF 2... 75 Gambar 4.46 Messagebox simpan file Enkrip RTF 2... 75 Gambar 4.47 Hasil Proses Dekripsi Dekompresi File Enkrip RTF 2... 76 Gambar 4.48 File Halo... 76 Gambar 4.49 Proses Kompresi File Halo... 77 Gambar 4.50 Kunci Hill Cipher... 79 Gambar 4.51 Grafik perbandingan hasil pengujian antara ukuran file asli, hasil kompresi/dekripsi, hasil enkripsi, dan hasil dekompresi... 82 Gambar 4.52 Grafik perbandingan hasil pengujian waktu pada proses kompresi, enkripsi, dekripsi, dan dekompresi... 83
xii DAFTAR LAMPIRAN Halaman Lampiran 1 Listing Program A-1... A-1 Lampiran 2 Curriculum Vitae B-1... B-1