• Tidak ada hasil yang ditemukan

Institutional Repository | Satya Wacana Christian University: Implementasi Algoritma Huffman dan Kriptografi Blowfish dalam Pengamanan Data File

N/A
N/A
Protected

Academic year: 2018

Membagikan "Institutional Repository | Satya Wacana Christian University: Implementasi Algoritma Huffman dan Kriptografi Blowfish dalam Pengamanan Data File"

Copied!
25
0
0

Teks penuh

(1)

Implementasi Algoritma

Huffman

dan Kriptografi

Blowfish

dalam Pengamanan Data

File

Artikel Ilmiah

Peneliti:

Juneth N. Wattimena (672009078) Alz Danny Wowor, S.Si., M.Cs. Dian W. Chandra, S.Kom., M.Cs.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

(2)

Implementasi Algoritma

Huffman

dan Kriptografi

Blowfish

dalam Pengamanan Data

File

Artikel Ilmiah

Diajukan kepada

Fakultas Teknologi Informasi

untuk memperoleh Gelar Sarjana Komputer

Peneliti:

Juneth N. Wattimena (672009078) Alz Danny Wowor, S.Si., M.Cs. Dian W. Chandra, S.Kom., M.Cs.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

(3)
(4)
(5)
(6)
(7)
(8)

Implementasi Algoritma

Huffman

dan Kriptografi

Blowfish

dalam Pengamanan Data File

1)

Juneth N. Wattimena, 2) Alz Danny Wowor, 3) Dian W. Chandra Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia

E-mail: 1) 672009078@student.uksw.edu, 2) alzdanny.wowor@staff.uksw.edu, 3)

dian.chandra@staff.uksw.edu

Abstract

Cryptography is a way to encode information so that safety is maintained. Examples of cryptographic techniques used in the encryption process or descriptions that blowfish algorithm. Blowfish algorithm is a symmetric key algorithm by exploiting the block of bits in the process of encryption and decryption of data. To reduce the excessive size after the message in encryption the Huffman algorithm used for compression and decompression process. Tests were performed using a data file format that is encrypted and compressed text. The results showed that the data security applications built to compress files in text format and can restore the file size to its original shape. So also with the encryption process, can encrypt a file by changing the plaintext files compressed to form the ciphertext can not be recognized and can restore files ciphertext to plaintext file. Comparison of encryption less time if done before the compression process, while it takes more time if done after the compression process.

Keywords: Cryptography, Blowfish, Huffman Algorithm.Cryptography, Affine Cipher,

Cryptanalysis, Known Plaintext Attack, Gamma Function, Hyperbolic Function,

Abstrak

Kriptografi merupakan cara untuk menyandikan informasi agar keamananya tetap dijaga. Contoh teknik kriptografi yang digunakan dalam proses enkripsi atau dekripsi

yaitu algoritma blowfish. Algoritma blowfish merupakan algoritma kunci simetris dengan

memanfaatkan block bit dalam proses enkripsi dan dekripsi data. Untuk mengurangi

ukuran yang berlebihan setelah pesan dienkripsi maka digunakan algoritma Huffman

untuk proses kompresi dan dekompresi. Pengujian yang dilakukan menggunakan data file

berformat teks yang dienkripsikan dan dikompresi. Hasil penelitian menunjukkan bahwa

aplikasi pengamanan data yang dibangun dapat mengkompresi file berformat teks dan

dapat mengembalikan ukuran file ke bentuk semula. Begitu juga dengan proses enkripsi,

dapat mengenkripsikan file dengan merubah file plaintext terkompresi ke bentuk

ciphertext sehingga tidak dapat diketahui dan dapat mengembalikan file ciphertext ke file

plaintext. Perbandingan waktu enkripsi lebih sedikit apabila dilakukan sebelum proses

kompresi, sedangkan waktu yang dibutuhkan lebih banyak apabila dilakukan sesudah proses kompresi.

Kata Kunci: Kriptografi, Blowfish, Algoritma Huffman.

__________________________________________________________________ 1)

Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana

2)

Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana 3)

(9)

1. Pendahuluan

Informasi menentukan hampir setiap elemen dari kehidupan manusia. Seiring dengan berkembangnya cara pengiriman pesan, berkembang pula cara menyembunyikan pesan dan bagaimana agar orang lain tidak mengetahui isi pesan walaupun pesan tersebut ditemukan. Kriptografi merupakan cara untuk menyandikan informasi agar keamanannya tetap dijaga. Tujuan menggunakan teknik kriptografi adalah untuk mengamankan informasi penting dari pihak luar yang dapat menyalahgunakan informasi. Teknik kriptografi terdiri dari beberapa algoritma, salah satunya yaitu algoritma blowfish. Algoritma blowfish merupakan algoritma kunci simetris dengan memanfaatkan block bit dalam proses enkripsi dan dekripsi data.

