BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
BAB 2 LANDASAN TEORI

Departemen Teknik Informatika Institut Teknologi Bandung 2004

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

BAB III ANALISIS DAN DESAIN SISTEM

Kriptografi Kunci Rahasia & Kunci Publik

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

BAB I PENDAHULUAN. Dalam bidang teknologi informasi, komunikasi data sangat sering

ENKRIPSI-DEKRIPSI DENGAN ALGORITMA GENETIKA

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

BAB 2 LANDASAN TEORI

BAB Kriptografi

BAB 2 LANDASAN TEORI

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

+ Basic Cryptography

BAB II LANDASAN TEORI

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

BAB 2 LANDASAN TEORI

BAB III METODE KOMPRESI HUFFMAN DAN DYNAMIC MARKOV COMPRESSION. Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

Penerapan Pohon Biner Huffman Pada Kompresi Citra

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom

BAB 2 TINJAUAN PUSTAKA

Kriptosistem Knapsack

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN. khususnya internet sangatlah cepat dan telah menjadi salah satu kebutuhan dari

Aplikasi Merkle-Hellman Knapsack Untuk Kriptografi File Teks

BAB III PENGERTIAN DAN SEJARAH SINGKAT KRIPTOGRAFI

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

BAB 2 TINJAUAN PUSTAKA

Perhitungan dan Implementasi Algoritma RSA pada PHP

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

I. PENDAHULUAN. andil yang besar dalam perkembangan komunikasi jarak jauh. Berbagai macam model alat komunikasi dapat dijumpai, baik yang berupa

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. Universitas Sumatera Utara

1. PENDAHULUAN 1.1. Latar Belakang Masalah

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Pengenalan Kriptografi

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

Kriptografi, Enkripsi dan Dekripsi. Ana Kurniawati Kemal Ade Sekarwati

BAB 2 LANDASAN TEORI

KEAMANAN DATA DENGAN METODE KRIPTOGRAFI KUNCI PUBLIK

Teknik Kompresi Citra Menggunakan Metode Huffman

BAB 2 LANDASAN TEORI

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

BAB I PENDAHULUAN. Dalam dunia modern sekarang ini kebanyakan aktivitas manusia selalu

BAB 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

BAB II TINJAUAN PUSTAKA

Rancang Bangun Kombinasi Chaisar Cipher dan Vigenere Cipher Dalam Pengembangan Algoritma Kriptografi Klasik

BAB 2 TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

KOMPRESI TEKS MENGGUNAKAN ALGORITMA DAN POHON HUFFMAN. Nama : Irfan Hanif NIM :

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

BAB 2 LANDASAN TEORI

Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

BAB I PENDAHULUAN. mempunyai makna. Dalam kriptografi dikenal dua penyandian, yakni enkripsi

Bab 2: Kriptografi. Landasan Matematika. Fungsi

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

BAB 2 TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

PERANCANGAN APLIKASI KOMPRESI CITRA DENGAN METODE RUN LENGTH ENCODING UNTUK KEAMANAN FILE CITRA MENGGUNAKAN CAESAR CHIPER

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

BAB I PENDAHULUAN 1.1. Latar Belakang

Penerapan Matriks dalam Kriptografi Hill Cipher

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI MENGGUNAKAN ALGORITMA RSA DAN METODE LSB

BAB 2 TINJAUAN PUSTAKA

STUDI DAN MODIFIKASI ALGORITMA BLOCK CHIPER MODE ECB DALAM PENGAMANAN SISTEM BASIS DATA. Arief Latu Suseno NIM:

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

PERANCANGAN APLIKASI KERAHASIAAN PESAN DENGAN ALGORITMA HILL CIPHER

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

Transkripsi:

