• Tidak ada hasil yang ditemukan

Implementasi Algoritma Prediction By Partial Matching (Ppm) Pada Kompresi File Teks Terenkripsi Elgamal

N/A
N/A
Protected

Academic year: 2024

Membagikan "Implementasi Algoritma Prediction By Partial Matching (Ppm) Pada Kompresi File Teks Terenkripsi Elgamal"

Copied!
10
0
0

Teks penuh

(1)

Implementasi Algoritma Prediction By Partial Matching (Ppm) Pada Kompresi File Teks Terenkripsi Elgamal

Relina Hutagalung

Program Studi Teknik Informatika, STMIK Budi Darma, Medan, Indonesia Jalan Sisingamangaraja No. 338 Medan, Indonesia

Email : [email protected] Abstrak

Keamanan komputer merupakan suatu cabang teknologi yang dikenal dengan nama keamanan informasi yang diterapkan pada komputer. Sasaran keamanan komputer antara lain adalah sebagai perlindungan informasi terhadap pencurian informasi.

Penerapan keamanan komputer merupakan sebuah upaya yang dilakukan untuk mengamankan kinerja dan proses komputerisasi agar tidak digunakan, dimodifikasi, diinterupsi dan diganggu oleh pihak yang tidak berwenang. Sedangkan kompresi data merupakan salah satu aspek penting perkembangan teknologi informasi. Kompresi adalah pengubahan data ke dalam bentuk yang memerlukan bit yang lebih sedikit, biasanya dilakukan agar data dapat disimpan atau dikirimkan dengan lebih efisien. Kecepatan dalam proses pengiriman informasi merupakan hal yang sangat diharapkan dengan menggunakan teknologi yang ada saat ini dan akan menjadi terhambat jika file yang berisi informasi tersebut memiliki ukuran yang besar.

Tidak hanya kecepan, factor keamanan merupakan hal yang sangat penting dalam pertukaran informasi. Hal ini dikarenakan

banyak pihak-pihak tidak bertanggung jawab yang ingin mencuri informasi dan dapat disalahgunakan oleh pihak tersebut.

Teknik kompresi menggunakan algoritma Prediction by Partial Matching dapat mengatasi ukuran file yang besar karena dengan menggunakan algoritma tersebut ukuran file dapat diperkecil. Sedangkan untuk meningkatkan keamanan dari informasi rahasia, maka dilakukan penyandian terhadap file teks menggunakan algoritma ElGamal yang memiliki tingkat keamanan yang cukup kuat karena kesulitan dalam menghitung logaritma diskrit untuk memecahkannya. Hasil akhir yang didapatkan merupakan sebuah file teks yang sudah tersandikan dan memiliki ukuran yang lebih kecil.

Kata Kunci: Kriptografi, Kompresi, PPM,Elgamal.

Abstract

Computer security is a branch of technology known as information security applied to computers. The goal of computer security is to protect information against information theft. The application of computer security is an effort made to secure performance and computerized processes so that they are not used, modified, interrupted and disturbed by unauthorized parties.

While data compression is one of the important aspects of the development of information technology. Compression is converting data into forms that require fewer bits, usually done so that data can be stored or sent more efficiently. The speed in the process of sending information is something that is highly expected by using existing technology and will be hampered if the file containing the information has a large size. Not only kecepan, security factors are very important things in the exchange of information. This is because many irresponsible parties want to steal information and can be misused by that party.

The compression technique using the Prediction by Partial Matching algorithm can overcome large file sizes because by using the algorithm the file size can be minimized. Whereas to improve the security of confidential information, then encoding text files using the ElGamal algorithm which has a level of security that is quite strong because of the difficulty in calculating discrete logarithms to solve them. The final result is a text file that has been encoded and has a smaller size.

Keywords: Cryptography, Compression, PPM, Elgamal.

1. PENDAHULUAN

Keamanan komputer merupakan suatu cabang teknologi yang dikenal dengan nama keamanan informasi yang diterapkan pada komputer. Sasaran keamanan komputer antara lain adalah sebagai perlindungan informasi terhadap pencurian informasi. Penerapan keamanan komputer merupakan sebuah upaya yang dilakukan untuk mengamankan kinerja dan proses komputerisasi agar tidak digunakan, dimodifikasi, diinterupsi dan diganggu oleh pihak yang tidak berwenang. Sedangkan kompresi data merupakan salah satu aspek penting perkembangan teknologi informasi. Kompresi adalah pengubahan data ke dalam bentuk yang memerlukan bit yang lebih sedikit, biasanya dilakukan agar data dapat disimpan atau dikirimkan dengan lebih efisien.

File merupakan kumpulan berbagai informasi yang berhubungan dan juga tersimpan di dalam komputer.

