Gambar 2.1 Three Pass Protocol
Tampak bahwa pada Three Pass Protocol terjadi tiga kali pass pengiriman informasi yang didalamnya dilakukan proses enkripsi ganda enkripsi dengan
k_sender diikuti dengan enkripsi dengan k_recaiver dan dekripsi ganda dekripsi
dengan k_sender
dan k_recaiver
. Dengan demikian berlaku proses, DDEEk_sender,P,k_recaiver ,k_sender ,k_recaiver =P
.
Pada penerapan Three Pass Protocolsebuah algoritma kriptografi harus memenuhi aturan commutative encryption.Dengan demikian algoritma kriptografi
XOR dapat diterapkan denganThree Pass Protocol.
2.4 Kompresi Data
Kompresi data dalam konteks ilmu komputer, adalah ilmu seni untuk merepresentasikan informasi dalam sebuah bentuk yang padat[10]. Kompresi data
Universitas Sumatera Utara
merupakan salah satu aspek penting sebagai pemicu revolusi dalam bidang multimedia digital.Kompresi data bertujuan untuk mereduksi jumlah bit-bit yang
digunakan untuk menyimpan atau mentransmisikan informasi[9]. Defenisi lain menyebutkan, kompresi data adalah proses perubahan rentetan data input data asli ke
dalam rentetan data lain data output atau data terkompresi yang berukuran lebih kecil [14].
Lebih spesifik lagikompresi data merupakan teknik atau desain algoritma yang efisien untuk [10]:
a. Merepresentasikan data dalam sebuah cara yang mengandung sedikit redudansi
b. Mengurangi redudansi dalam data
c. Mengimplementasikan algoritma kompresi, termasuk didalamnya kompresi dan
dekompresi.
2.4.1 Kompresi dan Dekompresi Data
Kompresi data dapat dipandang sebagai bentuk representasi yang efisien dari sebuah data sumber seperti, teks, gambar, suara atau kombinasi ketiganya dalam sebuah video
misalnya.Tujuannya adalah untuk merepresentasikan data sumber dalam bentuk digital dengan jumlah bit-bit sesedikit mungkin [10].Algoritma kompresi data disebut
kompresor compressor.
Berkebalikan dengan kompresi, dekompresi merupakan cara yang diterapkan pada sebuah bentuk terkompresi untuk mengembalikannya ke bentuk aslinya sebelum
mengalami proses kompresi. Dekompresi yang efisien juga menjadi sebuah pertimbangan penting dalam konteks kompresi data, sebab bila sebuah algoritma
kompresi mampu menghasilkan bentuk paling minimal sekalipun pada sebuah kasus, implementasinya akan mengalami kendala bila tidak terdapat mekanisme lain yang
mampu mengembalikan hasil kompresi ke bentuk asli atau setidaknya mendekati bentuk asli sebelum mengalami kompresi. Algoritma dekompresi data disebut
dekompresor decompressor.
Universitas Sumatera Utara
2.4.2 Kompresi Lossless dan Lossy
Terdapat dua bagian besar kelompok kompresi bila ditinjau dari tersedianya kemungkinan peluang dalam merekonstruksi hasil kompresi kembali ke bentuk asli.
Kedua kelompokalgoritma tersebut adalah kompresi data losslessdankompresi data lossy
[10].
Sebuah kompresi disebut lossless hanya jika memungkinkan untuk merekonstrusi bentuk data terkompresi secara benar-benar persis seperti data asli
sebelum di kompresi. Tidak ada satupun informasi yang hilang selama proses kompresi-dekompresi. Kompresi Lossless disebut juga dengan kompresi reversible
karena data asli secara persis dapat diperoleh melalui proses dekompresi.
Gambar 2.2 Kompresi Data Lossless
Teknik kompresi ini banyak digunakan ketika bentuk data asli dari sebuah data benar-benar diperlukan sehingga tidak boleh ada sedikitpun informasi yang hilang.
Bentuk data tersebut misalnya, gambar analisis medis, teks dan gambar yang digunakan pada proses peradilan.
Berbeda dengan kompresi lossless, sebuah metode kompresi disebut lossy apabila tidak ada kemungkinan untuk merekonstrusi bentuk terkompresi secara persis
sama dengan bentuk asli. Mungkin terdapat beberapa bagian data yang tidak signifikan sehingga dapat hilang pada proses kompresi-dekompresi. Kata tidak
signifikan disini mengacu pada syarat kualitas tertentu yang harus dipenuhi oleh hasil rekonstruksi [10].
Gambar 2.3 Kompresi Data Lossy
Bentuk Asli “Bawakan File ABC”
Bentuk Terkompresi “1100101”
Hasil Dekompresi “Bawakan File ABC”
Bentuk Asli “3.147223…”
Bentuk Terkompresi “110111”
Hasil Dekompresi “3.14”
Universitas Sumatera Utara
Kompresi lossy disebut juga kompresi irreversible karena tidak mungkin secara persis untuk mengembalikan data hasil kompresi persis seperti bentuk semula
melalui proses dekompresi [10]. Hasil dekompresi umunya akan berbeda dari data asli, namun demikian berbagai pendekatan digunakan sehingga hasilnya meskipun
tidak persis sama akan mendekati bentuk aslinya.
Salah satu besaran yang digunakan untuk mengukur kinerja kompresi suatu algoritma kompresi adalah rasio kompresi compression ratio, yang dinyatakan
sebagai berikut.
�
�
=
����
����� �����������
����
������ �����������
� 100 2.7
C
r
menyatakan compression ratio rasio kompresi.
2.4.3 Algoritma Kompresi Lempel Ziv WelchLZW
Algoritma kompresi Lempel Ziv Welch LWZ merupakan salah satu algoritma kompresi lossless berbasis dictionary. Algoritma ini dikembangkan oleh Terry Welch
sebagai penerus algoritma LZ77 dan LZ78 yang sebelumnya ditemukan oleh Abraham Lempel dan Jacob Ziv pada tahun 1977 dan 1978.
Algoritma ini bersifat adaptif dan efektif gunakan dalam mengkompresi pesan teks, karena prinsip dari algoritma ini adalah menyimpan pasangan kode-kode dan
deretan karakter yang pernah muncul pada bagian teks sebelumnya dalam sebuah dictionary
. Kode-kode singkat tersebut digunakan sebagai substitusi deretan karakter pada hasil kompresi sekaligus sebagai indeks dalam kamus selama proses kompresi
berlangsung.
Proses kompresi diawali oleh proses inisiasi dictionary dengan karakter- karakter yang digunakan penyusun input stream misalnya deretan karakter ASCII.
Selama proses kompresi dilakukan, algoritma akan mengidentifikasi deretan karakter dalam input stream dan memeriksa apakah deretan tersebut terdapat dalam dictionary.
Universitas Sumatera Utara
Bila deretan karakter tersebut ditemukan dalam dictionary, diperiksa kembali apakah dengan memasangkan deretan karakter tersebut dengan karakter berikutnya masih
ditemukan dalam dictionary, proses ini diulangi terus-menerus hingga deretan karakter tersebut tidak ditemukan lagi dalam dictionary. Bila sudah tidak ditemukan,
maka indeks pada dictionary ditambahkan dan dipasangkan dengan deretan karakter tersebut, lalu deretan karakter terakhir yang masih ditemukan pada dictionary akan
digantikan dengan indeks yang sesuai sebagai outputnya. Proses yang berlangsung dalam kompresi data LZW dinyatakan sebagaiberikut.
Tabel 2.3 Pseudocode Algoritma Kompresi LZW [10]
1 : 2 :
3 : 4 :
5 : 6 :
7 : 8 :
9 : 10:
11: 12:
word
‘’ while not EOF do
x read_next_character
if word + x is in dictionary then
word word + x
else
output the dictionary index for word add word + x to the dictionary
word x
end if end while
output the dictionary index for word
Sebagai contoh sebuah string “BUKAN BUKA” akan dikompresi dengan algoritma LZW, prosesnya adalah sebagai berikut karakter yang digunakan adalah
karakter standar ASCII.
Tabel 2.4 Proses Kompresi LZW untuk String “BUKAN BUKA”
lookAhead nextChar
lookAheadNext lookAheadNext ada
dalam Dictionary?
Output Tambahan
dalam dictionary
B U
BU Tidak
66 BU-256
U K
UK Tidak
85 UK-257
K A
KA Tidak
75 KA-258
A N
AN Tidak
65 AN-259
N Sp
NSp Tidak
78 NSp-260
Sp B
SpB Tidak
32 SpB-261
B U
BU Ya
- -
BU K
BUK Tidak
256 BUK-262
K A
KA Ya
- -
KA End
KA -
258 -
Universitas Sumatera Utara
Hasil kompresi adalah 668575657832256258 masing- masing berukuran 9 bit. Maka hasil kompresi hanya sepanjang 9 × 8 = 72 bit.
Sedangkan input adalah 10 byte ASCII, yang ukurannya 10 × 8 = 80 bit. Dengan demikian diperoleh penghematan sebanyak 8 bit.
Proses dekompresi juga melibatkan proses yang mirip dengan proses kompresi, hanya saja outputnya adalah karakter yang indeksnya sesuai dengan entry
dalam dictionary dan selama proses perubahan indeks ke bentuk karakter dilakukan saat itu pula ditambahkan isi dictionary.
Bila indeks tidak ditemukan pada dictionary, output yang digunakan adalah output yang terakhir kali diperoleh sebagai hasil konversi indeks pada kamus
dipasangkan dengan karakter pertama dari output tersebut. Sedangkan untuk entri baru pada kamus ditambahkan output yang sebelumnya dipasangkan dengan karakter
pertama output yang baru saja dihasilkan.Proses yang berlangsung dalam dekompresi
data LZW dinyatakan sebagaiberikut.
Tabel 2.5 Pseudocode AlgoritmaDekompresi LZW [9]
1 : 2 :
3 : 4 :
5 : 6 :
7 : 8 :
9 : 10:
11: 12:
13: 14:
read a token x from the compressed file look up dictionary for element at x
output element word
element
while not E0F do
read x look up dictionary for element at x
if there is no entry yet for index x then
element word + firstCharOfWord
end if output element
add word + firstCharOfElement to the dictionary word
element
end while
Misalnya hasil kompresi sebelumnya 668575657832256258 akandidekompresi ke bentuk semula.
Prosesnya sebagai berikut karakter yang digunakan adalah karakter standar ASCII.
Universitas Sumatera Utara
Tabel 2.6 Proses Dekompresi LZW untuk Menemukan String “BUKAN BUKA”
Dengan demikian diperoleh output “BUKAN BUKA”. Pada kasus ini indeks selalu ditemukan dalam dictionary. Bila kondisi tertentu menyebabkan indeks tidak
ditemukan dalam dictionary ditunjukkan dengan temp yang berisi null, maka output yg dihasilkan adalah karakter sebelumnya ditambahkan dengan karakter pertama dari
karakter tersebut. Misalnya bila karakter sebelumnya “A”, maka outputnya adalah “AA”. Dan ke dalam kamus ditambahkan “AA”.
2.5 Base64Encoding