Dalam penerapannya, teknik kriptografi perlu dipertimbangkan tentang masalah waktu yang dibutuhkan dalam proses enkripsi dan dekripsi. Jika ukuran

file semakin besar maka waktu yang dibutuhkan dalam proses enkripsi juga semakin besar dan kecurigaan akan muncul karena ukuran file yang bertambah dari ukuran file semula. Untuk menghindari ukuran data yang besar dalam ukuran data yang semula, maka digunakan teknik kompresi. Tujuan dari kompresi data adalah untuk merepresentasikan suatu data digital dengan sedikit mungkin bit, tetapi tetap mempertahankan kebutuhan minimum untuk membentuk kembali data aslinya. Teknik kompresi data yang digunakan yaitu Huffman Tree.

Berdasarkan latar belakang tersebut, maka dilakukan penelitian yang bertujuan untuk merancang dan mengimplementasikan aplikasi pengamanan data

file menggunakan metode kriptografi blowfish, serta menggunakan algoritma Huffman untuk memperkecil ukuran file teks (*.txt), dengan maksud untuk mengoptimalkan kecepatan proses enkripsi dan dekripsi serta meminimalkan ukuran data yang berlebihan.

2. Tinjauan Pustaka

Ada beberapa penelitian terdahulu yang menjadi acuan dengan penelitian ini, yaitu: pada penelitian yang berjudul “Implementasi Enkripsi Data Dengan Algoritma BlowfishMenggunakan Java Pada Aplikasi Email”, menyatakan bahwa

algoritma Blowfish dapat digunakan untuk mengamankan data pada aplikasi email

dikarenakan algoritma Blowfish dapat berjalan pada jalur komunikasi atau enkripsi file otomatis. Proses enkripsi dan dekripsi menggunakan key yang memiliki panjang maksimum 56 karakter dan telah disepakati oleh kedua belah pihak [1]. Penelitian lain yang berkaitan dengan penelitian ini, yaitu berjudul “Perancangan dan Implementasi Aplikasi Steganography Menggunakan Metode

Enchanced Audio Steganography (EAS) Pada Data File Terkompresi”. Dalam

(10)

mengenai besarnya kapasitas penyimpanan (storage) sebagai wadah penyimpanan data rahasia. [2].

Berdasarkan penelitian terdahulu yang membahas tentang penerapan algoritma Huffman dan kriptografi blowfish, maka akan dilakukan penelitian yang membahas tentang implementasi algoritma Huffman dan kriptografi blowfish

dalam pengamanan data file yang bertujuan untuk mengoptimalkan waktu proses enkripsi-deskripsi file dengan ukuran data yang besar. Penelitian ini menghasilkan aplikasi yang dapat menyembunyikan pesan rahasia yang terkompresi. Pesan yang dienkripsikan berupa file teks (*.txt). Penelitian yang dilakukan akan melihat apakah terjadi perubahan terhadap waktu, kualitas dan besar ukuran data setelah melalui proses enkripsi, proses dekripsi, proses kompresi, dam proses dekompresi data file. Program yang digunakan untuk membuat aplikasi pengamanan file teks ini adalah Microsoft Visual Studio 2010 yang berbahasa C#.

Algoritma kriptografi yang diterapkan dalam penelitian ini adalah algoritma blowfish. Algoritma Blowfish adalah metode kriptografi dengan kunci simetri, yang berarti menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi file. Algoritma blowfish termasuk dalam enkripsi blockcipher 64-bit

dangan panjang kunci yang bervariasi antara 32-bit sampai 448-bit. Algoritma

Blowfish terdiri atas dua bagian, yaitu Key–Expansion (pengembangan kunci) dan

data encryption (enkripsi data) [3]. Key-Expansion berfungsi merubah kunci

(minimum 32-bit, maksimum 448-bit) menjadi beberapa array subkunci (subkey) dengan total 4168 byte (18 x 32-bit untuk P-array dan 4 x 256 x 32-bit untuk S-box sehingga totalnya 33344 bit atau 4168 byte). Kunci disimpan dalam K-array: K1, K2, ... Kj 1 ≤j ≤14. Kunci–kunci ini yang dibangkitkan (generate) dengan menggunakan sub kunci yang harus dihitung terlebih dahulu sebelum enkripsi atau dekripsi data. Sub–sub kunci yang digunakan terdiri dari: P-array yang terdiri dari 18 buah 32-bit sub kunci, dan S–box yang terdiri dari 4 buah 32-bit, masing-masing memiliki 256 entri.

