1
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
2
3
4
5
Desain dan Implementasi Efisiensi Bit Cipherteks:
Suatu Pendekatan Komparasi
Algoritma Huffman dan Rancangan Cipher Block dengan Transposisi Pola
“DoTA 2”
1Jodha Dwiwira Buji, 2 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], [email protected]
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.
6
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
7
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 (256-
bit) 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].
8
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 blok-
blok 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.
9
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)
10
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.
11
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 CPk
e : ,
5. D adalah himpunan fungsi dekripsi PCk
d :.
Untuk setiap k ∊ K, terdapat aturan enkripsi ek ∊ E dan berkorespodensi dengan
aturan dekripsi kd D. Setiap P C dan C P adalah fungsi sedemikian
hingga xxed kk untuk setiap plainteks x P.
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
12
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;
13
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. Proses enkripsi dan dekripsi dilakukan terhadap file teks, seperti .txt.
2. Jumlah karakter kunci terbatas sebanyak 8 karakter.
3. Ukuran blok yang digunakan adalah 16×16 (256-bit).
4. 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 five-
tuple 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.
14
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.
;
;
; (5)
;
15
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
16
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.
17
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.
18
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
19
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 Korelasi
Masukan Ambilan
1
1
1
1
1
2
3
4
-0.062121598
-0.283915422
-0.39737494
-0.149849592
2
2
2
2
1
2
3
4
-0.113624118
0.094539382
-0.160883484
-0.390919841
3
3
3
3
1
2
3
4
-0.379366258
-0.050758697
0.372960492
0.402042248
4
4
4
4
1
2
3
4
-0.077305359
-0.069317334
-0.235742817
-0.275800276
20
Berdasarkan Tabel 1 Hasil dari pengujian nilai korelasi untuk menentukan
pola terbaik, menunjukan pada setiap pola masukan memiliki nilai korelasi berbeda-
beda 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 Pola
Korelasi Masukan Ambilan
1
2
3
4
1
2
3
4
1
2
2
2
-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
Ukuran Bit Cipher
dengan Huffman
Jumlah Block
tanpa Huffman
Jumlah Block
dengan Huffman
Rasio
Kompresi
72 256 1 1 0 %
184 256 1 1 0 %
448 256 2 1 57 %
1864 1024 8 4 55 %
5712 3072 23 12 54 %
8872 4864 35 19 55 %
12232 6656 48 26 54 %
15792 8448 62 33 53 %
19968 11008 79 43 55 %
21
22520 12288 88 48 55 %
24936 19200 137 75 55 %
48712 26880 191 105 55 %
60904 33536 238 131 55 %
75840 41728 297 163 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
Plainteks
Bit Cipherteks
Huffman - Enkripsi
Rasio
Pemampatan
Bit Cipherteks
Enkripsi - Huffman
Rasio
Pemampatan
72 256 0 % 152 0 %
312
1152
256
768
82 %
67 %
304
752
97 %
65 %
2040 1244 61 % 1264 62 %
3992 2304 58 % 2488 62 %
5848 3328 57 % 3544 61 %
7784 4352 56 % 4792 62 %
9664 5376 56 % 5864 61 %
11456 6144 54 % 6936 61 %
13992 7680 55 % 8456 60 %
15928 8704 55 % 9672 61 %
18696 10240 55 % 11360 61 %
21120 11520 55 % 12728 60 %
26472 14592 55 % 15936 60 %
34936 19200 55 % 21000 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.
22
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”.
23
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
24
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
25
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.
[2] 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.
[3] Pramilo, Canggih, 2010. Studi Perbandingan Algoritma Huffman dan
Lempel Ziv Welch (LZW) Pada Pemampatan File Teks. Univesitas Sumatera
Utara.
[4] Ida, Mengyi Pu. 2006. “Fundamental Data Compression”. Jordan Hill,
Oxford.
[5] Munir, Rinaldi, 2006, Kriptografi, Informatika. Bandung, Indonesia.
26
[6] Hasibuan, Nufrita Sari, 2010. Studi Perbandingan Algoritma Huffman dan
Shanno-Fano Dalam Pemampatan File Teks. Universitas Sumatera Utara.
[7] Sujatmiko, Guguh, 2013. Membaca Kode Dalam Visualisasi Map Game
DoTA2. http://www.ubaya.ac.id/2014/content/articles_detail/94/Membaca-
Kode-Dalam-Visualisasi-Map-Game-DoTA2.html. Diakses pada 27 Juli
2015.
[8] Stinson, D. R., 1995.Cryptography: Theory and Practice. CRC Press, Boca
Raton, London, Tokyo.
[9] Weisstein, Eric W. “Least Square Fitting-Logarithmic.” From MathWorld A
Wolfram Web Resource.
http://mathworld.wolfram.com/LeastSquaresFittingLogarithmic.html.
Diakses pada 30 Juni 2015.