5 BAB 2 LANDASAN TEORI 2.1 Kriptografi 2.1.1 Pengertian Kriptografi Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana menyembunyikan pesan. Pada kriptografi klasik umumnya merupakan teknik penyandian dengan kunci simetrik dan menyembunyikan pesan yang memiliki arti ke sebuah pesan yang nampaknya tidak memiliki arti dengan metode subsitusi (pergantian huruf) dan/atau transposisi (pertukaran tempat). (Sadikin, 2012). Namun pada pengertian modern kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasian, keutuhan data dan otentikasi entitas. Jadi pengertian kriptografi modern adalah tidak saja berurusan hanya dengan penyembunyian pesan namun lebih pada sekumpulan teknik yang menyediakan keamanan informasi (Sadikin, 2012). 2.1.2 Sistem Kriptografi Sistem kriptografi terdiri dari 5 bagian yaitu, (Stinson, 2002) : 1. Plaintext Plaintext yaitu pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi. Untuk selanjutnya digunakan istilah teks asli sebagai pedanan kata plaintext. 2. Secret Key Secret key yang juga merupakan masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi. Untuk selanjutnya digunakan istilah kunci rahasia sebagai padanan kata secret key.

6 3. Ciphertext Ciphertext adalah keluaran algoritma enkripsi. Ciphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. 4. Algoritma Enkripsi Algoritma enkripsi memiliki 2 masukan teks asli dan kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi. 5. Algoritma Dekripsi Algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan rahasia yang dipakai algoritma enkripsi. Contoh sistem kriptografi konvensional dapat dilihat pada gambar 2.1. Eve Alice Bob M Algoritma C Algoritma M Enkripsi Saluran publik Dekripsi K Sumber kunci Saluran Aman (Sumber: Sadikin, Rifki. 2012) Gambar 2.1 Sistem Kriptografi Konvensional Sistem enkripsi harus memenuhi kaidah correctness yaitu untuk memenuhi setiap K κ adalah himpunan kunci dan terdapat teks sandi hasil enkripsi teks asli m, c = e k (m) maka harus berlaku d k (c) = m untuk semua kemungkinan teks asli. Pada gambar 1 kunci rahasia dibangkitkan oleh pembangkit kunci dan dikirim melalui saluran aman ke pihak penyandian (encryptor) maupun penyulih sandi (decryptor). Teks sandi dikirim melalui saluran umum sehingga ada pihak ketiga yang dapat membaca teks sandi itu (Sadikin, 2012).

7 2.1.3 Jenis Kriptografi Berdasarkan jenis kuncinya algoritma kriptografi terdiri dari dua jenis yaitu: 1. Algoritma Simetris (Konvensional) Algoritma simetris (symmetric cryptography) adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya, sehingga algoritma ini disebut juga sebagai single key algorithm. Algoritma ini disebut juga konvensional karena algoritma jenis ini biasa digunakan sejak berabad-abad yang lalu. Sebelum melakukan komunikasi, pengirim dan penerima pesan harus menyetujui suatu kunci tertentu yang sama untuk dipakai secara bersama. Keamanan sistem kriptografi simetri tergantung pada kerahasiaan kunci karena membocorkan kunci berarti orang lain bisa mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, maka keberadaan kunci harus tetap dirahasiakan dari pihak yang tidak berkepentingan dengan cara pengirim harus memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman atau memastikan bahwa pihak yang ditunjuk membawa kunci untuk pertukaran data adalah pihak yang dapat dipercaya. Algoritma-algoritma yang termasuk dalam kriptografi simetris adalah semua algoritma kriptografi klasik seperti hill cipher, vigenere cipher, playfair cipher, dll. Beberapa algoritma kriptografi modern juga termasuk kriptografi simetris, diantaranya adalah IDEA, DES (Data Encryption Standard), Blowfish, Twofish, Tripel DES, Serpent, AES (Advanced Encryption Standard), RC2, RC4, RC5, RC6, dll (Namira, 2013). Proses enkripsi-dekripsi algoritma kunci simetris dapat dilihat pada gambar 2.2. Kunci Private, K Kunci Private, K Plaintext (P) Enkripsi Ciphertext (C) Dekripsi Plaintext (P) E k (P) = C D k (C) = P Gambar 2.2 Skema Kriptografi Simetris

