• Tidak ada hasil yang ditemukan

Implementasi Algoritma Kunci Publik Luc dan Algoritma Kompresi Goldbach Codes untuk Perancangan Aplikasi Pengamanan dan Kompresi File

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Kunci Publik Luc dan Algoritma Kompresi Goldbach Codes untuk Perancangan Aplikasi Pengamanan dan Kompresi File"

Copied!
25
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

Bab 2 membahas tinjauan teoritis yang berkaitan dengan algoritma kriptografi LUC dan algoritma kompresi Goldbach Codes.

2.1Kriptografi

Informasi dalam sebuah data memiliki nilai penting, dimana isi data dari informasi tersebut harus dijaga kerahasiaannya dari pihak yang ingin melakukan pembobolan data. Berkembangnya zaman menuju era teknologi yang sangat maju, kini kriptografi telah banyak digunakan untuk pengamanan data seperti gambar, pesan, audio, berkas biner maupun dokumen.

2.1.1 Definisi kriptografi

Kata-kata “cryptography”, “cryptology” dan “cryptanalysis” umunya berubah-ubah dan masing-masing dari kata tersebut memiliki makna yang berbeda. Cryptography yang awal katanya menggunakan kata “crypt”, dalam bahasa Yunani kruptos yang artinya sembunyi. Kata terakhir “graphy” mengacu pada arti tulisan. Kriptografi memiliki arti sebagai tulisan yang tersembunyi. (Batten, 2013).

(2)

Gambar 2.1 Urutan Proses Kriptografi (Munir, 2006)

Proses kriptografi pada umumnya, mengubah plainteks menjadi cipherteks, yang mana hasil dari cipherteks berupa simbol-simbol atau notasi angka yang tidak dapat dibaca oleh orang awam. Umunya, proses enkripsi dan dekrisp memerlukan kunci untuk menghasilkan cipherteks dan plainteks yang diinginkan. Cipherteks dapat dikembalikan menjadi tulisan awal dengan dilakukannya proses dekripsi.

2.1.2 Sejarah kriptografi

Secara historis ada empat kelompok orang yang berkontribusi terhadap perkembangan kriptografi, dimana mereka menggunakan kriptografi untuk menjamin kerahasiaan dalam komunikasi pesan penting, yaitu kalangan militer (termasuk intelijen dan mata-mata), kalangan diplomatik, dan penulis buku harian. Diantara empat kelompok ini, kalangan militer yang memberikan kontribusi paling penting karena pengiriman pesan di dalam suasana perang membutuhkan teknik enkripsi dan dekripsi yang rumit.

Kriptografi mengalami perkembangan yang sangat pesat pada masa peperangan. Pada masa peperangan, terdapat tuntutan untuk menyampaikan informasi yang tidak boleh diketahui oleh musuh. Terdapat beberapa cara enkripsi pesan pada zaman perang, enkripsi yang paling sering digunakan adalah enkripsi manual yang dilakukan secara langsung oleh manusia. Namun ada beberapa negara yang melakukan enkripsi dengan menggunakan mesin. Contohnya negara Jerman dan Jepang. Penggunaan alat tersebut bertujuan untuk memudahkan proses enkripsi dan data menjadi lebih aman.

Enkripsi Dekrispi

Cipherteks

Plainteks Kunci

(3)

Pada zaman Romawi kuno, Julius Caesar telah menggunakan teknik kriptografi yang dijuluki Caesar Cipher untuk mengirimkan pesan rahasia. Meskipun teknik yang digunakan masih belum memadai.

Pada pedang dunia ke-II, pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan mesin Enigma. Mesin Enigma menggunakan beberapa buah rotor (roda berputar) untuk melakukan enkripsi dengan cara yang sangat rumit. Awalnya, pihak sekutu kesulitan untuk memecahkan kode mesin kriptografi Jerman, namun seiring berjalannya waktu pihak sekutu mempelajari mesin Enigma dan berhasil memecahkan kode tersebut. Mesin Enigma dapat dilihat pada gambr 2.2

Gambar 2.2. Mesin Enkripsi Enigma yang digunakan oleh Tentara Jerman pada Masa Perang Dunia ke-II. (Munir, 2006)

(4)

Kriptografi bertujuan untuk memberikan aspek keamanan sebuah pesan atau informasi yang akan dikirim. Berikut ini aspek-aspek keamanan dalam kriptografi (Forouzan, 2007):