File memiliki beberapa tipe data yang terdiri dari numeric, character dan binary. File di dalam komputer pada umumnya disimpan di dalam suatu folder tertentu tergantung pemilik komputer menyimpannya. Setiap file memiliki ekstensi masing-masing tergantung jenis file itu sendiri, ada yang berbentuk teks, video dan audio. File teks merupakan kumpulan informasi yang berbentuk teks.

Kecepatan dalam proses pengiriman informasi merupakan hal yang sangat diharapakan dengan menggunakan teknologi yang ada saat ini dan akan menjadi terhambat jika file yang berisi informasi tersebut memiliki ukuran yang besar. Tidak hanya kecepatan, faktor keamanan merupakan hal yang sangat penting dalam pertukan informasi. Hal ini dikarenakan banyak pihak-pihak tidak bertanggungjawab yang ingin mencuri informasi dan dapat disalahgunakan oleh pihak tersebut.

Teknik kompresi merupakan salah satu cara dalam mengatasi ukuran file yang besar karena dengan menggunakan teknik tersebut ukuran file dapat diperkecil. Salah satu algoritma yang dapat digunakan adalah

(2)

dengan algoritma Prediction by Partial Matching merupakan metode prediksi berbasis konteks yang penting, algoritma ini menggunakan 2 tahap, tahap pertama input-an akan dipecah menjadi beberapa konteks dan dilakukan penghitungan frekuensi probabilitas kemunculannya. Selanjutnya tahap kedua yaitu proses encoding dilakukan dengan menggunakan Arithmetic Coding. Algoritma ini termasuk dalam kelas lossless compression yaitu tidak menghilangkan informasi sedikitpun hanya mewakilkan beberapa informasi yang sama, ini dibantu juga dengan jurnal internasional sebagai jurnal pembantu yaitu “Web Prefetching Through Efficient Prediction by Partial Marching”. Untuk memenuhi faktor keamanan dalam pengiriman informasi dapat digunakan teknik kriptografi yaitu salah satu teknik yang dapat mengubah isi file menjadi kode-kode tertentu yang tidak dapat dimengerti.

Salah satu algoritma yang dapat digunakan adalah algoritma ElGamal, algoritma ini memiliki keamanan yang terletak pada kesulitan dalam menghitung logaritma diskrit.

Proses yang akan dilakukan di dalam penelitian ini adalah file teks akan dienkripsi terlebih dahulu menggunakan algoritma ElGamal, kemudian file yang sudah terenkripsi tersebut akan dikompresi menggunakan algoritma Prediction by Partial Matching, sehingga didapatkan sebuah file yang sudah terenkripsi dan memiliki ukuran yang lebih kecil dari ukuran aslinya.

2. METODE PENELITIAN

2.1 Algoritma Prediction by Partial Matching

Algoritma Prediction by Partial Matching (PPM) adalah sebuah teknik adaptive statistical data compression yang berdasarkan pada context modeling dan teknik prediksi. Model PPM menggunakan seperangkat simbol pada deretan simbol yang belum dikompresi untuk memprediksikan deretan simbol selanjutnya yang akan dikompresi.

Algoritma PPM ditemukan dan dikembangkan oleh John Cleary dan Ian Witten, selanjutnya algoritma ini diimplementasikan menjadi suatu program kompresi oleh Alistair Moffat pada bulan Juli tahun 1987 [9]. Pada proses, PPM menjalankan rangkaian model deret konteks, dari 0 hingga nilai maksimum k yang ditetapkan sebelumnya, untuk memprediksi karakter-karakter berikutnya. Untuk tiap statistik model konteks order i yang memuat semua simbol yang telah tersusun, setiap panjang i berikutnya dalam input dan berapa kali kejadiannya.

Peluang kemungkinan dihitung dari statistik-statistik dengan cara setiap model, deret 0 hingga deret k, diperoleh dari distribusi peluang kemungkinan yang terpisah dan secara efektif disatukan ke dalam satu bagian. Model deret terbesar adalah salah satu model yang secara default, digunakan untuk memprediksi simbol awal. Namun, jika suatu simbol yang tidak diketahui terhubung dengan suatu simbol “lepas”, maka model lebih kecil akan digunakan untuk prediksi. Proses akan berlanjut hingga salah satu model deret tertentu memprediksikan simbol berikutnya [9].

Masalah utama dalam pembentukan string adalah membangun struktur data dimana semua konteks saling berhubungan dari setiap simbol ke simbol lainnya. Struktur yang digambarkan disini adalah suatu jenis pohon tertentu disebut juga sebagai tree. Tree adalah pohon dimana struktur bercabang dari setiap tingkat ditentukan oleh sebagian item data, tidak oleh keseluruhan item. Dalam proses ini, deretan konteks N adalah suatu string yang mencakup semua konteks dengan deret-deret N-1 hingga 0, sehingga setiap konteks secara efektif menambahkan satu simbol pada pohon [9].