Langkah-langkah perhitungan atau pembangkitan sub kunci tersebut adalah sebagai berikut: (1) Inisialisasi P-array yang pertama dan juga empat S– box, berurutan, dengan string yang terdiri dari digit–digit heksadesimal dari Pi, tidak termasuk angka tiga di awal; (2) XOR-kan P1 dengan 32-bit awal kunci, XOR – kan P2 dengan 32-bit berikutnya dari kunci, dan seterusnya untuk semua

bit kunci; (3) Ulangi siklus seluruh bit kunci secara berurutan sampai seluruh P–

array ter – XOR – kan dengan bit-bit kunci; (4) Enkripsikan string yang

seluruhnya nol (all-zero string) dengan algoritma Blowfish, menggunakan subkunci yang telah dideskripsikan pada langkah 1 dan 2; (5) Gantikan P1 dan P2 dengan keluaran dari langkah 3; (6) Enkripsikan keluaran langkah 3 menggunakan algoritma Blowfish dengan subkunci yang telah dimodifikasi; (7) Gantikan P3 dan P4 dengan keluaran dari langkah 5; (8) Lanjutkan langkah-langkah di atas, gantikan seluruh elemen P-array dan kemudian keempat S-box secara berurutan, dengan hasil keluaran algoritma Blowfish yang terus-menerus berubah.

(11)

Gambar 1 Blok Diagram Algoritma Enkripsi Blowfish [3]

Pada langkah kedua, telah dituliskan mengenai penggunaan fungsi F. Fungsi F adalah: bagi XL menjadi empat bagian 8-bit: a, b, c dan d, sehingga didapat Persamaan 1.

F(XL) = ((S1,a + S2,b mod 232) XOR S3,c) + S4,d mod 232 (1)

Proses dekripsi yang dilakukan algoritma Blowfish hampir sama dengan proses enkripsi, kecuali bahwa P1, P2,…, P18 yang digunakan pada urutan yang terbalik

(reverse). Algoritmanya dapat dinyatakan sebagai berikut:

For i = 1 to16 do

XRi = XLi-1 P19-i;

XLi = F[XRi] XRi-1;

XL17 = XR16 P1;

XR17 = XL16 P2;

Blok diagram dekripsi algoritma Blowfish ditunjukkan pada Gambar 2 .

Gambar 2 Blok Diagram Dekripsi Blowfish [4]

(12)

two-pass): fase pertama untuk menghitung probabilitas kemunculan tiap simbol / karakter dan menentukan peta kodenya, fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan ditransmisikan. Sedangkan berdasarkan teknik pengkodean simbol yang digunakan, algoritma Huffman menggunakan metode

symbolwise. Metode symbolwise adalah metode yang menghitung peluang

kemunculan dari setiap simbol dalam satu waktu, dimana simbol yang lebih sering muncul diberi kode lebih pendek dibandingkan simbol yang jarang muncul [6].

Proses pembentukan pohon Huffman menggunakan kode Huffman pada dasarnya merupakan kode prefiks (prefix code). Kode prefiks adalah himpunan yang berisi sekumpulan kode biner, dimana pada kode prefiks ini tidak ada kode biner yang menjadi awal bagi kode biner yang lain. Kode prefiks biasanya direpresentasikan sebagai pohon biner yang diberikan nilai atau label. Untuk cabang kiri pada pohon biner diberi label 0, sedangkan cabang kanan pada pohon biner diberi label 1. Rangkaian bit yang terbentuk pada setiap lintasan dari akar ke daun merupakan kode prefiks untuk karakter yang berpadanan. Pohon biner ini biasa disebut pohon Huffman [7].

3. Metode dan Perancangan Sistem

Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam empat tahapan, yaitu: (1) Identifikasi masalah dan Studi literatur, (2) Perancangan sistem, (3) Implementasi Sistem, (4) Pengujian sistem dan analisis hasil pengujian.

Gambar 3 Tahapan Penelitian

Tahapan penelitian pada Gambar 3, dapat dijelaskan sebagai berikut.

Tahap pertama: Identifikasi Masalah dan Studi literatur, yaitu mengidentifikasi