1. Kerahasiaan Data (Data Confidentialy)

Kerahasiaan data dirancang untuk memproteksi data dari penyerangan yang ingin membuka data.

2. Integritas Data (Data Integrity)

Integritas data adalah sebuah rancangan untuk memproteksi data dari modifikasi, penyisipan, penghapusan, dan orang yang tidak memiliki hak untuk membalas sebuah pesan.

3. Otentikasi (Authentication)

Mengidentifikasi kebenaran sumber pesan baik dari si pengirim maupun si penerima. Dua pihak harus saling berkomunikasi untuk mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan yang dikirim melalui saluran asalanya atau tidak.

4. Menolak Penyangkalan (Non-Repudiation)

Memberikan perlindungan dengan cara penolakan sebuah data baik dari si pengirim ataupun si penerima. Dalam non-repudiation akan membuktikan apakah data tersebut orisinil, penerima data dapat membuktikan identitas dari si pengirim jika disangkal. Non-repudiaton juga membuktikan dengan bukti pengiriman, apakah pesan yang dikirim diterima langsung oleh si penerima pesan.

5. Acces Control

(5)

2.1.4 Terminologi dan konsep dasar kriptografi

Dalam ilmu kriptografi akan ditemukan beberapa istilah atau terminologi yang sangat penting untuk diketahui dalam memahami kriptografi. Oleh karena itu, penulis akan menjelaskan beberapa istilah penting dalam kriptografi yang akan sering digunakan dalam penulisan. Berikut beberapa istilah penting dalam kriptografi.

a) Plainteks dan Cipherteks

Dalam memahami bidang ilmu kriptografi, sering muncul kata plainteks. Plainteks diartikan sebagai pesan awal atau pesan asli dari si pengirim yang. Umunya, plainteks merupakan sebuah pesan yang belum mengalami perubahan sama sekali. Plainteks dapat berupa teks, dokumen, video ataupun audio.

Plainteks yang akan dikirim oleh si pengirim dapat diubah menjadi kode-kode, simbol ataupun angka yang tidak diketahui maknanya, istilah ini disebut sebagai cipherteks. Cipherteks adalah sebuah metode untuk merahasiakan tulisan tangan, dimana plainteks (pesan awal) diubah menjadi cipherteks.

Berikut ini merupakan perbandingan antara plainteks dan cipherteks pada gambar 2.3

(6)

b) Sender dan Recipient

Pertukaran informasi data atau pengiriman data melibatkan dua entitas, dimana adanya sender (pengirim) dan recipient (penerima). Entitas disini tidak hanya orang yang melakukan pengiriman pesan dan penerima pesan, tetapi juga dapat berupa mesin komputer, kartu kredit, dan sebagainya. Orang dapat bertukar informasi dengan orang lain, contoh Bob mengirim pesan kepada Alice. Sedangkan didalam mesin komputer seperti mesin ATM yang berkomunikasi dengan komputer server di bank.

Pengirim tentu ingin mengirimkan pesan dan menyimpan pesan secara aman, ia yakin bahwa tidak ada pihak lain yang membaca pesan tersebut. Hal ini dapat dilakukan dengan melakukan proses penyandian pesan atau cipherteks.

c) Enkripsi dan Dekripsi

Proses penyandian pesan, dari plainteks ke cipherteks dinamakan dengan enkripsi (encryption) atau enchipering (standard nama menurut ISO 7498-2).

Sedangkan proses mengembalikan pesan dari cipherteks ke plainteks dinamakan dengan dekripsi (descryption) atau dechipering (standard nama menurut ISO 7498-2). Proses enkripsi dan dekripsi dapat diterapkan pada pesan yang dikirim ataupun pesan yang disimpan. Encryption of data in motion mengacu pada enkripsi pesan yang ditransmisikan melalui saluran komunikasi, sedangkan istilah encryption of data at-rest mengacu pada enkripsi pesan yang tersimpan di dalam storage.

d) Kriptanalis dan Kriptologi

(7)

akhirnya mengarah dan menemukan kunci unutk mengungkap isi plainteks (Munir, 2006).

Kriptologi dapat juga diartikan sebagai seni dan ilmu untuk membuat dan memecahkan kode rahasia. Kriptologi dibagi menjadi kriptografi (seni dan ilmu membuat kode rahasia), kriptanalisis (ilmu dan seni untuk memecahkan chiperteks menjadi plainteks tanpa mengetahui kunci yang digunakan).