8 2. Algoritma Asimetris (Kunci Publik) Kriptografi asimetris (asymmetric cryptography) adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi. Kunci enkripsi dapat disebarkan kepada umum yang dinamakan sebagai kunci publik (public key), sedangkan kunci dekripsi disimpan untuk digunakan sendiri dan dinamakan sebagai kunci pribadi (private key). Oleh karena itulah, kriptografi ini dikenal pula dengan nama kriptografi kunci publik (public key cryptography). Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci private dan kunci publik. Prosesnya, pengirim (sender) mengenkripsi pesan dengan menggunakan kunci publik sipenerima pesan (receiver) dan hanya si penerima pesanlah yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci private itu sendiri. Contoh algoritma yang termasuk algoritma kriptografi kunci publik diantaranya adalah RSA, Elgamal, DSA, Knapsack, dll (Namira, 2013). Proses enkripsi dan dekripsi algoritma kunci asimetris dapat dilihat pada gambar 2.3 dibawah ini : Kunci Private,K1 Kunci Private,K2 Plaintext (P) Enkripsi Ciphertext (C) Dekripsi Plaintext (P) E k2 (P) = C D k2 (C) = P Gambar 2.3 Skema Kriptografi Asimetris 2.2 Algoritma Knapsack Knapsack merupakan optimasi pengangkutan barang atau disebut juga optimasi kombinatoriol. Knapsack problem adalah salah satu masalah bagaimana cara menentukan pemilihan barang dari sekumpulan barang di mana setiap barang tersebut menmpunyai berat dan profit masing-masing, sehingga dari pemilihan barang tersebut didapatkan profit yang maksimum. (Timothy, 2014) Tujuan Knapsack problem adalah agar dapat mendapatkan keuntungan yang maksimum dari pemilihan barang tanpa melebihi kapasitas daya tampung media

9 transportasi tersebut. Dalam teori algoritma, persoalan Knapsack termasuk kedalam kelompok NP-complete. Persoalan yang termasuk NP-complete tidak dapat dipecahkan dalam orde waktu polynomial. (Timothy, 2014) Jenis-jenis Knapsack adalah: 1. 0/1 Knapsack Problem Setiap barang hanya terdiri satu unit dan boleh diambil atau tidak sama sekali. 2. 0/n Knapsack Problem Setiap barang terdiri dari n buat unit dan boleh diambil atau tidak sama sekali 3. Bounded Knapsack Problem Setiap barang tersedia n buah unit dan jumlahnya terbatas 4. Unbounded Knapsack Problem Setiap barang tersedia lebih dari satu unit dan jumlahnya tidak terbatas 5. Fractional Knapsack Problem Barang boleh diambil dalam bentuk pecahan atau sebahagian. Contohnya gula, garam, tepung dan lain-lain. (Namira, 2013) Knapsack Problem: Diberikan bobot knapsack adalah M. Diketahui n buah objek yang masing-masing bobotnya adalah w1, w2,, wn. Tentukan nilai bi sedemikian sehingga M = b1w1 + b2w2 + + bnwn yang dalam hal ini, bi bernilai 0 atau 1. Jika bi = 1, berarti objek i dimasukkan kedalam knapsack, sebaliknya jika bi = 0, objek i tidak dimasukkan. Dalam teori algoritma, persoalan knapsack termasuk ke dalam kelompok NP-complete. Persoalan yang termasuk NP-complete tidak dapat dipecahkan dalam orde waktu polynomial. Algoritma Knapsack Sederhana Ide dasar dari algoritma kriptografi knapsack adalah mengkodekan pesan sebagai rangkaian solusi dari dari persoalan knapsack. Setiap bobot wi di dalam persoalan knapsack merupakan kunci private, sedangkan bit-bit plaintext menyatakan bi. Sayangnya, algoritma knapsack sederhana ini hanya dapat digunakan untuk enkripsi, tetapi tidak dirancang untuk dekripsi. Algoritma superincreasing