masalah-masalah yang akan dibahas, serta mencari dan mendapatkan data dan literatur yang berkaitan dengan metode kriptografi Blowfish, dan algoritma

Huffman untuk proses kompresi dan dekompresi. Tahap kedua: Perancangan

(13)

sesuai dengan perancangan proses pada tahap kedua. Tahap keempat: Pengujian Sistem dan Analisis Hasil Pengujian, yaitu dilakukan pengujian terhadap pengaruh ukuran data, waktu proses, dan kualitas data, serta melihat hasil yang diberikan apakah sesuai dengan konsep metode penerapan kriptografi blowfish

dan algoritma Huffman sebagai algoritma kompresi data.

Proses utama dalam sistem yang dibangun, dibedakan menjadi dua yaitu proses kompresi menggunakan algoritma Huffman, dan proses enkripsi menggunakan algoritma blowfish. Proses kompresi data dapat dijelaskan dengan diagram dalam bentuk flowchart yang ditunjukkan pada Gambar 4. Selanjutnya proses dekompresi data yang terjadi dalam sistem menggunakan algoritma

Huffman, ditunjukkan pada Gambar 5.

Gambar 4 Proses Kompresi Data Gambar 5 Proses Dekompresi Data

Proses Kompresi data pada Gambar 4 dapat dimulai dengan memasukkan

file. Selanjutnya file yang telah dimasukkan akan diproses dengan perhitungan karakter yang muncul. Kemudian akan dilanjutkan dengan pembentukan Huffman tree. Ini bertujuan untuk membaca karakter di dalam teks dan untuk menghitung frekuensi kemunculan dari setiap karakter. Setiap karakter penyusun teks dinyatakan sebagai pohon bersimpul tunggal. Setelah pembentukan Huffman tree

selesai, maka kemudian akan dilanjutkan dengan pengolahan Huffman file atau pengolahan pengkodean data. Akhir dari setiap proses / output yang berbeda dengan file aslinya sebelum dilakukan kompresi data.

Proses Dekompresi pada Gambar 5 dapat dimulai dengan memasukkan

file. File yang dimasukkan berupa file teks dengan format *.txt. Selanjutnya file

(14)

yang digunakan pada proses enkripsi data yaitu algoritma blowfish. Proses enkripsi algoritma blowfish dalam betuk flowchart, dapat dijelaskan pada Gambar 6.

Gambar 6 Proses Enkripsi Algoritma Blowfish

Gambar 6 menunjukkan proses enkripsi dengan menggunakan algoritma

blowfish yang dapat dijelaskan sebagai berikut. Masukan berupa nilai xl, xr dan

panjang tabel proses. Jika nilai xl dan xr sudah dimasukkan, maka nilai xl yang pertama diatur menjadi xl = xl  P[0]. Selanjutnya nilai i dapat diatur menjadi i = 1, xr = xr  (f (xl)  P[i]) dan nilai xl = xl  (f (xr)  P [i + 1]). Jika nilai i diatur menjadi i = i + 2, lakukanlah perulangan hingga nilai i = 16. Selanjutnya nilai i diatur menjadi i = i – 2, lakukanlah perulangan hingga nilai i = 1. Jika nilai i = 0, xr = xr  P [0].

