IMPLEMENTASI ALGORITMA HUFFMAN DAN ALGORITMA AES UNTUK MENGAMANKAN FILE GAMBAR SKRIPSI Anak Agung Ngurah Mahendra Adhi Putra NIM. 1008605025 JURUSAN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS UDAYANA BUKIT JIMBARAN 2015 i
SURAT PERNYATAAN KEASLIAN KARYA ILMIAH Yang bertanda tangan di bawah ini menyatakan bahwa naskah Skripsi dengan judul: Implementasi Algoritma Huffman dan Algoritma Aes Untuk Mengamankan File Gambar Nama NIM : 1008605025 : Anak Agung Ngurah Mahendra Adhi Putra Program Studi : Ilmu Komputer E-mail : Mahendraadhiputra@gmail.com Nomor telp/hp : 083114970341 Alamat : Kel Tegalcangkring, Kec Mendoyo, Kab Jembrana Belum pernah dipublikasikan dalam dokumen skripsi, jurnal nasional maupun internasional atau dalam prosiding manapun, dan tidak sedang atau akan diajukan untuk publikasi di jurnal atau prosiding manapun. Apabila di kemudian hari terbukti terdapat pelanggaran kaidah-kaidah akademik pada karya ilmiah saya, maka saya bersedia menanggung sanksi-sanksi yang dijatuhkan karena kesalahan tersebut, sebagaimana diatur oleh Peraturan Menteri Pendidikan Nasional Nomor 17 Tahun 2010 tentang Pencegahan dan Penanggulangan Plagiat di Perguruan Tinggi. Demikian Surat Pernyataan ini saya buat dengan sesungguhnya untuk dapat dipergunakan bilamana diperlukan. Denpasar, 14 Agustus 2015 Yang membuat pernyataan, Materai Rp 6.000,- (A.A.N Mahendra Adhi Putra) NIM. 1008605025 ii
iii LEMBAR PENGESAHAN TUGAS AKHIR Judul Skripsi : Implementasi Algoritma Huffman dan Algoritma Aes Untuk Mengamankan File Gambar Kompetensi : Jaringan Komputer Nama : A.A.N Mahendra Adhi Putra NIM : 1008605025 Tanggal Seminar : 10 Agustus 2015 Disetujui oleh: Pembimbing I Penguji I I Dewa Made Bayu Atmaja Darmawan,S.kom.,M.Cs NIP. 198901272012121001 Pembimbing II Dra. Luh Gede Astuti,M.kom NIP. 196401141994022001 Penguji II Ida Bagus Gede Dwidasmara, S.kom., M.Cs. NIP. 198503152010121007 I Komang Ari Mogi, S.Kom, M.Kom NIP. 198409242008011007 Penguji III Mengetahui, Jurusan Ilmu Komputer FMIPA UNUD Ketua, Ida Bagus Made Mahendra,S.kom, M.kom NIP. 198006212008121002 Drs. I Wayan Santiyasa, M.Si NIP. 196704141992031002 iii
iv Judul : Implementasi Algoritma Huffman dan Algoritma Aes Untuk Mengamankan File Gambar Nama : A.A.N Mahendra Adhi Putra Nim : 1008605025 Pembimbing : 1. I Dewa Made Bayu Atmaja Darmawan,S.kom.,M.Cs 2. Ida Bagus Gede Dwidasmara, S.kom., M.Cs. ABSTRAK Representasi citra atau gambar memiliki ukuran data yang besar, semakin besar ukuran citra tentu semakin besar pula memori yang dibutuhkan untuk menyimpan, salah satu cara untuk menyimpan file dapat dilakukan secara online, yaitu dengan membuat suatu website untuk penyimpanan file. Selain itu diperlukan juga suatu kemanan untuk menjaga data tersebut, salah satunya menggunakan kriptografi dengan menggunakan algoritma AES. Algoritma AES merupakan salah satu kriptografi simetris yang dimana menggunakan satu kunci untuk enkripsi maupun dekripsi. Selain mengamankan data diperlukan juga teknik untuk memampatkan ukuran data tanpa menghilangkan informasi di dalamnya. Algoritma huffman dapat digunakan untuk mengkompresi gambar dan mengembalikan seperti semula. Dari pengujian yang dilakukan menghasilkan proses enkripsi kompresi dan kompresi enkripsi dapat mengurangi ukuran gambar namun masih ada gambar yang bertambah ukurannya dan dapat mengembalikan gambar seperti semula. Sedangkan pengujian rasio mendapatkan rata-rata untuk gambar pada resolusi sama adalah 0,99 dan 1,71, pada resolusi beda dengan gambar airplane adalah 0,96 dan 1,05 dan gambar project adalah 1,19, hanya pengujian kompresi enkripsi pada resolusi beda dengan gambar project prosesnya semua berhasil dan mendapatkan rasio rata-rata 4,5. Kata Kunci : Algoritma AES, Huffman, Rasio. iv
v Title : The Implementation of Huffman and AES Algorithms For Image File Security Name : A.A.N Mahendra Adhi Putra Registration : 1008605025 Supervisors : 1. I Dewa Made Bayu Atmaja Darmawan,S.kom.,M.Cs 2. Ida Bagus Gede Dwidasmara, S.kom., M.Cs. ABSTRACT Image representation has a large data size, the larger the image size, certainly the greater the memory required to store it, one of the ways to save a file can be done online, namely by making a website for file storage. In addition, it is also necessary to maintain the security of the data, one of which uses cryptography by using the AES algorithm. AES algorithm is a symmetric cryptography which uses one key for encryption and decryption. In addition to securing the data, it is also needed techniques to compress data size without losing information in it. Huffman algorithm can be used to compress images and to restore it. The testing results indicate that the encryption process of compression and encryption compression can reduce the size of the image, but there are still images that increased in size and can be restored to their original images. The ratio testing found that the average resolutions of the same image were 0.99 and 1.71, at different resolutions on the image of airplane were 0.96 and 1.05 and on the image of project was 1.19, only on the process of encryption compression testing on different resolution of the project image was all successfully done and obtained an average ratio of 4.5. Keywords: AES algorithm, Huffman, Ratio. v
KATA PENGANTAR Puji syukur penulis panjatkan kehadirat TuhanYang Maha Esa karena atas rahmat dan berkatnya, penulis dapat menyelesaikan Laporan Tugas Akhir dengan judul, Implementasi Algoritma Huffman Dan Algoritma Aes Untuk Mengamankan File Gambar dapat diselesaikan tepat pada waktunya. Sehubungan dengan telah terselesaikannya Laporan Tugas Akhir ini, penulis secara khusus mengucapkan terima kasih kepada pihak yang telah membantu dalam menyusun Laporan Tugas Akhir ini, yaitu kepada: 1. Bapak Drs. I Wayan Santiyasa, M.Si selaku ketua jurusan Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Udayana. 2. Bapak I Dewa Made Bayu Atmaja Darmawan, S.Kom.,M.Cs sebagai pembimbing I yang telah banyak membantu, menuntun, dan mengarahkan penulisan dalam menyempurnakan Laporan Tugas Akhir ini. 3. Bapak Ida Bagus Gede Dwidasmara, S.Kom., M.Cs. selaku pembimbing II yang telah banyak membantu, menuntun, dan mengarahkan penulisan dalam menyempurnakan Laporan Tugas Akhir ini. 4. Bapak dan Ibu dosen di Jurusan Ilmu Komputer yang telah meluangkan waktu untuk memberikan saran dan masukan untuk menyempurnakan Laporan Tugas Akhir ini. 5. Semua pihak yang telah memberi dukungan sehingga laporan ini dapat diselesaikan sesuai dengan waktu yang ditentukan. Pada akhirnya penulis berharap agar adanya perbaikan pada Laporan Tugas Akhir ini mengingat keterbatasan penulis, sehingga sangat diharapkan untuk adanya kritik dan saran yang membangun untuk pencapaian yang lebih baik.. Bukit Jimbaran, Juli 2015 Penulis vi
DAFTAR ISI LEMBAR PENGESAHAN TUGAS AKHIR... iii ABSTRAK... iv KATA PENGANTAR... vi DAFTAR ISI... vi DAFTAR TABEL... viii DAFTAR GAMBAR... viii BAB I PENDAHULUAN... 1 1.1 Latar Belakang... 1 1.2 Rumusan Masalah... 2 1.3 Tujuan Penelitian... 3 1.4 Batasan Masalah... 3 1.5 Manfaat Penelitian... 3 1.6 Metodelogi Penelitian... 4 1.6.1 Desain Penelitian...4 1.6.3 Pengumpulan Data...4 1.6.4 Analisis Kebutuhan...4 1.6.5 Pengujian Sistem...5 BAB II TINJAUAN PUSTAKA... 6 2.1 Pengertian kriptografi...6 2.1.1 Kriptografi simetris...6 2.1.2 Algoritma AES...6 2.2 Proses Enkripsi Advanced Enryption Standard (AES)...8 2.2.1 Sub bytes...8 2.2.2 Shift Row...8 2.2.3 Mix Columns...9 2.3 Proses Dekripsi Advanced Encryption Standard (AES)...11 2.3.1 InvShiftRows...11 2.3.2 InvSubBytes...11 2.3.3 InvMixColumns...11 2.4 Add Round Key...12 2.5 Key Schedule...12 vi
vii 2.6 Gambar (Citra Digital)...13 2.7 Kompresi Lossless...13 2.7.1 Algoritma Huffman...14 2.7.2 Rasio Kompresi...17 2.8 Algoritma SHA (Secure Hash Algorithm)...17 BAB III ANALISIS DAN PERANCANGAN... 18 3.1 Objek Penelitian...18 3.2 Variabel Penelitian...18 3.3 Analisis Kebutuhan...18 3.4 Teknik Observasi...19 3.5 Desain Perancangan Sistem...19 3.5.1 Sistem pertama...19 3.5.2 Flowchart Enkripsi dan Kompresi...20 3.5.3 Flowchart Dekompresi dan Dekripsi...23 3.5.4 Sistem kedua...26 3.5.5 Flowchart Kompresi dan Enkripsi...27 3.5.6 Flowchart Dekripsi dan Dekompresi...30 3.6 Kebutuhan Hardware...32 3.7 Kebutuhan Software...33 BAB IV HASIL DAN PEMBAHASAN... 34 4.1 Implementasi Sistem...34 4.1.1 Implementasi Tampilan Antar Muka Sistem pertama dan kedua...34 4.1.2 Tampilan website...36 4.1.3 Implementasi Pengamanan File dalam Sistem...36 4.2 Pengujian sistem enkripsi kompresi dan kompresi enkripsi...53 4.2.1 Pengujian integritas proses...53 4.2.2 Pengujian rasio gambar proses enkripsi kompresi...55 4.2.3 Pengujian rasio gambar proses kompresi enkripsi...66 4.2.4 Grafik rasio proses enkripsi kompresi dan kompresi enkripsi...73 BAB V KESIMPULAN... 76 5.1 Kesimpulan...76 5.2 Saran...76 vii
viii DAFTAR PUSTAKA... 77 viii
vii DAFTAR TABEL Tabel 2.1 Jumlah proses berdasarkan bit blok dan kunci... 7 Tabel 2.2 Tabel Rcon... 13 Tabel 4.1 Pengujian SHA-1 pada resolusi sama... 54 Tabel 4.2 Pengujian SHA-1 pada resolusi beda... 55 Tabel 4.3 Pengujian rasio pada resolusi sama... 56 Tabel 4.4 Waktu proses pada resolusi sama... 56 Tabel 4.5 Pengujian rasio pada resolusi beda... 57 Tabel 4.6 Waktu proses pada resolusi beda... 57 Tabel 4.7 Pengujian rasio pada gambar project... 58 Tabel 4.8 Waktu proses pada gambar project... 59 Tabel 4.9 Pengujian rasio pada resolusi sama... 66 Tabel 4.10 Waktu proses pada resolusi sama... 67 Tabel 4.11 Pengujian rasio pada gambar airplane... 67 Tabel 4.12 Waktu proses dari gambr airplane... 68 Tabel4.13 Pengujian rasio pada gambar project... 68 Tabel 4.14 Waktu proses dari gambar project... 69 vii
viii DAFTAR GAMBAR Gambar 2.1 Proses algoritma kriptografi simetris... 6 Gambar 2.2 Diagram proses enkripsi... 7 Gambar 2.3 Diagram proses dekripsi... 7 Gambar 2.4 S-box... 8 Gambar 2.5 Proses sub bytes... 8 Gambar 2.6 Proses shift row... 8 Gambar 2.7 E-Table dari Galois Field Multiplication... 10 Gambar 2.8 L-Table dari Galois Field Multiplication... 10 Gambar 2.9 Transformasi InvShiftRows... 11 Gambar 2.10 Inverse S-Box... 11 Gambar 2.11 Proses add round key... 12 Gambar 2.12 Diagram alir pengkodean Huffman... 15 Gambar 3.1 Skema umum jalannya sistem enkripsi kompresi... 19 Gambar 3.2 Flowchart proses enkripsi dan kompresi... 20 Gambar 3.3 Flowchart sub proses enkripsi... 21 Gambar 3.4 Flowchart sub proses kompresi... 22 Gambar 3.5 Flowchart proses dekompresi dan dekripsi... 23 Gambar 3.6 Flowchart sub proses dekompresi... 24 Gambar 3.7 Flowchart sub proses dekripsi... 25 Gambar 3.8 Skema umum jalannya sistem kompresi enkripsi... 26 Gambar 3.9 Flowchart proses kompresi dan enkripsi... 27 Gambar 3.10 Flowchart sub proses kompresi... 28 Gambar 3.11 Flowchart sub proses enkripsi... 29 Gambar 3.12 Flowchart proses dekripsi dan dekompresi... 30 Gambar 3.13 Flowchart sub proses dekripsi... 31 Gambar 3.14 Flowchart sub proses dekompresi... 32 Gambar 4.1 Tampilan proses enkripsi dan kompresi... 34 Gambar 4.2 Tampilan proses kompresi dan enkripsi... 34 Gambar 4.3 Tampilan proses dekompresi dan dekripsi... 35 Gambar 4.4 Tampilan proses dekripsi dan dekompresi... 35 Gambar 4.5 Tampilan website... 36 viii
ix Gambar 4.6 Membaca kunci dan file... 37 Gambar 4.7 Mengisi 16 byte atau sisa byte... 38 Gambar 4.8 Operasi subbyte... 39 Gambar 4.9 Operasi shiftrow... 39 Gambar 4.10 Operasi mixcolumn... 40 Gambar 4.11 Pembentukan L-Table dan E-Table... 41 Gambar 4.12 Proses addroundkey pada enkripsi... 42 Gambar 4.13 Proses keyschedule genap... 44 Gambar 4.14 Proses keyschedule ganjil... 44 Gambar 4.15 Proses kompresi huffman... 46 Gambar 4.16 Proses membuat pohon huffman... 47 Gambar 4.17 Proses dekompresi huffman... 48 Gambar 4.18 Proses dekripsi gambar... 49 Gambar 4.19 Proses invshiftrow... 49 Gambar 4.20 Proses invsubbyte... 50 Gambar 4.21 Proses addroundkey... 51 Gambar 4.22 Proses invmixcolumn... 52 Gambar 4.23 Proses pengiriman file... 53 Gambar 4.24 Grafik pada resolusi sama... 74 Gambar 4.25 Grafik proses gambar airplane pada resolusi beda... 74 Gambar 4.26 Grafik proses gambar project pada resolusi beda... 75 ix