10 Knapsack adalah algoritma yang lemah, karena ciphertext dapat didekripsi menjadi plainteksnya secara mudah dalam waktu lancar. Algoritma non-superincreasing Knapsack atau normal Knapsack adalah kelompok algoritma Knapsack yang sulit (dari segi komputasi) karena membutuhkan waktu dalam orde eksponensial untuk memecahkannya. Namun, superincreasing Knapsack dapat dimodifikasi menjadi non-superincreasing Knapsack dengan menggunakan kunci publik (untuk enkripsi) dan kunci rahasia (untuk dekripsi). Kunci publik merupakan barisan non-superincreasing sedangkan kunci rahasia tetap merupakan barisan superincreasing. Modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle. a. Cara membuat kunci publik dan kunci rahasia: 1. Tentukan barisan superincreasing. 2. Kalikan setiap elemen di dalam barisan tersebut dengan n modulo m. Modulus m seharusnya angka yang lebih besar daripada jumlah semua elemen di dalam barisan, sedangkan pengali n seharusnya tidak mempunyai faktor persekutuan dengan m. 3. Hasil perkalian akan menjadi kunci publik sedangkan barisan superincreasing semula menjadi kunci rahasia (Namira, 2013). b. Enkripsi Algoritma Knapsack 1. Menggunakan kunci publik untuk melakukan enkripsi. 2. Plaintext dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik. 3. Kalikan setiap bit didalam blok dengan elemen yang berkoresponden di dalam kunci publik. c. Dekripsi Algoritma Knapsack 1. Menggunakan kunci rahasia untuk melakukan dekripsi. 2. Menghitung nilai n -1, yaitu kebalikan n modulo m, sedemikian sehingga n * n -1 1 (mod m).

11 3. Mengalikan setiap kriptogram dengan n -1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci rahasia untuk memperoleh plaintext dengan menggunakan algoritma pencarian solusi superincreasing (Timothy, 2014). Contoh : Misalkan barisan superincreasing adalah {2, 5, 9, 17, 25, 50}, m = 103, dan n = 31. Barisan non-superincreasing (atau normal) Knapsack dihitung sbb: 2. 31 mod 103 = 62 5. 31 mod 103 = 52 9. 31 mod 103 = 73 17. 31 mod 103 = 12 25. 31 mod 103 = 54 50. 31 mod 103 = 5 Jadi, kunci publik adalah {62, 52, 73, 12, 54, 5}, sedangkan kunci rahasia adalah {2,5, 9, 17, 25, 50}. Enkripsi dilakukan dengan cara yang sama seperti algoritma Knapsack sebelumnya. Mula-mula plaintext dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik. Kemudian kalikan setiap bit di dalam blok dengan elemen yang berkoresponden di dalam kunci publik. Contoh : Misalkan Plaintext: 011001100000110110 dan kunci publik yang digunakan seperti pada Contoh sebelumnya. Plaintext dibagi menjadi blok yang panjangnya 6, kemudian setiap bit di dalam blok dikalikan dengan elemen yang berkorepsonden di dalam kunci publik: Blok plaintext ke-1 : 011001 Kunci publik : 62, 52, 73, 12, 54, 5 Kriptogram : (1 52) + (1 73)+ (1 5) = 130 Blok plaintext ke-2 : 100000 Kunci publik : 62, 52, 73, 12, 54, 5 Kriptogram : (1 62) = 62