2.1.5 Jenis kriptografi

Kriptografi berdasarkan kunci enkripsi dan dekripsinya terbagi menjadi dua, yaitu:

1. Kriptografi Simetri

Kriptografi Simetri adalah Salah satu jenis algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Sistem kriptografi kunci-simetri diasumsikan sebagai pengirim dan penerima sudah memiliki kunci yang sama. (Zelvina, 2012).

Keamanan Algoritma Simetri terletak pada kerahasiaan kuncinya. Contoh algoritma simetri adalah DES (Data Encryption Standar), AES (Advanced Encryption Standard), RC4, Vernam, dll. Proses enkripsi dan dekripsi algoritma simetri terdapat pada Gambar 2.4:

(8)

a. Kelebihan Kriptografi Simetri

1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat.

2. Ukuran kunci simetri relatif pendek.

3. Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan acak.

4. Algorima kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih kuat.

5. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.

b. Kekurangan Kriptografi Simetri

1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasisan kunci ini.

2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.

2. Kriptografi Asimetri

Algoritma asimetri adalah algoritma kriptografi yang enkripsi dan dekripsnya menggunakan kunci yang berbeda. Kunci enkripsi tidak bersifat rahasia atau diketahui oleh umum yang dinamakan sebagai public key (kunci public).

(9)

Gambar 2.5 Skema Algoritma Asimetri (Munir, 2006)

a. Kelebihan Kriptografi Asimetri

1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada sistem simetri.

2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang.

3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.

4. Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda tangan digital pada pesan (akan dijelaskan pada materi kuliah selanjutnya)

b. Kekurangan Kriptografi Asimetri

1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar.

2. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plainteks).

3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri.

(10)

orang, maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim.

5. Tidak ada algoritma kunci-publik yang terbukti aman (sama seperti block cipher). Kebanyakan aalgoriam mendasakan keamanannya pada sulitnya memecahkan persoalan-persoalan aritmetik (pemfaktoran, logaritmik, dsb) yang menjadi dasar pembangkitan kunci

2.2Algoritma LUC

Algoritma ini merupakan salah satu jenis algoritma asimetri. Pada sub bab ini penulis akan menjelaskan tentang Algoritma LUC beserta cara kerja algoritma LUC itu sendiri.

2.2.1 Perkembangan algoritma LUC

Pada tahun 1993, Smith dan Michael menyatakan bahwa algoritma LUC merupakan algoritma yang dijabarkan dari deret Lucas. Sehingga didapat rumus enkripsi dan dekripsi dari barisan lucas tersebut.

(11)

a. Bilangan prima p dan q b. Kode ASCII 255

c. Plainteks berupa file berecord

d. Kunci e merupakan public key dan kunci d yang bersifat private key.

2.3Landasan Matematika Algoritma LUC

Dalam mempelajari algoritma kriptografi, sebaiknya memahami terlebih dahulu konsep-konsep dasar perhitungan matematis yang akan digunakan dalam suatu algoritma kriptografi tersebut.

2.3.1 Aritmatika modulo

Aritmatika modulo merupakan salah satu peran yang penting dalam komputasi integer, khususnya pada aplikasi kriptografi. Operator yang digunakan pada aritmatika modulo adalah mod (modulo) yang menyatakan sisa hasil pembagian.

Diberikan a bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m (dibaca ”a modulo m”) memberikan sisa yang merupakan hasil dari pembagian a dengan m. Dengan kata lain, a mod m = r , sehingga a = m.q + r, dengan 0 ≤ r < m. Dinotasikan: a mod m = r , = m.q + r, dengan 0 ≤ r < m. Sebagai contoh:

Jika 11 mod 3 = 2 , maka 11 = 3(3) + 2.

2.3.2 Least Common Multiple (LCM)

(12)

6 = 6, 12, 18, 24, 30, 36, 42, …

Kelipatan persekutuannya adalah bilangan-bilangan yang muncul pada kedua baris geometri tersebut, yakni 12, 24, dan 36. Jadi, LCM dari 4 dan 6 adalah 12.

2.3.3 Fermat’s Little Theorem

Teorema Little Fermat memberikan uji yang baik untuk ketidakprimaan. Peranan penting Fermat’s Little Theorem dalam kriptografi adalah mempermudah perhitungan matematis prima sebagai dasar dari teknik enkripsi asimetris.

