Kompresi Implementasi Algoritma Kriptografi Des, RSA Dan Algoritma Kompresi LZW Pada Berkas Digital

35 M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.

2.1.7.6 Keamanan RSA

Pada dasarnya keamanan algoritma RSA ini terletak yaitu pada sulitnya memfaktorkan bilangan besar menjadi faktor-faktor prima. Pada RSA masalah pemfaktoran berbunyi : Faktorkan n menjadi dua faktor prima, p dan q, sedemikian hingga n = p.q. sekali n dapat difaktorkan menjadi p dan q, maka φn = p-1q-1 dapat dihitung. Selanjutnya kunci privatpun dapat dihitung.

2.2 Kompresi

Kompresi merupakan salah satu dari bidang ilmu komputer. Pada subbab ini penulis akan membahas teori-teori mengenai kompresi dan algoritma LZW sebagai algoritma kompresi yang penulis gunakan.

2.2.1 Definisi Kompresi

Kompresi data adalah ilmu atau seni merepresentasikan informasi dalam bentuk yang lebih compact. Pengertian lain dari data kompresi adalah proses mengkonversikan sebuah input data stream stream sumber, atau data mentah asli menjadi data stream lainnya bitstream hasil, atau stream yang telah terkompresi yang berukuran lebih kecil.Ida Mengyi Pu, 2006. Tujuan dari kompresi data adalah untuk merepresentasikan suatu data digital dengan sesedikit mungkin bit, tetapi tetap mempertahankan kebutuhan minimum untuk membentuk kembali data aslinya. Data digital ini dapat berupa text, gambar, suara, dan kombinasi dari ketiganya, seperti video. Untuk membuat suatu data menjadi lebih kecil ukurannya dari pada data asli, diperlukan algoritma tertentu. Dalam algoritma kompresi data, tidak ada algoritma yang cocok untuk semua jenis data. Hal ini disebabkan karena data yang akan dikompres harus dianalisis terlebih dahulu, dan berharap menemukan pola tertentu 36 M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009. yang dapat digunakan untuk memperoleh data dalam bentuk yang lebih kecil. Karena itu, muncul banyak algoritma-algoritma kompresi data. Secara garis besar, terdapat 2 buah penggolongan algoritma kompresi data kompresi lossy, dan kompresi lossless. a. Kompresi Lossy Algoritma kompresi dikatakan lossy atau disebut juga irreversible jika tidak dimungkinkan untuk membentuk data asli yang tepat sama dari data yang sudah dikompresi. Ada beberapa detail yang hilang selama proses kompresi. Contoh penggunaan algoritma lossy seperti pada data gambar, suara dan video. Karena cara kerja sistem pengelihatan dan pendengararn manusia yang terbatas, beberapa detail dapat dihilangkan, sehingga didapat data hasil kompresi yang seolah-olah sama dengan data asli. b. Kompresi Lossless Algoritma kompresi dikatakan lossless atau disebut juga reversible jika dimungkinkan untuk membentuk data asli yang tepat sama dari data yang sudah dikompresi. Tidak ada informasi yang hilang selama proses kompresi dan dekompresi. Teknik ini digunakan jika data tersebut sangat penting, jadi tidak di mungkinkan untuk menghilangkan beberapa detail.

2.2.2 Algoritma Kompresi LZW