Berikut langkah-langkah dalam sebuah pembentukan pohon string dalam algoritma PPM [9]:

1. Masukkan sebuah karakter pada kalimat yang akan di-input ke dalam pohon PPM sebagai node baru pada level 1.

2. Masukkan karakter selanjutnya pada kalimat yang akan di-input. Periksa pohon PPM tersebut, apakah ada node jembatan atau tidak pada pohon PPM, jika ya tambahkan karakter sebagai anak node dari jembatan dan jika tidak, tambahkan karakter sebagai node baru pada level 1.

3. Periksa node baru yang ditambahkan pada pohon PPM, apakah node tersebut terletak pada level 1, jika ya, maka proses telah selesai dan jika tidak, cari node terakhir pada pohon PPM yang mengalami perubahan pada level 1 kemudian tambahkan node yang di-input sebagai anak dari node tersebut.

4. Periksa node-node pada level 1, apakah ada karakter yang sama dengan karakter node yang di-input, jika ya, tambahkan node. Jika tidak, buat node baru pada level 1.

5. Ulangi langkah no 2, 3 dan 4 sampai karakter-karakter yang ada pada kalimat yang akan di-input telah digunakan pada pohon PPM.

2.2 Algoritma ElGamal

Algoritma ElGamal merupakan algoritma dalam kriptografi yang termasuk dalam kategori algoritma asimetris.

Keamanan algoritma ElGamal terletak pada kesulitan penghitungan logaritma diskrit pada bilangan modulo prima yang besar sehingga upaya untuk menyelesaikan masalah logaritma ini menjadi sangat sukar. Algoritma ElGamal mempunyai kunci publik berupa tiga pasang bilangan dan kunci rahasia berupa satu bilangan. Algoritma ini mempunyai kerugian pada cipherteksnya yang mempunyai panjang dua kali lipat dari plainteksnya. Akan tetapi, algoritma ini mempunyai kelebihan pada enkripsi. Untuk plainteks yang sama, algoritma ini memberikan

(3)

cipherteks yang berbeda (dengan kepastian yang dekat) setiap kali plainteks di enkripsi. Algoritma ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Algoritma ini merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok plainteks dan menghasilkan blok-blok cipherteks yang kemudian dilakukan proses dekripsi dan hasilnya digabungkan [10].

Pembentukan kunci terdiri atas pembentukan kunci publik dan kunci rahasia. Pada proses ini dibutuhkan sebuah bilangan prima (p) yang digunakan untuk membentuk grup Zp*, elemen primitive α dan sembarang a { 0,1,…., p-2}. Kunci publik algoritma ElGamal terdiri atas pasangan 3 bilangan (p, α, β) di mana:

β = αa mod p... (1) Sedangkan kunci rahasianya adalah bilangan a tersebut. Proses pembentukan kunci untuk algoritma ElGamal terdiri atas [10]:

1. Penentuan bilangan prima aman yang bernilai besar 2. Penentuan elemen primitif.

3. Pembentukan kunci berdasarkan bilangan prima aman dan elemen primitif.

Tujuan penentuan bilangan prima aman ini adalah untuk mempermudah dalam penentuan elemen primitif.

Digunakan bilangan prima p sehingga:

p = 2. q + 1... (2) Dengan q adalah bilangan prima sehingga nilai minimal p adalah 5 dan q

adalah 2. Bilangan prima p tersebut disebut sebagai bilangan prima aman. Langkah penentuan bilangan prima tersebut dinyatakan sebagai berikut [10]:

1. Tentukan bilangan prima p ≥ 5 2. Hitung q dengan persamaan p = 2.q +1

3. Jika q merupakan bilangan prima, maka p merupakan bilangan prima aman.

4. Jika q bukan merupakan bilangan prima, maka p bukan merupakan bilangan prima aman.

Untuk menguji keprimaan suatu bilangan, digunakan suatu metode yang disebut Teorema Fermat yaitu jika x adalah bilangan prima dan y adalah bilangan bulat yang tidak habis dibagi dengan x, yaitu PBB(y,x) = 1, maka: yx-

1= 1 (mod p)

Proses enkripsi menggunakan kunci publik (p,α,β) dan sebuah bilangan integer acak k (k ϵ {0,1,…,p-1}) yang dijaga kerahasiannya oleh penerima yang mengenkripsi pesan. Untuk setiap karakter dalam pesan dienkripsi dengan menggunakan bilangan k yang berbeda-beda. Satu karakter yang direpresentasikan dengan menggunakan bilangan bulat ASCII akan menghasilkan kode dalam bentuk blok yang terdiri atas dua nilai (r, t). Langkah-langkah dalam proses enkripsi[11], adalah sebagai berikut:

1. Ambil sebuah karakter dalam pesan yang akan dienkripsi dan ditransformasi karakter tersebut ke dalam kode ASCII sehingga diperoleh bilangan bulat M.

2. Hitung nilai r dan t dengan persamaan berikut:

r = αk (mod p) t = βk M (mod p)

3. Diperoleh cipherteks untuk karakter M tersebut dalam blok (r, t)

4. Lakukan proses di atas untuk seluruh karakter dalam pesan termasuk karakter spasi.

Dekripsi dari cipherteks ke plainteks menggunakan kunci rahasia a yang disimpan kerahasiaannya oleh penerima pesan.

Teorema :

Diberikan (p, α, β) sebagai kunci public dan a sebagai kunci rahasia pada algoritma ElGamal. Jika diberikan cipherteks (r, t), maka:

M = t (ra)-1 mod p

Dengan M adalah plainteks. Di mana nila: (ra)-1 = r-a = rp-1-amod p.

Langkah-langkah proses dekripsi algoritma ElGamal [10], adalah sebagai berikut:

1. Ambil sebuah blok cipherteks dari pesan yang telah dienkripsikan pengirim.

2. Dengan menggunakan a yang dirahasiakan oleh penerima, hitung nilai plainteks dengan menggunakan persamaan M = t (ra)-1 mod p dan persamaan (ra)-1 = r-a = rp-1-amod p.

3. ANALISA DAN PEMBAHASAN

Sistem yang akan dirancang terdiri dari empat proses secara garis besar, yaitu proses enkripsi dan dekripsi serta kompresi dan dekompresi. Proses enkripsi dan dekripsi menggunakan algoritma El Gamal, panjang plainteks yang akan dienkripsi maksimal 128 bit dan kunci yang digunakan maksimal 64 bit. Kemudian hasil proses enkripsi akan dikompresi menggunakan algoritma Prediction by Partial Matching. File yang akan dienkripsi dan dikompresi adalah file yang berformat txt dan ukuran maksimal yang akan dikompresi maksimal adalah 5 MB.

(4)

3.1 Penerapan Algoritma El Gamal

Algoritma El Gamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi.

Algoritma ini merupakan cipheri block yaitu melakukan proses enkripsi pada blok-blok plaintext dan menghasilkan blok-blok ciphertext yang kemudian hasilnya digabungkan.

Langkah-langkah dalam proses enkripsi algoritma El Gamal dapat dilihat pada contoh berikut:

Plaintext : RELINAHUTAGALUNG

Bilangan Prima (p) : 257 Bilangan random g : 17 Bilangan random x : 11 1. Pembentukan kunci

Setelah mengetahui bilangan prima (p) dan memilih dua buah bilangan acak g = 17 yang memenuhi syarat g

< p dan x = 11 yang memenuhi syarat 1 ≤ x ≤ p – 2, kemudian hitung y dengan rumus:

y = gx mod p

= 1711 mod 257

= 34271896307633 mod 257

= 223

2. Penentuan bilangan prima aman besar

Langkah penentuan bilangan prima dapat dinyatakan sebagai berikut:

a. Tentukan bilangan prima p ≥ 5 p = 23 ≥ 5, memenuhi syarat

b. Hitung q dengan persamaan p = 2.q +1 q = 2572 – 1 = 127

c. 127 adalah bilangan prima, maka 257 merupakan sebuah bilangan prima aman.

3. Potong plainteks jadi blok-blok M dan ubah ke dalam kode nilai decimal sebagai berikut:

M0 = R = 82 M8 = T = 84

M1 = E = 69 M9 = A = 65

M2 = L = 76 M10 = G = 71

M3 = I = 73 M11 = A = 65

M4 = N = 78 M12 = L = 76

M5 = A = 65 M13 = U = 85

M6 = H = 72 M14 = N = 78

M7 = U = 85 M15 = G = 71

4. Kemudian menentukan bilangan acak dan dimasukkan ke dalam blok-blok nilai m secara berurutan, sehingga menjadi:

k0 = 27 k4 = 23 k8 = 75 k12 = 66 k1 = 105 k5 = 90 k9 = 27 k13 = 56 k2 = 13 k6 = 41 k10 = 67 k14 = 45 k3 = 117 k7 = 55 k11 = 78 k15 = 70 5. Hitung a dengan rumus:

a = gk mod p Nilai M0: a0 = 1727 mod 257

= 1.6677113221686882875135357274155e+33 mod 257

= 34

a1 = 17105 mod 257