12 Blok plaintext ke-3 : 110110 Kunci publik : 62, 52, 73, 12, 54, 5 Kriptogram : (1 62) + (1 52) + (1 54) + (1 5) = 173 Jadi, ciphertext yang dihasilkan : 130, 62, 173 Dekripsi dilakukan dengan menggunakan kunci rahasia. Mula-mula penerima pesan menghitung n 1, yaitu balikan n modulo m, sedemikian sehingga n. n 1 1 (mod m). Kekongruenan ini dapat dihitung dengan cara yang sederhana sebagai berikut (disamping dengan cara yang sudah pernah diberikan pada Teori Bilangan Bulat): n. n 1 1 (mod m) n. n 1 = 1 + km n 1 = (1 + km)/n, k sembarang bilangan bulat Kalikan setiap kriptogram dengan n 1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci rahasia untuk memperoleh plaintext dengan menggunakan algoritma pencarian solusi superincreasing Knapsack. Contoh : Ciphertext dari 130, 62, 173 akan dideskripsikan dengan menggunakan kunci rahasia {2, 5, 9, 17, 25, 50}. Di sini, n = 31 dan m = 103. Nilai n 1 diperoleh sbb: n 1 = (1 + 103k)/31 Dengan mencoba k = 0, 1, 2,, maka untuk k = 3 diperoleh n 1 bilangan bulat, yaitu: n 1 = (1 + 103. 3)/31 = 10 Ciphertext dari Contoh sebelumnya adalah 130, 62, 173. Plaintext yang berkoresponden diperoleh kembali sebagai berikut: 130. 10 mod 103 = 64 = 5+ 9 + 50, berkoresponden dengan 011001 62. 10 mod 103 = 2 = 2 berkoresponden dengan 100000 173. 10 mod 103 = 82 = 2 + 5 + 25 + 50, berkoresponden dengan 110110 Jadi, plaintext yang dihasilkan kembali adalah: 011001 100000 110110

13 2.3. Kompresi Data Kompresi data merupakan suatu upaya untuk mengurangi jumlah bit yang digunakan untuk menyimpan atau mentransmisikan data. kompresi data meliputi berbagai teknik kompresi yang diterapkan dalam bentuk perangkat lunak (Software) maupun perangkat keras (Hardware). Bila ditinjau dari penggunaannya, kompresi data dapat bersifat umum untuk segala keperluan atau bersifat khusus untuk keperluan tertentu. Keuntungan data yang terkompresi antara lain: penyimpanan data lebih hemat ruang, mempersulit pembacaan data oleh pihak yang tidak berkepentingan dan memudahkan distribusi data dengan media removable seperti flashdisk, CD, DVD, dll (Tjatur, 2011). Saat ini terdapat berbagai tipe algoritma kompresi, antara lain: Huffman, IFO, LZHUF, LZ77 dan variannya (LZ78, LZW, GZIP), Dynamic Markov Compression (DMC), Block-Sorting Lossless, Run-Length, Shannon-Fano, Arithmetic, PPM (Prediction by Partial Matching), Burrows-Wheeler Block Sorting, dan Half Byte. (Namira, 2013). 2.3.1. Klasifikasi tipe kompresi data Secara umum, kompresi data dapat diklasifikasikan ke dalam 2 macam, yaitu (Arief, 2006): 1. Kompresi Lossy Teknik kompresi dimana data yang sudah dikompresi tidak dapat dikembalikan seperti data semula, dinamakan lossy atau distortive atau noise-incurring. Kompresi seperti ini digunakan untuk gambar dan suara dimana kehilangan (loss) data dapat diijinkan dalam kasus tertentu. Contoh data adalah adalah JPEG dan GIF untuk gambar, MPEG untuk video dan MP3 (MPEG Layer-3) untuk format suara. Contoh: metode kompresi lossy adalah Transform Coding, Wavelet, dan lain-lain. 2. Kompresi Lossless Kompresi lossless adalah teknik kompresi untuk data seperti file program, file dokumen dan record basis data dimana sama sekali tidak diijinkan perbedaan

