• Tidak ada hasil yang ditemukan

Implementasi Algoritma Knapsack dan Algoritma Boldi-Vigna (ζ4) Pada Keamanan dan Kompresi File Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Knapsack dan Algoritma Boldi-Vigna (ζ4) Pada Keamanan dan Kompresi File Teks"

Copied!
14
0
0

Teks penuh

(1)

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

(2)

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

Sistem enkripsi harus memenuhi kaidah correctness yaitu untuk memenuhi setiap K ∈κ adalah himpunan kunci dan terdapat teks sandi hasil enkripsi teks asli m, c =

�(m) maka harus berlaku �(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).

(3)

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) Ciphertext (C) Plaintext (P)

Gambar 2.2 Skema Kriptografi Simetris Dekripsi

�(C) = P Enkripsi

(4)

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) Ciphertext (C) Plaintext (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

Dekripsi

� (C) = P Enkripsi

(5)

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.

(6)

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.

(7)

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

(8)

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

(9)

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

(10)

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) :

Output

Input Source File Compression

File

Input Output

Compression File 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.

Compression

Algorithm

Decompression

(11)

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 [20, 2k - 1], [2k, 22k - 1], [22k, 23k - 1], dan secara umum [2hk, 2 (h + 1) k - 1]. Panjang setiap interval adalah 2 (h + 1) k - 2hk (Salomon, 2007).

Diberikan interval [0, z-1] dan sebuah integer x di interval ini, pertama kita hitung s =[ log2 z]. Jika x <2s - z, dikodekan sebagai unsur xth elemen pada interval ini, pada s - 1 bit. Jika tidak, maka dikodekan sebagai (x - z - 2s) 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 - 2hk dalam interval [0, 2 (h + 1) k - 2hk - 1] (Salomon, 2007).

Contoh:

Diberikan k = 3 dan n = 16, kita tentukan dulu n yang terletak di interval [23, 26 -1], yang sesuai dengan h = 1. Dengan demikian, h + 1 = 2 dan kode unary dari 2 adalah 01. Kode biner minimal 16 - 23 = 8 dibangun dalam langkah-langkah berikut. Panjang z dari interval [23, 26 -1] adalah 56. Ini berarti bahwa s =[ log2 56] = 6. Nilai 8 akan dikodekan 8 = 26 - 56, sehingga dikodekan sebagai x - z - 2s = 8- 56-26 = 16 dalam enam bit, sehingga 010000. Dengan demikian, kode ζ3 dari n = 16 adalah 010000111 (Salomon, 2007).

(12)

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 :

Tabel 2.2 Kompresi Dengan Boldi-Vigna(ζ4)

(13)

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

� = …………...………(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).

� = � %...……….. (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).

� = % − � ………..….... (3)

2.6 Penelitian Yang Relevan

Berikut ini beberapa penelitian tentang kriptografi dan kompresi data yang berkaitan dengan algoritma knapsack dan Boldi-Vigna (ζ4):

(14)

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.

Gambar

Gambar 2.1 Sistem Kriptografi Konvensional
Gambar 2.2 Skema Kriptografi Simetris
gambar  2.3 dibawah ini :
Gambar 2.4 Compression Dan Decompression
+2

Referensi

Dokumen terkait

Website menggunakan framework codeigniter modular extensions yang menggunakan arsitektur HMVC( Hierarchical Model, View, Controller ), agar struktur program lebih

Kesehatan reproduksi perempuan tidak terpisah dengan kebijakan kependudukan.. Kebijakan kependudukan meliputi dua hal yang mendasar

Selain itu perancangan aristektur: perancangan aristektur yang digunakan dalam sistem ini meliputi Website , Framework Codeigniter Modular Extensions yang mempunyai

Berbagai upaya nasional dan internasional telah dilakukan KNPP-PA untuk berkontribusi dalam memecahkan masalah lingkungan, khususnya yang terkait dengan upaya

Dari diagram aktivitas belajar siklus I dan siklus II dapat dijelaskan mengenai peningkatan aktivitas belajar peserta didik, perolehan data pada siklus I indikator pertama

Berbagai upaya nasional dan internasional telah dilakukan KNPP-PA untuk berkontribusi dalam memecahkan masalah lingkungan, khususnya yang terkait dengan upaya

Diajukan untuk memenuhi salah satu persyaratan dalam menyelesaikan Sarjana (S-1) pada Departemen Teknik

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