= 1.5744785367384051185939718625673e+129 mod 257

= 15

a2 = 1713 mod 257

= 9904578032905937 mod 257

= 197

a3 = 17117 mod 257

= 9.1732620754477003708702287973727e+143 mod 257

= 68

a4 = 1723 mod 257

= 19967568900859523802559065713 mod 257

= 120 a5 = 1790 mod 257

= 5.5005095627214485219420489181039e+110 mod 257

(5)

= 2

Lakukan perhitungan sampai nilai a15 6. Hitung b dengan rumus:

bi = yk.m mod p b0 = 22327. 82 mod 257

= 2.0799129296138953806079199962524e+65 mod 257

= 202

b1 = 223105. 69 mod 257

= 2.5754890679603413295540548639563e+248 mod 257

= 14

b2 = 22313. 76 mod 257

= 2.5631664621994905228893406919071e+32 mod 257

= 56

b3 = 223117. 73 mod 257

= 4.1208977315205257437750778933075e+276 mod 257

= 235

b4 = 22323. 78 mod 257

= 8.0003033171097310686964030293703e+55 mod 257

= 54

b5 = 22390. 65 mod 257

= 1.4466085612089014209224773974142e+213 mod 257

= 251

Lakukan perhitungan sampai nilai b15

7. Setelah mendapatkan nilai a dan b, hasil perhitungan tersebut disusun dengan pola sebagai berikut:

a0, b0, a1, b1, a2, b2, a3, b3, a4, b4, a5, b5, a6, b6, a7, b7, a8, b8, a9, b9, a10, b10, a11, b11, a12, b12, a13, b13.

Sehingga membentuk ciphertext:

34, 202, 15, 14, 197, 56, 68, 235, 120, 54, 2, 251, 15, 104, 120, 217, 223, 198, 34, 204, 30, 179, 8, 130, 32, 219, 241, 75, 197, 71, 129, 216

Jika dikonversi ke dalam karakter menjadi:

"Ø¿Å}DÓxÜ `ôxKß:"`[30] sõ[32]Lñ?Ål[129]œ 3.2 Proses Kompresi Prediction By Partial Matching

Biasanya, algoritma kompresi data melakukan penggantian satu atau lebih simbol input dengan kode tertentu.

Berbeda dengan cara tersebut, algoritma kompresi Prediction by partial matching menggantikan satu deretan simbol input dengan sebuah bilangan floating point. Semakin panjang dan semakin kompleks pesan yang dikodekan, semakin banyak bit yang diperlukan untuk keperluan tersebut. Output dari algoritma kompresi PPM ini adalah satu angka yang lebih kecil dari 1 dan lebih besar atau sama dengan 0. Angka ini secara unik dapat di- decode sehingga menghasilkan deretan simbol yang dipakai untuk menghasilkan

angka tersebut.

Untuk menghasilkan angka output tersebut, tiap simbol yang akan di-encode diberi satu set nilai probabilitas. Ciphertext yang sudah didapatkan dari proses

enkripsi menerapkan algoritma ElGamal, kemudian akan dibuatkan tabel probabilitas dari kemunculan karakter, sebagai berikut:

Tabel 1. Tabel Probabilitas untuk Ciphertext

Karakter Probabilitas

" 2/32

Ø 1/32

[15] 2/32

¿ 1/32

Å 2/32

} 1/32

D 1/32

Ó 1/32

x 2/32

Ü 1/32

[2] 1/32

` 2/32

ô 1/32

(6)

K 1/32

ß 1/32

: 1/32

[30] 1/32

s 1/32

[34] 1/32

õ 1/32

[32] 1/32

L 1/32

ñ 1/32

? 1/32

1 1/32

[129] 1/32

œ 1/32

Setelah probabilitas tiap karakter diketahui, karakter akan diberikan range tertentu yang nilainya berkisar antara 0 dan 1, sesuai dengan probabilitas yang ada. Dalam hal ini tidak ada urut-urutan penentuan segmen, asalkan antara encoder dan decoder melakukan hal yang sama. Perlu dicatat bahwa tiap karakter melingkupi range yang disebutkan kecuali bilangan yang memiliki nilai yang tinggi.

Tabel 2. Range Simbol untuk Kata

Karakter Probabilitas Range

" 2/32 0.94 – 1.00

Ø 1/32 0.91 – 0.94

[15] 2/32 0.85 – 0.91

¿ 1/32 0.82 – 0.85

Å 2/32 0.76 – 0.82

} 1/32 0.73 – 0.76

D 1/32 0.70 – 0.73

Ó 1/32 0.67 – 0.70

x 2/32 0.61 – 0.67

Ü 1/32 0.58 – 0.61

[2] 1/32 0.55 – 0.58

