Desain dan Implementasi Efisiensi Bit Cipherteks: Suatu Pendekatan Komparasi Algoritma Huffman dan Rancangan Cipher Block dengan Transposisi Pola “DoTA 2”
Artikel Ilmiah
Peneliti : Jodha Dwiwira Buji (672010281) Magdalena A. Ineke Pakereng, M.Kom. Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Februari 2016
1
2
3
4
5
Desain dan Implementasi Efisiensi Bit Cipherteks: Suatu Pendekatan Komparasi Algoritma Huffman dan Rancangan Cipher Block dengan Transposisi Pola “DoTA 2” 1
Magdalena A. Ineke Pakereng, 3Alz Danny Wowor Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50771, Indonesia Email:
[email protected], 2
[email protected], 3
[email protected]
Jodha Dwiwira Buji,
2
Abstract The development of techonology causing the information needs are getting bigger. Today’s, data security and the amount of storage are some of the important factors in the world of information technology. One of the method for keep a data secured is using cryptographic techniques, on the other hand cryptographic technique has been solved by cryptanalyst so it need to made new cryptographic algorithms. Huffman algorithm is one of the effective compression methods to compress storage or data transmission. The analysis of ciphertext bit efficiency was performed by a comparative approach Huffman algorithm and chipher block design with the transposition of “DoTA 2” pattern. Results of that the compressing process with Huffman algorithm first and then continued encryption, both in secure and compress storage or data transmission in a text files. Keywords : Block Cipher, Cryptography, Compress, Huffman, Symmetric Key, Transposition, DoTA 2, storage, text files. Abstrak Kemajuan teknologi membuat kebutuhan informasi yang semakin besar. Keamanan data dan besarnya kebutuhan media penyimpanan merupakan beberapa faktor yang penting dalam dunia teknologi informasi saat ini. Salah satu metode untuk pengamanan data adalah dengan teknik kriptografi, di sisi lain teknik kriptografi telah banyak dipecahkan oleh kriptanalis sehingga perlu dibuat algoritma kriptografi baru. Salah satu metode pemampatan yang efektif adalah Algoritma Huffman sebagai metode untuk menekan ukuran media penyimpananan atau dalam transmisi data. Analisis efisiensi bit cipherteks dilakukan dengan sebuah pendekatan komparasi antara Algoritma Huffman dan rancangan cipher block dengan transposisi pola “DoTA 2”. Hasil dari penelitian ini menunjukkan bahwa proses pemampatan dengan Algoritma Huffman terlebih dahulu dan dilanjutkan enkripsi, baik dalam mengamankan dan menekan ukuran media penyimpanan atau dalam transmisi data pada file teks. Kata Kunci : Cipher Blok, Kriptografi, Pemampatan, Huffman, Kunci Simetris, Transposisi, DoTA 2, media penyimpanan, file teks.
1
Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi Universitas Kristen Satya Wacana, Salatiga. 2 Staff pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga. 3 Staff pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga.
1.
Pendahuluan
Keamanan informasi sangat berpotensi menyebabkan kerugian baik di sisi finansial maupun produktifitas sebuah organisasi atau instansi. Pentingnya suatu informasi, berkaitan erat dengan pentingnya informasi tersebut dikirim dan diterima oleh pihak-pihak yang berkepentingan. Informasi yang dimaksud adalah informasi yang berupa teks. Teks merupakan kumpulan karakter-karakter atau string yang menjadi satu kesatuan. Teks yang memuat banyak karakter didalamnya selalu menimbulkan masalah pada media penyimpanan atau pada saat ditransmisikan melalui jaringan. Dalam komunikasi suatu informasi terdapat sebuah metode pengamanan data yang dikenal dengan nama kriptografi. Kriptografi merupakan salah satu metode pengamanan data yang dapat digunakan untuk menjaga kerahasian data, keaslian data, serta keaslian pengirim. Metode ini bertujuan untuk mengubah data ke dalam kode-kode tertentu agar informasi yang disimpan maupun ditransmisikan tidak dapat dibaca oleh orang lain dan hanya dapat dibaca oleh pihak yang berhak. Algoritma block cipher merupakan kriptografi simetris yang melakukan enkripsi dan dekripsi dengan kunci yang sama [6]. Banyaknya suatu data teks dalam sebuah informasi membuat semua orang berpikir untuk menemukan sebuah cara yang dapat digunakan untuk memampatkan data teks. Pemampatan adalah proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat tempat penyimpanan dan waktu untuk transmisi data. Tidak ada metode pemampatan yang paling efektif untuk semua jenis data. Dalam penelitian ini metode pemampatan data teks yang diimplementasikan adalah algoritma Huffman [3]. Penelitian kali ini meneliti tentang seberapa efesien bit cipherteks dari hasil perbandingan dua proses menjadi satu antara algoritma Huffman dan rancangan kriptografi block cipher dengan transposisi pola “DoTA 2”. Kombinasi dari algoritma Huffman dan rancangan kriptografi block cipher baru ini dimaksudkan untuk menghemat tempat dan waktu dalam penyimpanan atau transmisi data, serta memberi keamanan terhadap data tersebut. Akan dilakukan dua analisis statistik, pertama untuk membandingan setiap pola rancangan dalam block cipher berdasarkan korelasi bit masukan dan bit ambilan setiap pola juga perbandingan proses dalam block cipher berdasarkan korelasi bit plainteks dan bit cipherteks setiap proses, kedua untuk membandingkan kinerja setiap kombinasi algoritma Huffman dan rancangan block cipher berdasarkan rasio/perbandingan ukuran bit cipherteks terhadap ukuran bit plainteks. 2.
Tinjauan Pustaka
Penelitian pertama berjudul “Kriptografi Kunci Simetris Dengan Menggunakan Algoritma Crypton”, menganalisis tentang kinerja Algoritma Crypton dengan melakukan simulasi pada Personal Computer (PC) yang bertujuan untuk menggunakan kunci simetris sebagai keamanan dalam enkripsi dan dekripsi 6
dalam perancangan algoritma baru. Kunci yang dimaksud untuk mengenkripsi dan dekripsi adalah kunci private, dimana kunci dirahasiakan dari umum hanya pengirim dan penerima yang dapat mengetahui kunci tersebut [1]. Penelitian kedua yang digunakan sebagai perbandingan dan sebagai acuan dalam rancangan kriptografi block cipher baru ini yaitu “Perancangan dan Implementasi Kriptografi Block Cipher Berbasis pada Bentuk Piramida dan Linear Congruential Generator”. Penelitian ini membahas tentang perancangan algoritma kriptografi block cipher, dengan proses enkripsi mengacak rangkaian biner plaintext kedalam matriks 16×8(128bit) dengan menggunakan pola seperti bentuk piramida sebagai pola pengambilan, yang dilakukan operasi matematika Exclusive OR (XOR) dpada bilangan biner plainteks terhadap kunci yang telah dilakukan proses pengacakan dengan pembangkit kunci Linear Congruential Generator. Enkripsi pada algoritma ini dirancang dengan mempunyai 4 putaran sehingga menghasilkan ciphertext [2]. Penelitian ketiga, “Studi Perbandingan Algoritma Huffman dan Lempel Ziv Welch (LZW) Pada Pemampatan File Teks” [3], menjelaskan tentang kelebihan dan kekurangan dari masing-masing algoritma baik itu Algoritma Huffman dan Algoritma LZW dalam pemampatan teks. Algoritma Huffman merupakan metode paling lama dan paling terkenal dalam pemampatan teks. Kerja algoritma mirip dengan prinsip kerja dalam kode morse, dimana tiap karakter (simbol) dikodekan hanya dengan rangkaian beberapa bit. Karakter yang sering muncul dikodekan dengan rangkaian bit yang pendek dan karakter yang jarang muncul akan dikodekan dengan rangkaian bit yang lebih panjang. Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal menjadi sekumpulan codeword, algoritma Huffman termasuk kedalam kelas algoritma yang menggunakan metode statik [4]. Algoritma Huffman digunakan karena berdasarkan hasil penelitian ketiga disimpulkan bahwa secara rata-rata Algoritma Huffman menghasilkan rasio file hasil pemampatan yang terbaik daripada Algoritma LZW [3]. Algoritma Huffman digunakan bertujuan untuk memampatkan sebuah teks pada sebuah file yang akan dikombinasikan dengan kriptografi block cipher sehingga algoritma yang dirancang dapat memiliki besaran data yang kecil dan aman. Perbedaan mendasar dengan penelitian-penelitian sebelumnya adalah blok berukuran 16×16 (256-bit) karena untuk meningkatkan tingkat kerumitan dari peneletian sebelumnya yang berukuran 16×8 (128 bit). Blok berukuran 16×16 (256bit) digunakan untuk proses enkripsi-dekripsi pada plainteks dan cipherteks menggunakan metode transposisi bit dengan rancangan pola “DoTA 2”. Perbedaan selanjutnya pada penelitian ini adalah meneliti algoritma yang lebih efesien dilakukan antara kombinasi enkripsi terlebih dahulu dilakukan selanjutnya pemampatan Huffman atau sebaliknya dengan menganalisis statistik bit cipherteks. Selanjutnya akan dibahas dasar-dasar teori yang digunakan sebagai dasar untuk merancang kriptografi dalam penelitian ini. Kriptografi merupakan ilmu yang mempelajari teknik-teknik yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, dan otentikasi [5]. 7
Kriptografi memiliki dua konsep utama, yaitu enkripsi dan dekripsi. Enkripsi adalah proses dimana plaintext dilakukan proses penyandian sehingga menjadi ciphertext yang merubah pesan menjadi bentuk lain dengan tujuan tidak dapat dibaca oleh orang lain selain pengirim dan penerima tanpa merubah isi pesan tersebut, sedangkan dekripsi adalah proses mengembalikan ciphertext menjadi plaintext. Kriptografi dapat dibedakan menjadi kriptografi simetris (Symmetric-key cryptography) dan kriptografi asimetris (Asummetric-key cryptography) berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi. Sistem dari kriptografi simetris mengibaratkan pengirim dan penerima pesan sudah berbagi kunci yang sama sebelum melakukan pertukaran pesan (Gambar 1). Keamanan sistem kriptografi terletak pada kerahasiaan kuncinya.
Gambar 1 Skema Kriptografi Kunci Simetris[6]
Sistem kriptografi dengan kunci asimetris memiliki kunci enkripsi dan kunci dekripsi yang berbeda. Pada kriptografi ini, pengirim dan penerima memiliki sepasang kunci, yaitu kunci publik dan kunci privat. Pengirim melakukan enkripsi pesan menggunakan kunci publik milik penerima sehingga hanya penerima pesan yang dapat melakukan dekripsi terhadap pesan tersebut, karena hanya penerima yang mengetahui kunci privatnya (Gambar 2).
Gambar 2 Skema Kunci Kriptografi Kunci Asimetris[6]
Block cipher merupakan rangkaian bit plainteks yang dibagi menjadi blokblok dengan panjang yang sama, panjang bit yang umum dipakai adalah 64-bit atau 128-bit. Proses enkripsi yang digunakan dari hasil pengacakan pada blok bit plainteks yang dilakukan dan menghasilkan blok bit cipherteks dengan ukuran yang sama seperti enkripsi. Dekripsi digunakan kebalikan dari cara yang sama seperti enkripsi.
8
Pemampatan (kompresi) adalah proses pengubahan sekumpulan data menjadi bentuk kode dengan tujuan untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data. Pemampatan hanya mungkin untuk dilakukan apabila data yang direpresentasikan dalam bentuk normal mengandung informasi yang tidak dibutuhkan. Ketika data tersebut sudah ditampilkan dalam format yang seminimal mungkin, maka data tersebut sudah tidak akan bisa dimampatkan lagi. Metode kompresi Huffman menggunakan metode symbolwise yang artinya menghitung peluang kemunculan dari setiapi simbol dalam satu waktu, dimana simbol yang lebih sering muncul diberi kode lebih pendek dibandingkan simbol yang jarang muncul. Pada awalnya David Huffman hanya melakukan encode karakter dengan hanya menggunakan pohon biner biasa, namun setelah itu David Huffman menemukan bahwa penggunaan Algoritma Greedy dapat membentuk kode prefiks yang optimal. Pengguna Algoritma Greedy pada Algoritma Huffman adalah pada pemilihan dua pohon dengan frekuensi terkecil dalam membuat pohon Huffman. Algoritma Greedy ini digunakan pada pembentukan pohon Huffman agar meminimumkan total cost yang dibutuhkan. Cost yang digunakan untuk menggabungkan dua buah pohon pada akar setara dengan jumlah frekuensi dua buah pohon yang digabungkan, oleh karena itu total cost pembentukan pohon Huffman adalah jumlah total seluruh penggabungan. Penggabungan dua buah pohon dilakukan disetiap langkah dan Algoritma Huffman selalu miliki dua buah pohon yang mempunyai frekuensi terkecil untuk meminimumkan total cost seperti pada Gambar 3 [3].
Gambar 3 Pohon Biner [3]
Masukan Algoritma Huffman berdasarkan daftar karakter-karakter yang telah diurutkan didapatkan pada persamaan 1 dan berdasarkan frekuensinya didapatkan pada persamaan 2. Keluaran dari Algoritma Huffman adalah berupa kode string biner yang ditunjukkan pada persamaan 3 [6]. (1) (2) (3) 9
Algoritma pemampatan Huffman [6]: 1. Baca file teks yang akan dimampatkan. 2. Hitung frekuensi dari setiap karakter yang ada. Jenis karakter dan frekuensi disimpan sebagai tree dalam sebuah list. 3. Selama list masih mempunyai node lebih dari satu maka: a. Urutkan list berdasarkan frekuensinya, secara ascending. b. Buat tree baru, kaki kiri diisi dengan node pertama list dan kaki kanannya diisi dengan node kedua list. Karakter yang disimpan berupa “a” dan frekuensinya merupakan jumlahan dari frekuensi kedua kakinya. 4. Sebelum hasil pemampatan disimpan dalam file hasil, maka simpan terlebih dahulu tree Huffmannya. Pertama simpan jumlah karakter keseluruhan. Kemudian telusuri tree secara preorder, kaki kiri diberi kode “0” dan kaki kanan diberi kode “1”. Setelah sampai pada leaf maka simpan karakter pada leaf tersebut baru kemudian simpan deretan kode yang dihasilkan. Setiap kode disimpan dengan dibatasi “a”. Setelah tree selesai disimpan, untuk membatasi penyimpanan tree dengan hasil kompresi disisipkan “A”. 5. Telusuri tree secara preorder, kaki kiri diberi kode “0” dan kaki kanan diberi kode “1”. Setelah sampai pada leaf makan deretan kode yang didapat digunakan untuk mengkodekan karakter pada leaf tersebut. Setelah penulusuran selesai maka akan didapatkan daftar karakter dan kode binernya. 6. Baca setiap karakter pada file asal. Ubah setiap karakter menjadi kode biner sehingga mendapatkan rangkaian biner untuk masuk ke proses enkripsi. Permainan Defense of The Acient 2 (DoTA 2) memiliki pola yang tercipta dari map dalam permainan ini. Dalam visualisasinya map ”DoTA 2” menunjukan sebuah area berbentuk persegi yang memiliki jalan sebagai penghubung diantara kedua sudut milik masing-masing tim (Gambar 4). Jalan tersebut menunjukan adanya proses perpindahan atau transposisi dalam proses pertempuran antara dua kubu. Terdapat tiga jalan yaitu mid, bot, dan top [7]. Jalannya permainan ini melalui ketiga jalan tersebut membentuk sebuah pola yang unik. Hasil percobaan dari beberapa pola-pola pada penelitian sebelumnya, pola ini memiliki nilai korelasi yang lebih baik sehingga dapat diimplementasikan kedalam sebuah pola pemasukan plaintext dan kunci. Hal inilah yang membuat pola transposisi dalam permainan “DoTA 2” menjadi dasar pembuatan kriptografi block cipher dalam penelitian ini. Dalam empat proses perputaran yang dilakukan memiliki empat arah pola yang berbeda dikarenakan ketersediaan pola arah dalam permainan “DoTA 2” tersebut hanya empat arah.
10
Gambar 4 Bentuk map DoTA 2 dan Jalan Dalam Permainan [7]
Sistem kriptografi adalah himpunan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin, dan kunci [5]. Sebuah kriptografi dapat dikatakan sebagai sistem kriptografi jika memenuhi lima-tuple (five tuple) (P, C, K, E, D) yang memenuhi kondisi [8]: 1. P adalah himpunan berhingga dari plaintext, 2. C adalah himpunan berhingga dari ciphertext, 3. K merupakan ruang kunci (keyspace), adalah himpunan berhingga kunci, 4. E adalah himpunan fungsi enkripsi ek : P C , 5. D adalah himpunan fungsi dekripsi d k : C P . Untuk setiap k ∊ K, terdapat aturan enkripsi ek ∊ E dan berkorespodensi dengan aturan dekripsi d k D. Setiap P C dan C P adalah fungsi sedemikian
x untuk setiap plainteks x P. hingga d k ek x Dasar teori pada pengujian statistika dari penelitian ini menggunakan korelasi, korelasi merupakan suatu teknik statistik yang dipergunakan untuk mengukur kekuatan hubungan dua variabel dan juga untuk mengetahui bentuk hubungan antara dua variabel tersebut dengan hasil yang sifatnya kuantatif. Kekuatan hubungan antara dua variabel biasanya disebut dengan koefisien korelasi dan dilambangkan dengan simbol “r”. Nilai koefisien akan selalu diantara -1 sampai +1 sehingga diperoleh persamaan 3 [9]. (3) Merujuk pada persamaan (3) maka secara matematis nilai r diperoleh dari jumlah nilai selisih perkalian antara x dan y dengan hasil perkalian jumlah total x dan y dibagi dengan hasil akar dari selisih untuk perkalian jumlah x kuadrat dengan kuadrat pangkat dua untuk jumlah total x dengan selisih jumlah y kuadrat dengan 11
kuadrat pangkat dua untuk total y dimana x sebagai plainteks dan y sebagai cipherteks sehingga dapat diperoleh persamaan 4 [9].
(4) Dasar teori pengujian kedua adalah untuk dapat mengukur besarnya penyusutan suatu data menggunakan rasio pemampatan. Rasio pemampatan merupakan perbandingan ukuran data setelah dilakukan pemampatan dengan data semula yang ditunjukan dalam persentase (ditulis dalam %) sehingga didapat diperoleh persamaan 5 [6]. (5)
3.
Metode Penelitian dan Perancangan Sistem
Penelitian yang dilakukan diselesaian melalui beberapa tahapan penelitian yang keseluruhan terbagi dalam lima tahapan, yaitu: (1) Identifikasi masalah dan studi literatur, (2) Perancangan sistem, (3) Implementasi sistem, (4) Pengujian sistem dan analisis hasil pengujian, dan (5) penulisan laporan.
Gambar 5 Langkah-langkah Penelitian
Langkah 1: Identifikasi masalah dan studi literatur, yaitu mengidentifikasikan masalah-masalah yang akan dibahas, serta mendapatkan data dan literatur yang terkait dengan perancangan dan implementasi algoritma kriptografi berbasis pada kombinasi Teknik Permainan “DoTA 2” dan Metode Kompresi Huffman; 12
Langkah 2: Perancangan sistem, yaitu langkah dimana membuat bagan proses enkripsi dan dekripsi, juga membuat gambaran umum mengenai pembuatan teknik kriptografi; Batasan masalah yang diberikan untuk tidak memperluas ruang lingkup pembahasan dalam penelitian ini, yaitu; 1. 2. 3. 4.
Proses enkripsi dan dekripsi dilakukan terhadap file teks, seperti .txt. Jumlah karakter kunci terbatas sebanyak 8 karakter. Ukuran blok yang digunakan adalah 16×16 (256-bit). Spesifikasi perangkat keras (hardware) : Processor Intel Core i5 1.60 GHz, Memory DDR3 4 GB, Harddisk 500 GB, Video Card NVIDIA GeForce 720M. 5. Spesifikasi perangkat lunak (software) : sistem operasi Windows 7 Ultimate, bahasa pemrograman Visual Basic C#, compiler Microsoft Visual Studio 2010. 6. Penelitian hanya merancang dua proses enkripsi dan dua proses dekripsi untuk pengujian efisiensi bit cipherteks, yaitu: proses Huffman pertama dan dilanjutkan proses pengacakan bit menggunakan block cipher dan sebaliknya.
Langkah 3: Implementasi sistem, yaitu sistem yang telah dirancang akan diimplementasikan ke dalam program; Langkah 4: pengujian sistem, yaitu dilakukan pengujian terhadap sistem yang dibangun dengan menggunakan fivetuple Stinson salah satunya, kemudian melalukan analisis statistik berdasarkan nilai korelasi dari setiap proses, nilai korelasi dari setiap pola, dan rasio pemampatan bit cipherteks dari semua hasil enkripsi; Langkah 5: penulisan laporan dari hasil penelitian, yaitu melakukan dokumentasi terhadap proses penelitian yang telah dilakukan dari awal hingga akhir ke dalam sebuah tulisan, yang akan dijadikan laporan hasil penelitian. Perancangan algoritma kombinasi kriptografi block cipher dan metode kompresi Huffman memiliki dua rancangan yang berbeda untuk mendapatkan bit cipherteks yang efesien. Proses rancangan pertama adalah plainteks akan dikodekan menjadi simbol biner untuk setiap karakter plainteks berdasarkan frekuensi kemunculan menggunakan metode kompresi Huffman sehingga membentuk sebuah rangkaian biner. Rangkaian biner tersebut akan dilakukan proses padding sehingga mencukupi besar block cipher 256-bit untuk dilakukan transposisi bilangan biner bedasarkan pola “DoTA 2” seperti pada Gambar 6 sebanyak empat kali putaran. Hasil rangkaian biner dari setiap transposisi akan dilakukan operasi matematika Exclusive OR (XOR) terhadap rangkaian biner kunci yang pertama dirubah menggunakan America Standard Code of Informatiin Interchange (ASCII) berdasarkan urutan putaran. Rangkaian biner pada proses terakhir tersebut adalah cipherbiner yang dirubah menjadi cipherteks.
13
Gambar 6 Rancangan Pola Pemasukan Plaintext pada Putaran ke-1 transposisi
Penerapan pola masukan bit dengan pola maps “DoTA 2” sesuai dengan Gambar 6 maka didalam 1 blok matriks terdapat 256 bit. Urutan pengambilan rangkaian bit-bit plaintext dijabarkan sebagai berikut. Rancangan yang diberikan berukuran 256-bit yang sebanding dengan 32 karakter setiap block-nya, maka banyaknya block bit yang akan diperoleh dapat dinotasikan sebagai berikut. (4)
Berdasarkan banyaknya block bit yang diperoleh, maka urutan pengambilan rangkaian bit-bit setiap block bit tersebut dapat dijabarkan sebagai berikut. ; ; ; ;
14
(5)
Gambar 7 Rancangan Pola Pemasukan Kunci pada Putaran ke-1
Pola pengambilan kunci pada matriks 16×16 seperti Gambar 7. Pola tersebut merupakan pola pengambilan rangkaian biner pada kunci di putaran pertama atau . Berikut adalah penjabaran dari urutan pengambilan rangkaian biner pada empat kunci setiap prosesnya. ; ; ; ;
(6)
Dalam proses enkripsi pada salah satu perancangan dalam penelitian ini algoritma kriptografi secara umum menggunakan kombinasi metode kompresi Huffman dan transposisi bilangan biner dengan pola maps “DoTA 2” sebagai pola masukan block cipher dapat dilihat pada Gambar 8.
Gambar 8 Bagan Rancangan Proses Enkripsi
15
Plaintext akan dirubah menjadi bilangan biner degan menggunakan metode kompresi Huffman dan dilakukan proses padding terhadap bilangan biner tersebut bila kurang dari 256 bit, kemudian masuk dalam proses pengacakan menggunakan transposisi bilangan biner di block cipher. Tujuan dari metode kompresi Huffman ini agar menghasilkan keacakan pada bilangan biner plaintext sebelum masuk kedalam block cipher 16×16 dengan sesuai pola maps “DoTa 2”. Berbeda dengan plaintext dalam merubah menjadi rangkaian bilangan biner, kunci dikonversikan ke dalam bentuk biner sesuai dengan tabel ASCII. Proses kriptografi block cipher dalam penelitian ini menggunakan proses Exclusive OR (XOR) untuk hasil ambilan rangkaian biner plaintext terhadap hasil ambilan rangkaian biner kunci. Proses pengacakan biner pada setiap putarannya mempunyai pola yang berbeda-beda. Pola pemasukan dan pengambilan biner untuk plaintext ditentukan berdasarkan hasil korelasi terkecil terhadap masing-masing pola.
Gambar 9 Bagan Rancangan Proses Dekripsi
Gambar 9 merupakan bagan proses dekripsi. Algoritma ini menerapkan kriptografi simetris sehingga kunci yang digunakan untuk dekripsi sama dengan kunci yang digunakan dalam proses enkripsi. 4.
Hasil dan Pembahasan
Pada bagian ini akan dibahas secara lebih rinci mengenai perancangan dan implementasi algoritma kriptografi block cipher dan algoritma Huffman. Pada bagian ini juga akan dibahas tentang perbandingan efisiensi jumlah bit cipherteks antara dua rancangan yang dilakukan penelitian. Alur proses enkripsi dan dekripsi telah dijelaskan di pembahasan sebelumnya yaitu pada bagian metode perancangan sistem. Proses yang lebih lengkap mengenai alur enkripsi dan dekripsi akan dijabarkan pada Gambar 10 dan Gambar 11.
16
Gambar 10 Bagan Rancangan Proses Enkripsi
Gambar 10 menggambarkan proses enkripsi, secara keseluruhan proses enkripsi ada empat putaran, yang di dalam setiap putarannya terdiri dari dua proses yaitu, proses untuk pembentukan plaintext dan, proses untuk pembentukan kunci. Plaintext diubah ke dalam bentuk bit menggunakan algoritma Huffman, dan rangkaian bit dimasukkan ke transposisi block cipher 16×16 sesuai dengan pola maps “DoTA 2” yang memiliki korelasi terkecil untuk setiap putarannya. Hasil pengambilan rangkaian biner akan ditampung menjadi P1. Hal yang sama juga terjadi pada proses pembentukan kunci, letak perbedaannya adalah pola yang digunakan. Rangkaian biner dari kunci setelah melalui proses pengambilan ditampung di K1. P1 di-XOR dengan K1 sehingga mendapatkan C1 yang adalah hasil dari putaran pertama. Putaran ke-2, ke-3, dan ke-4 juga berlangsung proses yang hampir sama, yang membedakan dari setiap putaran itu adalah pola yang digunakan berbeda pada setiap putaran, baik dari putaran ke-1 sampai putaran ke-4. Hasil dari putaran ke-4 adalah ciphertext. 17
Gambar 11 Bagan Rancangan Proses Dekripsi
Gambar 11 merupakan alur proses dekripsi. Proses dekripsi merupakan pengembalian cipherteks ke plainteks. Algoritma kriptografi yang digunakan peneliti merupakan kriptografi kunci simetris sehingga, untuk proses dari algorima ini merupakan kebalikan dari proses enkripsi yang mempunyai empat putaran dan menggunakan kunci yang sama.
Gambar 12 Pola-pola Masukan
18
Pola-pola pemasukan dan pola-pola pengambilan yang ditunjukkan pada Gambar 12 dan Gambar 13. Pola masukan dan pola ambilan untuk setiap proses ditentukan berdasarkan perbandingan nilai korelasi untuk setiap pola pada setiap proses. Pengujian nilai korelasi bedasarkan persamaan 2 untuk pola pemasukan dan pengambilan menggunakan kata “FTI UKSW SALATIGA” sebagai plainteks dan “SALATIGA” sebagai kunci. nilai korelasi didapatkan dari hubungan angka desimal masukan biner setelah dikenakan algoritma Huffman berdasarkan tabel ASCII terhadap angka desimal keluaran dari hasil transposisi bilangan biner.
Gambar 13 Pola-pola Ambilan Tabel 1 Korelasi Untuk Setiap Pola Masukan Terhadap Setiap Pola Ambilan
Pola Masukan 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
Ambilan 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
19
Korelasi -0.062121598 -0.283915422 -0.39737494 -0.149849592 -0.113624118 0.094539382 -0.160883484 -0.390919841 -0.379366258 -0.050758697 0.372960492 0.402042248 -0.077305359 -0.069317334 -0.235742817 -0.275800276
Berdasarkan Tabel 1 Hasil dari pengujian nilai korelasi untuk menentukan pola terbaik, menunjukan pada setiap pola masukan memiliki nilai korelasi berbedabeda untuk masing-masing pola ambilan. Pada pola masukan 1 dengan pola ambilan 1 didapatkan nilai korelasi -0,062, nilai tersebut berarti bahwa kriptografi dengan pola maps “DoTA 2” memiliki hubungan korelasi yang rendah antara biner masukan dan biner keluaran. Berdasarkan Tabel 1 juga dapat diambil sebuah pola untuk setiap prosesnya berdasarkan nilai korelasi terendah untuk setiap pola masukan. Proses 1 menggunakan pola masukan 1 dan pola ambilan 1 dengan nilai korelasi -0,062, proses 2 menggunakan pola masukan 2 dan pola ambilan 2 dengan nilai korelasi 0,094, proses 3 menggunakan pola masukan 3 dan pola ambilan 2 dengan nilai korelasi -0,050, dan untuk proses 4 menggunakan pola masukan 4 dan pola ambilan 2 dengan nilai korelasi -0,060. Tabel 2 Korelasi Untuk Setiap Proses Menggunakan Pola Dengan Korelasi Terendah
Proses 1 2 3 4
Pola Masukan 1 2 3 4
Ambilan 1 2 2 2
Korelasi -0.070345192 -0.146868115 -0.082645732 0.113336743
Berdasarkan Tabel 2 didapatkan nilai korelasi dari hubungan antara cipherteks dan plainteks dengan pola-pola yang memiliki nilai korelasi terendah adalah 0,113. Nilai korelasi tersebut lebih kecil dari nilai korelasi antara cipherteks dan plainteks dari penelitian terdahulu yaitu 0,245 [2]. Pengujian selanjutnya adalah seberapa efektif algoritma Huffman melakukan kompresi terhadap jumlah bit dengan ukuran bit yang bervariasi menggunakan sebuah aplikasi enkripsi dan dekripsi yang telah diatur menggunakan pola-pola yang dihasilkan dari pengujian sebelumnya. Pengujian ini mengacu pada persamaan 3 untuk menghasilkan rasio kompresi. Tabel 3 Rasio Kompresi Efektifnya Algoritma Huffman Terhadap Jumlah Bit
Ukuran Bit Plainteks 72 184 448 1864 5712 8872 12232 15792 19968
Ukuran Bit Cipher dengan Huffman 256 256 256 1024 3072 4864 6656 8448 11008
Jumlah Block tanpa Huffman 1 1 2 8 23 35 48 62 79 20
Jumlah Block dengan Huffman 1 1 1 4 12 19 26 33 43
Rasio Kompresi 0% 0% 57 % 55 % 54 % 55 % 54 % 53 % 55 %
22520 24936 48712 60904 75840
12288 19200 26880 33536 41728
88 137 191 238 297
48 75 105 131 163
55 % 55 % 55 % 55 % 55 %
Berdasarkan Tabel 3 didapatkan hasil pengujian rasio kompresi menunjukan bahwa algoritma Huffman menyusutkan besarnya bit cipher dengan kisaran 55 % dari besarnya bit plainteks. Algoritma Huffman akan lebih efektif apabila jumlah bit plainteksnya dalam jumlah besar. Dari dua pengujian sebelumnya dapat dilakukan pengujian efisiensi bit cipherteks antara dua rancangan kriptografi algoritma Huffman terlebih dahulu dilakukan dan cipher block dengan transposisi pola “DoTa 2” terlebih dahulu dilakukan sehingga didapatkan kombinasi terbaik antara kedua rancangan tersebut untuk menghasilkan bit cipherteks yang efisiensi. Tabel 4 Perbandingan Bit Cipherteks Berdasarkan 2 Rancangan
Bit Bit Cipherteks Rasio Plainteks Huffman - Enkripsi Pemampatan 72 256 0% 312 256 82 % 1152 768 67 % 2040 1244 61 % 3992 2304 58 % 5848 3328 57 % 7784 4352 56 % 9664 5376 56 % 11456 6144 54 % 13992 7680 55 % 15928 8704 55 % 18696 10240 55 % 21120 11520 55 % 26472 14592 55 % 34936 19200 55 %
Bit Cipherteks Enkripsi - Huffman 152 304 752 1264 2488 3544 4792 5864 6936 8456 9672 11360 12728 15936 21000
Rasio Pemampatan 0% 97 % 65 % 62 % 62 % 61 % 62 % 61 % 61 % 60 % 61 % 61 % 60 % 60 % 60 %
Berdasarkan Tabel 4 hasil dari perbandingan bit cipherteks dengan dua rancangan tersebut adalah proses kompresi menggunakan algoritma Huffman terlebih dahulu dan dilanjutkan enkripsi lebih baik dari pada enkripsi terlebih dahulu dan dilanjutkan kompresi menggunakan algoritma Huffman dikarenakan memiliki rasio pemampatannya hampir selalu lebih kecil dibandingkan rasio pemampatan enkripsi terlebih dahulu. Semakin kecil nilai sebuah rasio pemampatan menunjukkan bahwa semakin banyak kompresi yang dihasilkan. Berdasarkan Tabel 4 juga menghasilkan kesimpulan bahwa proses kompresi akan lebih efektif apabila jumlah bits plainteks yang besar dari pada jumlah bit plainteks yang kecil. 21
Sebagai implementasi dari algoritma ini maka dibuat sebuah aplikasi enkripsi dan dekripsi dengan inputan berupa file teks, dan outputnya juga berupa file teks. Jumlah karakter untuk inputan pada kunci dibatasi maksimal 8 karakter, dan untuk mengisi blok yang tidak memenuhi 256 bit maka dilakukan padding karakter “Null” (0). Aplikasi yang dibuat memberi dua pilihan tombol enkripsi dan dekripsi untuk masing-masing rancangan.
Gambar 12 Plaintext disimpan pada file teks
Pengujian perancangan dari algoritma yang diteliti sebagai sebuah teknik kriptografi maka dilakukan proses enkripsi dan dekripsi dengan aplikasi yang telah dirancang. Plainteks yang digunakan sebanyak 731 karakter atau 5848 bits (Gambar 12) dan kunci yang digunakan adalah “SALATIGA”.
Gambar 13 Tampilan Pilihan Huffman - Enkripsi
Proses enkripsi yang dipilih adalah kompresi dengan algoritma Huffman terlebih dahulu dan dilanjutkan enkripsi dengan cipher block. Jumlah bit plainteks adalah 2040, setelah dilakukan proses enkripsi menghasilkan jumlah bit cipherteks sebanyak 1244 karena adanya proses kompresi dengan algoritma Huffman (Gambar 13). Gambar 14 adalah hasil enkripsi dari file plainteks yang dimasukan dengan kunci “SALATIGA”. 22
Gambar 14 Hasil Enkripsi Huffman - Encrypt
Enkripsi untuk pilihan enkripsi cipher block terlebih dahulu dan dilanjutkan kompresi algoritma Huffman menghasilkan jumlah bit cipherteks sebanyak 1264 yang ditunjukkan pada Gambar 15.
Gambar 15 Tampilan Pilihan Enkripsi - Huffman
Waktu yang dibutuhkan untuk melaukan proses enkripsi terlebih dahulu dan dilanjutkan Algoritma Huffman adalah 4603 miliseconds atau 4, 603 detik. Gambar 16 adalah hasil enkripsi dengan proses enkripsi terlebih dahulu dan dilanjutkan Algoritma Huffman.
Gambar 16 Hasil Enkripsi Encrypt - Huffman
23
Tampilan dari pilihan dekripsi Huffman terlebih dahulu dan dilanjutkan dekripsi cipher block ditunjukkan pada Gambar 17, untuk proses dekripsi hampir sama seperti pada proses enkripsi. Algoritma yang diteliti merupakan jenis kriptografi kunci simetris, sehingga inputan karakter pada kolom kunci harus sama seperti pada saat melakukan enkripsi.
Gambar 17 Tampilan Pilihan Huffman - Dekripsi
Dekripsi dengan pilihan dekripsi cipher block terlebih dahulu dan dilanjutkan Huffman menghasilkan jumlah bit plainteks sebanyak 2048 karena merupakan kelipatan 256 bit untuk setiap blok hasil dari padding pada blok yang kosong dengan “Null” (0) yang ditunjukkan pada Gambar 18.
Gambar 18 Tampilan Pilihan Dekripsi - Huffman
24
Sebuah kriptografi bisa dikatakan sebagai sebuah teknik kriptografi jika memenuhi 5-tuple yaitu P, C, K, E, dan D [6]. P adalah himpunan berhingga dari plainteks. Perancangan kriptografi ini menggunakan 256 karakter ASCII yang di ambil dari tabel ASCII, himpunan plainteks pada alur pengambilan berbentuk piramida merupakan himpunan berhingga. C adalah himpunan berhingga dari ciphertext. Ciphertext dihasilkan dalam bit (0 dan 1) himpunan dari ciphertext merupakan himpunan berhingga. K, adalah keyspace atau ruang kunci adalah, himpunan berhingga dari kunci. Jumlah ruang kunci yang dipakai dalam perancangan ini adalah 256 karakter dalam ASCII, sehingga ruang kunci merupakan himpunan berhingga dari kunci. E, enkripsi, dan D, dekripsi, setiap ek : P→C dan dk : C → P adalah fungsi sedemikian hingga dk(ek(x)) = x, untuk setiap plainteks x∊P. Pembahasan sebelumnya telah membahas proses enkripsi dan dekripsi sehingga telah memenuhi tuple E dan D. Perancangan dengan algoritma Huffman dan enkripsi cipher block transposisi pola “DoTA 2” merupakan sebuah sistem kriptografi, karena telah memenuhi kelima kondisi 5-tuple. 5.
Simpulan
Berdasarkan penelitian yang telah dilakukan maka dapat diambil kesimpulan yaitu perancangan algoritma kriptografi dengan proses pemampatan algoritma Huffman terlebih dahulu dan dilanjutkan cipher block transposisi pola maps ”DoTA 2” menghasilkan efisiensi bit cipherteks yang baik dengan rasio kompresi lebih kecil, dari pada enkripsi terlebih dahulu dan dilanjutkan dengan pemampatan. Rancangan kriptografi ini juga memenuhi 5-tuple sehingga dapat dikatakan sebagai sebuah sistem kriptografi. Berdasarkan penelitian ini juga didapatkan suatu kesimpulan bahwa proses pemampatan baik digunakan sebelum melakukan proses enkripsi sehingga membuat aman dan sekaligus menghemat ukuran suatu data informasi dalam penyimpanan maupun dalam proses komunikasi. 6.
Daftar Pustaka
[1]
Dafid, 2006. Kriptografi Kunci Simetris Dengan Menggunakan Algoritma Crypton, Jurnal Ilmiah STIMIK GI MDP, Volume 2 Nomor 3, Oktober 2006. Mauliku, W. M., Magdalena, A. I. P., Wowor, A. D., 2015. Perancangan dan Implementasi Algoritma Kriptografi Cipher Block Berbasis pada Bentuk Piramida dan Linear Congruential Generator. Salatiga: Skripsi-S1 Sarjana Universitasi Kristen Satya Wacana. Pramilo, Canggih, 2010. Studi Perbandingan Algoritma Huffman dan Lempel Ziv Welch (LZW) Pada Pemampatan File Teks. Univesitas Sumatera Utara. Ida, Mengyi Pu. 2006. “Fundamental Data Compression”. Jordan Hill, Oxford. Munir, Rinaldi, 2006, Kriptografi, Informatika. Bandung, Indonesia.
[2]
[3]
[4] [5]
25
[6] [7]
[8] [9]
Hasibuan, Nufrita Sari, 2010. Studi Perbandingan Algoritma Huffman dan Shanno-Fano Dalam Pemampatan File Teks. Universitas Sumatera Utara. Sujatmiko, Guguh, 2013. Membaca Kode Dalam Visualisasi Map Game DoTA2. http://www.ubaya.ac.id/2014/content/articles_detail/94/MembacaKode-Dalam-Visualisasi-Map-Game-DoTA2.html. Diakses pada 27 Juli 2015. Stinson, D. R., 1995.Cryptography: Theory and Practice. CRC Press, Boca Raton, London, Tokyo. Weisstein, Eric W. “Least Square Fitting-Logarithmic.” From MathWorld A Wolfram Web Resource. http://mathworld.wolfram.com/LeastSquaresFittingLogarithmic.html. Diakses pada 30 Juni 2015.
26