Untuk bilangan prima (p) dan bilangan bulat (a) , a p≡ a (mod p). Di mana p adalah bilangan bulat dan a adalah urutan bilangan yang lebih kecil dari p. Jika hasilnya ≠ 1, maka p bukan bilangan prima. Sebaliknya, jika hasilnya = 1, maka p bilangan prima. Berikut ini contoh penerapan metode Fermat:

a. Bila p = 6

(13)

2 7-1 mod 7 = 26 mod 7 = 1 3 7-1 mod 7 = 36 mod 7 = 1 4 7-1 mod 7 = 46 mod 7 = 1 5 7-1 mod 7 = 56 mod 7 = 1 6 7-1 mod 7 = 66 mod 7 = 1

Hasil diatas menunjukkan perhitungan untuk memastikan apakah 7 bilangan prima atau tidak, ditemukan hasil dari semua perhitungan = 1, maka jelas bahwa 7 merupakan bilangan prima.

2.3.4. Algoritma Lehman

Algoritma Lehman membagi suatu bilangan yang akan diuji, misal p dengan bilangan prima kurang dari 256 pengujian, dengan cara membangkitkaan bilangan acak a yang lebih kecil dari p dan dihitung a(p-1)/2mod p yang bernilai 1 atau -1. Berarti p berpeluang prima sebesar 50% yang apabila langkah ini dulang dan lolos sebanyak t kali, maka akan menghasilkan sebuah bilangan prima p yang mempunyai kesalahan tidak lebih dari 1/2t.

2.3.5 Algoritma Euclidean

Bilangan terbesar yang mampu membagi setiap seluruh anggota himpunan bilangan tersebut dan menghasilkan bilangan bulat. Dua buah bilangan bulat a dan b , dimana salah satu dari keduanya tidak sama dengan 0, dikatakan relatif prima jika gcd(a,b) = 1.

Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar (PBB) dari dua bilangan bulat. Algoritma ini didasarkan pada pernyataan bahwa ada dua buah bilangan bulat tak negatif yakni m dan n dimana nilai m ≥ n. Adapun tahap-tahap pada algoritma Euclidean adalah:

1. Jika n = 0 maka m adalah PBB (m, n); stop. Kalau tidak (yaitu n ≠ 0) lanjutkan ke langkah nomor 2.

(14)

kembali ke langkah nomor 1.

Algoritma Euclidean dapat digunakan untuk mencari dua buah bilangan bulat yang relatif prima. Contoh:

m = 80, n = 12 ; memenuhi syarat karena m ≥ n

80 = 6.12 + 8 12 = 1.8 + 4

8 = 2.4 + 0, sisa pembagi terakhir adalah 0 maka (80,12) = 4

2.3.6 Bilangan relatif prima

Dua buah bilangan bulat a dan b dikatakan relatif prima jika FPB atau GCD (greatest common divisor) dari a dan b bernilai 1.

Contoh : 17 dan 11 relatif prima sebab FPB (17, 11) = 1. Begitu juga 23 dan 7 relatif prima karena FPB (23, 7) = 1. Tetapi 15 dan 3 tidak relatif prima sebab FPB (15, 3) = 3 ≠ 1.

2.3.7 Invers Modulo

Jika a dan m relatif prima, gcd (a, m) = 1, dan m > 1, maka dapat menemukan invers (balikan) dari a modulo m. Balikan a modulo m adalah bilangan bulat a-1 , sehingga: aa-1 1 (mod m)

Dari definisi relatif prima, diketahui bahwa gcd (a,m) = 1 sehingga terdapat bilangan bulat p dan q, sehingga

pa + qm =1

(15)

Sebagai contoh: karean gcd (4,9) = 1, maka invers modulo dari 4 (mod 9) ada. 9 = 2. 4 + 1

Susunan persamaan diatas menjadi: -2 . 4 + 1 . 9 = 1. Dari persamaan terakhir, diperoleh -2 merupakan invers modulo dari 4 mod 9. Periksa bahwa :

-2.4 1 (mod 9) (9 habis membagi -2. 4-1 = -9).

2.4Prinsip Kerja Algoritma LUC

2.4.1 Proses pembangkit kunci algoritma LUC:

a. Dibutuhkan nilai p dan q yang diambil secara acak, dimana p ≠ q. Jumlah p dan q tidak melebihi dua digit bilangan prima. Perkalian nilai p dan q dibutuhkan untuk mencari nilai modulus N.