Algoritma Lempel-Ziv-Welch LZW, dikembangkan oleh Abraham Lempel, Jacob Ziv, dan Terry Welch. Dan dipublikasikan pada tahun 1984 oleh Terry Welch. LWZ dirancang sebagai peningkatan dari algoritma LZ78. Algoritma ini mereduksi jumlah token yang dibutuhkan menjadi 1 simbol saja. Simbol ini merujuk kepada index dalam dictionary. Proses kerjanya mirip dengan algoritma LZ78, tetapi jika pada algoritma LZ78 dictionary dimulai dari keadaan kosong, LZW mengisi dictionary ini dengan seluruh simbol alfabet yang dibutuhkan. 37 M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009. Pada kasus yang umum, 256 index pertama dari dictionary akan diisi dengan karakter ASCII dari 0-255. Karena dictionary telah diisi dengan semua kemungkinan karakter terlebih dahulu, maka karakter inputan pertama akan selalu dapat ditemukan dalam dictionary. Inilah yang menyebabkan token pada LZW hanya memerlukan 1 simbol saja yang merupakan pointer pada dictionary. Linawati dan Pangabean H.P, 2004. Prinsip kerja LZW, dimulai dengan membaca karakter input satu persatu dan diakumulasi pada sebuah srting I. Lalu dilakukan pencarian dalam dictionary, apakah terdapat string I. Selama string I ditemukan didalam dictionary, string ini ditambahkan dengan satu karakter berikutnya, lalu dicari lagi dalam dictionary. Pada saat tertentu, menambahkan satu karakter x pada string I akan menyebabkan tidak ditemukan dalam dictionary. String I ditemukan, tetapi string Ix tidak. Dalam tahap ini, algoritma akan akan menulis index dari string I sebagai output, menambahkan string Ix kedalam dictionary, dan menginisialisasikan string I dengan x, lalu proses dimulai lagi dari awal. Sebagai contoh, inputan adalah string : ada_beberapa_data_yang_hilang. Langkah pertama adalah mengisi dictionary dengan semua kemungkinan karakter, yaitu karakter ASCII dari 0-255, yang berarti index dictionary 0-255 telah berisi. Lalu string I diisi dengan karakter ”a”. Didalam dictionary, karakter ”a” ada pada index ke 97. Lalu string I ditambah dengan karakter selanjutnya ”d”. Frase ”ad” tidak ditemukan, maka akan dihasilkan token 97, dan frase ”ad” ditambahkan pada index ke 256 dalam dictionary. String I sekarang berisi ”d”, karena d ada pada index ke 100, maka string I ditambahkan dengan karakter selanjutnya, menjadi ”da”. Untuk langkah selanjutnya dapat dilihat dari tabel. Kumpulan output yang berupa angka-angka inilah sebagai hasil kompresi. Karena menggunakan konsep dictionary yang sama seperti LZ78, pengorganisasian dictionary juga diperlukan, misalnya seperti seberapa besar dictionary yang disediakan, dan apa yang akan dilakukan jika dictionary sudah penuh. Banyak algoritma berbasis dictionary lainnya dikembangkan dari tiga algoritma ini. Misalnya algortima LZMW, LZAP dan LZY adalah variasi dari LZW. Atau algoritma LZFG yang merupakan gabungan dari LZ77 dan LZ78. 38 M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009. Tabel 2.2 merupakan contoh dari penggunaan algoritma kompresi LZW. Tabel 2.2 Contoh cara kerja algoritma LZW String I Di dalam dictionary? Entry baru Output Keterangan A ada - - Ad tidak [256] = ad 97 97 adalah index dari ”a” D ada - - Da tidak [257] = da 100 100 adalah index dari ”d” A ada - - a_ tidak [258] = a_ 97 97 adalah index dari ”a” _ ada - - _b tidak [259] = _b 95 95 adalah index dari ”_” B ada - - Be tidak [260] = be 98 98 adalah index dari ”b” E ada - - Eb tidak [261] = eb 101 101 adalah index dari ”e” B ada - - Be ada - - Ber tidak [262] = be 260 262 adalah index dari ”be” ... ... ... ... ... M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009. BAB 3 ANALISIS PERMASALAHAN Analisis Dalam merancang suatu sistem diperlukan analisis terhadap sistem yang akan dirancang tersebut terlebih dahulu. Tujuan dari analisis ini sendiri adalah agar sistem yang dirancang menjadi tepat guna dan ketahanan dari sistem tersebut akan lebih terjaga. Di samping itu dengan dilakukannya analisis kita akan dapat mempermudah kerja kita dalam membuat sistem, dan jika suatu saat nanti ada perbaikan atau penambahan dalam sistem tersebut, maka akan mudah untuk diselesaikan. Sistem yang akan penulis rancang tediri dari dua proses secara garis besar, yaitu proses enkripsi dan proses kompresi. Dimana untuk proses enkripsi penulis akan menggunakan algoritma kriptografi RSA dan DES. Sedangkan untuk proses kompresi penulis akan menggunakan algoritma LZW dengan menggunakan metode lossless. Skema global dari proses enkripsi dapat dilihat pada Gambar 3.1. Gambar 3.1 Skema global proses enkripsi 40 M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009. Dari gambar di atas dapat dilihat bahwa plainteks informasi awal pertama kali dienkripsi menggunakan algoritma RSA. Dari proses yang pertama akan dihasilkan cipherteks sementara yang mana merupakan hasil enkripsi menggunakan algoritma RSA. Setelah itu proses selanjutnya yaitu, cipherteks sementara tadi akan dienkripsi kembali menggunakan algoritma DES, yang akan menghasilkan cipherteks dari keseluruhan proses enkripsi. Chiperteks inilah yang akan digunakan pada proses kompresi. Gambar 3.2 merupakan skema global dari proses kompresi : Gambar 3.2 Skema global proses kompresi Dari gambar di atas dapat dilihat bahwa proses kompresi dilakukan terhadap berkas yang telah dienkripsi yang bertujuan agar berkas tersebut ukurannya dapat diperkecil. Hasil yang diharapkan adalah berkas chiperteks tersebut ukurannya dapat lebih kecil. Di samping kedua proses di atas penulis juga akan melengkapi sistem ini dengan proses Dekompresi dan Deskripsi. Hal ini bertujuan agar berkas yang tadi telah dienkripsi dan dikompresi dapat kembali menjadi informasi awal yang dapat dimanfaatkan oleh orang yang berhak. Dalam proses pembalikan ini yang pertama penulis lakukan adalah mendekompresikan berkas hasil tadi, agar berkas tersebut ukurannya kembali menjadi berkas chiperteks sebelum dikompresi. Skema global proses dekompresi dapat dilihat pada Gambar 3.3. 41 M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009. Gambar 3.3 Skema global untuk proses dekompresi Berkas cipherteks yang telah dikompresi akan di dekompresi kembali untuk menghasilkan berkas cipherteks yang akan dideskripsikan untuk mendapatkan kembali informasi awal plainteks. Gambar 3.4 merupakan skema global dari proses deskripsi. Gambar 3.4 Skema global proses Deskripsi

3.1 Analisis Algoritma RSA