` 2/32 0.48 – 0.55

ô 1/32 0.45 – 0.48

K 1/32 0.42 – 0.45

ß 1/32 0.39 – 0.42

: 1/32 0.36 – 0.39

[30] 1/32 0.33 – 0.36

s 1/32 0.27 – 0.3

[34] 1/32 0.24 – 0.27

õ 1/32 0.21 - 0.24

[32] 1/32 0.18 – 0.21

L 1/32 0.15 – 0.18

ñ 1/32 0.12 – 0.15

? 1/32 0.09 - 0.12

1 1/32 0.06 – 0.09

[129] 1/32 0.03 – 0.06

œ 1/32 0.00 – 0.03

Langkah-langkah algoritma prediction by partial matching adalah sebagai berikut:

1. Pembentukan pohon string

Berikut langkah-langkah dalam pembentukan pohon string algoritma PPM:

a. Masukkan sebuah karakter dalam kalimat yang akan di-input dalam pohon PPM sebagai node baru pada level 1.

Karakter : "Ø¿Å}DÓxÜ `ôxKß:"`[30] sõ[32]Lñ?Ål[129]œ

b. Masukkan karakter selanjutnya pada kalimat yang akan di-input.

"

(7)

Periksa pohon PPM tersebut, apakah ada node jembatan atau tidak pada pohon PPM, jika ya tambahkan karakter sebagai anak node dari jembatan dan jika tidak, tambahkan karakter sebagai node baru pada level 1.

c. Periksa node baru yang ditambahkan pada pohon PPM, apakah node tersebut terletak pada level 1, jika ya, maka proses selesai dan jika tidak, cari node terakhir pada pohon PPM yang mengalami perubahan pada level 1 kemudian tambahkan node yang di-input sebagai anak dari node tersebut.

d. Periksa node-node pada level 1, apakah ada karakter yang sama dengan karakter node yang di-input, jika ya, tambahkan node. Jika tidak, buat node baru pada level 1.

e. Ulangi langkah no 2, 3 dan 4 sampai karakter-karakter yang ada pada kalimat yang akan di-input telah digunakan pada pohon PPM.

2. Proses encoding

Untuk melakukan proses encoding menggunakan rumus sebagai berikut:

CR = Highlow

High = low + CR* High range Low = low + CR * low range

Low merupakan output dari proses algoritma Prediction by Partia Matching Untuk ciphertext di atas, pertama ambil karakter ".

High range (") = 1.00, Low range (") = 0.94 Nilai CR = 1-0.94 = 0.06

kemudian didapatkan nilai:

High = 0.94 + 0.06*1.00 = 1.00 Low = 0.94 + 0.06*0.94 = 0.9964 kemudian diambil karakter Ø

High range (Ø) = 0.94, Low range (Ø) = 0.91 Nilai CR = 0.94 – 0.91 = 0.03

kemudian didapatkan nilai:

High = 0.91 + 0.03*0.94 = 0.9382 Low = 0.91 + 0.03*0.91 = 0.9373

dan seterusnya sampai semua karakter dihitung, sehingga didaptkan nilai encoding sebagai berikut:

Tabel 3. Hasil Proses Encoding PPM

Karakter Low High CR

" 0.9964 1.00 0.06

Ø 0.9373 0.9382 0.03

[15] 0.901 0.9046 0.06

¿ 0.8446 0.8455 0.03

Å 0.8056 0.8092 0.06

} 0.7519 0.7528 0.03

D 0.721 0.7219 0.03

Ó 0.6901 0.691 0.03

x 0.6466 0.6502 0.06

Ü 0.5974 0.5983 0.03

[2] 0.5665 0.5674 0.03

` 0.5088 0.513 0.06

ô 0.4635 0.4644 0.03

K 0.4326 0.4335 0.03

ß 0.4017 0.4026 0.03

: 0.3708 0.3717 0.03

[30] 0.3399 0.3408 0.03

s 0.2781 0.279 0.03

[34] 0.2472 0.2481 0.03

õ 0.2163 0.2172 0.03

[32] 0.1854 0.1863 0.03

L 0.1545 0.1554 0.03

ñ 0.1236 0.1245 0.03

? 0.0927 0.0936 0.03

1 0.0618 0.0627 0.03

" " Ø

(8)

[129] 0.0309 0.0318 0.03

œ 0.0009 0.0009 0.03

Low = 0.0009, nilai inilah yang ditransmisikan untuk membawa pesan "Ø¿Å}DÓxÜ `ôxKß:"`[30]

sõ[32]Lñ?Ål[129]œ.

3.3 Proses Dekompresi Prediction By Partial Matching