1. Algoritma Kunci Publik

a) Pilih dua buah bilangan prima sembarang, misal p dan q dimana p ≠ q. p = 47

q = 17

b) Hitung nilai n = p x q. n = p x q

n = 47 x 17 = 799

c) Hitung t = (p-1).(q-1).(p+1).(q+1) = (47-1).(17-1).(47+1).(17+1) = (46).(16).(48).(18)

(16)

Z < e < n-1 dan GCD (e,t) = 1

RP (p-1) = RP 46 = { 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43} RP (q-1) = RP 16 = {3, 5, 7, 11, 13}

RP (p+1) = RP 48 = {3, 5, 7, 11, 13, 17, 19, 29, 31, 37, 41, 43, 47} RP (q+1) = RP 18 = {3, 5, 7, 11, 13, 17}

Hasil perhitungan bilangan relatif prima diatas terdapat beberapa bilangan yang sama, yaitu {3, 5, 7, 11, 13, 17, 19, 29, 31, 37, 41, 43, 47}. Maka pilih e = 13, GCD (13, 635904) = 1.

e) Hitung RN = LCM (p-1, q-1, p+1, q+1) RN = LCM (46, 16, 48, 18) = 3312

f) Hitung d sehingga mendapatkan hasil e.d mod RN = 1. Pada tabel 1 merupakan tabel perhitungan untuk mencari d.

Tabel 2.1 Perhitungan Untuk Mencari d

D e.d mod RN = 1

13. d mod 3312 = 1

1 13

2 26

3 39

4 52

..2293 1

(17)

2.4.2 Proses enkripsi

Langkah-langkah dalam mengirimkan pesan dengan menggunakan Algoritma LUC sebagai berikut:

a. Dalam melakukan proses enkripsi, setiap karakter dari string berupa text atau plainteks dikonversikan kedalam kode ASCII

Misal : plainteks = A Kode ASCII = 65.

b. Plainteks A dengan Kode ASCII 65 c. Enkripsi dengan rumus:

V [ 2…e ] = ( m. V [ i – 1] – V [ i – 2] ) mod n

V [ 0 ] = 2

V [ 1 ] = 65

V [ 2…e ] = ( 65. V [ i – 1] – V [ i – 2] ) mod 799

C = Ciphertext = V[ e ] = V [13] = 608.

2.4.3 Proses Dekripsi

Langkah-langkah dalam melakukan proses dekripsi LUC adalah: a) Dapatkan hasil cipherteks C = Cipherteks

b) Dekripsi dengan rumus bertingkat:

V [0] = 2 V [1] = C = 608

(18)

m = V[d]

m = V [2293] = 65 = “A”

2.5 Definisi Kompresi

Kompresi data adalah proses yang dapat mengubah sebuah aliran data masukan (sumber data atau data asli) ke dalam aliran data yang lain yang memiliki ukuran yang lebih kecil (Salomon, 2007).

Penggunaan kompresi data dapat mengurangi ukuran dari sebuah file yang sangat berguna ketika memproses, menyimpan, dan mengirim sebuah file dengan ukuran yang besar. Jika algoritma kompresi yang digunakan bekerja dengan baik, seharusnya ada perbedaan yang signifikan antara file asli dan file yang telah dikompresi. Secara garis besar terdapat 2 buah penggolongan algoritma kompresi, yaitu:

1. Kompresi Loseless

Kompresi Loseless membangun kembali data asli yang sama persis dengan data yang di kompresi. Selama melakukan proses kompresi, tidak ada informasi yang hilang dari data tersebut. Contoh aplikasi lossless compression : WINRAR dan WINZIP

(19)

Pada gambar 2.6 merupakan visualisasi algoritma kompresi dan dekompresi loseless.

BBAAB 0010100

0010100 BBAAB

Gambar 2.6 Proses algoritma kompresi dan dekompresi loseless

Pada contoh diatas, BBAAB dikompresi lalu menghasilkan bit angka 0010100. Hasil kompresi tersebut kemudian didekompresi kembali untuk menghasilkan data yang sama dengan data awal yaitu BBAAB. Tidak ada kekurangan data dalam proses kompresi Loseless tersebut.