Proses dekripsi tidak berbeda jauh dengan proses enkripsi. Proses dekripsi dengan menggunakan algoritma blowfish, dijelaskan sebagai berikut. Masukan berupa nilai xl, xr, dan panjang tabel. Jika nilai xl yang pertama diatur menjadi xl = xl  P [17]. Selanjutnya nilai i = 16, xr = xr  (f(xl  P [i] dan nilai xl = xl  (f (xr)  P [i-1] ).

(15)

Gambar 7 Proses Dekripsi Algoritma Blowfish

4. Hasil dan Pembahasan

Hasil implementasi sistem berdasarkan rancangan sistem yang dibuat, dapat dijelaskan sebagai berikut.

Gambar 8 Tampilan Proses Enkripsi Gambar 9 Tampilan Cipherteks

Gambar 8 merupakan tampilan proses enkripsi pada aplikasi dan Gambar 9 merupakan tampilan cipherteks yang dihasilkan. Pada proses enkripsi, user

mencari dan menentukan lokasi plainteks yang merupakan lokasi dimana file

plainteks yang akan dienkripsi dan akan tampil pada info file. Setelah pencarian

file plainteks, maka proses selanjutnya memasukkan kunci enkripsi algoritma

blowfish dan memilih button enkripsi untuk menjalankan proses enkripsi. Setelah

(16)

Gambar 10 Tampilan Proses Dekripsi Gambar 11 Tampilan Plainteks

Gambar 10 merupakan tampilan proses dekripsi pada aplikasi dan Gambar 11 merupakan tampilan dari plainteks yang telah berhasil didekripsi. Pada proses dekripsi, user mencari dan menentukan lokasi cipherteks yang merupakan lokasi dimana file cipherteks yang akan didekripsi dan akan muncul pada info file. Setelah pencarian file cipherteks, maka proses selanjutnya memasukkan kunci dekripsi algoritma blowfish dan memilih button dekripsi untuk menjalankan proses dekripsi. Kunci untuk dekripsi harus sama panjang dengan enkripsi. Setelah pemberitahuan proses dekripsi sukses, maka user menentukan lokasi plainteks yang merupakan lokasi dimana hasil dekripsi (plainteks) akan disimpan.

Kode Program 1 Perintah Untuk Proses Enkripsi 1. List<byte> combine = new List<byte>(); 2. byte[] d = Padding(data);

11. combine.Insert(0, (byte)(d.Length - data.Length)); 12. return combine.ToArray();

Kode Program 1 merupakan perintah yang digunakan untuk melakukan proses enkripsi menggunakan algoritma Blowfish. Proses enkripsi dilakukan per blok (perintah pada baris 6). Hasil enkripsi (ciphertext) yang juga dalam bentuk blok, dikumpulkan kembali ke dalam variabel combine.

Proses enkripsi hampir sama dengan proses dekripsi. Kunci yang digunakan dalam proses dekripsi harus sama dengan proses enkripsi. Untuk proses dekripsi dapat dijelaskan pada Kode Program 2.

Kode Program 2 Perintah Untuk Proses Dekripsi 1. List<byte> combine = new List<byte>(); 2. var b = new Blowfish(key);

3. int padding = data[0];

4. byte[] d = new byte[data.Length - 1]; 5. Array.Copy(data, 1, d, 0, d.Length); 6. for (int i = 0; i < d.Length; i += 8){ 7. byte[] block = new byte[8];

(17)

10. combine.AddRange(block);}

11. combine.RemoveRange(combine.Count - padding, padding);

12. return combine.ToArray();

Kode Program 2 merupakan perintah yang digunakan untuk melakukan proses dekripsi menggunakan algoritma Blowfish. Proses dekripsi dilakukan per blok (perintah pada baris 7). Hasil dekripsi (plaintext) dalam bentuk blok, dikumpulkan kembali ke dalam variabel combine. Selanjutnya, algoritma yang digunakan dalam proses kompresi dan dekompersi data yaitu algoritma Huffman.

File yang akan dikompresi adalah file berformat txt. Kode Program 3 Perintah Untuk Kompresi Data

1. class Compression 2. {

3. public static byte[] Compress(byte[] data) 4. {

5. HuffmanTree huff = new HuffmanTree();

6. String base64String = Convert.ToBase64String(data); 7. huff.Build(base64String);

8. BitArray encoded = huff.Encode(base64String); 9. int tambahan = 8 - (encoded.Count % 8);

10. byte[] bytesData = ConvertToByte(encoded, tambahan);

11. byte[] tree = Encoding.Default.GetBytes(huff.PrintFrequencies()); 12. byte[] panjangTree = BitConverter.GetBytes((short)tree.Length); 13. byte panjangPad = (byte)tambahan;

Kode Program 3 merupakan perintah yang digunakan untuk melakukan proses kompresi. File dihitung frekuensi kemunculan dan mengubah ke dalam bit-bit. Output dari pada proses kompresi adalah file teks berformat *.huffman.

Ada 3 langkah untuk melakukan proses kompresi yaitu memilih file yang akan dikompresikan, dan akan terdapat info berupa info file pada panel info file

berisi nama file, letak file berada, dan ukuran file dalam satuan byte. Selanjutnya akan ada button Compress. Button compress berfungsi untuk menjalankan proses kompresi file. Selanjutnya apabila proses selesai, maka akan tampil waktu proses kompresi dan jumlah byte pada textbox yang tersedia. Proses kompresi file dapat dilihat pada Gambar 12.

(18)

Kode Program 4 merupakan perintah untuk melakukan proses dekompresi

file yang akan dipanggil dan dijalankan pada saat button decompress dipilih. Kode Program 4 Perintah Untuk Dekompresi Data

1. public static byte[] Extract(byte[] data) 2. {

3. byte[] panjangTree = new byte[] { data[0], data[1] }; 4. byte panjangPad = data[2];

5. byte[] tree = new byte[BitConverter.ToInt16(panjangTree, 0)]; 6. Array.Copy(data, 3, tree, 0, tree.Length);

7. byte[] bytesData = new byte[data.Length - tree.Length - 1 - panjangTree.Length];

8. int panjangHeader = panjangTree.Length + 1 + tree.Length; 9. Array.Copy(data, panjangHeader, bytesData, 0, bytesData.Length); 10. BitArray bits = ConvertToBitArray(bytesData, panjangPad); 11. string treeString = Encoding.Default.GetString(tree); 12. HuffmanTree huff = new HuffmanTree();

13. huff.LoadTree(treeString);

14. string base64 = huff.Decode(bits);

15. byte[] hasil = Convert.FromBase64String(base64); 16. return hasil;

17. }

Proses kompresi tidak berbeda jauh dengan proses dekompresi, yaitu memilih file yang akan dikembalikan, dan akan terdapat info berupa info file pada panel info file berisi nama file, letak file berada, dan ukuran file dalam satuan byte. Selanjutnya akan ada button Decompress. Button decompress berfungsi untuk menjalankan proses dekompresi file. Selanjutnya apabila proses selesai, maka akan tampil waktu proses dekompresi dan jumlah byte pada textbox yang tersedia. Proses dekompresi file dapat dilihat pada Gambar 13.

Gambar 13Form Proses Dekompresi File

File yang akan digunakan untuk pengujian aplikasi yang dibuat ini adalah file bertipe *.txt, dan membandingkan yang berbeda dalam enkripsi data untuk melihat perbandingan kecepatan dan ukuran file.

(19)

dan mendekripsi data text dengan baik. Hasil pengujian digambarkan dalam bentuk grafik terlihat pada Gambar 14.

Gambar 14 Grafik Hasil Pengujian Panjang Plaintext Berdasarkan Ukuran File Dengan Kunci Yang Sama

Gambar 14 merupakan grafik hasil pengujian jumlah karakter berdasarkan ukuran file dengan kunci yang sama. Berdasarkan hasil pengujian aplikasi pada data text, dapat diujikan juga waktu yang dibutuhkan dalam proses enkripsi, dekripsi, kompresi dan dekompresi, ditunjukkan pada Gambar 15 dan Gambar 16.

Gambar 15 Pengujian Panjang Karakter Plainteks terhadap Waktu Enkripsi

(20)

aplikasi pada data text, dapat diujikan juga waktu yang dibutuhkan dalam proses kompresi dan dekompresi yang dapat dilihat pada Gambar 17 dan Gambar 18.

Gambar 17 Pengujian Panjang Karakter Plainteks terhadap Waktu Kompresi

Gambar 18 Pengujian Panjang Karakter Plainteks terhadap Waktu Dekompresi Gambar 17 dan Gambar 18 menjelaskan tentang waktu dalam proses kompresi dan dekompresi file. Proses dekompresi lebih sedikit membutuhkan waktu dibandingkan dengan proses kompresi yang dilakukan. Ukuran file

berpengaruh terhadap waktu dalam proses kompresi atau dekompresi. Grafik waktu kompresi dan dekompresi menunjukkan bahwa semakin banyak jumlah karakter maka semakin banyak waktu yang dibutuhkan dalam proses kompresi dan dekompresi. Hasil Pengujian pada file text (.txt) dengan kunci enkripsi yang berbeda, terlihat pada Gambar 19.

Gambar 19Grafik Hasil Pengujian Panjang Plaintext Berdasarkan Ukuran File Dengan Kunci berbeda.

(21)

Gambar 20 Pengujian Panjang Kunci terhadap Waktu Enkripsi

Gambar 21 Pengujian Panjang Kunci terhadap Waktu Dekripsi

Gambar 20 dan Gambar 21 menjelaskan tentang waktu dalam proses enkripsi dan dekripsi dengan kunci yang berbeda. Proses dekripsi lebih sedikit membutuhkan waktu dibandingkan dengan proses enkripsi. Panjang kunci berpengaruh terhadap waktu proses enkripsi atau dekripsi. Semakin banyak kunci yang digunakan dalam proses enkripsi, maka semakin banyak juga waktu yang dibutuhkan. Grafik pada Gambar 20 dan Gambar 21 menghasilkan waktu yang berbeda sesuai dengan panjang kunci. Hal ini disebabkan karena kapasitas memori dan penggunaan kunci yang tidak bervariasi. Proses kompresi dan dekompresi file

teks menggunakan algoritma Huffman. Berdasarkan hasil pengujian aplikasi pada data text dengan panjang kunci yang berbeda, dapat diujikan juga waktu yang dibutuhkan dalam proses kompresi dan dekompresi yang dapat dilihat pada Gambar 22 dan Gambar 23.

Gambar 22 Pengujian Panjang Kunci terhadap Waktu Kompresi

Gambar 23 Pengujian Panjang Kunci terhadap Waktu Dekompresi

(22)

kompresi yang dilakukan. Ukuran file dan panjang kunci berpengaruh terhadap waktu proses kompresi atau dekompresi.

Pengujian Proses Kompresi - Proses Enkripsi. Pengujian pada file text (.txt) dengan kunci enkripsi yang sama dimulai dari proses kompresi kemudian proses enkripsi, dapat terlihat pada Gambar 24.

Gambar 24.Grafik Hasil Pengujian Panjang Plaintext Berdasarkan Ukuran File Dengan Kunci yang Sama

Berdasarkan hasil pengujian aplikasi pada data text, dapat diujikan juga waktu yang dibutuhkan dalam proses enkripsi, dekripsi, kompresi dan dekompresi yang dapat dilihat pada Gambar 25 dan Gambar 26.

Gambar 25 Pengujian Panjang Karakter Plainteks terhadap Waktu Kompresi

Gambar 26 Pengujian Panjang Karakter Plainteks terhadap Waktu Dekompresi

(23)

semakin sedikit waktu yang dibutuhkan dalam proses kompresi ataupun dekompresi.

Gambar 27 Pengujian Panjang Karakter Plainteks terhadap Waktu Enkripsi

Gambar 28 Pengujian Panjang Karakter Plainteks terhadap Waktu Dekripsi

Gambar 27 dan Gambar 28 menjelaskan tentang waktu dalam proses enkripsi dan dekripsi. Proses dekripsi lebih sedikit membutuhkan waktu dibandingkan dengan proses enkripsi yang dilakukan. Ukuran file berpengaruh terhadap waktu dalam proses enkripsi atau dekripsi. Hasil Pengujian pada file text

(.txt) dengan kunci enkripsi yang berbeda, terlihat pada Gambar 29 dan Gambar 30.

Gambar 29 Pengujian Panjang Kunci terhadap Waktu Kompresi

Gambar 30 Pengujian Panjang Kunci terhadap Waktu Dekompresi

Gambar 29 dan Gambar 30 menjelaskan tentang waktu dalam proses kompresi dan dekompresi dengan panjang kunci yang berbeda. Proses kompresi lebih banyak membutuhkan waktu dibandingkan dengan proses dekompresi. Grafik pada Gambar 29 dan Gambar 30 menunjukkan bahwa file dengan jumlah karakter yang kecil dan kunci yang berbeda, membutuhkan waktu yang banyak dalam proses kompresi dan dekompresi.

Pada proses enkripsi dan dekripsi file teks menggunakan algoritma

(24)

waktu yang dibutuhkan dalam proses enkripsi dan dekripsi yang dapat dilihat pada Gambar 31 dan Gambar 32.

Gambar 31 Pengujian Panjang Kunci terhadap Waktu Enkripsi

Gambar 32 Pengujian Panjang Kunci terhadap Waktu Dekripsi

Gambar 31 dan Gambar 32 menjelaskan tentang waktu dalam proses enkripsi dan dekripsi dengan kunci yang berbeda panjangnya. Proses dekripsi lebih sedikit membutuhkan waktu dibandingkan dengan proses enkripsi yang dilakukan. Panjang kunci berpengaruh terhadap waktu proses enkripsi atau dekripsi. Perbedaan proses enkripsi dan dekripsi juga berpengaruh pada proses kompresi dan dekompresi yang dapat dilihat pada Gambar 33 dan Gambar 34.

Gambar 33 Pengujian Panjang Karakter Plainteks terhadap Proses Enkripsi yang Berbeda

Gambar 34 Pengujian Panjang Karakter Plainteks terhadap Proses Dekripsi yang Berbeda

(25)

terbanyak dalam setiap proses, maka dapat disimpulkan bahwa waktu pada proses enkripsi-kompresi dan dekompresi-dekripsi dimana 0,8 dan 0,89 lebih kecil dibandingkan dengan proses kompresi-enkripsi dan dekripsi-dekompresi dimana 0,98 dan 0,79. Walaupun waktu proses enkripsi-kompresi dan dekompresi-dekripsi lebih kecil dari pada kompresi-enkripsi dan dekompresi-dekripsi-dekompresi, tetapi jika dilihat dari sudut kemiringan waktu maka terlihat selisih waktu yang paling sedikit yaitu pada saat proses kompresi-enkripsi dan dekripsi-dekompresi dibandingkan dengan proses enkripsi-kompresi dan dekompresi-dekripsi.

5. Simpulan

Berdasarkan hasil penelitian, pengujian dan analisis terhadap sistem, maka dihasilkan kesimpulan yaitu kecepatan proses aplikasi bergantung pada besarnya ukuran file, semakin besar ukuran file maka semakin banyak waktu yang dibutuhkan untuk proses enkripsi, kompresi, dekompresi, dan dekripsi. Perbandingan waktu enkripsi lebih sedikit apabila dilakukan sebelum proses kompresi, sedangkan waktu yang dibutuhkan lebih banyak apabila dilakukan sesudah proses kompresi. Adapun saran yang dapat diberikan untuk pengembangan aplikasi ini lebih lanjut adalah penerapan algoritma Huffman dan kriptogarfi blowfish dalam pengamanan data audio.

6. Daftar Pustaka

[1] Pratiwi, A. E., Lhaksmana, K. M., Rizal, Setia, Juli 2011. Implementasi Enkripsi Data Dengan Algoritma Blowfish Menggunakan Java Pada Aplikasi Email, Jurnal PA : Politeknik Telkom Bandung.

[2] Kosasih, D., Pakereng, M. A. I., 2013. Perancangan dan Implementasi Aplikasi Steganography Menggunakan Metode Enchanced Audio

Steganography (EAS) Pada Data File Terkompresi. Skripsi-FTI. Universitas

Kristen Satya Wacana.

[3] Schneier, B., 1995. Applied Cryptography (Second Edition).

[4] Sitinjak, S., Fauziah Y., Juwairiah. 2010. Aplikasi Kriptografi File

Menggunakan Blowfish. SemnasIF : UPN “Veteran” Yogyakarta.

[5] Yusioktria, 2005. Simulasi Algoritma Huffman Guna Mengompresi Data

Pada Ponsel yang Berbasis Sistem Operasi Symbian.http://garuda.dikti.go.id/

jurnal/detil/id/ (30/06/2014)

[6] Batubara, 2009. Implementasi Algoritma Huffman dan algoritma Cipher

Substitusi Alfabet Tunggal pada Teks SMS. Ilmu computer, Medan, 2009.

http://repository.usu.ac.id/bitstream/123456789/25384/7/Cover.pdf. (10/07/2014)

[7] Liliana, 2005. Pembuatan Perangkat Lunak Untuk Kompresi File Text

Gambar

Gambar 1 Blok Diagram Algoritma Enkripsi Blowfish [3]
Gambar 3 Tahapan Penelitian
Gambar 4 Proses Kompresi Data
Gambar 6 menunjukkan proses enkripsi dengan menggunakan algoritma
+7

Referensi

Dokumen terkait

Dilihat dari gambaran umum dukungan keluarga dalam. memanfaatkan layanan kesehatan maternal

yang masih tumbuh liar sehingga produksi nira dan gula aren belum dapat. dimaksimalkan. Permasalahan mendasar yang dihadapi dalam

kegiatan ilmiah berupa diskusi atau seminar, mengenai bidang studinya; (2) selalu berusaha meningkatkan keefektifan mengajar, mencari cara- cara baru dalam menyampaikan materi

Pendidikan Islam pada dasarnya merupakan upaya normatif untuk membantu seseorang atau sekelompok peserta didik dalam mengembangkan pandangan hidup islami (bagaimana akan menjalani

Panjang tangkai mayang betina diukur dengan menggunakan meteran, mulai dari pangkal tangkai yang menempel di batang sampai bertemu dengan rangkaian buah pertama. Lingkar

Bahwa, pemeriksaan tersebut dilakukan dengan cara melihat dan menghitung barang, menyesuaikan barang dengan berita acara penerimaan barang yang berlokasi di SMAN 1 Tanjung Raja

Data lain menunjukkan dari poin pertanyaan poin ke-6 bahwa 6 dari 17 responden saat sebelum diberikan air rebusan daun sirih merah mengalami gejala seperti

yaitu dengan cara memberikan jasa pelayanan sesuai dengan yang diharapkan oleh pelanggan.. Kualitas pelayanan mempunyai hubungan yang erat dengan tingkat kepuasan