Untuk melakukan decoding simbol habis bisa ditandai dengan simbol khusus (End of Message) atau dengan menyertakan panjang pesan waktu dilakukan transmisi. Untuk pesan yang di-encode (ES = 0.0009) dilakukan proses decoding sebagai berikut:

Didapatkan range simbol yang melingkupi ES adalah simbol atau karakter œ.

Low range = 0.00, High range = 0.03 CR = 0.03 – 0.00 = 0.03

ES = 0.0009 – low range

= 0.0009 – 0.00

= 0.0009 ES = 0.0009/CR

= 0.0009/0.03

= 0.03

Begitu seterusnya hingga semua nilai ES karakter didapatkan, karena algoritma Prediction by partial matching membaca nilai floating point dari tiap-tiap karakter, sehingga ukuran kembali seperti semula dan menghasilkan teks sebagai berikut: "Ø¿Å}DÓxÜ `ôxKß:"`[30] sõ[32]Lñ?Ål[129]œ

3.4 Proses Dekripsi Algoritma El Gamal

Proses dekripsi merupakan proses pengembalian ciphertext menjadi plaintext sebagai berikut:

Ciphertext : "Ø¿Å}DÓxÜ `ôxKß:"`[30] sõ[32]Lñ?Ål[129]œ

Langkah – langkah dalam proses dekripsi El Gamal adalah sebagai berikut:

1. Konversi ciphertext menjadi bilangan desimal

Ciphertext : 34, 202, 15, 14, 197, 56, 68, 235, 120, 54, 2, 251, 15, 104, 120, 217, 223, 198, 34, 204, 30, 179, 8, 130, 32, 219, 241, 75, 197, 71, 129, 216

2. Hitung nilai mi sebagai nilai plaintext dengan rumus sebagai berikut:

mi = bi.ai(p-1-x) mod p

m0 = 202.34 (257-1-11) mod 257

= 3.2937152059902716134013803341476e+377 mod 257

= 82

m1 = 14.15 (257-1-11) mod 257

= 1.9430613103547394828961302526375e+289 mod 257

= 69

m2 = 56.197 (257-1-11) mod 257

= 7.8057284116297956628315447415541e+563 mod 257

= 76

m3 = 235.68 (257-1-11) mod 257

= 2.1664639925879811248493436710376e+451 mod 257

= 73

m4 = 54.120 (257-1-11) mod 257

= 1.3545624786544176888442743532504e+511 mod 257

= 78

m5 = 251.2 (257-1-11) mod 257

= 1.4191315624299982935213045525967e+76 mod 257

= 65

3. Kemudian nilai tersebut digabung kembali sehingga menghasilkan nilai sebagai berikut:

82, 69, 76, 73, 78, 65, 72, 85, 84, 65, 71, 65, 76, 85, 78, 71

4. Konversi nilai tersebut menjadi karakter sehingga menghasilkan kembali plaintext sebagai berikut:

RELINAHUTAGALUNG

(9)

4. IMPLEMENTASI

Pengujian aplikasi dilakukan untuk mengetahui apakah aplikasi sudah berjalan dengan baik dan benar. Pengujian terhadap aplikasi dilakukan dengan meng-input-kan file teks yang bernama Relina.txt yang memiliki isi yang dapat dilihat dari gambar berikut:

Gambar 1. File Relina.Txt Proses dekripsi file relinaenkrip.Txt dapat dilihat dari gambar sebagai berikut:

Gambar 2 . Proses Dekripsi

File relinaenkrip.Txt yang berukuran 3514 Bit berhasil dikompresi menjadi 2681 bit. Kemudian file akan disimpan dan ekstensi file tersebut akan berubah menjadi relinakompres.PPM, dapat dilihat dari gambar sebagai berikut:

Gambar 3. Dialog Lokasi Penyimpanan File Kompresi

(10)

Pengujian dekompresi dilakukan terhadap file relinakompres.PPM untuk mengembalikan ukuran dari file relinaenkrip.Txt sebagai berikut:

Gambar 3. Pengujian Dekompresi

Pada pengujian dekompresi, diketahui file relinakompres.PPM berukuran 2683 Bit dikembalikan keukuran awalnya yaitu 3515 Bit.

5. KESIMPULAN

Dari hasil rancangan dan penerapan yang dilakukan, penulis dapat menyimpulkan

1. Peneraoan algoritma ElGamal melakukan plainteks dengan membangkitkan kunci publik terlebih dahulu kemudian membagi plainteks menjadi blok cipher untuk dienkripsi dan menggabungkan kembali blok tersebut menjadi cipherteks begitu juga sebaliknya. Keamanan algoritma ElGamal terletak pada kesulitan penghitungan logaritma diskrit pada bilangan modulo prima yang besar, sehingga upaya untuk menyelesaikan masalah logaritma ini menjadi sangat sukar.