2. Kompresi Lossy adalah suatu metode untuk mengkompresi data dan mendekompresinya dimana data yang dikompresi mungkin berbeda dari data aslinya, tetapi perbedaan itu cukup dekat. Metode ini paling sering digunakan untuk kompresi data multimedia (audio file dan gambar). Gambar 2.7 dibawah ini sebagai contoh proses kompresi dan dekompresi Lossy.

2,78128 00001110000010

00001110000010 2,78

Gambar 2.7 Proses kompresi dan dekompresi lossy Algoritma

Kompresi

Algoritma Dekompresi

Algoritma Kompresi

(20)

Ada beberapa angka dari bilangan 2,78128 yang tidak begitu mempunyai peranan yang penting dalam penyimpanan data, sehingga dapat hilang selama proses kompresi. Data seperti gambar, multimedia, video, dan suara akan lebih mudah dikompresi dengan menggunakan teknik kompresi lossy. Kompresi lossy tidak memungkinkan untuk membangun kembali data yang telah dikompresi sama persis dengan data yang sebelum dikompresi. Tetapi, daya seperti gambar multimedia, video, dan suara walaupun telah dikompresi dengan menggunakan teknik kompresi lossy tidak menghambat pengguna untuk melihat ataupun mendengar secara keseluruhan.

Contoh aplikasi lossy compression: aplikasi pengkompres suara (mp3 compressor), gambar (adobe photoshop, paint), video (xilisoft)

Contoh format file lossy compression : MP3, JPEG, MPEG

2.5.1 Algoritma kompresi Goldbach Codes

Algoritma Goldbach Codes ditemukan oleh seorang matematikawan asal Prussia yang bernama Christian Goldbach. Dimana Algortima Goldbach Codes menyatakan bahwa setiap bilangan genap > 2 merupakan hasil dari dua buah bilangan prima. Seperti pada tabel 2.2 merupakan goldbach G0 Code yang berisi Codeword.

Tabel 2.2 Goldbach G0 Code

N 2(n+3) Primes Codeword

1 8 3 + 5 11

2 10 3 + 7 101

3 12 5 + 7 011

4 14 3 + 11 1001

5 16 5 + 11 0101

(21)

7 20 7 + 13 00101

8 22 5 + 17 010001

9 24 11 + 13 00011

Tabel diatas merupakan angka-angka yang sudah diubah ke dalam Codeword. Pilih salah satu angka genap pada table Goldbach G0 Codes, misal 20. Angka 20 merupakan penjumlahan dua bilangan prima, yaitu 7 + 13, yang mana dalam Codeword adalah 00101. Dimana setiap bit disusun dari kiri ke kanan berdasarkan urutan yang telah di tetapkan, 13, 11, 7, 5 dan 3. Seperti pada Tabel 3 yang merupakan contoh angka yang akan dimasukkan kedalam Goldbach G0 Codes.

Contoh:

String = “375” , |string| = 3

∑ ( karakter yang berbeda dalam string) = {375}

∑ = 3

Setelah mendapatkan ∑ ( karakter yang berbeda dalam string), selanjutnya ∑ dimasukkan ke dalam ASCII seperti tabel 2.3 dibawah ini.

Tabel 2.3 String diubah kedalam ASCII

Char ASCII Code ASCII Bin Bit Freq Bit x Freq

3 51 00110011 8 1 8

7 55 00110111 8 1 8

5 53 00110101 8 1 8

Jumlah = 24

(22)

Tabel 2.4 String diubah kedalam Goldbach G0 Codes.

Maka kompresi untuk 375 adalah 111111 Dekompresi 3 7 5

11 11 11

2.5.2 Konsep kompresi data

Untuk proses kompresi menggunakan Goldbach Codes kita merujuk pada Tabel 2.5.1, Dimana Goldbach Codes, proses kompresi sendiri didasarkan pada bahwa isi file akan dibaca secara per byte (8 bit) sehingga menghasilkan nilai pembacaan antara 0 hingga 255.

Suatu metode pada kompresi data akan menghasilkan bit-bit (satuan terkecil pembentuk data) data baru yang lebih pendek dibandingkan oleh bit-bit data sebelum dikompresi. Bit-bit data yang lebih pendek tersebut biasanya tidak akan bisa dibaca oleh komputer sebelum dilakukan proses encoding. Pada proses encoding bit-bit data tersebut di-encode setiap delapan bitnya sehingga membentuk satu karakter yang dapat dibaca oleh komputer. Begitu juga sebaliknya, pada saat dekompresi bit-bit data tersebut di-decode kembali agar membentuk bit-bit data semula yang akan digunakan dalam proses dekompresi.