14 antara data awal (sebelum kompresi) dan data setelah dilakukan dekompresi. Contoh program kompresi lossless seperti winzip, winrar, dan pkzip. Contoh metode lossless adalah Boldi-Vigna, Shannon-Fano Coding, Huffman Coding, Arithmetic Coding, Run Length Encoding dan lain sebagainya (Rachmat, 2015). 2.3.2 Dekompresi Data Dekompresi adalah kebalikan dari proses kompresi. Setiap proses kompresi data tentu saja membutuhkan proses dekompresi kembali untuk mendapatkan data yang sesungguhnya. Pada praktek kasusnya, dekompresi yang baik atau dapat dikatakan efisien jika algoritma dekompresinya sesuai dengan algoritma kompresi pada kasus itu sendiri. Audio, Video, dan Foto adalah contoh data yang sangat sering dilakukan proses kompresi dan dekompresi tentu saja menggunakan dengan algoritma yang sama. Adapun hubungan antara kompresi dan dekompresi dapat dilihat pada gambar dibawah ini (Namira, 2013) : Input Source File Compression Algorithm Output Compression File Input Compression File Decompression Algorithm Output decompresion File Gambar 2.4 Compression Dan Decompression Aplikasi dekompresi data sering juga disebut dengan dekompresor (decompresor). Bagaimanapun dekompresi adalah salah satu solusi terbaik untuk mengembalikan data yang telah mengalami proses kompresi (compressed Files). Kompresor dan dekompresor dapat dikatakan sebagai dua proses yang saling berkaitan baik pada sumber dan tujuan masing-masing proses. Pada kasusnya, source disebut dengan coder dan destinasi pesan disebut dengan decoder.

15 2.4 Algoritma Boldi-Vigna (ζ4) Zeta (ζ) kode juga dikenal sebagai Boldi-Vigna code, diperkenalkan oleh Paolo Boldi dan Sebastiano Vigna sebagai keluarga Variable-Length Code yang merupakan pilihan terbaik untuk kompresi. Dimulai dengan hukum Zipf, seorang kuasa hukum empiris [Zipf 07] diperkenalkan oleh Linguis George K. Zipf. Menyatakan bahwa frekuensi setiap kata dalam bahasa alami kira-kira berbanding terbalik dengan posisinya dalam tabel frekuensi. Boldi-Vigna kode zeta dimulai dengan bilangan bulat k positif yang menjadi menyusut oleh Faktor kode. Himpunan semua bilangan bulat positif dibagi menjadi [2 0, 2 k - 1], [2 k, 2 2k - 1], [2 2k, 2 3k - 1], dan secara umum [2 hk, 2 (h + 1) k - 1]. Panjang setiap interval adalah 2 (h + 1) k - 2 hk (Salomon, 2007). Diberikan interval [0, z-1] dan sebuah integer x di interval ini, pertama kita hitung s =[ log2 z]. Jika x <2 s - z, dikodekan sebagai unsur xth elemen pada interval ini, pada s - 1 bit. Jika tidak, maka dikodekan sebagai (x - z - 2 s ) th elemen pada interval di s bit. Dengan latar belakang ini, di sini dibahas bagaimana kode zeta dibangun. Mengingat bilangan bulat n akan dikodekan, kami mempekerjakan k untuk menentukan interval di mana n berada. Salah satu yang diketahui, nilai-nilai h dan k yang digunakan dengan cara yang sederhana untuk membangun kode zeta n dalam dua bagian, nilai h + 1 di unary (sebagai nol h diikuti dengan 1), diikuti oleh minimal kode biner dari n - 2 hk dalam interval [0, 2 (h + 1) k - 2 hk - 1] (Salomon, 2007). Contoh: Diberikan k = 3 dan n = 16, kita tentukan dulu n yang terletak di interval [2 3, 2 6-1], yang sesuai dengan h = 1. Dengan demikian, h + 1 = 2 dan kode unary dari 2 adalah 01. Kode biner minimal 16-2 3 = 8 dibangun dalam langkah-langkah berikut. Panjang z dari interval [2 3, 2 6-1] adalah 56. Ini berarti bahwa s =[ log2 56] = 6. Nilai 8 akan dikodekan 8 = 26-56, sehingga dikodekan sebagai x - z - 2 s = 8-56-2 6 = 16 dalam enam bit, sehingga 010000. Dengan demikian, kode ζ3 dari n = 16 adalah 010000111 (Salomon, 2007). Contoh daftar kode Boldi-Vigna (ζ4) dapat dilihat pada tabel 2.1 dibawah ini :

