desain dan implementasi efisiensi bit cipherteks: suatu

28
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

Upload: others

Post on 03-Dec-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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

Page 2: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu
Page 3: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

2

Page 4: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

3

Page 5: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

4

Page 6: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

5

Page 7: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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.

Page 8: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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

Page 9: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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].

Page 10: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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.

Page 11: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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)

Page 12: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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.

Page 13: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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

Page 14: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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;

Page 15: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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.

Page 16: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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)

;

Page 17: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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

Page 18: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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.

Page 19: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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.

Page 20: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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

Page 21: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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

Page 22: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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 %

Page 23: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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.

Page 24: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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”.

Page 25: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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

Page 26: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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

Page 27: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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.

Page 28: Desain dan Implementasi Efisiensi Bit Cipherteks: suatu

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.