(23)

karakter direpresentasikan oleh bilangan ASCII (American Standard Code For Information Interchange) sebanyak delapan bit dalam bilangan biner. Jika ternyata jumlah bit-bit data tersebut bukan merupakan kelipatan delapan. Maka dibentuk variabel baru sebagai penambahan ke bit-bit data itu agar bit-bit data tersebut habis dibagi delapan. Variabel ini adalah padding dan flagging

1. Padding

Padding adalah penambahan bit 0 sebanyak kekurangan jumlah bit-bit data pada hasil proses kompresi sehingga jumlah keseluruhan bit-bit data tersebut merupakan kelipatan delapan (habis dibagi delapan). Contoh misalkan dihasilkan bit-bit data hasil kompresi yaitu 1001011. Terdapat 7 bit data dalam bilangan biner. Maka dilakukan penambahan bit 0 sebanyak 1 kali agar jumlah bit-bit data tersebut habis dibagi delapan. Sehingga bit-bit data itu menjadi 10010110 setelah diberikan padding.

Contoh Padding:

Pada hasil kompresi Goldbach dengan string 375 adalah 111111, terdapat 6 bit data dalam bilanngan biner. Lalu, dilakukan penambahan bit 0 sebanyak dua kali 11111100 agar bit data tersebut habis dibagi delapan.

2. Flagging

Flagging adalah penambahan bilangan biner sepanjang delapan bit setelah padding dimana flagging ini adalah sejumlah bilangan yang memberikan sebuah tanda bahwa terdapat n buah padding di dalam bit-bit data hasil dari kompresi. Penambahan flagging ini dimaksudkan untuk mempermudah dalam membaca bit-bit data hasil kompresi pada saat proses dekompresi.

(24)

Pada tahap kompresi data, terdapat beberapa faktor atau variable yang biasa digunakan untuk mengukur kualitas dari suatu teknik kompresi data, diantaranya adalah:

a. Ratio of Compression (Rc)

Ratio of Compression merupakan hasil perbandingan antara ukuran fiile yang telah dikompresi dengan file yang belum di kompresi.

= = 4

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

x 100%

= X 100%

= 0,25 %

c. Redundancy (Rd)

Redundancy (Rd) adalah kelebihan yang terdapat di dalam data sebelum

(25)

Rd = 100% - Cr = 100% - 0,25%

= 99,75 %

d. Space Saving (SS)

Space Saving adalah persentase selisih antara data yang belum dikompresi dengan besar data yang dikompresi.

Gambar

Gambar 2.2. Mesin Enkripsi Enigma yang digunakan oleh Tentara Jerman pada
Gambar 2.3 Perbandingan Plainteks dan Cipherteks. (Munir, 2005).
Gambar 2.4 Skema Kriptografi Simetri. Kunci Simetri Sama dengan Kunci
Gambar 2.5 Skema Algoritma Asimetri (Munir, 2006)
+6

Referensi

Dokumen terkait

Delphi Method. Sumber data yang digunakan yaitu data sekunder terkait dengan perancangan model dan data primer dari pakar untuk pemilihan kriteria, sub kriteria,

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

Menindaklanjuti Surat Edaran dari Sekretariat Daerah Kota Yogyakarta Tanggal 26 Maret 2018 Nomor : 027/968/SE/2018 tentang Usulan RKMBD Pemerintah Kota Yogyakarta Tahun

pemeriksaan di sidang pengadilan terhadap tindak pidana korupsi dilakukan hukum acara yang berlaku, kecuali ditentukan lain dalam undang- undang ini”.. 31 Tahun 1999 mulai

Dilihat dari gambaran umum dukungan keluarga dalam. memanfaatkan layanan kesehatan maternal

yang masih tumbuh liar sehingga produksi nira dan gula aren belum dapat. dimaksimalkan. Permasalahan mendasar yang dihadapi dalam

kegiatan ilmiah berupa diskusi atau seminar, mengenai bidang studinya; (2) selalu berusaha meningkatkan keefektifan mengajar, mencari cara- cara baru dalam menyampaikan materi

Pendidikan Islam pada dasarnya merupakan upaya normatif untuk membantu seseorang atau sekelompok peserta didik dalam mengembangkan pandangan hidup islami (bagaimana akan menjalani