16 Tabel 2.1 Kode Daftar Boldi-Vigna ζ4 Contoh : Diberikan string = ERNA LESTARI Σ = { E, R, N, A, sp, L, S, T, I }, dengan sp = spasi Maka dibuat sebuah tabel untuk menghitung bit setelah di kompresi. Tabel bisa dilihat pada tabel 2.2 dibawah ini : n ζ4 1 1000 2 10010 3 10011 4 10100 5 10101 6 10110 7 10111 8 11000 9 11001 10 11010 11 11011 12 11100 13 11101 14 11110 15 11111 16 010000111 Tabel 2.2 Kompresi Dengan Boldi-Vigna (ζ4) Σ Freq Boldi-Vigna (ζ4) Bit Freq*Bit E 2 1000 4 8 R 2 10010 5 10 A 2 10011 5 10 N 1 10100 5 5 Sp 1 10101 5 5 L 1 10110 5 5 S 1 10111 5 5 T 1 11000 5 5 I 1 11001 5 5 Jumlah Bit 58 Bit

17 2.5 Parameter pembanding Ada 3 parameter pembanding yang digunakan dalam peneltiaan ini, yaitu Ratio of Compression (RC), Compression Ratio (CR), dan Redudancy (Rd). 1. Ratio of Compression (Rc) Ratio of Compression (Rc) adalah perbandingan antara ukuran data sebelum dikompresi dengan ukuran data setelah dikompresi (Salomon, 2007). Rc = ukuran data sebelum dikompresi ukuran data setelah dikompresi... (1) 2. Compression Ratio (Cr) Compression Ratio (Cr) adalah persentasi besar data yang telah dikompresi yang didapat dari hasil perbandingan antara ukuran data setelah dikompresi dengan ukuran data sebelum dikompresi (Salomon, 2007). Cr = ukuran data setelah dikompresi ukuran data sebelum dikompresi x 100%..... (2) 3. Redudancy (Rd) Redundancy (Rd) adalah kelebihan yang terdapat di dalam data sebelum dikompresi. Jadi setelah data dikompresi dapat dihitung Redundancy data yaitu persentasi dari hasil selisih antara ukuran data sebelum dikompresi dengan data setelah dikompresi (Salomon, 2007). Rd = 100% Cr..... (3) 2.6 Penelitian Yang Relevan Berikut ini beberapa penelitian tentang kriptografi dan kompresi data yang berkaitan dengan algoritma knapsack dan Boldi-Vigna (ζ4): 1. Pada penelitian Namira (2013), Implementasi Algoritma Kriptografi Knapsack Dan Algoritma Kompresi Data Run Length Encoding Untuk Mengamankan Dan Kompresi File Teks. Kesimpulan dari penelitian ini yaitu Enkripsi teks

18 dengan menggunakan algoritma Knapsack dapat mengamankan pesan dengan baik. 2. Berdasarkan penelitian oleh Disa (2013), Implementasi Pengamanan File Text Dengan Algoritma Kriptografi Knapsack Dan Algoritma Steganografi FOF (First Of File). Kesimpulan dari penelitian ini yaitu Waktu proses dekripsi jauh lebih lama jika dibandingkan dengan waktu proses enkripsi. Hal ini disebabkan karena penambahan permutasi pada algoritma kriptografi Knapsack. 3. Menurut Markle dan Hellman Knapsack problem akan semakin bagus jika jumlah plaintext n lebih besar dari 100 bit, karena akan menghasilkan ciphertext dua kali lebih banyak dari plaintext awal sehingga sulit bagi kriptanalis untuk menentukan satu dari mereka. 4. Berdasarkan kutipan dari buku David Salomon (2007), algoritma Boldi-Vigna sebagai keluarga Variable-Length Code yang merupakan pilihan terbaik untuk kompresi.