2. Kompresi algoritma Prediction by Partial Mathcing apabila diimplementasikan pada file yang belum mengalami kompresi sebelumnya, akan menghasilkan nilai rasio yang kecil. Kompresi dengan menggunakan algoritma Prediction by Partial Matching ini juga sangat baik diimplementasikan pada file teks.

3. Aplikasi penyandian file teks menggunakan algoritma ElGamal dan kompresi menggunakan algoritma Prediction by Partial Matching, dapat dirancang menggunakan tools pemrograman Visual Studio 2008

REFERENCES

[1] Noviana Eka P, Sari Widya Sihwi, Rini Anggraningsih, "Sistem Penunjang Keputusan untuk Menentukan Lokasi Usaha dengan Metode Simple Additive Weighting (SAW)", Jurnal ITSMAR, Vol 3, 1 juni 2014, ISSN: 2301-7201.

[2] Dwi Citra Hartini, Endang Lestari Ruska, Ali Ibrahim, "Sistem Pendukung Keputusan Pemilihan Hotel di Kota Palembang dengan Metode Simple Additive Weighting (SAW)", Jurnal Sistem Informasi (JSI), Vol 5, 1 April 2013.

[3] Mustofa, "Analisis dan Perancangan Sistem Informasi E-Education Berbasis Web di SMA Pembangunan Mranggen", A11.2006.03130.

[4] Wulandari, "Penerapan Metode System Development Life Cycle pada Pembuatan Sistem Informasi Penjualan Produk Batik Kurowo Jakart", Jurnal Khatulistiwa Informatika, Vol 3, 2 Desember 2015.

[5] Liza Yulianti, Herlina Latipa Sari, Herawan Hayadi, "Sistem Pendukung Keputusan Program KB Teladan di BKKBN Bengkulu Menggunakan Programan Visual Basic 6.0", Jurnal Media Informatik, Vol 8, 2 September 2012.

[6] Murti, Dyah, Ayu, "Sistem Pendukung Keputusan Pemilihan Siswa atau Siswi Terbaik di SMA Masehi I PSAK Semarang dengan Metode Analitycal Hierarchy Process (AHP)".

[7] Rizky Erdianto, Eneng Tita Tosida, Aries Maesya, "Penentuan Jenis Bibit Ayam Broiler Menggunakan Metode Multi Objective Optimization on the basis of Ratio Analysis (MOORA)".

[8] Drs. Lamhot Sitorus, M.Kom, "Algoritma dan Pemograman", 2015.

[9] Suryasari, Astrid Callista, Juwita Sari, "Perancangan Aplikasi Customer Service pada PT. Lancar Makmur Bersama". Jurnal Sistem Informasi (JSI), Vol 4, 2 Oktober 2012.

[10] Herry Raditya Wibowo, "Belajar Visual Basic 2008", Jakarta, Indonesia, PT. Elex Media Komputindo, 2012.

[11] Meita Riestiana, Sukadi, "Sistem Pendukung Informasi Penggajian Karyawan pada Commenditaire Vennontschap (CV) RGL Bordir dan Konveksi Pacitan", Journal Speed, Vol 6, 2014.

Referensi

Dokumen terkait

Untuk skripsi ini akan digunakan salah satu dari tiga protokol tersebut yaitu kriptografi kurva eliptik elgamal (ElGamal ECC), yang menggunakan algoritma ElGamal sebagai

Pada penelitian ini, pesan atau file teks yang akan dikirim terlebih dahulu enkripsi dengan algoritma kriptografi LUC, selanjutnya hasil enkripsi akan disembunyikan

Sesuai dengan hasil uji coba yang dilakukan terlihat bahwa data yang semula mempunyai ukuran lebih besar dapat terkompresi dengan sangat baik diimplementasikan

Gambar 4.11 Pengujian ELGamal dengan mendapatkan key dari algoritma FEAL 63 Gambar 4.12 Hasil pengujian ke-1 mendapatkan ciphertext FEAL untuk key ElGamal Dengan

Analisis Perbandingan Kinerja Algoritma Fixed Length Binary Encoding (FLBE) dengan Algoritma Sequitur Dalam Kompresi File Teks.. Universitas

Berdasarkan penjelasan di atas, maka penulis melakukan penelitian dengan judul “Implementasi Kombinasi Algoritma RSA dan ElGamal dalam Pengamanan Data pada File Dokumen”.

Penyandian Data Teks Dengan Algoritma Elgamal Dan.. Algoritma Kompresi Data Dengan Algoritma Elias

Analisa Kompresi File teks dengan algoritma LZ78 Besar dictionary akan dibatasi jika pada saat melakukan proses kompresi dictionary sudah penuh, maka proses selanjutnya